X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=bin%2Fmozilla%2Fis.pl;h=b1aa9f3c5dae0079987bcb3b9eb585b3a3b1ce0b;hb=d03b28772dce973bf100e338e0d09112f06eb328;hp=3aa93b622d07af7ce72def0e5ef8b7db0c7c465c;hpb=f8529382599e678ff266bd26ab82782e3d7b2686;p=kivitendo-erp.git diff --git a/bin/mozilla/is.pl b/bin/mozilla/is.pl index 3aa93b622..b1aa9f3c5 100644 --- a/bin/mozilla/is.pl +++ b/bin/mozilla/is.pl @@ -45,7 +45,6 @@ require "bin/mozilla/drafts.pl"; use strict; my $edit; -my $payment; my $print_post; 1; @@ -169,20 +168,16 @@ sub invoice_links { $form->{customer} = qq|$form->{customer}--$form->{"customer_id"}|; } - $form->{oldcustomer} = "$form->{customer}--$form->{customer_id}"; - $form->{selectcustomer} = 1; + $form->{"oldcustomer"} = $form->{customer}; - # departments - if ($form->{all_departments}) { - $form->{selectdepartment} = "\n" - } (@{ $form->{all_departments} }); + if ($form->{"oldcustomer"} !~ m/--\d+$/ && $form->{"customer_id"}) { + $form->{"oldcustomer"} .= qq|--$form->{"customer_id"}| } + +# $form->{oldcustomer} = "$form->{customer}--$form->{customer_id}"; +# $form->{selectcustomer} = 1; + $form->{employee} = "$form->{employee}--$form->{employee_id}"; # forex @@ -191,41 +186,35 @@ sub invoice_links { foreach my $key (keys %{ $form->{AR_links} }) { foreach my $ref (@{ $form->{AR_links}{$key} }) { - $form->{"select$key"} .= -"\n"; + $form->{"select$key"} .= "\n"; } if ($key eq "AR_paid") { next unless $form->{acc_trans}{$key}; for my $i (1 .. scalar @{ $form->{acc_trans}{$key} }) { - $form->{"AR_paid_$i"} = - "$form->{acc_trans}{$key}->[$i-1]->{accno}--$form->{acc_trans}{$key}->[$i-1]->{description}"; + $form->{"AR_paid_$i"} = "$form->{acc_trans}{$key}->[$i-1]->{accno}--$form->{acc_trans}{$key}->[$i-1]->{description}"; # reverse paid - $form->{"paid_$i"} = $form->{acc_trans}{$key}->[$i - 1]->{amount} * -1; - $form->{"datepaid_$i"} = - $form->{acc_trans}{$key}->[$i - 1]->{transdate}; - $form->{"forex_$i"} = $form->{"exchangerate_$i"} = - $form->{acc_trans}{$key}->[$i - 1]->{exchangerate}; - $form->{"source_$i"} = $form->{acc_trans}{$key}->[$i - 1]->{source}; - $form->{"memo_$i"} = $form->{acc_trans}{$key}->[$i - 1]->{memo}; + $form->{"paid_$i"} = $form->{acc_trans}{$key}->[$i - 1]->{amount} * -1; + $form->{"datepaid_$i"} = $form->{acc_trans}{$key}->[$i - 1]->{transdate}; + $form->{"exchangerate_$i"} = $form->{acc_trans}{$key}->[$i - 1]->{exchangerate}; + $form->{"forex_$i"} = $form->{"exchangerate_$i"}; + $form->{"source_$i"} = $form->{acc_trans}{$key}->[$i - 1]->{source}; + $form->{"memo_$i"} = $form->{acc_trans}{$key}->[$i - 1]->{memo}; $form->{paidaccounts} = $i; } } else { - $form->{$key} = - "$form->{acc_trans}{$key}->[0]->{accno}--$form->{acc_trans}{$key}->[0]->{description}"; + $form->{$key} = "$form->{acc_trans}{$key}->[0]->{accno}--$form->{acc_trans}{$key}->[0]->{description}"; } - } $form->{paidaccounts} = 1 unless (exists $form->{paidaccounts}); $form->{AR} = $form->{AR_1} unless $form->{id}; - $form->{locked} = - ($form->datetonum($form->{invdate}, \%myconfig) <= - $form->datetonum($form->{closedto}, \%myconfig)); + $form->{locked} = ($form->datetonum($form->{invdate}, \%myconfig) + <= $form->datetonum($form->{closedto}, \%myconfig)); $main::lxdebug->leave_sub(); } @@ -296,15 +285,6 @@ sub form_header { $form->{defaultcurrency} = $form->get_default_currency(\%myconfig); $form->{radier} = ($form->current_date(\%myconfig) eq $form->{gldate}) ? 1 : 0; - $payment = qq||; - foreach my $item (@{ $form->{payment_terms} }) { - if ($form->{payment_id} eq $item->{id}) { - $payment .= qq||; - } else { - $payment .= qq||; - } - } - my $set_duedate_url = "$form->{script}?action=set_duedate"; push @ { $form->{AJAX} }, new CGI::Ajax( 'set_duedate' => $set_duedate_url ); @@ -392,387 +372,62 @@ sub form_footer { my $form = $main::form; my %myconfig = %main::myconfig; my $locale = $main::locale; - my $cgi = $main::cgi; $main::auth->assert('invoice_edit'); - $form->{invtotal} = $form->{invsubtotal}; - - my ($rows, $introws); - if (($rows = $form->numtextrows($form->{notes}, 26, 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->{invtotal} = $form->{invsubtotal}; + $form->{oldinvtotal} = $form->{invtotal}; - $form->{taxincluded} = ($form->{taxincluded} ? "checked" : ""); + # note rows + $form->{rows} = max 2, + $form->numtextrows($form->{notes}, 26, 8), + $form->numtextrows($form->{intnotes}, 35, 8); - my $taxincluded = ""; - if ($form->{taxaccounts}) { - $taxincluded = qq| {taxincluded}> | . $locale->text('Tax Included') . qq|

