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;
}
# /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();
}
my ($callback, $href, @columns);
+ my %params = @_;
report_generator_set_default_sort('transdate', 1);
AR->ar_transactions(\%myconfig, \%$form);
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' },
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;
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);
}
$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),
$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} }));