package webshop::Address;
use Contenido::Globals;
use base "Contenido::Document";
sub extra_properties
{
return (
{ 'attr' => 'status', 'type' => 'status', 'rusname' => 'Статус заказа',
'cases' => [
[0, 'Дополнительный адрес'],
[1, 'Основной адрес'],
],
},
{ 'attr' => 'delivery', 'type' => 'lookup', 'rusname' => 'Тип доставки',
'lookup_opts' => {
'class' => 'webshop::Delivery',
},
},
{ 'attr' => 'name', 'type' => 'string', 'rusname' => 'Контактное лицо' },
{ 'attr' => 'phone', 'type' => 'string', 'rusname' => 'Телефон для связи',
mandatory => 1, rel => 'Не указан телефон' },
{ 'attr' => 'zipcode', 'type' => 'string', 'rusname' => 'Почтовый индекс',
mandatory => 1, rel => 'Не указан почтовый индекс' },
{ 'attr' => 'area', 'type' => 'lookup', 'rusname' => 'Регион',
lookup_opts => { class => 'webshop::Area', order_by => 'name' },
allow_null => 1, mandatory => 1, rel => 'Не выбран регион'
},
{ 'attr' => 'town_id', 'type' => 'lookup', 'rusname' => 'Город',
lookup_opts => { class => 'webshop::Town', order_by => 'name' },
allow_null => 1, mandatory => 1, rel => 'Не выбран город'
},
{ 'attr' => 'town', 'type' => 'string', 'rusname' => 'Город',
mandatory => 1, rel => 'Не указан город' },
{ 'attr' => 'metro', 'type' => 'string', 'rusname' => 'Ближайшее метро' },
{ 'attr' => 'address', 'type' => 'text', 'rusname' => 'Адрес доставки', rows => 5,
mandatory => 1, rel => 'Не заполнен адрес доставки' },
{ 'attr' => 'timeline', 'type' => 'string', 'rusname' => 'Предпочтительное время',
mandatory => 1, rel => 'Вы не указали предпочтительное время получения заказа' },
{ 'attr' => 'description', 'type' => 'text', 'rusname' => 'Описание для курьера', rows => 5 },
)
}
sub class_name
{
return 'Webshop: адрес доставки';
}
sub class_description
{
return 'Webshop: адрес доставки';
}
sub class_table
{
return 'webshop::SQL::AddressTable';
}
sub pre_store
{
my $self = shift;
if ( $self->town_id && !$self->town ) {
my $town = webshop::Town->new( $keeper, $self->town_id );
if ( ref $town ) {
$self->town( $town->name );
}
}
return 1;
}
1;