|; - } + # tax, total and subtotal calculations my ($tax, $subtotal); - if (!$form->{taxincluded}) { + $form->{taxaccounts_array} = [ split / /, $form->{taxaccounts} ]; - foreach my $item (split / /, $form->{taxaccounts}) { - if ($form->{"${item}_base"}) { + 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->{"${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); - - $subtotal = qq| - - | . $locale->text('Subtotal') . qq| - $form->{invsubtotal} - -|; - - } - - 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}_netto"} = $form->round_amount( ($form->{"${item}_base"} - $form->{"${item}_total"}), 2); - $form->{"${item}_total"} = $form->format_amount(\%myconfig, $form->{"${item}_total"}, 2); - $form->{"${item}_netto"} = $form->format_amount(\%myconfig, $form->{"${item}_netto"}, 2); - - $tax .= qq| - - Enthaltene $form->{"${item}_description"} | - . $form->{"${item}_rate"} * 100 .qq|% - $form->{"${item}_total"} - - - Nettobetrag - $form->{"${item}_netto"} - -|; } } - } - $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| - -|; - } - } - - print qq| - - - - - - - - -
- - - - - - - - - - - - $follow_ups_block -
| . $locale->text('Notes') . qq|| . $locale->text('Internal Notes') . qq|| . $locale->text('Payment Terms') . qq|
$notes$intnotes
-
- - - - - - - - - - - -
| . $locale->text('Ertrag') . qq|| . $form->format_amount(\%myconfig, $form->{marge_total}, 2, 0) . qq|
| . $locale->text('Ertrag prozentual') . qq|| . $form->format_amount(\%myconfig, $form->{marge_percent}, 2, 0) . qq| %
-
- $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; + $form->{follow_ups} = FU->follow_ups('trans_id' => $form->{id}) || []; + $form->{follow_ups_unfinished} = ( sum map { $_->{due} * 1 } @{ $form->{follow_ups} } ) || 0; } -if ($form->{type} eq "credit_note") { - print qq| - - - - - - -|; -} else { - print qq| - - - - - - - - - -
| - . $locale->text('Payments') . qq|
- - - - -|; -} - my @column_index; - if ($form->{currency} eq $form->{defaultcurrency}) { - @column_index = qw(datepaid source memo paid AR_paid); - } else { - @column_index = qw(datepaid source memo paid exchangerate AR_paid); - } - - my %column_data; - $column_data{datepaid} = ""; - $column_data{paid} = ""; - $column_data{exchangerate} = ""; - $column_data{AR_paid} = ""; - $column_data{source} = ""; - $column_data{memo} = ""; - - print " - -"; - map { print "$column_data{$_}\n" } @column_index; - print " - -"; - - my @triggers = (); + # payments my $totalpaid = 0; - $form->{paidaccounts}++ if ($form->{"paid_$form->{paidaccounts}"}); - for my $i (1 .. $form->{paidaccounts}) { - - print " - \n"; + $form->{paid_indices} = [ 1 .. $form->{paidaccounts} ]; + for my $i (1 .. $form->{paidaccounts}) { $form->{"selectAR_paid_$i"} = $form->{selectAR_paid}; - $form->{"selectAR_paid_$i"} =~ - s/option>\Q$form->{"AR_paid_$i"}\E/option selected>$form->{"AR_paid_$i"}/; - - # format amounts + $form->{"selectAR_paid_$i"} =~ s/option>\Q$form->{"AR_paid_$i"}\E/option selected>$form->{"AR_paid_$i"}/; $totalpaid += $form->{"paid_$i"}; - 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"}); - - if ($form->{"exchangerate_$i"} == 0) { - $form->{"exchangerate_$i"} = ""; - } - my $exchangerate = qq| |; - if ($form->{currency} ne $form->{defaultcurrency}) { - if ($form->{"forex_$i"}) { - $exchangerate = qq|$form->{"exchangerate_$i"}|; - } else { - $exchangerate = qq||; - } - } - - $exchangerate .= qq||; - - $column_data{"paid_$i"} = - qq||; - $column_data{"exchangerate_$i"} = qq||; - $column_data{"AR_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 " - \n"; - push(@triggers, "datepaid_$i", "BL", "trigger_datepaid_$i"); } - my $paid_missing = $form->{oldinvtotal} - $totalpaid; - - print qq| - - - - - - - - - - - - -|; - - map({ print($cgi->hidden("-name" => $_, "-value" => $form->{$_})); } qw(paidaccounts selectAR_paid oldinvtotal)); - print qq| -
| - . $locale->text('Incoming 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|
-

-|; - - print_options(); - - print qq| -
-|; - - my $invdate = $form->datetonum($form->{invdate}, \%myconfig); - my $closedto = $form->datetonum($form->{closedto}, \%myconfig); - - if ($form->{id}) { - my $show_storno = !$form->{storno} && !IS->has_storno(\%myconfig, $form, "ar") && (($totalpaid == 0) || ($totalpaid eq "")); - - print qq| - - - - |; - print qq| | if ($show_storno); - print qq| |; - print qq| |; - if ($form->{id} && !($form->{type} eq "credit_note")) { - print qq| |; - } - if ($form->{radier}) { - print qq| |; - } - - - if ($invdate > $closedto) { - print qq| |; - } - - print qq| |; - - } else { - if ($invdate > $closedto) { - print qq| - - - - - - | . - NTI($cgi->submit('-name' => 'action', '-value' => $locale->text('Save draft'), '-class' => 'submit')); - } - } - - # 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 $form->write_trigger(\%myconfig, scalar(@triggers) / 3, @triggers) . - qq| - - -| . -$cgi->hidden("-name" => "callback", "-value" => $form->{callback}) -. $cgi->hidden('-name' => 'draft_id', '-default' => [$form->{draft_id}]) -. $cgi->hidden('-name' => 'draft_description', '-default' => [$form->{draft_description}]) -. $cgi->hidden('-name' => 'customer_discount', '-value' => [$form->{customer_discount}]) -. qq| - - - - - -|; + print $form->parse_html_template('is/form_footer', { + is_type_credit_note => ($form->{type} eq "credit_note"), + totalpaid => $totalpaid, + paid_missing => $form->{invtotal} - $totalpaid, + print_options => print_options(inline => 1), + show_storno => $form->{id} && !$form->{storno} && !IS->has_storno(\%myconfig, $form, "ar") && !$totalpaid, + show_delete => ($form->current_date(\%myconfig) eq $form->{gldate}), + }); +##print $form->parse_html_template('is/_payments'); # parser +##print $form->parse_html_template('webdav/_list'); # parser $main::lxdebug->leave_sub(); }