X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/4507456b19be280448043993939fa8657e8a046c..08e820f:/bin/mozilla/ap.pl diff --git a/bin/mozilla/ap.pl b/bin/mozilla/ap.pl index cc8f4d4b6..687f149cd 100644 --- a/bin/mozilla/ap.pl +++ b/bin/mozilla/ap.pl @@ -154,6 +154,12 @@ sub load_record_template { $::form->{$_} = $form_defaults->{$_} for keys %{ $form_defaults // {} }; flash('info', $::locale->text("The record template '#1' has been loaded.", $template->template_name)); + flash('info', $::locale->text("Payment bookings disallowed. After the booking this record may be " . + "suggested with the amount of '#1' or otherwise has to be choosen manually." . + " No automatic payment booking will be done to chart '#2'.", + $form_defaults->{paid_1_suggestion}, + $form_defaults->{AP_paid_1_suggestion}, + )) if $::form->{no_payment_bookings}; update( keep_rows_without_amount => 1, @@ -266,7 +272,6 @@ sub display_form { type => 'accounts_payable', number => $form->{invnumber}, ); - my $webdav_path = $webdav->webdav_path; my @all_objects = $webdav->get_all_objects; @{ $form->{WEBDAV} } = map { { name => $_->filename, type => t8('File'), @@ -436,6 +441,11 @@ sub form_header { my $transdate = $::form->{transdate} ? DateTime->from_kivitendo($::form->{transdate}) : DateTime->today_local; my $first_taxchart; + # $form->{totalpaid} is used by the action bar setup to determine + # whether or not canceling is allowed. Therefore it must be + # calculated prior to the action bar setup. + $form->{totalpaid} = sum map { $form->{"paid_${_}"} } (1..$form->{paidaccounts}); + setup_ap_display_form_action_bar(); $form->header(); @@ -447,9 +457,8 @@ sub form_header { $form->{"tax_$i"} = $form->format_amount(\%myconfig, $form->{"tax_$i"}, 2); my ($default_taxchart, $taxchart_to_use); - my $amount_chart_id = $form->{"AP_amount_chart_id_$i"} || $default_ap_amount_chart_id; - my $chart_has_changed = $::form->{"previous_AP_amount_chart_id_$i"} && ($amount_chart_id != $::form->{"previous_AP_amount_chart_id_$i"}); - my @taxcharts = GL->get_active_taxes_for_chart($amount_chart_id, $transdate); + my $amount_chart_id = $form->{"AP_amount_chart_id_$i"} || $default_ap_amount_chart_id; + my @taxcharts = GL->get_active_taxes_for_chart($amount_chart_id, $transdate); foreach my $item (@taxcharts) { my $key = $item->id . "--" . $item->rate; @@ -458,7 +467,7 @@ sub form_header { $taxchart_to_use = $item if $key eq $form->{"taxchart_$i"}; } - $taxchart_to_use = $default_taxchart // $first_taxchart if $chart_has_changed || !$taxchart_to_use; + $taxchart_to_use //= $default_taxchart // $first_taxchart; my $selected_taxchart = $taxchart_to_use->id . '--' . $taxchart_to_use->rate; $form->{"selected_taxchart_$i"} = $selected_taxchart; $form->{"AP_amount_chart_id_$i"} = $amount_chart_id; @@ -484,8 +493,6 @@ sub form_header { $form->{invtotal_unformatted} = $form->{invtotal}; $form->{invtotal} = $form->format_amount(\%myconfig, $form->{invtotal}, 2); - $form->{totalpaid} = 0; - _sort_payments(); if ( $form->{'paid_'. $form->{paidaccounts}} ) { @@ -496,8 +503,6 @@ sub form_header { $form->{accno_arap} = IS->get_standard_accno_current_assets(\%myconfig, \%$form); for my $i (1 .. $form->{paidaccounts}) { - $form->{totalpaid} += $form->{"paid_$i"}; - # format amounts if ($form->{"paid_$i"}) { $form->{"paid_$i"} = $form->format_amount(\%myconfig, $form->{"paid_$i"}, 2); @@ -634,6 +639,10 @@ sub update { if (($form->{previous_vendor_id} || $form->{vendor_id}) != $form->{vendor_id}) { IR->get_vendor(\%::myconfig, $form); + if (($form->{rowcount} == 1) && ($form->{amount_1} == 0)) { + my $last_used_ap_chart = SL::DB::Vendor->load_cached($form->{vendor_id})->last_used_ap_chart; + $form->{"AP_amount_chart_id_1"} = $last_used_ap_chart->id if $last_used_ap_chart; + } } $form->{rowcount} = $count + ($params{dont_add_new_row} ? 0 : 1); @@ -905,7 +914,7 @@ sub search { my %myconfig = %main::myconfig; my $locale = $main::locale; - $form->{title} = $locale->text('AP Transactions'); + $form->{title} = $locale->text('Vendor Invoices & AP Transactions'); $form->get_lists(projects => { "key" => "ALL_PROJECTS", "all" => 1 }); @@ -915,6 +924,8 @@ sub search { $::request->layout->add_javascripts("autocomplete_project.js"); + setup_ap_search_action_bar(); + $form->header; print $form->parse_html_template('ap/search', { %myconfig }); @@ -955,7 +966,7 @@ sub ap_transactions { AP->ap_transactions(\%myconfig, \%$form); - $form->{title} = $locale->text('AP Transactions'); + $form->{title} = $locale->text('Vendor Invoices & AP Transactions'); my $report = SL::ReportGenerator->new(\%myconfig, $form); @@ -993,7 +1004,7 @@ sub ap_transactions { 'ustid' => { 'text' => $locale->text('USt-IdNr.'), }, 'taxzone' => { 'text' => $locale->text('Tax rate'), }, 'payment_terms' => { 'text' => $locale->text('Payment Terms'), }, - 'charts' => { 'text' => $locale->text('Buchungskonto'), }, + 'charts' => { 'text' => $locale->text('Chart'), }, 'direct_debit' => { 'text' => $locale->text('direct debit'), }, ); @@ -1030,7 +1041,6 @@ sub ap_transactions { push @options, $locale->text('Closed') if ($form->{closed}); $report->set_options('top_info_text' => join("\n", @options), - 'raw_bottom_info_text' => $form->parse_html_template('ap/ap_transactions_bottom'), 'output_format' => 'HTML', 'title' => $form->{title}, 'attachment_basename' => $locale->text('vendor_invoice_list') . strftime('_%Y%m%d', localtime time), @@ -1105,6 +1115,7 @@ sub ap_transactions { $report->add_separator(); $report->add_data(create_subtotal_row(\%totals, \@columns, \%column_alignment, \@subtotal_columns, 'listtotal')); + setup_ap_transactions_action_bar(); $report->generate_with_headers(); $main::lxdebug->leave_sub(); @@ -1143,6 +1154,40 @@ sub storno { $main::lxdebug->leave_sub(); } +sub setup_ap_search_action_bar { + my %params = @_; + + for my $bar ($::request->layout->get('actionbar')) { + $bar->add( + action => [ + $::locale->text('Search'), + submit => [ '#form', { action => "ap_transactions" } ], + accesskey => 'enter', + ], + ); + } +} + +sub setup_ap_transactions_action_bar { + my %params = @_; + + for my $bar ($::request->layout->get('actionbar')) { + $bar->add( + combobox => [ + action => [ t8('Add') ], + link => [ + t8('Purchase Invoice'), + link => [ 'ir.pl?action=add' ], + ], + link => [ + t8('AP Transaction'), + link => [ 'ap.pl?action=add' ], + ], + ], # end of combobox "Add" + ); + } +} + sub setup_ap_display_form_action_bar { my $transdate = $::form->datetonum($::form->{transdate}, \%::myconfig); my $closedto = $::form->datetonum($::form->{closedto}, \%::myconfig);