X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;ds=sidebyside;f=bin%2Fmozilla%2Fis.pl;h=a83e4bcc7e55682fa3208cd9a2cd7af001ce4995;hb=bc5c9dac50b13fd17e7ec567179c4dfb6acf3a02;hp=ecc5f5577ca7836a8398c98c2b71c1421fc65f9d;hpb=2a61343ffdeee475d57c355d00955ff8f1937aef;p=kivitendo-erp.git diff --git a/bin/mozilla/is.pl b/bin/mozilla/is.pl index ecc5f5577..a83e4bcc7 100644 --- a/bin/mozilla/is.pl +++ b/bin/mozilla/is.pl @@ -36,6 +36,7 @@ use SL::IS; use SL::PE; use SL::OE; use Data::Dumper; +use DateTime; use List::Util qw(max sum); use SL::DB::Default; @@ -149,7 +150,9 @@ sub invoice_links { my $editing = $form->{id}; - $form->backup_vars(qw(payment_id language_id taxzone_id salesman_id taxincluded currency cp_id intnotes id shipto_id)); + $form->backup_vars(qw(payment_id language_id taxzone_id salesman_id + taxincluded currency cp_id intnotes id shipto_id + delivery_term_id)); IS->get_customer(\%myconfig, \%$form); @@ -161,7 +164,8 @@ sub invoice_links { $form->restore_vars(qw(id)); IS->retrieve_invoice(\%myconfig, \%$form); - $form->restore_vars(qw(payment_id language_id taxzone_id currency intnotes cp_id shipto_id)); + $form->restore_vars(qw(payment_id language_id taxzone_id currency intnotes + cp_id shipto_id delivery_term_id)); $form->restore_vars(qw(taxincluded)) if $form->{id}; $form->restore_vars(qw(salesman_id)) if $editing; @@ -374,6 +378,7 @@ sub form_header { shiptoname shiptostreet shiptozipcode shiptocity shiptocountry shiptocontact shiptophone shiptofax shiptoemail shiptodepartment_1 shiptodepartment_2 shiptocp_gender message email subject cc bcc taxaccounts cursor_fokus convert_from_do_ids convert_from_oe_ids + show_details ), @custom_hiddens, map { $_.'_rate', $_.'_description', $_.'_taxnumber' } split / /, $form->{taxaccounts}]; @@ -460,6 +465,8 @@ sub form_footer { $form->{oldinvtotal} = $form->{invtotal}; + $form->{ALL_DELIVERY_TERMS} = SL::DB::Manager::DeliveryTerm->get_all_sorted(); + print $form->parse_html_template('is/form_footer', { is_type_credit_note => ($form->{type} eq "credit_note"), totalpaid => $totalpaid, @@ -811,6 +818,7 @@ sub use_as_new { $form->{rowcount}--; $form->{invdate} = $form->current_date(\%myconfig); $form->{duedate} = $form->get_duedate(\%myconfig, $form->{invdate}) || $form->{invdate}; + $form->{employee_id} = SL::DB::Manager::Employee->current->id; # remember pricegroups for "use as new" IS->get_pricegroups_for_parts(\%myconfig, \%$form); @@ -837,6 +845,9 @@ sub storno { if (IS->has_storno(\%myconfig, $form, "ar")) { $form->error($locale->text("Invoice has already been storno'd!")); } + if ($form->datetonum($form->{invdate}, \%myconfig) <= $form->datetonum($form->{closedto}, \%myconfig)) { + $form->error($locale->text('Cannot storno invoice for a closed period!')); + } map({ my $key = $_; delete($form->{$key}) unless (grep({ $key eq $_ } qw(id login password type))); } keys(%{ $form })); @@ -852,6 +863,7 @@ sub storno { $form->{storno} = 1; $form->{id} = ""; $form->{invnumber} = "Storno zu " . $form->{invnumber}; + $form->{invdate} = DateTime->today->to_lxoffice; $form->{rowcount}++; post(); @@ -1011,6 +1023,10 @@ sub yes { $main::lxdebug->leave_sub(); } +sub post_and_e_mail { + e_mail(); +}; + sub e_mail { $main::lxdebug->enter_sub();