X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=bin%2Fmozilla%2Foe.pl;h=cb7402aa338238d42fd7ed387858d88595d613fc;hb=1163cee7d5cfe9355a9d231ac544ce0943623d77;hp=65782695b288537e60d6d5a5bc934b1ab2c84dea;hpb=747bdb8004c380b2580deb237a4ee956e411fea5;p=kivitendo-erp.git diff --git a/bin/mozilla/oe.pl b/bin/mozilla/oe.pl index 65782695b..cb7402aa3 100644 --- a/bin/mozilla/oe.pl +++ b/bin/mozilla/oe.pl @@ -38,6 +38,7 @@ use SL::FU; use SL::OE; use SL::IR; use SL::IS; +use SL::MoreCommon qw(ary_diff); use SL::PE; use SL::ReportGenerator; use List::Util qw(max reduce sum); @@ -238,7 +239,7 @@ sub order_links { $form->{"old$form->{vc}"} = $form->{$form->{vc}}; - if ($form->{"old$form->{vc}"} !~ m/--\d+$/ && $form->{"$form->{vc_}id}"}) { + if ($form->{"old$form->{vc}"} !~ m/--\d+$/ && $form->{"$form->{vc}_id"}) { $form->{"old$form->{vc}"} .= qq|--$form->{"$form->{vc}_id"}| } @@ -526,9 +527,17 @@ sub update { } else { $sellprice = $form->parse_amount(\%myconfig, $form->{"sellprice_$i"}); - $form->{"discount_$i"} = 0 if $form->{"not_discountable_$i"}; + # hier werden parts (Artikeleigenschaften) aus item_list (retrieve_item aus IS.pm) + # (item wahrscheinlich synonym für parts) entsprechend in die form geschrieben ... + + # Wäre dieses Mapping nicht besser in retrieve_items aufgehoben? + #(Eine Funktion bekommt Daten -> ARBEIT -> Rückgabe DATEN) + # Das quot sieht doch auch nach Überarbeitung aus ... (hmm retrieve_items gibt es in IS und IR) map { $form->{item_list}[$i]{$_} =~ s/\"/"/g } qw(partnumber description unit); map { $form->{"${_}_$i"} = $form->{item_list}[0]{$_} } keys %{ $form->{item_list}[0] }; + + # ... deswegen muss die prüfung, ob es sich um einen nicht rabattierfähigen artikel handelt später erfolgen (Bug 1136) + $form->{"discount_$i"} = 0 if $form->{"not_discountable_$i"}; $form->{payment_id} = $form->{"part_payment_id_$i"} if $form->{"part_payment_id_$i"} ne ""; $form->{"marge_price_factor_$i"} = $form->{item_list}->[0]->{price_factor}; @@ -634,7 +643,7 @@ sub search { $form->header(); - print $form->parse_html_template('oe/search'); + print $form->parse_html_template('oe/search', { %myconfig }); $lxdebug->leave_sub(); } @@ -664,7 +673,7 @@ sub orders { $ordnumber = ($form->{type} =~ /_order$/) ? "ordnumber" : "quonumber"; - ($form->{ $form->{vc} }, $form->{"${form->{vc}}_id"}) = split(/--/, $form->{ $form->{vc} }); + ($form->{ $form->{vc} }, $form->{"$form->{vc}_id"}) = split(/--/, $form->{ $form->{vc} }); report_generator_set_default_sort('transdate', 1); @@ -681,7 +690,8 @@ sub orders { "salesman", "shipvia", "globalprojectnumber", "transaction_description", "open", - "delivered", "marge_total", "marge_percent" + "delivered", "marge_total", "marge_percent", + "country", "ustid", ); # only show checkboxes if gotten here via sales_order form. @@ -742,7 +752,9 @@ sub orders { 'open' => { 'text' => $locale->text('Open'), }, 'delivered' => { 'text' => $locale->text('Delivered'), }, 'marge_total' => { 'text' => $locale->text('Ertrag'), }, - 'marge_percent' => { 'text' => $locale->text('Ertrag prozentual'), } + 'marge_percent' => { 'text' => $locale->text('Ertrag prozentual'), }, + 'country' => { 'text' => $locale->text('Country'), }, + 'ustid' => { 'text' => $locale->text('USt-IdNr.'), }, ); foreach my $name (qw(id transdate reqdate quonumber ordnumber name employee salesman shipvia transaction_description)) { @@ -1089,8 +1101,8 @@ sub save { $form->{simple_save} = 1; if(!$form->{print_and_save}) { - set_headings("edit"); - &update; + delete @{$form}{ary_diff([keys %{ $form }], [qw(login stylesheet id script type)])}; + edit(); exit; } $lxdebug->leave_sub(); @@ -1179,8 +1191,9 @@ sub invoice { check_oe_access(); $auth->assert($form->{type} eq 'purchase_order' || $form->{type} eq 'request_quotation' ? 'vendor_invoice_edit' : 'invoice_edit'); - $form->{old_employee_id} = $form->{employee_id}; $form->{old_salesman_id} = $form->{salesman_id}; + $form->get_employee(); + if ($form->{type} =~ /_order$/) { @@ -1273,7 +1286,7 @@ sub invoice { require "bin/mozilla/$form->{script}"; - map { $form->{"select$_"} = "" } ($form->{vc}, currency); + map { $form->{"select$_"} = "" } ($form->{vc}, "currency"); $currency = $form->{currency}; &invoice_links; @@ -1474,8 +1487,7 @@ sub save_as_new { check_oe_access(); $form->{saveasnew} = 1; - $form->{closed} = 0; - map { delete $form->{$_} } qw(printed emailed queued); + map { delete $form->{$_} } qw(printed emailed queued delivered closed); # Let Lx-Office assign a new order number if the user hasn't changed the # previous one. If it has been changed manually then use it as-is. @@ -1487,6 +1499,17 @@ sub save_as_new { delete($form->{$idx}); } + # clear reqdate unless changed + if ($form->{reqdate} && $form->{id}) { + my $saved_order = OE->retrieve_simple(id => $form->{id}); + if ($saved_order && $saved_order->{reqdate} eq $form->{reqdate}) { + delete $form->{reqdate}; + } + } + + # update employee + $form->get_employee(); + &save; $lxdebug->leave_sub(); @@ -1566,6 +1589,8 @@ sub purchase_order { $form->{vc} = "vendor"; $form->{type} = "purchase_order"; + $form->get_employee(); + &poso; $lxdebug->leave_sub(); @@ -1587,6 +1612,8 @@ sub sales_order { $form->{vc} = "customer"; $form->{type} = "sales_order"; + $form->get_employee(); + &poso; $lxdebug->leave_sub(); @@ -1655,8 +1682,11 @@ sub delivery_order { $form->{type} = 'purchase_delivery_order'; } + $form->get_employee(); + require "bin/mozilla/do.pl"; + $form->{script} = 'do.pl'; $form->{cp_id} *= 1; $form->{convert_from_oe_ids} = $form->{id}; $form->{transdate} = $form->current_date(\%myconfig);