Revision e4070a74
Von Sven Schöling vor fast 11 Jahren hinzugefügt
bin/mozilla/do.pl | ||
---|---|---|
38 | 38 |
use SL::DO; |
39 | 39 |
use SL::IR; |
40 | 40 |
use SL::IS; |
41 |
use SL::MoreCommon qw(ary_diff); |
|
41 | 42 |
use SL::ReportGenerator; |
42 | 43 |
use SL::WH; |
43 | 44 |
require "bin/mozilla/arap.pl"; |
... | ... | |
415 | 416 |
$form->{"sellprice_$i"} = $form->format_amount(\%myconfig, $form->{"sellprice_$i"} * (1 - $form->{tradediscount})); |
416 | 417 |
$form->{"lastcost_$i"} = $form->format_amount(\%myconfig, $form->{"lastcost_$i"}); |
417 | 418 |
$form->{"qty_$i"} = $form->format_amount(\%myconfig, $form->{"qty_$i"}); |
419 |
|
|
420 |
# get pricegroups for parts |
|
421 |
IS->get_pricegroups_for_parts(\%myconfig, \%$form); |
|
422 |
|
|
423 |
# build up html code for prices_$i |
|
424 |
&set_pricegroup($i); |
|
418 | 425 |
} |
419 | 426 |
|
420 | 427 |
display_form(); |
... | ... | |
687 | 694 |
|
688 | 695 |
$form->{simple_save} = 1; |
689 | 696 |
if (!$params{no_redirect} && !$form->{print_and_save}) { |
690 |
set_headings("edit");
|
|
691 |
update();
|
|
697 |
delete @{$form}{ary_diff([keys %{ $form }], [qw(login id script type cursor_fokus)])};
|
|
698 |
edit();
|
|
692 | 699 |
::end_of_request(); |
693 | 700 |
} |
694 | 701 |
$main::lxdebug->leave_sub(); |
... | ... | |
829 | 836 |
$form->{"sellprice_pg_$i"} = join '--', $form->{"sellprice_$i"}, $form->{"pricegroup_id_$i"}; |
830 | 837 |
} |
831 | 838 |
IS->get_pricegroups_for_parts(\%myconfig, \%$form); |
832 |
set_pricegroup($_) for 1 .. $form->{rowcount};
|
|
839 |
set_pricegroup($form->{rowcount});
|
|
833 | 840 |
|
834 | 841 |
display_form(); |
835 | 842 |
|
bin/mozilla/io.pl | ||
---|---|---|
421 | 421 |
|
422 | 422 |
if ($is_delivery_order) { |
423 | 423 |
map { $form->{"${_}_${i}"} = $form->format_amount(\%myconfig, $form->{"${_}_${i}"}) } qw(sellprice discount lastcost); |
424 |
push @hidden_vars, qw(sellprice discount not_discountable price_factor_id lastcost pricegroup_id); |
|
424 |
$form->{"pricegroup_id_$i"} = $form->{"pricegroup_old_$i"} if $form->{"pricegroup_old_$i"}; |
|
425 |
$form->{"sellprice_pg_$i"} = $form->{"hidden_prices_$i"} if $form->{"hidden_prices_$i"}; |
|
426 |
push @hidden_vars, grep { defined $form->{"${_}_${i}"} } qw(sellprice discount not_discountable price_factor_id lastcost pricegroup_id sellprice_pg); |
|
425 | 427 |
push @hidden_vars, "stock_${stock_in_out}_sum_qty", "stock_${stock_in_out}"; |
426 | 428 |
} |
427 | 429 |
|
... | ... | |
483 | 485 |
$form->{"sellprice_$j"} = $item->{price} if $item->{selected} && $item->{pricegroup_id}; |
484 | 486 |
$form->{"price_new_$j"} = $form->{"sellprice_$j"} if $item->{selected} || !$item->{pricegroup_id}; |
485 | 487 |
} |
488 |
|
|
489 |
# save hidden pricegroups for delivery_orders |
|
490 |
next unless my @selected_prices = grep { $_->{selected} } @{ $form->{PRICES}{$j} }; |
|
491 |
$form->{"hidden_prices_$j"} = $selected_prices[-1]{price} . "--" . $selected_prices[-1]{pricegroup_id}; |
|
486 | 492 |
} |
487 | 493 |
$main::lxdebug->leave_sub(); |
488 | 494 |
} |
Auch abrufbar als: Unified diff
Versteckte Felder in Lieferscheinen besser beibehalten
behebt #2131.
Im Bug gemeldet wurden Preisgruppen und das taxincluded Flag, die bei
einem frisch erstellten Lieferschein entweder garnicht gesetzt wurden,
oder beim übertragen in Rechnungen verloren gingen.
Dabei sind eine ganze Reihe von Bugs eingeschlagen.
1. Hat Speichern bei lieferscheinen noch kein redirect auf edit gemacht,
sondern hat noch direkt display_form aufgerufen. Ich habe das wie in oe
geändert.
2. wurden Preisgruppen garnicht gesetzt
3. ...und gehen dann trotzdem kaputt, weil der Algorithmus sich die
Infos aus dem Dropdown holt, das bei Lieferscheinen nicht vorhanden ist.
4. ...aber selbst das reicht nicht aus, weil die hiddens Variablen
autovivifien, die hinterher benutzt werden, um rauszukriegen ob die
preisgruppen automatisch gesetzt werden müssen oder schonmal angefasst
wurden. Ich habe es so geändert, dass nicht definierte Variablen nicht
mehr in den hiddens landen.
Die gleichen Änderungen beheben das auch für taxincluded, und (zu
hoffen) alle anderen Felder.