X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/41ac03db82d559d900715853bc19f67c1f16bacf..a32fcad2cf3fabf15c9dd10ddc83ce703db66ad8:/bin/mozilla/ar.pl?ds=inline diff --git a/bin/mozilla/ar.pl b/bin/mozilla/ar.pl index 8d49a5051..0ed071eca 100644 --- a/bin/mozilla/ar.pl +++ b/bin/mozilla/ar.pl @@ -50,7 +50,7 @@ use SL::DB::Employee; use SL::DB::Invoice; use SL::DB::RecordTemplate; use SL::DB::Tax; -use SL::Helper::Flash qw(flash); +use SL::Helper::Flash qw(flash flash_later); use SL::Locale::String qw(t8); use SL::Presenter::Tag; use SL::Presenter::Chart; @@ -817,7 +817,18 @@ sub post { } # /saving the history - $form->redirect($locale->text('AR transaction posted.') . ' ' . $locale->text('ID') . ': ' . $form->{id}) unless $inline; + if (!$inline) { + my $msg = $locale->text("AR transaction '#1' posted (ID: #2)", $form->{invnumber}, $form->{id}); + if ($::instance_conf->get_ar_add_doc && $::instance_conf->get_doc_storage) { + my $add_doc_url = build_std_url("script=ar.pl", 'action=edit', 'id=' . E($form->{id})); + SL::Helper::Flash::flash_later('info', $msg); + print $form->redirect_header($add_doc_url); + $::dispatcher->end_request; + + } else { + $form->redirect($msg); + } + } $main::lxdebug->leave_sub(); } @@ -1001,6 +1012,7 @@ sub ar_transactions { my ($callback, $href, @columns); + my %params = @_; report_generator_set_default_sort('transdate', 1); AR->ar_transactions(\%myconfig, \%$form); @@ -1010,7 +1022,7 @@ sub ar_transactions { my $report = SL::ReportGenerator->new(\%myconfig, $form); @columns = - qw(ids transdate id type invnumber ordnumber cusordnumber name netamount tax amount paid + qw(ids transdate id type invnumber ordnumber cusordnumber donumber deliverydate name netamount tax amount paid datepaid due duedate transaction_description notes salesman employee shippingpoint shipvia marge_total marge_percent globalprojectnumber customernumber country ustid taxzone payment_terms charts customertype direct_debit dunning_description department); @@ -1024,10 +1036,11 @@ sub ar_transactions { my @hidden_variables = map { "l_${_}" } @columns; push @hidden_variables, "l_subtotal", qw(open closed customer invnumber ordnumber cusordnumber transaction_description notes project_id transdatefrom transdateto duedatefrom duedateto - employee_id salesman_id business_id parts_partnumber parts_description department_id show_marked_as_closed show_not_mailed); + employee_id salesman_id business_id parts_partnumber parts_description department_id show_marked_as_closed show_not_mailed + shippingpoint shipvia); push @hidden_variables, map { "cvar_$_->{name}" } @ct_searchable_custom_variables; - $href = build_std_url('action=ar_transactions', grep { $form->{$_} } @hidden_variables); + $href = $params{want_binary_pdf} ? '' : build_std_url('action=ar_transactions', grep { $form->{$_} } @hidden_variables); my %column_defs = ( 'ids' => { raw_header_data => SL::Presenter::Tag::checkbox_tag("", id => "check_all", checkall => "[data-checkall=1]"), align => 'center' }, @@ -1037,6 +1050,8 @@ sub ar_transactions { 'invnumber' => { 'text' => $locale->text('Invoice'), }, 'ordnumber' => { 'text' => $locale->text('Order'), }, 'cusordnumber' => { 'text' => $locale->text('Customer Order Number'), }, + 'donumber' => { 'text' => $locale->text('Delivery Order'), }, + 'deliverydate' => { 'text' => $locale->text('Delivery Date'), }, 'name' => { 'text' => $locale->text('Customer'), }, 'netamount' => { 'text' => $locale->text('Amount'), }, 'tax' => { 'text' => $locale->text('Tax'), }, @@ -1067,7 +1082,7 @@ sub ar_transactions { %column_defs_cvars, ); - foreach my $name (qw(id transdate duedate invnumber ordnumber cusordnumber name datepaid employee shippingpoint shipvia transaction_description direct_debit department)) { + foreach my $name (qw(id transdate duedate invnumber ordnumber cusordnumber donumber deliverydate name datepaid employee shippingpoint shipvia transaction_description direct_debit department)) { my $sortdir = $form->{sort} eq $name ? 1 - $form->{sortdir} : $form->{sortdir}; $column_defs{$name}->{link} = $href . "&sort=$name&sortdir=$sortdir"; } @@ -1145,6 +1160,13 @@ sub ar_transactions { if ($form->{closed}) { push @options, $locale->text('Closed'); } + if ($form->{shipvia}) { + push @options, $locale->text('Ship via') . " : $form->{shipvia}"; + } + if ($form->{shippingpoint}) { + push @options, $locale->text('Shipping Point') . " : $form->{shippingpoint}"; + } + $form->{ALL_PRINTERS} = SL::DB::Manager::Printer->get_all_sorted; @@ -1184,12 +1206,23 @@ sub ar_transactions { my $is_storno = $ar->{storno} && $ar->{storno_id}; my $has_storno = $ar->{storno} && !$ar->{storno_id}; - $ar->{type} = - $has_storno ? $locale->text("Invoice with Storno (abbreviation)") : - $is_storno ? $locale->text("Storno (one letter abbreviation)") : - $ar->{amount} < 0 ? $locale->text("Credit note (one letter abbreviation)") : - $ar->{invoice} ? $locale->text("Invoice (one letter abbreviation)") : - $locale->text("AR Transaction (abbreviation)"); + if ($ar->{type} eq 'invoice_for_advance_payment') { + $ar->{type} = + $has_storno ? $locale->text("Invoice for Advance Payment with Storno (abbreviation)") : + $is_storno ? $locale->text("Storno (one letter abbreviation)") : + $locale->text("Invoice for Advance Payment (one letter abbreviation)"); + + } elsif ($ar->{type} eq 'final_invoice') { + $ar->{type} = t8('Final Invoice (one letter abbreviation)'); + + } else { + $ar->{type} = + $has_storno ? $locale->text("Invoice with Storno (abbreviation)") : + $is_storno ? $locale->text("Storno (one letter abbreviation)") : + $ar->{amount} < 0 ? $locale->text("Credit note (one letter abbreviation)") : + $ar->{invoice} ? $locale->text("Invoice (one letter abbreviation)") : + $locale->text("AR Transaction (abbreviation)"); + } map { $ar->{$_} = $form->format_amount(\%myconfig, $ar->{$_}, 2) } qw(netamount tax amount paid due marge_total marge_percent); @@ -1205,7 +1238,7 @@ sub ar_transactions { } $row->{invnumber}->{link} = build_std_url("script=" . ($ar->{invoice} ? 'is.pl' : 'ar.pl'), 'action=edit') - . "&id=" . E($ar->{id}) . "&callback=${callback}"; + . "&id=" . E($ar->{id}) . "&callback=${callback}" unless $params{want_binary_pdf}; $row->{ids} = { raw_data => SL::Presenter::Tag::checkbox_tag("id[]", value => $ar->{id}, "data-checkall" => 1), @@ -1229,6 +1262,11 @@ sub ar_transactions { $report->add_separator(); $report->add_data(create_subtotal_row(\%totals, \@columns, \%column_alignment, \@subtotal_columns, 'listtotal')); + if ($params{want_binary_pdf}) { + $report->generate_with_headers(); + return $report->generate_pdf_content(want_binary_pdf => 1); + } + $::request->layout->add_javascripts('kivi.MassInvoiceCreatePrint.js'); setup_ar_transactions_action_bar(num_rows => scalar(@{ $form->{AR} }));