X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/fc762fdc0aa43e80fa0ccb22f123983961c1c03a..fbf7532:/bin/mozilla/do.pl diff --git a/bin/mozilla/do.pl b/bin/mozilla/do.pl index ede2116e6..ac71eca9a 100644 --- a/bin/mozilla/do.pl +++ b/bin/mozilla/do.pl @@ -30,6 +30,7 @@ # Delivery orders #====================================================================== +use Carp; use List::MoreUtils qw(uniq); use List::Util qw(max sum); use POSIX qw(strftime); @@ -708,6 +709,8 @@ sub save { my %myconfig = %main::myconfig; my $locale = $main::locale; + $form->mtime_ischanged('delivery_orders'); + $form->{defaultcurrency} = $form->get_default_currency(\%myconfig); $form->isblank("transdate", $locale->text('Delivery Order Date missing!')); @@ -785,6 +788,8 @@ sub invoice { my $locale = $main::locale; check_do_access(); + $form->mtime_ischanged('delivery_orders'); + $main::auth->assert($form->{type} eq 'purchase_delivery_order' ? 'vendor_invoice_edit' : 'invoice_edit'); $form->{convert_from_do_ids} = $form->{id}; @@ -837,6 +842,15 @@ sub invoice { my $currency = $form->{currency}; invoice_links(); + if ($form->{ordnumber}) { + require SL::DB::Order; + if (my $order = SL::DB::Manager::Order->find_by(ordnumber => $form->{ordnumber})) { + $order->load; + $form->{orddate} = $order->transdate_as_date; + $form->{$_} = $order->$_ for qw(payment_id salesman_id taxzone_id quonumber); + } + } + $form->{currency} = $currency; $form->{exchangerate} = ""; $form->{forex} = $form->check_exchangerate(\%myconfig, $form->{currency}, $form->{invdate}, $buysell); @@ -1010,9 +1024,9 @@ sub e_mail { check_do_access(); - my $form = $main::form; + $::form->mtime_ischanged('delivery_orders','mail'); - $form->{print_and_save} = 1; + $::form->{print_and_save} = 1; my $saved_form = save_form();