check_do_access();
$auth->assert($form->{type} eq 'purchase_delivery_order' ? 'vendor_invoice_edit' : 'invoice_edit');
- $form->{deliverydate} = $form->{transdate};
- $form->{transdate} = $form->{invdate} = $form->current_date(\%myconfig);
- $form->{duedate} = $form->current_date(\%myconfig, $form->{invdate}, $form->{terms} * 1);
+ $form->{convert_from_do_ids} = $form->{id};
+ $form->{deliverydate} = $form->{transdate};
+ $form->{transdate} = $form->{invdate} = $form->current_date(\%myconfig);
+ $form->{duedate} = $form->current_date(\%myconfig, $form->{invdate}, $form->{terms} * 1);
+ $form->{defaultcurrency} = $form->get_default_currency(\%myconfig);
- $form->{id} = '';
- $form->{closed} = 0;
$form->{rowcount}--;
- $form->{defaultcurrency} = $form->get_default_currency(\%myconfig);
+ delete @{$form}{qw(id closed delivered)};
if ($form->{type} eq 'purchase_delivery_order') {
$form->{title} = $locale->text('Add Vendor Invoice');
'back_button' => 1);
}
- $form->{deliverydate} = $form->{transdate};
- $form->{transdate} = $form->current_date(\%myconfig);
- $form->{duedate} = $form->current_date(\%myconfig, $form->{invdate}, $form->{terms} * 1);
- $form->{type} = "invoice";
- $form->{closed} = 0;
- $form->{defaultcurrency} = $form->get_default_currency(\%myconfig);
+ $form->{convert_from_do_ids} = join ' ', @do_ids;
+ $form->{deliverydate} = $form->{transdate};
+ $form->{transdate} = $form->current_date(\%myconfig);
+ $form->{duedate} = $form->current_date(\%myconfig, $form->{invdate}, $form->{terms} * 1);
+ $form->{type} = "invoice";
+ $form->{closed} = 0;
+ $form->{defaultcurrency} = $form->get_default_currency(\%myconfig);
my $buysell;
if ($form->{type} eq 'purchase_delivery_order') {
sub transfer_in {
$lxdebug->enter_sub();
+ if (DO->is_marked_as_delivered('id' => $form->{id})) {
+ $form->show_generic_error($locale->text('The parts for this delivery order have already been transferred in.'), 'back_button' => 1);
+ }
+
my @part_ids = map { $form->{"id_${_}"} } grep { $form->{"id_${_}"} && $form->{"stock_in_${_}"} } (1 .. $form->{rowcount});
my @all_requests;
sub transfer_out {
$lxdebug->enter_sub();
+ if (DO->is_marked_as_delivered('id' => $form->{id})) {
+ $form->show_generic_error($locale->text('The parts for this delivery order have already been transferred out.'), 'back_button' => 1);
+ }
+
my @part_ids = map { $form->{"id_${_}"} } grep { $form->{"id_${_}"} && $form->{"stock_out_${_}"} } (1 .. $form->{rowcount});
my @all_requests;
$lxdebug->leave_sub();
}
+sub mark_closed {
+ $lxdebug->enter_sub();
+
+ DO->close_orders('ids' => [ $form->{id} ]);
+
+ $form->{closed} = 1;
+
+ update();
+
+ $lxdebug->leave_sub();
+}
+
+
sub yes {
call_sub($form->{yes_nextsub});
}