X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/a87694dc525b4eabff11029f1e5401621e2bd3bc..5f0565fca3529ac662c5025243bc7bedf8c54328:/bin/mozilla/is.pl diff --git a/bin/mozilla/is.pl b/bin/mozilla/is.pl index a4f9e85b9..286e9ab5e 100644 --- a/bin/mozilla/is.pl +++ b/bin/mozilla/is.pl @@ -43,6 +43,7 @@ use English qw(-no_match_vars); use SL::DB::Default; use SL::DB::Customer; +use SL::DB::PaymentTerm; require "bin/mozilla/io.pl"; require "bin/mozilla/invoice_io.pl"; @@ -98,7 +99,6 @@ sub edit { # show history button $form->{javascript} = qq||; - #/show hhistory button my ($language_id, $printer_id); if ($form->{print_and_post}) { @@ -172,7 +172,7 @@ sub invoice_links { $form->restore_vars(qw(salesman_id)) if $editing; - # build vendor/customer drop down comatibility... don't ask + # build vendor/customer drop down compatibility... don't ask if (@{ $form->{"all_customer"} }) { $form->{"selectcustomer"} = 1; $form->{customer} = qq|$form->{customer}--$form->{"customer_id"}|; @@ -387,7 +387,10 @@ sub form_header { ), @custom_hiddens, map { $_.'_rate', $_.'_description', $_.'_taxnumber' } split / /, $form->{taxaccounts}]; - $::request->{layout}->use_javascript(map { "${_}.js" } qw(kivi.SalesPurchase ckeditor/ckeditor ckeditor/adapters/jquery kivi.io autocomplete_customer autocomplete_part)); + $::request->{layout}->use_javascript(map { "${_}.js" } qw(kivi.SalesPurchase ckeditor/ckeditor ckeditor/adapters/jquery kivi.io autocomplete_customer autocomplete_part client_js)); + + $TMPL_VAR{payment_terms_obj} = get_payment_terms_for_invoice(); + $form->{duedate} = $TMPL_VAR{payment_terms_obj}->calc_date(reference_date => $form->{invdate}, due_date => $form->{due_due})->to_kivitendo if $TMPL_VAR{payment_terms_obj}; $form->header(); @@ -685,10 +688,15 @@ sub post_payment { ($form->{AR}) = split /--/, $form->{AR}; ($form->{AR_paid}) = split /--/, $form->{AR_paid}; relink_accounts(); - $form->redirect($locale->text('Payment posted!')) - if (IS->post_payment(\%myconfig, \%$form)); - $form->error($locale->text('Cannot post payment!')); - + if ( IS->post_payment(\%myconfig, \%$form) ) { + $form->{snumbers} = qq|invnumber_| . $form->{invnumber}; + $form->{what_done} = 'invoice'; + $form->{addition} = "PAYMENT POSTED"; + $form->save_history; + $form->redirect($locale->text('Payment posted!')) + } else { + $form->error($locale->text('Cannot post payment!')); + }; $main::lxdebug->leave_sub(); } @@ -778,6 +786,9 @@ sub post { relink_accounts(); + my $terms = get_payment_terms_for_invoice(); + $form->{duedate} = $terms->calc_date(reference_date => $form->{invdate}, due_date => $form->{due_due})->to_kivitendo if $terms; + # If transfer_out is requested, get rose db handle and do post and # transfer out in one transaction. Otherwise just post the invoice. if ($::instance_conf->get_is_transfer_out && $form->{type} ne 'credit_note' && !$form->{storno}) { @@ -817,10 +828,11 @@ sub post { remove_draft() if $form->{remove_draft}; if(!exists $form->{addition}) { - $form->{snumbers} = 'invnumber' .'_'. $form->{invnumber}; # ($form->{type} eq 'credit_note' ? 'cnnumber' : 'invnumber') .'_'. $form->{invnumber}; - $form->{addition} = $form->{print_and_post} ? "PRINTED AND POSTED" : - $form->{storno} ? "STORNO" : - "POSTED"; + $form->{snumbers} = 'invnumber' .'_'. $form->{invnumber}; # ($form->{type} eq 'credit_note' ? 'cnnumber' : 'invnumber') .'_'. $form->{invnumber}; + $form->{what_done} = 'invoice'; + $form->{addition} = $form->{print_and_post} ? "PRINTED AND POSTED" : + $form->{storno} ? "STORNO" : + "POSTED"; $form->save_history; } @@ -842,7 +854,7 @@ sub print_and_post { $main::auth->assert('invoice_edit'); - my $old_form = new Form; + my $old_form = Form->new; $form->{no_redirect_after_post} = 1; $form->{print_and_post} = 1; &post(); @@ -864,7 +876,8 @@ sub use_as_new { $form->{rowcount}--; $form->{paidaccounts} = 1; $form->{invdate} = $form->current_date(\%myconfig); - $form->{duedate} = $form->get_duedate(\%myconfig, $form->{invdate}) || $form->{invdate}; + my $terms = get_payment_terms_for_invoice(); + $form->{duedate} = $terms ? $terms->calc_date(reference_date => $form->{invdate})->to_kivitendo : $form->{invdate}; $form->{employee_id} = SL::DB::Manager::Employee->current->id; $form->{forex} = $form->check_exchangerate(\%myconfig, $form->{currency}, $form->{invdate}, 'buy'); $form->{exchangerate} = $form->{forex} if $form->{forex}; @@ -898,8 +911,9 @@ sub storno { } # save the history of invoice being stornoed - $form->{snumbers} = qq|invnumber_| . $form->{invnumber}; - $form->{addition} = "STORNO"; + $form->{snumbers} = qq|invnumber_| . $form->{invnumber}; + $form->{what_done} = 'invoice'; + $form->{addition} = "STORNO"; $form->save_history; map({ my $key = $_; delete($form->{$key}) unless (grep({ $key eq $_ } qw(id login password type))); } keys(%{ $form })); @@ -933,7 +947,7 @@ sub preview { $main::auth->assert('invoice_edit'); $form->{preview} = 1; - my $old_form = new Form; + my $old_form = Form->new; for (keys %$form) { $old_form->{$_} = $form->{$_} } &print_form($old_form); @@ -1019,11 +1033,6 @@ sub credit_note { # map { $form->{$_} = $form->parse_amount(\%myconfig, $form->{$_}) } # qw(creditlimit creditremaining); - for my $i (1 .. $form->{rowcount}) { - for (qw(listprice)) { - $form->{"${_}_${i}"} = $form->parse_amount(\%myconfig, $form->{"${_}_${i}"}) if $form->{"${_}_${i}"}; - } - } # set new persistent ids for credit note and link previous invoice id $form->{"converted_from_invoice_id_$_"} = delete $form->{"invoice_id_$_"} for 1 .. $form->{"rowcount"}; @@ -1068,8 +1077,9 @@ sub yes { if (IS->delete_invoice(\%myconfig, \%$form)) { # saving the history if(!exists $form->{addition}) { - $form->{snumbers} = 'invnumber' .'_'. $form->{invnumber}; # ($form->{type} eq 'credit_note' ? 'cnnumber' : 'invnumber') .'_'. $form->{invnumber}; - $form->{addition} = "DELETED"; + $form->{snumbers} = 'invnumber' .'_'. $form->{invnumber}; # ($form->{type} eq 'credit_note' ? 'cnnumber' : 'invnumber') .'_'. $form->{invnumber}; + $form->{what_done} = 'invoice'; + $form->{addition} = "DELETED"; $form->save_history; } # /saving the history