X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FIC.pm;h=eaa5e880b49dac995df316f698db183015073ddd;hb=8b68b3f8f2cc88d620b484a2219c85f6ff4d78a8;hp=2db7546b155fb81cd7c5877b96a51f074bcbc7c1;hpb=195883fdfd3b10f329036767f027baa6e7c402b9;p=kivitendo-erp.git diff --git a/SL/IC.pm b/SL/IC.pm index 2db7546b1..eaa5e880b 100644 --- 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++; } } @@ -231,6 +232,51 @@ sub get_part { $main::lxdebug->leave_sub(); } +sub get_pricegroups { + $main::lxdebug->enter_sub(); + + my ($self, $myconfig, $form) = @_; + my $dbh = $form->dbconnect($myconfig); + my $i = 1; + my @pricegroups_not_used = (); + + # get pricegroups + my $query = qq|SELECT p.id, p.pricegroup FROM pricegroup p|; + + my $pkq = $dbh->prepare($query); + $pkq->execute || $form->dberror($query); + while ($pkr = $pkq->fetchrow_hashref(NAME_lc)) { + push @{ $form->{PRICEGROUPS} }, $pkr; + } + $pkq->finish; + + #find not used pricegroups + while ($tmp = pop @{ $form->{PRICEGROUPS} }) { + push @pricegroups_not_used, $tmp; + } + + # if not used pricegroups are avaible + if (@pricegroups_not_used) { + + foreach $name (@pricegroups_not_used) { + $form->{"klass_$i"} = "$name->{id}"; + $form->{"price_$i"} = $form->round_amount($form->{sellprice}, 5); + $form->{"price_$i"} = + $form->format_amount($myconfig, $form->{"price_$i"}, 5); + $form->{"pricegroup_id_$i"} = "$name->{id}"; + $form->{"pricegroup_$i"} = "$name->{pricegroup}"; + $i++; + } + } + + #correct rows + $form->{price_rows} = $i - 1; + + $dbh->disconnect; + + $main::lxdebug->leave_sub(); +} + sub save { $main::lxdebug->enter_sub(); @@ -409,9 +455,15 @@ sub save { # insert price records only if different to sellprice for my $i (1 .. $form->{price_rows}) { - if (( $form->{"price_$i"} - || $form->{"klass_$i"} - || $form->{"pricegroup_id_$i"}) and $form->{"price_$i"} != $form->{sellprice}) { + if ($form->{"price_$i"} eq "0") { + $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 = @@ -885,7 +937,7 @@ sub all_parts { my $sortorder = $form->{sort}; $sortorder .= $form->{desc}; - $sortorder = $form->{sort} unless $sortorder; + $sortorder = $form->{sort} if $form->{sort}; my $query = ""; @@ -992,7 +1044,8 @@ sub all_parts { $ordwhere .= " AND lower(oi.description) LIKE '$var'"; } - $flds = qq|p.id, p.partnumber, oi.description, '' 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, @@ -1018,7 +1071,8 @@ sub all_parts { } if ($form->{onorder}) { - $flds = qq|p.id, p.partnumber, oi.description, '' 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, @@ -1055,7 +1109,8 @@ sub all_parts { $quowhere .= " AND lower(oi.description) LIKE '$var'"; } - $flds = qq|p.id, p.partnumber, oi.description, '' 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, @@ -1081,7 +1136,8 @@ sub all_parts { } if ($form->{rfq}) { - $flds = qq|p.id, p.partnumber, oi.description, '' 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,