Revision d814a525
Von Martin Helmling mh@waldpark.octosoft.eu vor mehr als 8 Jahren hinzugefügt
bin/mozilla/io.pl | ||
---|---|---|
319 | 319 |
$ship_qty *= $all_units->{$form->{"partunit_$i"}}->{factor}; |
320 | 320 |
$ship_qty /= ( $all_units->{$form->{"unit_$i"}}->{factor} || 1 ); |
321 | 321 |
|
322 |
$column_data{ship} = $form->format_amount(\%myconfig, $form->round_amount($ship_qty, 2) * 1) . ' ' . $form->{"unit_$i"}; |
|
322 |
$column_data{ship} = $form->format_amount(\%myconfig, $form->round_amount($ship_qty, 2) * 1) . ' ' . $form->{"unit_$i"} |
|
323 |
. $cgi->hidden(-name => "ship_$i", -value => $form->format_amount(\%myconfig, $form->{"ship_$i"}, $qty_dec)); |
|
323 | 324 |
|
324 | 325 |
my $ship_missing_qty = $form->{"qty_$i"} - $ship_qty; |
325 | 326 |
my $ship_missing_amount = $form->round_amount($ship_missing_qty * $form->{"sellprice_$i"} * (100 - $form->{"discount_$i"}) / 100 / $price_factor, 2); |
... | ... | |
1770 | 1771 |
|
1771 | 1772 |
my $all_units = AM->retrieve_all_units(); |
1772 | 1773 |
|
1773 |
my %ship = DO->get_shipped_qty('type' => ($form->{type} eq 'purchase_order') ? 'purchase' : 'sales', |
|
1774 |
'oe_id' => $form->{id},); |
|
1774 |
my %ship = DO->get_shipped_qty('oe_id' => $form->{id}); |
|
1775 | 1775 |
|
1776 | 1776 |
foreach my $i (1..$form->{rowcount}) { |
1777 | 1777 |
next unless ($form->{"id_${i}"}); |
1778 | 1778 |
|
1779 | 1779 |
$form->{"ship_$i"} = 0; |
1780 | 1780 |
|
1781 |
my $ship_entry = $ship{$form->{"id_$i"}};
|
|
1781 |
my $ship_entry = $ship{$i};
|
|
1782 | 1782 |
|
1783 |
next if (!$ship_entry || ($ship_entry->{qty} <= 0)); |
|
1783 |
next if (!$ship_entry || ($ship_entry->{qty_ordered} <= 0));
|
|
1784 | 1784 |
|
1785 |
my $rowqty = |
|
1786 |
($form->{simple_save} ? $form->{"qty_$i"} : $form->parse_amount(\%myconfig, $form->{"qty_$i"})) |
|
1787 |
* $all_units->{$form->{"unit_$i"}}->{factor} |
|
1788 |
/ $all_units->{$form->{"partunit_$i"}}->{factor}; |
|
1789 |
|
|
1790 |
$form->{"ship_$i"} = min($rowqty, $ship_entry->{qty}); |
|
1791 |
$ship_entry->{qty} -= $form->{"ship_$i"}; |
|
1792 |
} |
|
1793 |
|
|
1794 |
foreach my $i (1..$form->{rowcount}) { |
|
1795 |
next unless ($form->{"id_${i}"}); |
|
1796 |
|
|
1797 |
my $ship_entry = $ship{$form->{"id_$i"}}; |
|
1798 |
|
|
1799 |
next if (!$ship_entry || ($ship_entry->{qty} <= 0.01)); |
|
1800 |
|
|
1801 |
$form->{"ship_$i"} += $ship_entry->{qty}; |
|
1802 |
$ship_entry->{qty} = 0; |
|
1785 |
my $rowqty = $ship_entry->{qty_ordered} - $ship_entry->{qty_notdelivered}; |
|
1786 |
$rowqty *= $all_units->{$form->{"unit_$i"}}->{factor} / |
|
1787 |
$all_units->{$form->{"partunit_$i"}}->{factor} if !$form->{simple_save}; |
|
1788 |
$form->{"ship_$i"} = $rowqty; |
|
1803 | 1789 |
} |
1804 | 1790 |
|
1805 | 1791 |
$main::lxdebug->leave_sub(); |
Auch abrufbar als: Unified diff
Gelieferte Mengen über Recordlinks ermitteln
Die gelieferte Menge pro Position wird über die Recordlinks der Items
zwischen Auftrag und Lieferschein(en) ermittelt.
So werden auch gleiche Artikel auf unterschiedlichen Positionen getrennt behandelt.
Ebenso ob ein Auftrag 'delivered' ist, d.h. ob alle Mengen vollständig in Lieferscheinen erfasst sind.
Für nachträglich hinzugefügte Lieferscheine oder Lieferscheine ohne Item-Recodlinks wird ein
Fallback-Verfahren durchgeführt, das beginnend von der ersten Auftragsposition
versucht die Artikel in den Lieferscheinen zuzuordnen.