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);
$onload = ($form->{resubmit} && ($form->{format} eq "html")) ? "window.open('about:blank','Beleg'); document.oe.target = 'Beleg';document.oe.submit()"
: ($form->{resubmit}) ? "document.oe.submit()"
: ($creditwarning) ? "alert('$credittext')"
- : "focus()";
+ : "";
$onload .= qq|;setupDateFormat('|. $myconfig{dateformat} .qq|', '|. $locale->text("Falsches Datumsformat!") .qq|')|;
$onload .= qq|;setupPoints('|. $myconfig{numberformat} .qq|', '|. $locale->text("wrongformat") .qq|')|;
} 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};
"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.
'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)) {
$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 cursor_fokus)])};
+ edit();
exit;
}
$lxdebug->leave_sub();
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$/) {
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.
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();
$form->{vc} = "vendor";
$form->{type} = "purchase_order";
+ $form->get_employee();
+
&poso;
$lxdebug->leave_sub();
$form->{vc} = "customer";
$form->{type} = "sales_order";
+ $form->get_employee();
+
&poso;
$lxdebug->leave_sub();
$form->{type} = 'purchase_delivery_order';
}
+ $form->get_employee();
+
require "bin/mozilla/do.pl";
$form->{script} = 'do.pl';