Revision 1881b66a
Von Tamino Steinert vor etwa 1 Jahr hinzugefügt
SL/Controller/DeliveryOrder.pm | ||
---|---|---|
150 | 150 |
); |
151 | 151 |
} |
152 | 152 |
|
153 |
# edit a collective order (consisting of one or more existing orders) |
|
154 |
sub action_edit_collective { |
|
155 |
my ($self) = @_; |
|
156 |
|
|
157 |
# collect order ids |
|
158 |
my @multi_ids = map { |
|
159 |
$_ =~ m{^multi_id_(\d+)$} && $::form->{'multi_id_' . $1} && $::form->{'trans_id_' . $1} && $::form->{'trans_id_' . $1} |
|
160 |
} grep { $_ =~ m{^multi_id_\d+$} } keys %$::form; |
|
161 |
|
|
162 |
# fall back to add if no ids are given |
|
163 |
if (scalar @multi_ids == 0) { |
|
164 |
$self->action_add(); |
|
165 |
return; |
|
166 |
} |
|
167 |
|
|
168 |
# fall back to save as new if only one id is given |
|
169 |
if (scalar @multi_ids == 1) { |
|
170 |
$self->order(SL::DB::DeliveryOrder->new(id => $multi_ids[0])->load); |
|
171 |
$self->action_save_as_new(); |
|
172 |
return; |
|
173 |
} |
|
174 |
|
|
175 |
# make new order from given orders |
|
176 |
my @multi_orders = map { SL::DB::DeliveryOrder->new(id => $_)->load } @multi_ids; |
|
177 |
$self->{converted_from_oe_id} = join ' ', map { $_->id } @multi_orders; |
|
178 |
my $target_type = SALES_DELIVERY_ORDER_TYPE(); |
|
179 |
my $delivery_order = SL::Model::Record->new_from_workflow_multi(\@multi_orders, $target_type, sort_sources_by => 'transdate'); |
|
180 |
$self->order($delivery_order); |
|
181 |
|
|
182 |
$self->action_edit(); |
|
183 |
} |
|
184 |
|
|
185 | 153 |
# delete the order |
186 | 154 |
sub action_delete { |
187 | 155 |
my ($self) = @_; |
... | ... | |
231 | 199 |
my $new_order = SL::Model::Record->clone_for_save_as_new($saved_order, $order); |
232 | 200 |
$self->order($new_order); |
233 | 201 |
|
234 |
# no linked records on save as new |
|
235 |
delete $::form->{$_} for qw(converted_from_oe_id converted_from_orderitems_ids); |
|
236 |
|
|
237 | 202 |
if (!$::form->{form_validity_token}) { |
238 | 203 |
$::form->{form_validity_token} = SL::DB::ValidityToken->create(scope => SL::DB::ValidityToken::SCOPE_DELIVERY_ORDER_SAVE())->token; |
239 | 204 |
} |
... | ... | |
515 | 480 |
); |
516 | 481 |
} |
517 | 482 |
|
518 |
# save the order and redirect to the frontend subroutine for a new |
|
519 |
# delivery order |
|
520 |
sub action_save_and_delivery_order { |
|
521 |
my ($self) = @_; |
|
522 |
|
|
523 |
$self->save_and_redirect_to( |
|
524 |
controller => 'oe.pl', |
|
525 |
action => 'oe_delivery_order_from_order', |
|
526 |
); |
|
527 |
} |
|
528 |
|
|
529 | 483 |
# save the order and redirect to the frontend subroutine for a new |
530 | 484 |
# invoice |
531 | 485 |
sub action_save_and_invoice { |
... | ... | |
537 | 491 |
); |
538 | 492 |
} |
539 | 493 |
|
540 |
# workflow from sales order to sales quotation |
|
541 |
sub action_sales_quotation { |
|
542 |
$_[0]->workflow_sales_or_request_for_quotation(SALES_QUOTATION_TYPE()); |
|
543 |
} |
|
544 |
|
|
545 |
# workflow from sales order to sales quotation |
|
546 |
sub action_request_for_quotation { |
|
547 |
$_[0]->workflow_sales_or_request_for_quotation(REQUEST_QUOTATION_TYPE()); |
|
548 |
} |
|
549 |
|
|
550 |
# workflow from sales quotation to sales order |
|
551 |
sub action_sales_order { |
|
552 |
$_[0]->workflow_sales_or_purchase_order(SALES_ORDER_TYPE()); |
|
553 |
} |
|
554 |
|
|
555 |
# workflow from rfq to purchase order |
|
556 |
sub action_purchase_order { |
|
557 |
$_[0]->workflow_sales_or_purchase_order(PURCHASE_ORDER_TYPE()); |
|
558 |
} |
|
559 |
|
|
560 | 494 |
# workflow from purchase order to ap transaction |
561 | 495 |
sub action_save_and_ap_transaction { |
562 | 496 |
my ($self) = @_; |
... | ... | |
838 | 772 |
->render; |
839 | 773 |
} |
840 | 774 |
|
841 |
# show the popup to choose a price/discount source |
|
842 |
sub action_price_popup { |
|
843 |
my ($self) = @_; |
|
844 |
|
|
845 |
my $idx = first_index { $_ eq $::form->{item_id} } @{ $::form->{orderitem_ids} }; |
|
846 |
my $item = $self->order->items_sorted->[$idx]; |
|
847 |
|
|
848 |
$self->render_price_dialog($item); |
|
849 |
} |
|
850 |
|
|
851 | 775 |
# save the order in a session variable and redirect to the part controller |
852 | 776 |
sub action_create_part { |
853 | 777 |
my ($self) = @_; |
... | ... | |
1271 | 1195 |
$_[0]->make_order; |
1272 | 1196 |
} |
1273 | 1197 |
|
1274 |
sub init_all_price_factors { |
|
1275 |
SL::DB::Manager::PriceFactor->get_all; |
|
1276 |
} |
|
1277 |
|
|
1278 | 1198 |
sub init_part_picker_classification_ids { |
1279 | 1199 |
my ($self) = @_; |
1280 | 1200 |
|
... | ... | |
1791 | 1711 |
action => [ |
1792 | 1712 |
t8('Workflow'), |
1793 | 1713 |
], |
1794 |
action => [ |
|
1795 |
t8('Save and Quotation'), |
|
1796 |
submit => [ '#order_form', { action => "DeliveryOrder/sales_quotation" } ], |
|
1797 |
only_if => $self->type_data->show_menu("save_and_quotation"), |
|
1798 |
disabled => !$may_edit_create ? t8('You do not have the permissions to access this function.') : undef, |
|
1799 |
], |
|
1800 |
action => [ |
|
1801 |
t8('Save and RFQ'), |
|
1802 |
submit => [ '#order_form', { action => "DeliveryOrder/request_for_quotation" } ], |
|
1803 |
only_if => $self->type_data->show_menu("save_and_rfq"), |
|
1804 |
disabled => !$may_edit_create ? t8('You do not have the permissions to access this function.') : undef, |
|
1805 |
], |
|
1806 |
action => [ |
|
1807 |
t8('Save and Sales Order'), |
|
1808 |
submit => [ '#order_form', { action => "DeliveryOrder/sales_order" } ], |
|
1809 |
only_if => $self->type_data->show_menu("save_and_sales_order"), |
|
1810 |
disabled => !$may_edit_create ? t8('You do not have the permissions to access this function.') : undef, |
|
1811 |
], |
|
1812 |
action => [ |
|
1813 |
t8('Save and Purchase Order'), |
|
1814 |
call => [ 'kivi.DeliveryOrder.purchase_order_check_for_direct_delivery' ], |
|
1815 |
only_if => $self->type_data->show_menu("save_and_purchase_order"), |
|
1816 |
disabled => !$may_edit_create ? t8('You do not have the permissions to access this function.') : undef, |
|
1817 |
], |
|
1818 |
action => [ |
|
1819 |
t8('Save and Delivery Order'), |
|
1820 |
call => [ 'kivi.DeliveryOrder.save', { |
|
1821 |
action => 'save_and_delivery_order', |
|
1822 |
warn_on_duplicates => $::instance_conf->get_order_warn_duplicate_parts, |
|
1823 |
warn_on_reqdate => $::instance_conf->get_order_warn_no_deliverydate, |
|
1824 |
}], |
|
1825 |
only_if => $self->type_data->show_menu("save_and_delivery_order"), |
|
1826 |
disabled => !$may_edit_create ? t8('You do not have the permissions to access this function.') : undef, |
|
1827 |
], |
|
1828 | 1714 |
action => [ |
1829 | 1715 |
t8('Save and Invoice'), |
1830 | 1716 |
call => [ 'kivi.DeliveryOrder.save', { |
Auch abrufbar als: Unified diff
DeliveryOrder: nicht genutzter Code entfernt