X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=bin%2Fmozilla%2Fdo.pl;h=67f2740c5966665c57b7e7841b49fd35d5e48e82;hb=293c7b64c018c0009f122fb742365099c72c72fa;hp=b722e20814e5e62a81690f47a3cfa76330e6be8b;hpb=45f8b16a355e9b61bd8e0af2ba185009af8e9006;p=kivitendo-erp.git diff --git a/bin/mozilla/do.pl b/bin/mozilla/do.pl index b722e2081..67f2740c5 100644 --- a/bin/mozilla/do.pl +++ b/bin/mozilla/do.pl @@ -38,6 +38,7 @@ use SL::DB::DeliveryOrder; use SL::DO; use SL::IR; use SL::IS; +use SL::MoreCommon qw(ary_diff); use SL::ReportGenerator; use SL::WH; require "bin/mozilla/arap.pl"; @@ -270,12 +271,12 @@ sub form_header { "business_types" => "ALL_BUSINESS_TYPES", ); - $::form->{ALL_EMPLOYEES} = SL::DB::Manager::Employee->get_all(query => [ or => [ id => $::form->{employee_id}, deleted => 0 ] ]); - $::form->{ALL_SALESMEN} = SL::DB::Manager::Employee->get_all(query => [ or => [ id => $::form->{salesman_id}, deleted => 0 ] ]); - $::form->{ALL_SHIPTO} = SL::DB::Manager::Shipto->get_all(query => [ + $::form->{ALL_EMPLOYEES} = SL::DB::Manager::Employee->get_all_sorted(query => [ or => [ id => $::form->{employee_id}, deleted => 0 ] ]); + $::form->{ALL_SALESMEN} = SL::DB::Manager::Employee->get_all_sorted(query => [ or => [ id => $::form->{salesman_id}, deleted => 0 ] ]); + $::form->{ALL_SHIPTO} = SL::DB::Manager::Shipto->get_all_sorted(query => [ or => [ trans_id => $::form->{"$::form->{vc}_id"} * 1, and => [ shipto_id => $::form->{shipto_id} * 1, trans_id => undef ] ] ]); - $::form->{ALL_CONTACTS} = SL::DB::Manager::Contact->get_all(query => [ + $::form->{ALL_CONTACTS} = SL::DB::Manager::Contact->get_all_sorted(query => [ or => [ cp_cv_id => $::form->{"$::form->{vc}_id"} * 1, and => [ @@ -293,22 +294,24 @@ sub form_header { $form->{oldvcname} = $form->{"old$form->{vc}"}; $form->{oldvcname} =~ s/--.*//; - if ($form->{resubmit}) { - my $dispatch_to_popup = ''; - if ($form->{format} eq "html") { - $dispatch_to_popup .= "window.open('about:blank','Beleg'); document.do.target = 'Beleg';"; - } - # emulate click for resubmitting actions - $dispatch_to_popup .= "document.do.${_}.click(); " for grep { /^action_/ } keys %$form; + my $dispatch_to_popup = ''; + if ($form->{resubmit} && ($form->{format} eq "html")) { + $dispatch_to_popup = "window.open('about:blank','Beleg'); document.do.target = 'Beleg';"; $dispatch_to_popup .= "document.do.submit();"; - $::request->{layout}->add_javascripts_inline("\$(function(){$dispatch_to_popup})"); + } elsif ($form->{resubmit}) { + # emulate click for resubmitting actions + $dispatch_to_popup = "document.do.${_}.click(); " for grep { /^action_/ } keys %$form; } + $::request->{layout}->add_javascripts_inline("\$(function(){$dispatch_to_popup});"); + my $follow_up_vc = $form->{ $form->{vc} eq 'customer' ? 'customer' : 'vendor' }; $follow_up_vc =~ s/--\d*\s*$//; $form->{follow_up_trans_info} = $form->{donumber} .'('. $follow_up_vc .')'; + $::request->{layout}->use_javascript(map { "${_}.js" } qw(kivi.SalesPurchase ckeditor/ckeditor ckeditor/adapters/jquery)); + $form->header(); # Fix für Bug 1082 Erwartet wird: 'abteilungsNAME--abteilungsID' # und Erweiterung für Bug 1760: @@ -415,6 +418,12 @@ sub update_delivery_order { $form->{"sellprice_$i"} = $form->format_amount(\%myconfig, $form->{"sellprice_$i"} * (1 - $form->{tradediscount})); $form->{"lastcost_$i"} = $form->format_amount(\%myconfig, $form->{"lastcost_$i"}); $form->{"qty_$i"} = $form->format_amount(\%myconfig, $form->{"qty_$i"}); + + # get pricegroups for parts + IS->get_pricegroups_for_parts(\%myconfig, \%$form); + + # build up html code for prices_$i + &set_pricegroup($i); } display_form(); @@ -457,7 +466,7 @@ sub search { "all" => 1 }, "departments" => "ALL_DEPARTMENTS", "$form->{vc}s" => "ALL_VC"); - $form->{ALL_EMPLOYEES} = SL::DB::Manager::Employee->get_all(query => [ deleted => 0 ]); + $form->{ALL_EMPLOYEES} = SL::DB::Manager::Employee->get_all_sorted(query => [ deleted => 0 ]); $form->{SHOW_VC_DROP_DOWN} = $myconfig{vclimit} > scalar @{ $form->{ALL_VC} }; $form->{title} = $locale->text('Delivery Orders'); @@ -491,7 +500,7 @@ sub orders { my @columns = qw( ids transdate reqdate id donumber - ordnumber customernumber + ordnumber customernumber cusordnumber name employee salesman shipvia globalprojectnumber transaction_description department @@ -508,7 +517,7 @@ sub orders { my $report = SL::ReportGenerator->new(\%myconfig, $form); my @hidden_variables = map { "l_${_}" } @columns; - push @hidden_variables, $form->{vc}, qw(l_closed l_notdelivered open closed delivered notdelivered donumber ordnumber serialnumber + push @hidden_variables, $form->{vc}, qw(l_closed l_notdelivered open closed delivered notdelivered donumber ordnumber serialnumber cusordnumber transaction_description transdatefrom transdateto reqdatefrom reqdateto type vc employee_id salesman_id project_id); @@ -522,6 +531,7 @@ sub orders { 'donumber' => { 'text' => $locale->text('Delivery Order'), }, 'ordnumber' => { 'text' => $locale->text('Order'), }, 'customernumber' => { 'text' => $locale->text('Customer Number'), }, + 'cusordnumber' => { 'text' => $locale->text('Customer Order Number'), }, 'name' => { 'text' => $form->{vc} eq 'customer' ? $locale->text('Customer') : $locale->text('Vendor'), }, 'employee' => { 'text' => $locale->text('Employee'), }, 'salesman' => { 'text' => $locale->text('Salesman'), }, @@ -686,8 +696,8 @@ sub save { $form->{simple_save} = 1; if (!$params{no_redirect} && !$form->{print_and_save}) { - set_headings("edit"); - update(); + delete @{$form}{ary_diff([keys %{ $form }], [qw(login id script type cursor_fokus)])}; + edit(); ::end_of_request(); } $main::lxdebug->leave_sub(); @@ -765,6 +775,7 @@ sub invoice { } } map { $form->{"${_}_${i}"} = $form->parse_amount(\%myconfig, $form->{"${_}_${i}"}) if $form->{"${_}_${i}"} } qw(ship qty sellprice listprice lastcost basefactor); + $form->{"donumber_$i"} = $form->{donumber}; } $form->{type} = "invoice"; @@ -828,7 +839,7 @@ sub invoice { $form->{"sellprice_pg_$i"} = join '--', $form->{"sellprice_$i"}, $form->{"pricegroup_id_$i"}; } IS->get_pricegroups_for_parts(\%myconfig, \%$form); - set_pricegroup($_) for 1 .. $form->{rowcount}; + set_pricegroup($form->{rowcount}); display_form(); @@ -867,6 +878,8 @@ sub invoice_multi { # Hinweis: delete gibt den wert zurueck und loescht danach das element (nett und einfach) # $shell: perldoc perlunc; /delete EXPR $form->{donumber} = delete $form->{donumber_array}; + $form->{ordnumber} = delete $form->{ordnumber_array}; + $form->{cusordnumber} = delete $form->{cusordnumber_array}; $form->{deliverydate} = $form->{transdate}; $form->{transdate} = $form->current_date(\%myconfig); $form->{duedate} = $form->current_date(\%myconfig, $form->{invdate}, $form->{terms} * 1); @@ -1317,6 +1330,8 @@ sub transfer_in { $request->{parts_id} = $form->{"id_$i"}; $row_sum_base_qty += $request->{qty} * $units->{$request->{unit}}->{factor} / $base_unit_factor; + $request->{project_id} = $form->{"project_id_$i"} || $form->{globalproject_id}; + push @all_requests, $request; }