Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision d814a525

Von Martin Helmling mh@waldpark.octosoft.eu vor mehr als 8 Jahren hinzugefügt

  • ID d814a525b9f2fbc0bfae5591201d9185d6b1e8f4
  • Vorgänger b6865605
  • Nachfolger bed19453

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.

Unterschiede anzeigen:

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