X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=bin%2Fmozilla%2Fap.pl;h=0654d860b90a2b49b92354f3b05ca4e970879fbf;hb=e958a6f7392a515a4a9d9e24358c5a082015d370;hp=bc2986c27e35c03568fbbc5d4e11b31f57a5b915;hpb=f9c86f3fda5c81cc7f0498310d0570dbb3dd7792;p=kivitendo-erp.git diff --git a/bin/mozilla/ap.pl b/bin/mozilla/ap.pl index bc2986c27..0654d860b 100644 --- a/bin/mozilla/ap.pl +++ b/bin/mozilla/ap.pl @@ -40,6 +40,7 @@ use SL::IR; use SL::IS; use SL::PE; use SL::ReportGenerator; +use SL::DB::Default; require "bin/mozilla/arap.pl"; require "bin/mozilla/common.pl"; @@ -152,9 +153,6 @@ sub create_links { # build the popup menus $form->{taxincluded} = ($form->{id}) ? $form->{taxincluded} : "checked"; - # notes - $form->{notes} = $form->{intnotes} unless $form->{notes}; - # currencies $form->{defaultcurrency} = $form->get_default_currency(\%myconfig); @@ -195,7 +193,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'); @@ -238,7 +236,9 @@ sub form_header { } my $readonly = ($form->{id}) ? "readonly" : ""; - $form->{radier} = ($form->current_date(\%myconfig) eq $form->{gldate}) ? 1 : 0; + $form->{radier} = ($::instance_conf->get_ap_changeable == 2) + ? ($form->current_date(\%myconfig) eq $form->{gldate}) + : ($::instance_conf->get_ap_changeable == 1); $readonly = ($form->{radier}) ? "" : $readonly; $form->{forex} = $form->check_exchangerate( \%myconfig, $form->{currency}, $form->{transdate}, 'sell'); @@ -284,8 +284,10 @@ sub form_header { } my $notes = qq||; + my $intnotes = qq||; - my $department = qq| + my $department; + $department = qq| | . $locale->text('Department') . qq| @@ -370,7 +372,7 @@ sub form_header { # with JavaScript Calendar $button1 = qq| - + text('button') . qq|> |; @@ -388,7 +390,7 @@ sub form_header { # without JavaScript Calendar $button1 = - qq||; + qq||; $button2 = qq||; } @@ -408,11 +410,7 @@ 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}> {id}> @@ -627,6 +625,9 @@ $jsscript | . $locale->text('Notes') . qq| $notes + + | . $locale->text('Notes for vendor') . qq| + $intnotes @@ -693,10 +694,17 @@ $jsscript $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 (SL::DB::Default->get->payments_changeable == 0) { + # never + $changeable = ($form->{"acc_trans_id_$i"})? 0 : 1; + } + if (SL::DB::Default->get->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})) { @@ -708,7 +716,7 @@ $jsscript $exchangerate = qq|{"exchangerate_$i"}>|; } else { - $exchangerate = qq|$form->{"exchangerate_$i"}|. + $exchangerate = qq|{"exchangerate_$i"}>$form->{"exchangerate_$i"}|; } } @@ -774,12 +782,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; @@ -824,90 +832,37 @@ $jsscript } sub form_footer { - $main::lxdebug->enter_sub(); + $::lxdebug->enter_sub; + $::auth->assert('general_ledger'); - my $form = $main::form; - my %myconfig = %main::myconfig; - my $locale = $main::locale; - my $cgi = $main::cgi; + my $num_due; + my $num_follow_ups; + if ($::form->{id}) { + my $follow_ups = FU->follow_ups('trans_id' => $::form->{id}); - $main::auth->assert('general_ledger'); - - my $follow_ups_block; - 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| + my $transdate = $::form->datetonum($::form->{transdate}, \%::myconfig); + my $closedto = $::form->datetonum($::form->{closedto}, \%::myconfig); -
-|; - - 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 $storno = $::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); + $::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, + }); - 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 ""))); - - 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 " -
- - - -"; - - $main::lxdebug->leave_sub(); + $::lxdebug->leave_sub; } sub mark_as_paid { @@ -975,7 +930,7 @@ sub update { $form->{exchangerate} = $form->{forex} if $form->{forex}; $form->{invdate} = $form->{transdate}; - my %saved_variables = map +( $_ => $form->{$_} ), qw(AP AP_amount_1 taxchart_1); + my %saved_variables = map +( $_ => $form->{$_} ), qw(AP AP_amount_1 taxchart_1 notes); my $vendor_changed = &check_name("vendor"); @@ -1012,9 +967,6 @@ sub update { $form->{oldinvtotal} = $form->{invtotal}; $form->{oldtotalpaid} = $totalpaid; - # notes - $form->{notes} = $form->{intnotes} if $vendor_changed; - &display_form; $main::lxdebug->leave_sub(); @@ -1072,6 +1024,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!")); @@ -1146,7 +1100,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!')); } @@ -1183,7 +1137,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); @@ -1207,8 +1161,6 @@ sub delete { delete $form->{header}; print qq| - -
{script}> |; @@ -1228,9 +1180,6 @@ sub delete {
- - - |; $main::lxdebug->leave_sub(); @@ -1273,7 +1222,7 @@ sub search { $form->all_vc(\%myconfig, "vendor", "AP"); $form->{title} = $locale->text('AP Transactions'); - $form->{fokus} = "search.vendor"; + $::request->{layout}->focus('#vendor'); $form->{jsscript} = 1; $form->get_lists("projects" => { "key" => "ALL_PROJECTS", "all" => 1 }, @@ -1488,6 +1437,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