X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FController%2FDeliveryOrder.pm;h=9789710bcb89394199338722d145a6fe8e18a669;hb=14672a1d69298562d8aac987ff2c4eaab3492088;hp=2ac03a87a07d1180035bf07dfb91702e9ebc9319;hpb=25af3ac65527a39559ee8947b6763070e2326cb5;p=kivitendo-erp.git diff --git a/SL/Controller/DeliveryOrder.pm b/SL/Controller/DeliveryOrder.pm index 2ac03a87a..9789710bc 100644 --- a/SL/Controller/DeliveryOrder.pm +++ b/SL/Controller/DeliveryOrder.pm @@ -46,7 +46,7 @@ use Sort::Naturally; use Rose::Object::MakeMethods::Generic ( scalar => [ qw(item_ids_to_delete is_custom_shipto_to_delete) ], - 'scalar --get_set_init' => [ qw(order valid_types type cv p all_price_factors search_cvpartnumber show_update_button part_picker_classification_ids) ], + 'scalar --get_set_init' => [ qw(order valid_types type cv p all_price_factors search_cvpartnumber show_update_button part_picker_classification_ids type_data) ], ); @@ -66,7 +66,7 @@ sub action_add { my ($self) = @_; $self->order->transdate(DateTime->now_local()); - $self->set_reqdate_by_type; + $self->type_data->set_reqdate_by_type; $self->pre_render(); @@ -205,7 +205,7 @@ sub action_save_as_new { : $order->transdate; # Set new reqdate unless changed if it is enabled in client config - $new_attrs{reqdate} = $self->get_reqdate_by_type($order->reqdate, $saved_order->reqdate); + $new_attrs{reqdate} = $self->type_data->get_reqdate_by_type($order->reqdate, $saved_order->reqdate); # Update employee $new_attrs{employee} = SL::DB::Manager::Employee->current; @@ -1025,7 +1025,7 @@ sub init_type { my ($self) = @_; if (none { $::form->{type} eq $_ } @{$self->valid_types}) { - die "Not a valid type for order"; + die "Not a valid type for delivery order"; } $self->type($::form->{type}); @@ -1069,7 +1069,7 @@ sub init_all_price_factors { sub init_part_picker_classification_ids { my ($self) = @_; - return [ map { $_->id } @{ SL::DB::Manager::PartClassification->get_all(where => $self->type_date->part_classification_query) } ]; + return [ map { $_->id } @{ SL::DB::Manager::PartClassification->get_all(where => $self->type_data->part_classification_query) } ]; } sub check_auth { @@ -1161,9 +1161,7 @@ sub make_order { # order here solves this problem. my $order; $order = SL::DB::DeliveryOrder->new(id => $::form->{id})->load(with => [ 'orderitems', 'orderitems.part' ]) if $::form->{id}; - $order ||= SL::DB::DeliveryOrder->new(orderitems => [], - quotation => $self->type_data->is_quotation, - currency_id => $::instance_conf->get_currency_id(),); + $order ||= SL::DB::DeliveryOrder->new(orderitems => [], currency_id => $::instance_conf->get_currency_id(), order_type => $self->type_data->validate($::form->{type})); my $cv_id_method = $self->cv . '_id'; if (!$::form->{id} && $::form->{$cv_id_method}) { @@ -1572,7 +1570,7 @@ sub pre_render { $item->active_discount_source($price_source->discount_from_source($item->active_discount_source)); } - if ($self->order->number && $::instance_conf->get_webdav) { + if ($self->order->${\ $self->type_data->nr_key } && $::instance_conf->get_webdav) { my $webdav = SL::Webdav->new( type => $self->type, number => $self->order->number, @@ -1584,9 +1582,11 @@ sub pre_render { } } @all_objects; } + $self->{template_args}{inout} = $self->type_data->properties('transfer'); + $self->get_item_cvpartnumber($_) for @{$self->order->items_sorted}; - $::request->{layout}->use_javascript("${_}.js") for qw(kivi.SalesPurchase kivi.Order kivi.File ckeditor/ckeditor ckeditor/adapters/jquery + $::request->{layout}->use_javascript("${_}.js") for qw(kivi.SalesPurchase kivi.DeliveryOrder kivi.File ckeditor/ckeditor ckeditor/adapters/jquery calculate_qty kivi.Validator follow_up show_history); $self->setup_edit_action_bar; } @@ -1601,13 +1601,13 @@ sub setup_edit_action_bar { combobox => [ action => [ t8('Save'), - call => [ 'kivi.Order.save', 'save', $::instance_conf->get_order_warn_duplicate_parts, + call => [ 'kivi.DeliveryOrder.save', 'save', $::instance_conf->get_order_warn_duplicate_parts, $::instance_conf->get_order_warn_no_deliverydate, ], ], action => [ t8('Save as new'), - call => [ 'kivi.Order.save', 'save_as_new', $::instance_conf->get_order_warn_duplicate_parts ], + call => [ 'kivi.DeliveryOrder.save', 'save_as_new', $::instance_conf->get_order_warn_duplicate_parts ], disabled => !$self->order->id ? t8('This object has not been saved yet.') : undef, ], ], # end of combobox "Save" @@ -1633,23 +1633,24 @@ sub setup_edit_action_bar { ], action => [ t8('Save and Purchase Order'), - call => [ 'kivi.Order.purchase_order_check_for_direct_delivery' ], + call => [ 'kivi.DeliveryOrder.purchase_order_check_for_direct_delivery' ], only_if => $self->type_data->show_menu("save_and_purchase_order"), ], action => [ t8('Save and Delivery Order'), - call => [ 'kivi.Order.save', 'save_and_delivery_order', $::instance_conf->get_order_warn_duplicate_parts, + call => [ 'kivi.DeliveryOrder.save', 'save_and_delivery_order', $::instance_conf->get_order_warn_duplicate_parts, $::instance_conf->get_order_warn_no_deliverydate, ], only_if => $self->type_data->show_menu("save_and_delivery_order"), ], action => [ t8('Save and Invoice'), - call => [ 'kivi.Order.save', 'save_and_invoice', $::instance_conf->get_order_warn_duplicate_parts ], + call => [ 'kivi.DeliveryOrder.save', 'save_and_invoice', $::instance_conf->get_order_warn_duplicate_parts ], + only_if => $self->type_data->show_menu("save_and_invoice"), ], action => [ t8('Save and AP Transaction'), - call => [ 'kivi.Order.save', 'save_and_ap_transaction', $::instance_conf->get_order_warn_duplicate_parts ], + call => [ 'kivi.DeliveryOrder.save', 'save_and_ap_transaction', $::instance_conf->get_order_warn_duplicate_parts ], only_if => $self->type_data->show_menu("save_and_ap_transaction"), ], @@ -1661,20 +1662,20 @@ sub setup_edit_action_bar { ], action => [ t8('Save and preview PDF'), - call => [ 'kivi.Order.save', 'preview_pdf', $::instance_conf->get_order_warn_duplicate_parts, + call => [ 'kivi.DeliveryOrder.save', 'preview_pdf', $::instance_conf->get_order_warn_duplicate_parts, $::instance_conf->get_order_warn_no_deliverydate, ], ], action => [ t8('Save and print'), - call => [ 'kivi.Order.show_print_options', $::instance_conf->get_order_warn_duplicate_parts, + call => [ 'kivi.DeliveryOrder.show_print_options', $::instance_conf->get_order_warn_duplicate_parts, $::instance_conf->get_order_warn_no_deliverydate, ], ], action => [ t8('Save and E-mail'), id => 'save_and_email_action', - call => [ 'kivi.Order.save', 'save_and_show_email_dialog', $::instance_conf->get_order_warn_duplicate_parts, + call => [ 'kivi.DeliveryOrder.save', 'save_and_show_email_dialog', $::instance_conf->get_order_warn_duplicate_parts, $::instance_conf->get_order_warn_no_deliverydate, ], disabled => !$self->order->id ? t8('This object has not been saved yet.') : undef, @@ -1689,7 +1690,7 @@ sub setup_edit_action_bar { action => [ t8('Delete'), - call => [ 'kivi.Order.delete_order' ], + call => [ 'kivi.DeliveryOrder.delete_order' ], confirm => $::locale->text('Do you really want to delete this object?'), disabled => !$self->order->id ? t8('This object has not been saved yet.') : undef, only_if => $self->type_data->show_menu("delete"), @@ -1701,7 +1702,7 @@ sub setup_edit_action_bar { ], action => [ t8('Follow-Up'), - call => [ 'kivi.Order.follow_up_window' ], + call => [ 'kivi.DeliveryOrder.follow_up_window' ], disabled => !$self->order->id ? t8('This object has not been saved yet.') : undef, only_if => $::auth->assert('productivity', 1), ], @@ -2034,7 +2035,7 @@ Displaying tax information =back -=item * C +=item * C java script functions