X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/7a98647b06d8fe8eb71a40d20e25d84d9faa3ed9..a64b214d855ee7c1077323dbc8d2e19a89703085:/bin/mozilla/is.pl diff --git a/bin/mozilla/is.pl b/bin/mozilla/is.pl index c2fc22b34..7700fc271 100644 --- a/bin/mozilla/is.pl +++ b/bin/mozilla/is.pl @@ -39,6 +39,7 @@ use Data::Dumper; use DateTime; use List::MoreUtils qw(uniq); use List::Util qw(max sum); +use List::UtilsBy qw(sort_by); use English qw(-no_match_vars); use SL::DB::Default; @@ -99,7 +100,6 @@ sub edit { # show history button $form->{javascript} = qq||; - #/show hhistory button my ($language_id, $printer_id); if ($form->{print_and_post}) { @@ -173,7 +173,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"}|; @@ -292,6 +292,7 @@ sub form_header { my %TMPL_VAR = (); my @custom_hiddens; + $TMPL_VAR{invoice_obj} = SL::DB::Invoice->new(id => $form->{id})->load if $form->{id}; $form->{employee_id} = $form->{old_employee_id} if $form->{old_employee_id}; $form->{salesman_id} = $form->{old_salesman_id} if $form->{old_salesman_id}; @@ -321,6 +322,7 @@ sub form_header { ]); $TMPL_VAR{ALL_PROJECTS} = SL::DB::Manager::Project->get_all_sorted(query => \@conditions); + $form->{ALL_PROJECTS} = $TMPL_VAR{ALL_PROJECTS}; # make projects available for second row drop-down in io.pl $TMPL_VAR{ALL_EMPLOYEES} = SL::DB::Manager::Employee->get_all_sorted(query => [ or => [ id => $::form->{employee_id}, deleted => 0 ] ]); $TMPL_VAR{ALL_SALESMEN} = SL::DB::Manager::Employee->get_all_sorted(query => [ or => [ id => $::form->{salesman_id}, deleted => 0 ] ]); $TMPL_VAR{ALL_SHIPTO} = SL::DB::Manager::Shipto->get_all_sorted(query => [ @@ -379,7 +381,7 @@ sub form_header { $TMPL_VAR{HIDDENS} = [qw( id action type media format queued printed emailed title vc discount title creditlimit creditremaining tradediscount business closedto locked shipped storno storno_id - max_dunning_level dunning_amount + max_dunning_level dunning_amount dunning_description 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 convert_from_ar_ids useasnew @@ -400,6 +402,25 @@ sub form_header { $main::lxdebug->leave_sub(); } +sub _sort_payments { + my @fields = qw(acc_trans_id gldate datepaid source memo paid AR_paid); + my @payments = + grep { $_->{paid} != 0 } + map { + my $idx = $_; + +{ map { ($_ => delete($::form->{"${_}_${idx}"})) } @fields } + } (1..$::form->{paidaccounts}); + + @payments = sort_by { DateTime->from_kivitendo($_->{datepaid}) } @payments; + + $::form->{paidaccounts} = max scalar(@payments), 1; + + foreach my $idx (1 .. scalar(@payments)) { + my $payment = $payments[$idx - 1]; + $::form->{"${_}_${idx}"} = $payment->{$_} for @fields; + } +} + sub form_footer { $main::lxdebug->enter_sub(); @@ -446,6 +467,8 @@ sub form_footer { } # payments + _sort_payments(); + my $totalpaid = 0; $form->{paidaccounts}++ if ($form->{"paid_$form->{paidaccounts}"}); $form->{paid_indices} = [ 1 .. $form->{paidaccounts} ]; @@ -487,6 +510,7 @@ sub form_footer { show_delete => ($::instance_conf->get_is_changeable == 2) ? ($form->current_date(\%myconfig) eq $form->{gldate}) : ($::instance_conf->get_is_changeable == 1), + today => DateTime->today, }); ##print $form->parse_html_template('is/_payments'); # parser ##print $form->parse_html_template('webdav/_list'); # parser @@ -691,7 +715,7 @@ sub post_payment { relink_accounts(); if ( IS->post_payment(\%myconfig, \%$form) ) { $form->{snumbers} = qq|invnumber_| . $form->{invnumber}; - $form->{what_done} = $form->{type}; + $form->{what_done} = 'invoice'; $form->{addition} = "PAYMENT POSTED"; $form->save_history; $form->redirect($locale->text('Payment posted!')) @@ -829,10 +853,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; } @@ -840,7 +865,7 @@ sub post { $form->{action} = 'edit'; $form->{script} = 'is.pl'; $form->{saved_message} = $form->{label} . " $form->{invnumber} " . $locale->text('posted!'); - $form->{callback} = build_std_url(qw(action edit id saved_message)); + $form->{callback} = build_std_url(qw(action edit id callback saved_message)); $form->redirect; } @@ -911,8 +936,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 })); @@ -1076,8 +1102,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