X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;ds=sidebyside;f=bin%2Fmozilla%2Fap.pl;h=2bf801787f737789e17e757fdd109b4b4e1c2749;hb=3686bb31d623aaef632060fbdd9d7447c310e279;hp=d90b06209fe8590d6b40b4383fdc8a3686df71a0;hpb=79b83b02cf67cf4b701eb1654fa274095d84745a;p=kivitendo-erp.git diff --git a/bin/mozilla/ap.pl b/bin/mozilla/ap.pl index d90b06209..2bf801787 100644 --- a/bin/mozilla/ap.pl +++ b/bin/mozilla/ap.pl @@ -195,7 +195,7 @@ 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('general_ledger'); @@ -285,7 +285,8 @@ sub form_header { my $notes = qq||; - my $department = qq| + my $department; + $department = qq| | . $locale->text('Department') . qq| @@ -370,7 +371,7 @@ sub form_header { # with JavaScript Calendar $button1 = qq| - + text('button') . qq|> |; @@ -388,7 +389,7 @@ sub form_header { # without JavaScript Calendar $button1 = - qq||; + qq||; $button2 = qq||; } @@ -408,10 +409,8 @@ sub form_header { '-default' => $form->{"globalproject_id"} )); $form->header; - my $onload = qq|;setupDateFormat('|. $myconfig{dateformat} .qq|', '|. $locale->text("Falsches Datumsformat!") .qq|')|; - $onload .= qq|;setupPoints('|. $myconfig{numberformat} .qq|', '|. $locale->text("wrongformat") .qq|')|; print qq| - +
{script}> @@ -684,18 +683,26 @@ $jsscript # format amounts if ($form->{"paid_$i"}) { $form->{"paid_$i"} = - $form->format_amount(\%myconfig, $form->{"paid_$i"}, 2); + $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"} = ""; + } else { + $form->{"exchangerate_$i"} = + $form->format_amount(\%myconfig, $form->{"exchangerate_$i"}); } + print qq|{"acc_trans_id_$i"}>\n|; print qq|{"gldate_$i"}>\n|; - my $changeable = (($form->{"gldate_$i"} eq '') || $form->current_date(\%myconfig) eq $form->{"gldate_$i"}); - $form->{"payment_readonly_$i"} = ($changeable)? 0 : 1; - print qq|{"payment_readonly_$i"}>\n|; + my $changeable = 1; + if ($::lx_office_conf{features}->{payments_changeable} == 0) { + # never + $changeable = ($form->{"acc_trans_id_$i"})? 0 : 1; + } + if ($::lx_office_conf{features}->{payments_changeable} == 2) { + # on the same day + $changeable = (($form->{"gldate_$i"} eq '') || $form->current_date(\%myconfig) eq $form->{"gldate_$i"}); + } $exchangerate = qq| |; if ($form->{defaultcurrency} && ($form->{currency} ne $form->{defaultcurrency})) { @@ -707,7 +714,7 @@ $jsscript $exchangerate = qq|{"exchangerate_$i"}>|; } else { - $exchangerate = qq|$form->{"exchangerate_$i"}|. + $exchangerate = qq|{"exchangerate_$i"}>$form->{"exchangerate_$i"}|; } } @@ -773,12 +780,12 @@ $jsscript qq|{"paid_project_id_$i"}>|; } - $column_data{"paid_$i"} = $paid; - $column_data{"AP_paid_$i"} = $AP_paid; - $column_data{"exchangerate_$i"} = qq|$exchangerate|; - $column_data{"datepaid_$i"} = $datepaid; - $column_data{"source_$i"} = $source; - $column_data{"memo_$i"} = $memo; + $column_data{"paid_$i"} = $paid; + $column_data{"AP_paid_$i"} = $AP_paid; + $column_data{"exchangerate_$i"} = qq|$exchangerate|; + $column_data{"datepaid_$i"} = $datepaid; + $column_data{"source_$i"} = $source; + $column_data{"memo_$i"} = $memo; $column_data{"paid_project_id_$i"} = $paid_project_id; map { print qq|$column_data{"${_}_$i"}\n| } @column_index; @@ -823,90 +830,37 @@ $jsscript } sub form_footer { - $main::lxdebug->enter_sub(); - - my $form = $main::form; - my %myconfig = %main::myconfig; - my $locale = $main::locale; - my $cgi = $main::cgi; + $::lxdebug->enter_sub; + $::auth->assert('general_ledger'); - $main::auth->assert('general_ledger'); - - my $follow_ups_block; - if ($form->{id}) { - my $follow_ups = FU->follow_ups('trans_id' => $form->{id}); + my $num_due; + my $num_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|

|; + if (@{ $follow_ups }) { + $num_due = sum map { $_->{due} * 1 } @{ $follow_ups }; + $num_follow_ups = scalar @{ $follow_ups } } } - print qq| - -$follow_ups_block - - - -| -. $cgi->hidden('-name' => 'draft_id', '-default' => [$form->{draft_id}]) -. $cgi->hidden('-name' => 'draft_description', '-default' => [$form->{draft_description}]) -. qq| - -
-|; - - if (!$form->{id} && $form->{draft_id}) { - print(NTI($cgi->checkbox('-name' => 'remove_draft', '-id' => 'remove_draft', - '-value' => 1, '-checked' => $form->{remove_draft}, - '-label' => '')) . - qq| 
|); - } - - my $transdate = $form->datetonum($form->{transdate}, \%myconfig); - my $closedto = $form->datetonum($form->{closedto}, \%myconfig); - - print qq||; - - if ($form->{id}) { - if ($form->{radier}) { - print qq| - -|; - } - # ToDO: - insert a global check for stornos, so that a storno is only possible a limited time after saving it - print qq| | - if ($form->{id} && !IS->has_storno(\%myconfig, $form, 'ap') && !IS->is_storno(\%myconfig, $form, 'ap', $form->{id}) && (($form->{totalpaid} == 0) || ($form->{totalpaid} eq ""))); + my $transdate = $::form->datetonum($::form->{transdate}, \%::myconfig); + my $closedto = $::form->datetonum($::form->{closedto}, \%::myconfig); - print qq| - - -|; - } elsif (($transdate > $closedto) && !$form->{id}) { - 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 " -
+ my $storno = $::form->{id} + && !IS->has_storno(\%::myconfig, $::form, 'ap') + && !IS->is_storno( \%::myconfig, $::form, 'ap', $::form->{id}) + && ($::form->{totalpaid} == 0 || $::form->{totalpaid} eq ''); - - -"; + $::form->header; + print $::form->parse_html_template('ap/form_footer', { + num_due => $num_due, + num_follow_ups => $num_follow_ups, + show_post_draft => ($transdate > $closedto) && !$::form->{id}, + show_storno => $storno, + }); - $main::lxdebug->leave_sub(); + $::lxdebug->leave_sub; } sub mark_as_paid { @@ -1071,6 +1025,8 @@ sub post { $main::auth->assert('general_ledger'); + my ($inline) = @_; + # check if there is a vendor, invoice and due date $form->isblank("transdate", $locale->text("Invoice Date missing!")); $form->isblank("duedate", $locale->text("Due Date missing!")); @@ -1145,7 +1101,7 @@ sub post { # /saving the history remove_draft() if $form->{remove_draft}; # Dieser Text wird niemals ausgegeben: Probleme beim redirect? - $form->redirect($locale->text('Transaction posted!')); + $form->redirect($locale->text('Transaction posted!')) unless $inline; } else { $form->error($locale->text('Cannot post transaction!')); } @@ -1182,7 +1138,7 @@ sub use_as_template { $main::auth->assert('general_ledger'); - map { delete $form->{$_} } qw(printed emailed queued invnumber invdate deliverydate id datepaid_1 gldate_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); @@ -1206,8 +1162,6 @@ sub delete { delete $form->{header}; print qq| - -
{script}> |; @@ -1227,9 +1181,6 @@ sub delete {
- - - |; $main::lxdebug->leave_sub(); @@ -1487,6 +1438,9 @@ sub storno { $form->error($locale->text("Transaction has already been cancelled!")); } + $form->error($locale->text('Cannot post storno for a closed period!')) + if ( $form->date_closed($form->{transdate}, \%myconfig)); + AP->storno($form, \%myconfig, $form->{id}); # saving the history