X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=bin%2Fmozilla%2Fdo.pl;h=d18378aea4d4a09cc5409e0542ad570e4af38fb1;hb=24127d6f50fadaafaf676423cfab04556271db89;hp=cc04f5789336cf30678594d476e0ba46019ba3f2;hpb=7b01d81091fcd5e005a313a51e3c496e9d7d779d;p=kivitendo-erp.git diff --git a/bin/mozilla/do.pl b/bin/mozilla/do.pl index cc04f5789..d18378aea 100644 --- a/bin/mozilla/do.pl +++ b/bin/mozilla/do.pl @@ -40,7 +40,6 @@ use SL::IR; use SL::IS; use SL::ReportGenerator; use SL::WH; - require "bin/mozilla/arap.pl"; require "bin/mozilla/common.pl"; require "bin/mozilla/invoice_io.pl"; @@ -174,8 +173,8 @@ sub order_links { DO->retrieve('vc' => $form->{vc}, 'ids' => $form->{id}); - $form->backup_vars(qw(payment_id language_id taxzone_id salesman_id taxincluded cp_id intnotes)); - $form->{shipto} = 1 if $form->{id}; + $form->backup_vars(qw(payment_id language_id taxzone_id salesman_id taxincluded cp_id intnotes currency)); + $form->{shipto} = 1 if $form->{id} || $form->{convert_from_oe_ids}; # get customer / vendor if ($form->{vc} eq 'vendor') { @@ -187,6 +186,7 @@ sub order_links { } $form->restore_vars(qw(payment_id language_id taxzone_id intnotes cp_id)); + $form->restore_vars(qw(currency)) if ($form->{id} || $form->{convert_from_oe_ids}); $form->restore_vars(qw(taxincluded)) if $form->{id}; $form->restore_vars(qw(salesman_id)) if $editing; @@ -266,21 +266,32 @@ sub form_header { if ($form->{"project_id_$_"}); } (1..$form->{"rowcount"})); my $vc = $form->{vc} eq "customer" ? "customers" : "vendors"; - $form->get_lists("contacts" => "ALL_CONTACTS", - "shipto" => "ALL_SHIPTO", - "projects" => { + $form->get_lists("projects" => { "key" => "ALL_PROJECTS", "all" => 0, "old_id" => \@old_project_ids }, - "employees" => "ALL_EMPLOYEES", - "salesmen" => "ALL_SALESMEN", $vc => "ALL_VC", "price_factors" => "ALL_PRICE_FACTORS", "departments" => "ALL_DEPARTMENTS", "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 => [ + 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 => [ + or => [ + cp_cv_id => $::form->{"$::form->{vc}_id"} * 1, + and => [ + cp_cv_id => undef, + cp_id => $::form->{cp_id} * 1 + ] + ] + ]); + map { $_->{value} = "$_->{description}--$_->{id}" } @{ $form->{ALL_DEPARTMENTS} }; map { $_->{value} = "$_->{name}--$_->{id}" } @{ $form->{ALL_VC} }; @@ -301,8 +312,17 @@ sub form_header { $form->header(); # Fix für Bug 1082 Erwartet wird: 'abteilungsNAME--abteilungsID' - $form->{department} .= '--' . $form->{department_id}; - + # und Erweiterung für Bug 1760: + # Das war leider nur ein Teil-Fix, da das Verhalten den 'Erneuern'-Knopf + # nicht überlebt. Konsequent jetzt auf L umgestellt + # $ perldoc SL::Template::Plugin::L + # Daher entsprechend nur die Anpassung in form_header + # und in DO.pm gemacht. 4 Testfälle: + # department_id speichern | i.O. + # department_id lesen | i.O. + # department leer überlebt erneuern | i.O. + # department nicht leer überlebt erneuern | i.O. + # $main::lxdebug->message(0, 'ABTEILUNGS ID in form?' . $form->{department_id}); print $form->parse_html_template('do/form_header'); $main::lxdebug->leave_sub(); @@ -431,9 +451,8 @@ sub search { $form->get_lists("projects" => { "key" => "ALL_PROJECTS", "all" => 1 }, - "employees" => "ALL_EMPLOYEES", - "salesmen" => "ALL_SALESMEN", "$form->{vc}s" => "ALL_VC"); + $form->{ALL_EMPLOYEES} = SL::DB::Manager::Employee->get_all(query => [ deleted => 0 ]); $form->{SHOW_VC_DROP_DOWN} = $myconfig{vclimit} > scalar @{ $form->{ALL_VC} }; $form->{jsscript} = 1; @@ -468,7 +487,7 @@ sub orders { ids transdate id donumber ordnumber - name employee + name employee salesman shipvia globalprojectnumber transaction_description open delivered @@ -497,6 +516,7 @@ sub orders { 'ordnumber' => { 'text' => $locale->text('Order'), }, 'name' => { 'text' => $form->{vc} eq 'customer' ? $locale->text('Customer') : $locale->text('Vendor'), }, 'employee' => { 'text' => $locale->text('Employee'), }, + 'salesman' => { 'text' => $locale->text('Salesman'), }, 'shipvia' => { 'text' => $locale->text('Ship via'), }, 'globalprojectnumber' => { 'text' => $locale->text('Project Number'), }, 'transaction_description' => { 'text' => $locale->text('Transaction description'), }, @@ -504,7 +524,7 @@ sub orders { 'delivered' => { 'text' => $locale->text('Delivered'), }, ); - foreach my $name (qw(id transdate donumber ordnumber name employee shipvia transaction_description)) { + foreach my $name (qw(id transdate donumber ordnumber name employee salesman shipvia transaction_description)) { my $sortdir = $form->{sort} eq $name ? 1 - $form->{sortdir} : $form->{sortdir}; $column_defs{$name}->{link} = $href . "&sort=$name&sortdir=$sortdir"; } @@ -772,6 +792,7 @@ sub invoice { require "bin/mozilla/$form->{script}"; my $currency = $form->{currency}; + $form->{shipto} = 1 if $form->{convert_from_do_ids}; invoice_links(); if ($form->{ordnumber}) { @@ -818,6 +839,13 @@ sub invoice { } + # show pricegroup in newly loaded invoice when creating invoice from delivery order + for my $i (1 .. $form->{rowcount}) { + $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}; + display_form(); $main::lxdebug->leave_sub(); @@ -916,6 +944,14 @@ sub invoice_multi { invoice_links(); prepare_invoice(); + + # show pricegroup in newly loaded invoice when creating invoice from delivery order + for my $i (1 .. $form->{rowcount}) { + $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}; + display_form(); $main::lxdebug->leave_sub();