use Sort::Naturally ();
require "bin/mozilla/arap.pl";
require "bin/mozilla/common.pl";
-require "bin/mozilla/invoice_io.pl";
require "bin/mozilla/io.pl";
require "bin/mozilla/reportgenerator.pl";
$form->all_vc(\%myconfig, $form->{vc}, ($form->{vc} eq 'customer') ? "AR" : "AP");
# retrieve order/quotation
- $form->{webdav} = $::instance_conf->get_webdav;
-
my $editing = $form->{id};
DO->retrieve('vc' => $form->{vc},
$main::lxdebug->leave_sub();
}
+sub display_form {
+ $::lxdebug->enter_sub;
+
+ $::auth->assert('purchase_delivery_order_edit | sales_delivery_order_edit');
+
+ relink_accounts();
+ retrieve_partunits();
+
+ my $new_rowcount = $::form->{"rowcount"} * 1 + 1;
+ $::form->{"project_id_${new_rowcount}"} = $::form->{"globalproject_id"};
+
+ $::form->language_payment(\%::myconfig);
+
+ Common::webdav_folder($::form);
+
+ form_header();
+ display_row(++$::form->{rowcount});
+ form_footer();
+
+ $::lxdebug->leave_sub;
+}
sub yes {
call_sub($main::form->{yes_nextsub});
# dieser array_ref ist für DO->save da:
# einmal die all_requests in YAML verwandeln, damit delivery_order_items_stock
# gefüllt werden kann.
+ # could be dumped to the form in the first loop,
+ # but maybe bin_id and warehouse_id has changed to the "korrekturlager" with
+ # allowed negative qty ($::instance_conf->get_warehouse_id_ignore_onhand) ...
my $i = 0;
foreach (@all_requests){
$i++;
save(no_redirect => 1); # Wir können auslagern, deshalb beleg speichern
# und in delivery_order_items_stock speichern
+
+ # ... and fill back the persistent dois_id for inventory fk
+ undef (@all_requests);
+ foreach my $i (1 .. $form->{rowcount}) {
+ next unless ($form->{"id_$i"} && $form->{"stock_${prefix}_$i"});
+ push @all_requests, @{ DO->unpack_stock_information('packed' => $form->{"stock_${prefix}_$i"}) };
+ }
DO->transfer_in_out('direction' => $prefix,
'requests' => \@all_requests);