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;