Komfort- und Hilfsfunktionen fuer den Datenbankzugriff.
[kivitendo-erp.git] / SL / IC.pm
index eb230ef..8f2cfb3 100644 (file)
--- a/SL/IC.pm
+++ b/SL/IC.pm
@@ -34,6 +34,7 @@
 
 package IC;
 use Data::Dumper;
+
 sub get_part {
   $main::lxdebug->enter_sub();
 
@@ -163,7 +164,7 @@ sub get_part {
       $form->{"price_$i"} =
         $form->format_amount($myconfig, $form->{"price_$i"}, 5);
       $form->{"pricegroup_id_$i"} = "$name->{id}";
-      $form->{"pricegroup_$i"}    = "$name->{pricegroup}\n";
+      $form->{"pricegroup_$i"}    = "$name->{pricegroup}";
       $i++;
     }
   }
@@ -235,8 +236,8 @@ sub get_pricegroups {
   $main::lxdebug->enter_sub();
 
   my ($self, $myconfig, $form) = @_;
-  my $dbh = $form->dbconnect($myconfig);
-  my $i = 1;
+  my $dbh                  = $form->dbconnect($myconfig);
+  my $i                    = 1;
   my @pricegroups_not_used = ();
 
   # get pricegroups
@@ -263,7 +264,7 @@ sub get_pricegroups {
       $form->{"price_$i"} =
         $form->format_amount($myconfig, $form->{"price_$i"}, 5);
       $form->{"pricegroup_id_$i"} = "$name->{id}";
-      $form->{"pricegroup_$i"}    = "$name->{pricegroup}\n";
+      $form->{"pricegroup_$i"}    = "$name->{pricegroup}";
       $i++;
     }
   }
@@ -276,7 +277,6 @@ sub get_pricegroups {
   $main::lxdebug->leave_sub();
 }
 
-
 sub save {
   $main::lxdebug->enter_sub();
 
@@ -456,11 +456,14 @@ sub save {
   # insert price records only if different to sellprice
   for my $i (1 .. $form->{price_rows}) {
     if ($form->{"price_$i"} eq "0") {
-       $form->{"price_$i"} = $form->{sellprice};
+      $form->{"price_$i"} = $form->{sellprice};
     }
-    if ((   $form->{"price_$i"} 
-        || $form->{"klass_$i"}
-        || $form->{"pricegroup_id_$i"}) and $form->{"price_$i"} != $form->{sellprice}) {
+    if (
+        (   $form->{"price_$i"}
+         || $form->{"klass_$i"}
+         || $form->{"pricegroup_id_$i"})
+        and $form->{"price_$i"} != $form->{sellprice}
+      ) {
       $klass = $form->parse_amount($myconfig, $form->{"klass_$i"});
       $price = $form->parse_amount($myconfig, $form->{"price_$i"});
       $pricegroup_id =
@@ -715,6 +718,11 @@ sub delete {
   # connect to database, turn off AutoCommit
   my $dbh = $form->dbconnect_noauto($myconfig);
 
+  # first delete prices of pricegroup 
+  my $query = qq|DELETE FROM prices
+           WHERE parts_id = $form->{id}|;
+  $dbh->do($query) || $form->dberror($query);
+
   my $query = qq|DELETE FROM parts
                 WHERE id = $form->{id}|;
   $dbh->do($query) || $form->dberror($query);
@@ -822,14 +830,10 @@ sub all_parts {
   my $group;
   my $limit;
 
-  foreach my $item (qw(partnumber drawing microfiche make model)) {
+  foreach my $item (qw(partnumber drawing microfiche)) {
     if ($form->{$item}) {
       $var = $form->like(lc $form->{$item});
-
-      # make will build later Bugfix 145
-      if ($item ne 'make') {
-        $where .= " AND lower(p.$item) LIKE '$var'";
-      }
+      $where .= " AND lower(p.$item) LIKE '$var'";
     }
   }
 
@@ -997,7 +1001,7 @@ sub all_parts {
                    p.priceupdate, p.image, p.drawing, p.microfiche,
                    pg.partsgroup,
                    a.invnumber, a.ordnumber, a.quonumber, i.trans_id,
-                   ct.name|;
+                   ct.name, i.deliverydate|;
 
       if ($form->{bought}) {
         $query = qq|
@@ -1041,7 +1045,8 @@ sub all_parts {
         $ordwhere .= " AND lower(oi.description) LIKE '$var'";
       }
 
-      $flds = qq|p.id, p.partnumber, oi.description, oi.serialnumber AS serialnumber,
+      $flds =
+        qq|p.id, p.partnumber, oi.description, oi.serialnumber AS serialnumber,
                  oi.qty AS onhand, oi.unit, p.bin, oi.sellprice,
                 p.listprice, p.lastcost, p.rop, p.weight,
                 p.priceupdate, p.image, p.drawing, p.microfiche,
@@ -1067,7 +1072,8 @@ sub all_parts {
       }
 
       if ($form->{onorder}) {
-        $flds = qq|p.id, p.partnumber, oi.description, oi.serialnumber AS serialnumber,
+        $flds =
+          qq|p.id, p.partnumber, oi.description, oi.serialnumber AS serialnumber,
                    oi.qty * -1 AS onhand, oi.unit, p.bin, oi.sellprice,
                   p.listprice, p.lastcost, p.rop, p.weight,
                   p.priceupdate, p.image, p.drawing, p.microfiche,
@@ -1104,7 +1110,8 @@ sub all_parts {
         $quowhere .= " AND lower(oi.description) LIKE '$var'";
       }
 
-      $flds = qq|p.id, p.partnumber, oi.description, oi.serialnumber AS serialnumber,
+      $flds =
+        qq|p.id, p.partnumber, oi.description, oi.serialnumber AS serialnumber,
                  oi.qty AS onhand, oi.unit, p.bin, oi.sellprice,
                 p.listprice, p.lastcost, p.rop, p.weight,
                 p.priceupdate, p.image, p.drawing, p.microfiche,
@@ -1130,7 +1137,8 @@ sub all_parts {
       }
 
       if ($form->{rfq}) {
-        $flds = qq|p.id, p.partnumber, oi.description, oi.serialnumber AS serialnumber,
+        $flds =
+          qq|p.id, p.partnumber, oi.description, oi.serialnumber AS serialnumber,
                    oi.qty * -1 AS onhand, oi.unit, p.bin, oi.sellprice,
                   p.listprice, p.lastcost, p.rop, p.weight,
                   p.priceupdate, p.image, p.drawing, p.microfiche,