]> wagnertech.de Git - kivitendo-erp.git/blobdiff - bin/mozilla/oe.pl
PriceSource: Preisselektion auf Popup umgestellt.
[kivitendo-erp.git] / bin / mozilla / oe.pl
index 66b2dbaa8363a7c11e3ef0abbfc16e556f63fb7e..cc67e746fa01eb0c9f3f9543fcaae28a5eaad5fd 100644 (file)
@@ -465,7 +465,7 @@ sub form_header {
     }
   }
 
-  $::request->{layout}->use_javascript(map { "${_}.js" } qw(kivi.SalesPurchase show_form_details show_history show_vc_details ckeditor/ckeditor ckeditor/adapters/jquery));
+  $::request->{layout}->use_javascript(map { "${_}.js" } qw(kivi.SalesPurchase show_form_details show_history show_vc_details ckeditor/ckeditor ckeditor/adapters/jquery kivi.io));
 
   $form->header;
   if ($form->{CFDD_shipto} && $form->{CFDD_shipto_id} ) {
@@ -678,6 +678,15 @@ sub update {
         if ($sellprice) {
           $form->{"sellprice_$i"} = $sellprice;
         } else {
+          my $record       = _make_record();
+          my $price_source = SL::PriceSource->new(record_item => $record->items->[$i-1], record => $record);
+          my $best_price   = $price_source->best_price;
+
+          if ($best_price) {
+            $::form->{"sellprice_$i"}           = $best_price->price;
+            $::form->{"active_price_source_$i"} = $best_price->source;
+          }
+
           $form->{"sellprice_$i"} *= (1 - $form->{tradediscount});
           $form->{"sellprice_$i"} /= $exchangerate;   # if there is an exchange rate adjust sellprice
         }
@@ -692,12 +701,6 @@ sub update {
         $form->{"sellprice_$i"} = $form->format_amount(\%myconfig, $form->{"sellprice_$i"}, $decimalplaces);
         $form->{"lastcost_$i"}  = $form->format_amount(\%myconfig, $form->{"lastcost_$i"}, $decimalplaces);
         $form->{"qty_$i"}       = $form->format_amount(\%myconfig, $form->{"qty_$i"}, $dec_qty);
-
-        # get pricegroups for parts
-        IS->get_pricegroups_for_parts(\%myconfig, \%$form);
-
-        # build up html code for prices_$i
-        &set_pricegroup($i);
       }
 
       display_form();
@@ -1344,9 +1347,14 @@ sub delete {
   if (OE->delete(\%myconfig, \%$form)){
     # saving the history
     if(!exists $form->{addition}) {
-      $form->{snumbers} = qq|ordnumber_| . $form->{ordnumber};
-      $form->{addition} = "DELETED";
-      $form->save_history;
+      if ( $form->{formname} eq 'sales_quotation' or  $form->{formname} eq 'request_quotation' ) {
+          $form->{snumbers} = qq|quonumber_| . $form->{quonumber};
+      } elsif ( $form->{formname} eq 'sales_order' or $form->{formname} eq 'purchase_order') {
+          $form->{snumbers} = qq|ordnumber_| . $form->{ordnumber};
+      };
+        $form->{what_done} = $form->{formname};
+        $form->{addition} = "DELETED";
+        $form->save_history;
     }
     # /saving the history
     $form->info($msg);
@@ -1505,10 +1513,6 @@ sub invoice {
       $form->format_amount(\%myconfig, $form->{"qty_$i"}, $dec_qty);
   }
 
-  #  show pricegroup in newly loaded invoice when creating invoice from quotation/order
-  IS->get_pricegroups_for_parts(\%myconfig, \%$form);
-  set_pricegroup($_) for 1 .. $form->{rowcount};
-
   &display_form;
 
   $main::lxdebug->leave_sub();
@@ -1811,7 +1815,7 @@ sub poso {
 
   # reset
   map { delete $form->{$_} } qw(id subject message cc bcc printed emailed queued customer vendor creditlimit creditremaining discount tradediscount oldinvtotal delivered ordnumber);
-  delete $form->{"orderitems_id_$_"} for 1 .. $form->{"rowcount"};
+  delete $form->{"orderitems_id_$_"} for 1 .. $form->{"rowcount"};  # always reset orderitems_id
 
   # if purchase_order was generated from sales_order, use  lastcost_$i as sellprice_$i
   # also reset discounts
@@ -1819,7 +1823,6 @@ sub poso {
     for my $i (1 .. $form->{rowcount}) {
       $form->{"sellprice_${i}"} = $form->{"lastcost_${i}"};
       $form->{"discount_${i}"}  = 0;
-      delete $form->{"orderitems_id_$_"};
     };
   };
 
@@ -2104,8 +2107,8 @@ sub check_transport_cost_reminder_article_number {
   $main::lxdebug->leave_sub();
 }
 sub dispatcher {
-  foreach my $action (qw(delete delivery_order e_mail invoice print purchase_order purchase_order quotation
-                         request_for_quotation sales_order sales_order save save_and_close save_as_new ship_to update)) {
+  foreach my $action (qw(delete delivery_order e_mail invoice print purchase_order quotation
+                         request_for_quotation sales_order save save_and_close save_as_new ship_to update)) {
     if ($::form->{"action_${action}"}) {
       call_sub($action);
       return;
@@ -2114,3 +2117,4 @@ sub dispatcher {
 
   $::form->error($::locale->text('No action defined.'));
 }
+