Einkaufspreis bei Einkaufsauftrag aus Verkaufsauftrag
authorG. Richardson <information@richardson-bueren.de>
Sat, 6 Feb 2010 07:53:03 +0000 (08:53 +0100)
committerG. Richardson <information@richardson-bueren.de>
Mon, 8 Feb 2010 14:58:47 +0000 (15:58 +0100)
Generiert man im Workflow aus einem Kundenauftrag einen Lieferantenauftrag so sollte als Verkaufspreis nicht der Verkaufspreis aus dem Verkaufsauftrag sondern der Einkaufspreis für die Waren in der Maske gesetzt werden.

bin/mozilla/oe.pl

index 9cc570a..d8f4415 100644 (file)
@@ -1688,7 +1688,9 @@ sub purchase_order {
   check_oe_access();
   $main::auth->assert('purchase_order_edit');
 
+  $form->{sales_order_to_purchase_order} = 0;
   if ($form->{type} eq 'sales_order') {
+    $form->{sales_order_to_purchase_order} = 1;
     check_for_direct_delivery();
   }
 
@@ -1706,6 +1708,8 @@ sub purchase_order {
 
   &poso;
 
+  delete $form->{sales_order_to_purchase_order};
+
   $main::lxdebug->leave_sub();
 }
 
@@ -1754,8 +1758,14 @@ sub poso {
   $form->{old_salesman_id}     = $form->{salesman_id};
 
   # reset
-  map { delete $form->{$_} } qw(id subject message cc bcc printed emailed queued customer vendor creditlimit creditremaining discount tradediscount oldinvtotal delivered
-                                ordnumber);
+  map { delete $form->{$_} } qw(id subject message cc bcc printed emailed queued customer vendor creditlimit creditremaining discount tradediscount oldinvtotal delivered ordnumber);
+
+  # if purchase_order was generated from sales_order, use lastcost_$i as sellprice_$i
+  if ( $form->{sales_order_to_purchase_order} ) {
+    for my $i (1 .. $form->{rowcount}) {
+      $form->{"sellprice_${i}"} = $form->parse_amount(\%myconfig, $form->{"lastcost_${i}"});
+    };
+  };
 
   for my $i (1 .. $form->{rowcount}) {
     map { $form->{"${_}_${i}"} = $form->parse_amount(\%myconfig, $form->{"${_}_${i}"}) if ($form->{"${_}_${i}"}) } qw(ship qty sellprice listprice basefactor discount);