X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;ds=sidebyside;f=bin%2Fmozilla%2Fbp.pl;h=439709ebcd87f061a2f9c37376fb81b58cc095b3;hb=804b937949f8fb4488f8a9db0f3f7ac5aa2860c3;hp=8f34b19f6e144d5e0d21014f5a081a0e781e10f0;hpb=5bc7284448a240bfebdaba20a65f845708665bd6;p=kivitendo-erp.git diff --git a/bin/mozilla/bp.pl b/bin/mozilla/bp.pl index 8f34b19f6..439709ebc 100644 --- a/bin/mozilla/bp.pl +++ b/bin/mozilla/bp.pl @@ -24,7 +24,8 @@ # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +# MA 02110-1335, USA. #====================================================================== # # Batch printing @@ -32,6 +33,7 @@ #====================================================================== use SL::BP; +use SL::Locale::String qw(t8); use Data::Dumper; use List::Util qw(first); @@ -44,23 +46,22 @@ use strict; # end of main sub assert_bp_access { - my $form = $main::form; - my %access_map = ( 'invoice' => 'invoice_edit', 'sales_order' => 'sales_order_edit', 'sales_quotation' => 'sales_quotation_edit', 'purchase_order' => 'purchase_order_edit', + 'packing_list' => 'sales_delivery_order_edit|purchase_delivery_order_edit', 'request_quotation' => 'request_quotation_edit', 'check' => 'cash', 'receipt' => 'cash', ); - if ($form->{type} && $access_map{$form->{type}}) { - $main::auth->assert($access_map{$form->{type}}); + if ($::form->{type} && $access_map{$::form->{type}}) { + $::auth->assert($access_map{$::form->{type}}); } else { - $main::auth->assert('DOES_NOT_EXIST'); + $::auth->assert('DOES_NOT_EXIST'); } } @@ -69,15 +70,13 @@ sub search { assert_bp_access(); - # setup customer/vendor selection - BP->get_vc(\%::myconfig, $::form); - my %label = ( invoice => { title => $::locale->text('Sales Invoices'), invnumber => 1, ordnumber => 1 }, sales_order => { title => $::locale->text('Sales Orders'), ordnumber => 1, }, purchase_order => { title => $::locale->text('Purchase Orders'), ordnumber => 1, }, sales_quotation => { title => $::locale->text('Quotations'), quonumber => 1, }, request_quotation => { title => $::locale->text('RFQs'), quonumber => 1, }, + packing_list => { title => $::locale->text('Delivery Orders'), donumber => 1, ordnumber => 1 }, check => { title => $::locale->text('Checks'), chknumber => 1, }, receipt => { title => $::locale->text('Receipts'), rctnumber => 1, }, ); @@ -85,6 +84,8 @@ sub search { my $bp_accounts = $::form->{type} =~ /check|receipt/ && BP->payment_accounts(\%::myconfig, $::form); + setup_bp_search_action_bar(); + $::form->header; print $::form->parse_html_template('bp/search', { label => \%label, @@ -97,116 +98,51 @@ sub search { } sub remove { - $main::lxdebug->enter_sub(); - - my $form = $main::form; - my $locale = $main::locale; - - assert_bp_access(); - - my $selected = 0; - - for my $i (1 .. $form->{rowcount}) { - if ($form->{"checked_$i"}) { - $selected = 1; - last; - } - } - - $form->error('Nothing selected!') unless $selected; - - $form->{title} = $locale->text('Confirm!'); - - $form->header; - - print qq| - - -
-|; - - map { delete $form->{$_} } qw(action header); - - foreach my $key (keys %$form) { - next if (($key eq 'login') || ($key eq 'password') || ('' ne ref $form->{$key})); - print qq|\n|; - } - - print qq| -

$form->{title}

- -

| - . $locale->text( - 'Are you sure you want to remove the marked entries from the queue?') - . qq|

