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) ],
);
my ($self) = @_;
$self->order->transdate(DateTime->now_local());
- $self->set_reqdate_by_type;
+ $self->type_data->set_reqdate_by_type;
$self->pre_render();
: $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;
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});
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 {
# 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}) {
$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,
} } @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;
}
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"
],
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"),
],
],
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,
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"),
],
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),
],
=back
-=item * C<js/kivi.Order.js>
+=item * C<js/kivi.DeliveryOrder.js>
java script functions