X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=bin%2Fmozilla%2Fir.pl;h=4209fdf6addc989e1d9f43bc19fe2abc70df7e07;hb=be776964b83340e69fa2f02eae59b703c0c95b88;hp=01adc735e621c96da8335840596d3e9e37326177;hpb=67b0f6a665e91d497b3a936a3cdc4e20308d723c;p=kivitendo-erp.git diff --git a/bin/mozilla/ir.pl b/bin/mozilla/ir.pl index 01adc735e..4209fdf6a 100644 --- a/bin/mozilla/ir.pl +++ b/bin/mozilla/ir.pl @@ -35,6 +35,7 @@ use SL::FU; use SL::IR; use SL::IS; use SL::PE; +use SL::DB::Default; use List::Util qw(max sum); require "bin/mozilla/io.pl"; @@ -59,7 +60,7 @@ sub add { return $main::lxdebug->leave_sub() if (load_draft_maybe()); - $form->{title} = $locale->text('Add Vendor Invoice'); + $form->{title} = $locale->text('Record Vendor Invoice'); &invoice_links; &prepare_invoice; @@ -100,7 +101,7 @@ sub invoice_links { $form->{vc} = 'vendor'; # create links - $form->{webdav} = $main::webdav; + $form->{webdav} = $::lx_office_conf{features}->{webdav}; $form->{jsscript} = 1; $form->create_links("AP", \%myconfig, "vendor"); @@ -116,7 +117,7 @@ sub invoice_links { } } - my ($payment_id, $language_id, $taxzone_id); + my ($payment_id, $language_id, $taxzone_id, $currency); if ($form->{payment_id}) { $payment_id = $form->{payment_id}; } @@ -126,6 +127,9 @@ sub invoice_links { if ($form->{taxzone_id}) { $taxzone_id = $form->{taxzone_id}; } + if ($form->{currency}) { + $currency = $form->{currency}; + } my $cp_id = $form->{cp_id}; IR->get_vendor(\%myconfig, \%$form); @@ -141,8 +145,11 @@ sub invoice_links { if ($taxzone_id) { $form->{taxzone_id} = $taxzone_id; } + if ($currency) { + $form->{currency} = $currency; + } - my @curr = split(/:/, $form->{currencies}); #seems to be missing + my @curr = $form->get_all_currencies(); map { $form->{selectcurrency} .= ""; } next unless $form->{acc_trans}{$key}; @@ -181,10 +188,12 @@ sub invoice_links { $form->{"AP_paid_$i"} = "$form->{acc_trans}{$key}->[$i-1]->{accno}--$form->{acc_trans}{$key}->[$i-1]->{description}"; + $form->{"acc_trans_id_$i"} = $form->{acc_trans}{$key}->[$i - 1]->{acc_trans_id}; # reverse paid $form->{"paid_$i"} = $form->{acc_trans}{$key}->[$i - 1]->{amount}; $form->{"datepaid_$i"} = $form->{acc_trans}{$key}->[$i - 1]->{transdate}; + $form->{"gldate_$i"} = $form->{acc_trans}{$key}->[$i - 1]->{gldate}; $form->{"forex_$i"} = $form->{"exchangerate_$i"} = $form->{acc_trans}{$key}->[$i - 1]->{exchangerate}; $form->{"source_$i"} = $form->{acc_trans}{$key}->[$i - 1]->{source}; @@ -226,6 +235,12 @@ sub prepare_invoice { foreach my $ref (@{ $form->{invoice_details} }) { $i++; map { $form->{"${_}_$i"} = $ref->{$_} } keys %{$ref}; + # übernommen aus is.pl Fix für Bug 1642. Nebenwirkungen? jb 12.5.2011 + # getestet: Lieferantenauftrag -> Rechnung i.O. + # Lieferantenauftrag -> Lieferschein -> Rechnung i.O. + # Werte: 20% (Lieferantenrabatt), 12,4% individuell und 0,4 individuell s.a. + # Screenshot zu Bug 1642 + $form->{"discount_$i"} = $form->format_amount(\%myconfig, $form->{"discount_$i"} * 100); my ($dec) = ($form->{"sellprice_$i"} =~ /\.(\d+)/); $dec = length $dec; @@ -254,40 +269,40 @@ sub form_header { my $form = $main::form; my %myconfig = %main::myconfig; my $locale = $main::locale; - my $cgi = $main::cgi; + my $cgi = $::request->{cgi}; - $main::auth->assert('invoice_edit'); + $main::auth->assert('vendor_invoice_edit'); - our %TMPL_VAR = (); + my %TMPL_VAR = (); my @custom_hiddens; $form->{employee_id} = $form->{old_employee_id} if $form->{old_employee_id}; $form->{salesman_id} = $form->{old_salesman_id} if $form->{old_salesman_id}; $form->{defaultcurrency} = $form->get_default_currency(\%myconfig); - $form->{radier} = ($form->current_date(\%myconfig) eq $form->{gldate}) ? 1 : 0; - - my $set_duedate_url = "$form->{script}?action=set_duedate"; - - push @ { $form->{AJAX} }, new CGI::Ajax( 'set_duedate' => $set_duedate_url ); my @old_project_ids = ($form->{"globalproject_id"}); map { push @old_project_ids, $form->{"project_id_$_"} if $form->{"project_id_$_"}; } 1..$form->{"rowcount"}; - $form->get_lists("contacts" => "ALL_CONTACTS", - "shipto" => "ALL_SHIPTO", - "projects" => { "key" => "ALL_PROJECTS", + $form->get_lists("projects" => { "key" => "ALL_PROJECTS", "all" => 0, "old_id" => \@old_project_ids }, - "employees" => "ALL_EMPLOYEES", "taxzones" => "ALL_TAXZONES", "currencies" => "ALL_CURRENCIES", "vendors" => "ALL_VENDORS", + "departments" => "all_departments", "price_factors" => "ALL_PRICE_FACTORS"); - $TMPL_VAR{sales_employee_labels} = sub { $_[0]->{name} || $_[0]->{login} }; -# $TMPL_VAR{shipto_labels} = sub { join "; ", grep { $_ } map { $_[0]->{"shipto${_}" } } qw(name department_1 street city) }; - $TMPL_VAR{contact_labels} = sub { join(', ', $_[0]->{"cp_name"}, $_[0]->{"cp_givenname"}) . ($_[0]->{cp_abteilung} ? " ($_[0]->{cp_abteilung})" : "") }; + $TMPL_VAR{ALL_EMPLOYEES} = SL::DB::Manager::Employee->get_all(query => [ or => [ id => $::form->{employee_id}, deleted => 0 ] ]); + $TMPL_VAR{ALL_CONTACTS} = SL::DB::Manager::Contact->get_all(query => [ + or => [ + cp_cv_id => $::form->{"$::form->{vc}_id"} * 1, + and => [ + cp_cv_id => undef, + cp_id => $::form->{cp_id} * 1 + ] + ] + ]); $TMPL_VAR{department_labels} = sub { "$_[0]->{description}--$_[0]->{id}" }; # customer @@ -302,16 +317,19 @@ sub form_header { my @values = map { $_ } @{ $form->{ALL_CURRENCIES} }; my %labels = map { $_ => $_ } @{ $form->{ALL_CURRENCIES} }; $form->{currency} = $form->{defaultcurrency} unless $form->{currency}; - $TMPL_VAR{show_exchangerate} = $form->{currency} ne $form->{defaultcurrency}; + # show_exchangerate is also later needed in another template + $form->{show_exchangerate} = $form->{currency} ne $form->{defaultcurrency}; $TMPL_VAR{currencies} = NTI($cgi->popup_menu('-name' => 'currency', '-default' => $form->{"currency"}, - '-values' => \@values, '-labels' => \%labels)) if scalar @values; + '-values' => \@values, '-labels' => \%labels, + '-onchange' => "document.getElementById('update_button').click();" + )) if scalar @values; push @custom_hiddens, "forex"; push @custom_hiddens, "exchangerate" if $form->{forex}; $TMPL_VAR{creditwarning} = ($form->{creditlimit} != 0) && ($form->{creditremaining} < 0) && !$form->{update}; $TMPL_VAR{is_credit_remaining_negativ} = $form->{creditremaining} =~ /-/; - $form->{fokus} = "invoice.vendor"; + $::request->{layout}->focus('#vendor'); my $follow_up_vc = $form->{vendor}; $follow_up_vc =~ s/--\d*\s*$//; @@ -353,368 +371,81 @@ sub form_footer { my $form = $main::form; my %myconfig = %main::myconfig; my $locale = $main::locale; - my $cgi = $main::cgi; $main::auth->assert('vendor_invoice_edit'); - $form->{invtotal} = $form->{invsubtotal}; - - my ($rows, $introws); - if (($rows = $form->numtextrows($form->{notes}, 25, 8)) < 2) { - $rows = 2; - } - if (($introws = $form->numtextrows($form->{intnotes}, 35, 8)) < 2) { - $introws = 2; - } - $rows = ($rows > $introws) ? $rows : $introws; - my $notes = - qq||; - my $intnotes = - qq||; - - $form->{taxincluded} = ($form->{taxincluded}) ? "checked" : ""; - - my $taxincluded = ""; - if ($form->{taxaccounts}) { - $taxincluded = qq| - {taxincluded}> | - . $locale->text('Tax Included') . qq| -|; - } - - my ($tax, $subtotal); - if (!$form->{taxincluded}) { - - foreach my $item (split / /, $form->{taxaccounts}) { - if ($form->{"${item}_base"}) { - $form->{invtotal} += $form->{"${item}_total"} = - $form->round_amount( - $form->{"${item}_base"} * $form->{"${item}_rate"}, - 2); - $form->{"${item}_total"} = - $form->format_amount(\%myconfig, $form->{"${item}_total"}, 2); - - $tax .= qq| - - $form->{"${item}_description"} | - . $form->{"${item}_rate"} * 100 .qq|% - $form->{"${item}_total"} - -|; - } - } - - $form->{invsubtotal} = - $form->format_amount(\%myconfig, $form->{invsubtotal}, 2, 0); + $form->{invtotal} = $form->{invsubtotal}; + $form->{oldinvtotal} = $form->{invtotal}; - $subtotal = qq| - - | . $locale->text('Subtotal') . qq| - $form->{invsubtotal} - -|; + # note rows + $form->{rows} = max 2, + $form->numtextrows($form->{notes}, 26, 8), + $form->numtextrows($form->{intnotes}, 35, 8); - } - if ($form->{taxincluded}) { - foreach my $item (split / /, $form->{taxaccounts}) { - if ($form->{"${item}_base"}) { - $form->{"${item}_total"} = - $form->round_amount( - ($form->{"${item}_base"} * $form->{"${item}_rate"} / - (1 + $form->{"${item}_rate"}) - ), - 2); - $form->{"${item}_base"} = - $form->round_amount($form->{"${item}_base"}, 2); - $form->{"${item}_netto"} = - $form->round_amount( - ($form->{"${item}_base"} - $form->{"${item}_total"}), - 2); - $form->{"${item}_netto"} = - $form->format_amount(\%myconfig, $form->{"${item}_netto"}, 2); - $form->{"${item}_total"} = - $form->format_amount(\%myconfig, $form->{"${item}_total"}, 2); - - $tax .= qq| - - Enthaltene $form->{"${item}_description"} | - . $form->{"${item}_rate"} * 100 .qq|% - $form->{"${item}_total"} - - - Nettobetrag - $form->{"${item}_netto"} - -|; + # tax, total and subtotal calculations + my ($tax, $subtotal); + $form->{taxaccounts_array} = [ split / /, $form->{taxaccounts} ]; + + foreach my $item (@{ $form->{taxaccounts_array} }) { + if ($form->{"${item}_base"}) { + if ($form->{taxincluded}) { + $form->{"${item}_total"} = $form->round_amount( ($form->{"${item}_base"} * $form->{"${item}_rate"} + / (1 + $form->{"${item}_rate"})), 2); + $form->{"${item}_netto"} = $form->round_amount( ($form->{"${item}_base"} - $form->{"${item}_total"}), 2); + } else { + $form->{"${item}_total"} = $form->round_amount( $form->{"${item}_base"} * $form->{"${item}_rate"}, 2); + $form->{invtotal} += $form->{"${item}_total"}; } } - } - $form->{oldinvtotal} = $form->{invtotal}; - $form->{invtotal} = - $form->format_amount(\%myconfig, $form->{invtotal}, 2, 0); - - my $follow_ups_block; + # follow ups if ($form->{id}) { - my $follow_ups = FU->follow_ups('trans_id' => $form->{id}); - - if (@{ $follow_ups} ) { - my $num_due = sum map { $_->{due} * 1 } @{ $follow_ups }; - $follow_ups_block = qq| - - | . $locale->text("There are #1 unfinished follow-ups of which #2 are due.", scalar @{ $follow_ups }, $num_due) . qq| - -|; - } + $form->{follow_ups} = FU->follow_ups('trans_id' => $form->{id}) || []; + $form->{follow_ups_unfinished} = ( sum map { $_->{due} * 1 } @{ $form->{follow_ups} } ) || 0; } - our $colspan; - print qq| - - - - - - - -
- - - - - - - - - - $follow_ups_block -
| . $locale->text('Notes') . qq|| . $locale->text('Internal Notes') . qq|
$notes$intnotes
-
- $taxincluded -
- - $subtotal - $tax - - - - -
| . $locale->text('Total') . qq|$form->{invtotal}
-
- - -|; - my $webdav_list; - if ($main::webdav) { - $webdav_list = qq| - -
- - - Dokumente im Webdav-Repository - - - - -|; - foreach my $file (@{ $form->{WEBDAV} }) { - $webdav_list .= qq| - - - - -|; - } - $webdav_list .= qq| -
DateinameWebdavlink
$file->{name}$file->{type}
- -|; - - print $webdav_list; - } - print qq| - - - - - - -|; - - my @column_index; - if ($form->{currency} eq $form->{defaultcurrency}) { - @column_index = qw(datepaid source memo paid AP_paid); - } else { - @column_index = qw(datepaid source memo paid exchangerate AP_paid); - } - - my %column_data; - $column_data{datepaid} = ""; - $column_data{paid} = ""; - $column_data{exchangerate} = ""; - $column_data{AP_paid} = ""; - $column_data{source} = ""; - $column_data{memo} = ""; - - print qq| - -|; - map { print "$column_data{$_}\n" } @column_index; - print qq| - -|; - - my @triggers = (); + # payments my $totalpaid = 0; - $form->{paidaccounts}++ if ($form->{"paid_$form->{paidaccounts}"}); - for my $i (1 .. $form->{paidaccounts}) { + $form->{paid_indices} = [ 1 .. $form->{paidaccounts} ]; - print qq| - -|; + # Standard Konto für Umlaufvermögen + my $accno_arap = IS->get_standard_accno_current_assets(\%myconfig, \%$form); - $form->{"selectAP_paid_$i"} = $form->{selectAP_paid}; - $form->{"selectAP_paid_$i"} =~ - s/option>\Q$form->{"AP_paid_$i"}\E/option selected>$form->{"AP_paid_$i"}/; - - $totalpaid += $form->{"paid_$i"}; - - # format amounts - if ($form->{"paid_$i"}) { - $form->{"paid_$i"} = - $form->format_amount(\%myconfig, $form->{"paid_$i"}, 2); - } - $form->{"exchangerate_$i"} = - $form->format_amount(\%myconfig, $form->{"exchangerate_$i"}); - - my $exchangerate = qq| |; - if ($form->{currency} ne $form->{defaultcurrency}) { - if ($form->{"forex_$i"}) { - $exchangerate = - qq|{"exchangerate_$i"}>$form->{"exchangerate_$i"}|; - } else { - $exchangerate = - qq|{"exchangerate_$i"}>|; - } + for my $i (1 .. $form->{paidaccounts}) { + $form->{"changeable_$i"} = 1; + if (SL::DB::Default->get->payments_changeable == 0) { + # never + $form->{"changeable_$i"} = ($form->{"acc_trans_id_$i"})? 0 : 1; + } elsif (SL::DB::Default->get->payments_changeable == 2) { + # on the same day + $form->{"changeable_$i"} = (($form->{"gldate_$i"} eq '') || + ($form->current_date(\%myconfig) eq $form->{"gldate_$i"})); } - $exchangerate .= qq| -{"forex_$i"}> -|; - - $column_data{"paid_$i"} = - qq||; - $column_data{"exchangerate_$i"} = qq||; - $column_data{"AP_paid_$i"} = - qq||; - $column_data{"datepaid_$i"} = - qq||; - $column_data{"source_$i"} = - qq||; - $column_data{"memo_$i"} = - qq||; - - map { print qq|$column_data{"${_}_$i"}\n| } @column_index; - - print qq| - -|; - push(@triggers, "datepaid_$i", "BL", "trigger_datepaid_$i"); - } - my $paid_missing = $form->{oldinvtotal} - $totalpaid; - - print qq| - - - - - - - - - - - - - - {oldinvtotal}> - {paidaccounts}> - -
| . $locale->text('Payments') . qq|
" . $locale->text('Date') . "" . $locale->text('Amount') . "" . $locale->text('Exch') . "" . $locale->text('Account') . "" . $locale->text('Source') . "" . $locale->text('Memo') . "
$exchangerate -
| . $locale->text('Total') . qq|| . H($form->format_amount(\%myconfig, $totalpaid, 2)) . qq|
| . $locale->text('Missing amount') . qq|| . H($form->format_amount(\%myconfig, $paid_missing, 2)) . qq|
- - - -
- - -
-|; - - my $invdate = $form->datetonum($form->{invdate}, \%myconfig); - my $closedto = $form->datetonum($form->{closedto}, \%myconfig); - - print qq| -|; - - if ($form->{id}) { - my $show_storno = !$form->{storno} && !IS->has_storno(\%myconfig, $form, "ap") && (($totalpaid == 0) || ($totalpaid eq "")); - - print qq| -|; - print qq| -| if ($show_storno); - if ($form->{radier}) { - print qq| - -|; - } - print qq| - -|; - - } + $form->{"selectAP_paid_$i"} = $form->{selectAP_paid}; + if (!$form->{"AP_paid_$i"}) { + $form->{"selectAP_paid_$i"} =~ s/option>$accno_arap--(.*?)>/option selected>$accno_arap--$1>/; + } else { + $form->{"selectAP_paid_$i"} =~ s/option>\Q$form->{"AP_paid_$i"}\E/option selected>$form->{"AP_paid_$i"}/; + } - if (!$form->{id} && ($invdate > $closedto)) { - print qq| | . - NTI($cgi->submit('-name' => 'action', '-value' => $locale->text('Save draft'), - '-class' => 'submit')); + $totalpaid += $form->{"paid_$i"}; } - print $form->write_trigger(\%myconfig, scalar(@triggers) / 3, @triggers); - $form->hide_form(qw(rowcount callback draft_id draft_description vendor_discount)); - - # button for saving history - if($form->{id} ne "") { - print qq| - |; - } - # /button for saving history - # mark_as_paid button - if($form->{id} ne "") { - print qq| |; - } - # /mark_as_paid button -print qq| - - -|; + print $form->parse_html_template('ir/form_footer', { + is_type_credit_note => ($form->{type} eq "credit_note"), + totalpaid => $totalpaid, + paid_missing => $form->{invtotal} - $totalpaid, + show_storno => $form->{id} && !$form->{storno} && !IS->has_storno(\%myconfig, $form, "ap") && !$totalpaid, + show_delete => ($::instance_conf->get_ir_changeable == 2) + ? ($form->current_date(\%myconfig) eq $form->{gldate}) + : ($::instance_conf->get_ir_changeable == 1), + }); +##print $form->parse_html_template('ir/_payments'); # parser +##print $form->parse_html_template('webdav/_list'); # parser $main::lxdebug->leave_sub(); } @@ -740,10 +471,11 @@ sub update { $main::auth->assert('vendor_invoice_edit'); - map { $form->{$_} = $form->parse_amount(\%myconfig, $form->{$_}) } qw(exchangerate creditlimit creditremaining); - &check_name('vendor'); + if (!$form->{forex}) { # read exchangerate from input field (not hidden) + $form->{exchangerate} = $form->parse_amount(\%myconfig, $form->{exchangerate}); + } $form->{forex} = $form->check_exchangerate(\%myconfig, $form->{currency}, $form->{invdate}, 'sell'); $form->{exchangerate} = $form->{forex} if $form->{forex}; @@ -770,21 +502,20 @@ sub update { my $rows = scalar @{ $form->{item_list} }; if ($rows) { - $form->{"qty_$i"} = 1 unless ($form->{"qty_$i"}); + $form->{"qty_$i"} = 1 unless $form->parse_amount(\%myconfig, $form->{"qty_$i"}); if ($rows > 1) { - &select_item; - exit; + select_item(mode => 'IR'); + ::end_of_request(); } else { # override sellprice if there is one entered my $sellprice = $form->parse_amount(\%myconfig, $form->{"sellprice_$i"}); - # ergaenzung fuer bug 736 Lieferanten-Rabatt auch in Einkaufsrechnungen vorbelegen jb - $form->{"discount_$i"} = $form->format_amount(\%myconfig, - $form->{vendor_discount} * 100 ); + # ergaenzung fuer bug 736 Lieferanten-Rabatt auch in Einkaufsrechnungen vorbelegen jb + $form->{"discount_$i"} = $form->format_amount(\%myconfig, $form->{vendor_discount} * 100 ); map { $form->{item_list}[$i]{$_} =~ s/\"/"/g } qw(partnumber description unit); map { $form->{"${_}_$i"} = $form->{item_list}[0]{$_} } keys %{ $form->{item_list}[0] }; @@ -847,6 +578,9 @@ sub storno { $form->error($locale->text("Invoice has already been storno'd!")); } + $form->error($locale->text('Cannot post storno for a closed period!')) + if ( $form->date_closed($form->{invdate}, \%myconfig)); + my $employee_id = $form->{employee_id}; invoice_links(); prepare_invoice(); @@ -854,13 +588,13 @@ sub storno { # Payments must not be recorded for the new storno invoice. $form->{paidaccounts} = 0; - map { my $key = $_; delete $form->{$key} if grep { $key =~ /^$_/ } qw(datepaid_ source_ memo_ paid_ exchangerate_ AR_paid_) } keys %{ $form }; + map { my $key = $_; delete $form->{$key} if grep { $key =~ /^$_/ } qw(datepaid_ gldate_ acc_trans_id_ source_ memo_ paid_ exchangerate_ AR_paid_) } keys %{ $form }; # saving the history if(!exists $form->{addition} && $form->{id} ne "") { $form->{snumbers} = qq|invnumber_| . $form->{invnumber}; $form->{addition} = "CANCELED"; - $form->save_history($form->dbconnect(\%myconfig)); + $form->save_history; } # /saving the history @@ -875,7 +609,7 @@ sub storno { } -sub use_as_template { +sub use_as_new { $main::lxdebug->enter_sub(); my $form = $main::form; @@ -883,7 +617,7 @@ sub use_as_template { $main::auth->assert('vendor_invoice_edit'); - map { delete $form->{$_} } qw(printed emailed queued invnumber invdate deliverydate id datepaid_1 source_1 memo_1 paid_1 exchangerate_1 AP_paid_1 storno); + map { delete $form->{$_} } qw(printed emailed queued invnumber invdate deliverydate id datepaid_1 gldate_1 acc_trans_id_1 source_1 memo_1 paid_1 exchangerate_1 AP_paid_1 storno); $form->{paidaccounts} = 1; $form->{rowcount}--; $form->{invdate} = $form->current_date(\%myconfig); @@ -921,14 +655,14 @@ sub post_payment { ($form->{AP}) = split /--/, $form->{AP}; ($form->{AP_paid}) = split /--/, $form->{AP_paid}; if (IR->post_payment(\%myconfig, \%$form)){ - if (!exists $form->{addition} && $form->{id} ne "") { - # saving the history + if (!exists $form->{addition} && $form->{id} ne "") { + # saving the history $form->{snumbers} = qq|invnumber_| . $form->{invnumber}; - $form->{addition} = "PAYMENT POSTED"; + $form->{addition} = "PAYMENT POSTED"; $form->{what_done} = $form->{currency} . qq| | . $form->{paid} . qq| | . $locale->text("POSTED"); - $form->save_history($form->dbconnect(\%myconfig)); - # /saving the history - } + $form->save_history; + # /saving the history + } $form->redirect($locale->text('Payment posted!')); } @@ -972,9 +706,16 @@ sub post { # if the vendor changed get new values if (&check_name('vendor')) { &update; + ::end_of_request(); + } + + if ($myconfig{mandatory_departments} && !$form->{department_id}) { + $form->{saved_message} = $::locale->text('You have to specify a department.'); + update(); exit; } + remove_emptied_rows(); &validate_items; my $closedto = $form->datetonum($form->{closedto}, \%myconfig); @@ -1014,16 +755,16 @@ sub post { relink_accounts(); if (IR->post_invoice(\%myconfig, \%$form)){ - # saving the history - if(!exists $form->{addition} && $form->{id} ne "") { + # saving the history + if(!exists $form->{addition} && $form->{id} ne "") { $form->{snumbers} = qq|invnumber_| . $form->{invnumber}; $form->{addition} = "POSTED"; - #$form->{what_done} = $locale->text("Rechnungsnummer") . qq| | . $form->{invnumber}; - $form->save_history($form->dbconnect(\%myconfig)); - } - # /saving the history + #$form->{what_done} = $locale->text("Rechnungsnummer") . qq| | . $form->{invnumber}; + $form->save_history; + } + # /saving the history remove_draft() if $form->{remove_draft}; - $form->redirect( $locale->text('Invoice') + $form->redirect( $locale->text('Invoice') . " $form->{invnumber} " . $locale->text('posted!')); } @@ -1042,8 +783,6 @@ sub delete { $form->header; print qq| - -
{script}> |; @@ -1084,8 +823,8 @@ sub yes { # saving the history if(!exists $form->{addition}) { $form->{snumbers} = qq|invnumber_| . $form->{invnumber}; - $form->{addition} = "DELETED"; - $form->save_history($form->dbconnect(\%myconfig)); + $form->{addition} = "DELETED"; + $form->save_history; } # /saving the history $form->redirect($locale->text('Invoice deleted!')); @@ -1095,14 +834,15 @@ sub yes { $main::lxdebug->leave_sub(); } -sub set_duedate_vendor { - $main::lxdebug->enter_sub(); - - my $form = $main::form; +sub get_duedate_vendor { + $::lxdebug->enter_sub; - print $form->ajax_response_header(), IR->get_duedate('vendor_id' => $form->{vendor_id}, - 'invdate' => $form->{invdate}, - 'default' => $form->{old_duedate}); + my $result = IR->get_duedate( + vendor_id => $::form->{vendor_id}, + invdate => $::form->{invdate}, + default => $::form->{old_duedate}, + ); - $main::lxdebug->leave_sub(); + print $::form->ajax_response_header, $result; + $::lxdebug->leave_sub; }