- - -
- - - -|; - - $main::lxdebug->leave_sub(); -} - -sub yes { - $main::lxdebug->enter_sub(); - - my $form = $main::form; - my %myconfig = %main::myconfig; - my $locale = $main::locale; - + $::lxdebug->enter_sub; assert_bp_access(); - $form->info($locale->text('Removing marked entries from queue ...')); - $form->{callback} .= "&header=1" if $form->{callback}; + $::form->info($::locale->text('Removing marked entries from queue ...')); + $::form->{callback} .= "&header=1" if $::form->{callback}; - $form->redirect($locale->text('Removed spoolfiles!')) - if (BP->delete_spool(\%myconfig, \%$form)); - $form->error($locale->text('Cannot remove files!')); + $::form->redirect($::locale->text('Removed spoolfiles!')) + if BP->delete_spool(\%::myconfig, $::form); + $::form->error($::locale->text('Cannot remove files!')); - $main::lxdebug->leave_sub(); + $::lxdebug->leave_sub; } sub print { - $main::lxdebug->enter_sub(); - - my $form = $main::form; - my %myconfig = %main::myconfig; - my $locale = $main::locale; - + $::lxdebug->enter_sub; assert_bp_access(); - $form->get_lists(printers => 'ALL_PRINTERS'); + $::form->get_lists(printers => 'ALL_PRINTERS'); # use the command stored in the databse or fall back to $myconfig{printer} my $selected_printer = first { $_ } map ({ $_ ->{printer_command} } - grep { $_->{id} eq $form->{printer} } - @{ $form->{ALL_PRINTERS} }), - $myconfig{printer}; - - if ($form->{callback}) { - map { $form->{callback} .= "&checked_$_=1" if $form->{"checked_$_"} } - (1 .. $form->{rowcount}); - $form->{callback} .= "&header=1"; + grep { $_->{id} eq $::form->{printer} } + @{ $::form->{ALL_PRINTERS} }), + $::myconfig{printer}; + + if ($::form->{callback}) { + map { $::form->{callback} .= "&checked_$_=1" if $::form->{"checked_$_"} } + (1 .. $::form->{rowcount}); + $::form->{callback} .= "&header=1"; } - for my $i (1 .. $form->{rowcount}) { - if ($form->{"checked_$i"}) { - $form->info($locale->text('Printing ... ')); + for my $i (1 .. $::form->{rowcount}) { + if ($::form->{"checked_$i"}) { + $::form->info($::locale->text('Printing ... ')); - if (BP->print_spool(\%myconfig, \%$form, "| $selected_printer")) { - print $locale->text('done'); - $form->redirect($locale->text('Marked entries printed!')); + if (BP->print_spool(\%::myconfig, $::form, "| $selected_printer")) { + print $::locale->text('done'); + $::form->redirect($::locale->text('Marked entries printed!')); } - ::end_of_request(); + $::dispatcher->end_request; } } - $form->error('Nothing selected!'); + $::form->error('Nothing selected!'); - $main::lxdebug->leave_sub(); + $::lxdebug->leave_sub; } sub list_spool { @@ -228,12 +164,13 @@ sub list_spool { invnumber => sub { $::locale->text('Invoice Number') . " : $::form->{invnumber}" }, ordnumber => sub { $::locale->text('Order Number') . " : $::form->{ordnumber}" }, quonumber => sub { $::locale->text('Quotation Number') . " : $::form->{quonumber}" }, + donumber => sub { $::locale->text('Delivery Order Number') . " : $::form->{donumber}" }, transdatefrom => sub { $::locale->text('From') . " " . $::locale->date(\%::myconfig, $::form->{transdatefrom}, 1) }, transdateto => sub { $::locale->text('To') . " " . $::locale->date(\%::myconfig, $::form->{transdateto}, 1) }, ); my @options; - for my $key ($::form->{vc}, qw(account invnumber ordnumber quonumber transdatefrom transdateto)) { + for my $key ($::form->{vc}, qw(account invnumber ordnumber quonumber donumber transdatefrom transdateto)) { next unless $::form->{$key}; push @href_options, $key; push @options, $option_texts{$key} ? $option_texts{$key}->() : ''; @@ -249,9 +186,10 @@ sub list_spool { $::form->get_lists(printers => "ALL_PRINTERS"); + setup_bp_list_spool_action_bar(); + $::form->header; print $::form->parse_html_template('bp/list_spool', { - spool => $::lx_office_conf{paths}->{spool}, href => build_std_url('bp.pl', @href_options), is_invoice => scalar ($::form->{type} =~ /^invoice$/), is_order => scalar ($::form->{type} =~ /_order$/), @@ -262,18 +200,36 @@ sub list_spool { $::lxdebug->leave_sub; } -sub select_all { - $main::lxdebug->enter_sub(); - - my $form = $main::form; - - assert_bp_access(); - - map { $form->{"checked_$_"} = 1 } (1 .. $form->{rowcount}); - &list_spool; - - $main::lxdebug->leave_sub(); +sub setup_bp_search_action_bar { + my %params = @_; + + for my $bar ($::request->layout->get('actionbar')) { + $bar->add( + action => [ + t8('Show'), + submit => [ '#form', { action => "list_spool" } ], + accesskey => 'enter', + ], + ); + } } -sub continue { call_sub($main::form->{"nextsub"}); } - +sub setup_bp_list_spool_action_bar { + my %params = @_; + + for my $bar ($::request->layout->get('actionbar')) { + $bar->add( + action => [ + t8('Remove'), + submit => [ '#form', { action => "remove" } ], + checks => [ [ 'kivi.check_if_entries_selected', '.check_all' ] ], + confirm => t8('Are you sure you want to remove the marked entries from the queue?'), + ], + action => [ + t8('Print'), + submit => [ '#form', { action => "print" } ], + checks => [ [ 'kivi.check_if_entries_selected', '.check_all' ] ], + ], + ); + } +}