X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FIC.pm;h=0ccdf89a14751f77cdca36d209cf3cdbb0ca5467;hb=ac0c6a8692e05549cb2dc0a60e692f550fa72894;hp=d05d85d6e71c4ec9af6954da89ed8e5020667336;hpb=ac6603ac6e7b587498fec9eabbf3cffe65d15778;p=kivitendo-erp.git diff --git a/SL/IC.pm b/SL/IC.pm index d05d85d6e..0ccdf89a1 100644 --- a/SL/IC.pm +++ b/SL/IC.pm @@ -310,7 +310,8 @@ sub retrieve_buchungsgruppen { # get buchungsgruppen $query = qq|SELECT id, description - FROM buchungsgruppen|; + FROM buchungsgruppen + ORDER BY sortkey|; $sth = $dbh->prepare($query); $sth->execute || $form->dberror($query); @@ -327,16 +328,6 @@ sub save { $main::lxdebug->enter_sub(); my ($self, $myconfig, $form) = @_; - $form->{IC_expense} = "1000"; - $form->{IC_income} = "2000"; - - if ($form->{item} ne 'service') { - $form->{IC} = $form->{IC_expense}; - } - - ($form->{inventory_accno}) = split(/--/, $form->{IC}); - ($form->{expense_accno}) = split(/--/, $form->{IC_expense}); - ($form->{income_accno}) = split(/--/, $form->{IC_income}); # connect to database, turn off AutoCommit my $dbh = $form->dbconnect_noauto($myconfig); @@ -458,10 +449,10 @@ sub save { $form->{orphaned} = 1; $form->{onhand} = $form->{stock} if $form->{item} eq 'assembly'; - if ($form->{partnumber} eq "" && $form->{inventory_accno} eq "") { + if ($form->{partnumber} eq "" && $form->{"item"} eq "service") { $form->{partnumber} = $form->update_defaults($myconfig, "servicenumber"); } - if ($form->{partnumber} eq "" && $form->{inventory_accno} ne "") { + if ($form->{partnumber} eq "" && $form->{"item"} ne "service") { $form->{partnumber} = $form->update_defaults($myconfig, "articlenumber"); } @@ -472,6 +463,30 @@ sub save { ($partsgroup, $partsgroup_id) = split /--/, $form->{partsgroup}; } + my ($subq_inventory, $subq_expense, $subq_income); + if ($form->{"item"} eq "part") { + $subq_inventory = + qq|(SELECT bg.inventory_accno_id | . + qq| FROM buchungsgruppen bg | . + qq| WHERE bg.id = | . $dbh->quote($form->{"buchungsgruppen_id"}) . qq|)|; + } else { + $subq_inventory = "NULL"; + } + + if ($form->{"item"} ne "assembly") { + $subq_expense = + qq|(SELECT bg.expense_accno_id_0 | . + qq| FROM buchungsgruppen bg | . + qq| WHERE bg.id = | . $dbh->quote($form->{"buchungsgruppen_id"}) . qq|)|; + } else { + $subq_expense = "NULL"; + } + + $subq_income = + qq|(SELECT bg.income_accno_id_0 | . + qq| FROM buchungsgruppen bg | . + qq| WHERE bg.id = | . $dbh->quote($form->{"buchungsgruppen_id"}) . qq|)|; + $query = qq|UPDATE parts SET partnumber = '$form->{partnumber}', description = '$form->{description}', @@ -490,12 +505,9 @@ sub save { bin = '$form->{bin}', buchungsgruppen_id = '$form->{buchungsgruppen_id}', payment_id = '$form->{payment_id}', - inventory_accno_id = (SELECT c.id FROM chart c - WHERE c.accno = '$form->{inventory_accno}'), - income_accno_id = (SELECT c.id FROM chart c - WHERE c.accno = '$form->{income_accno}'), - expense_accno_id = (SELECT c.id FROM chart c - WHERE c.accno = '$form->{expense_accno}'), + inventory_accno_id = $subq_inventory, + income_accno_id = $subq_income, + expense_accno_id = $subq_expense, obsolete = '$form->{obsolete}', image = '$form->{image}', drawing = '$form->{drawing}', @@ -1133,7 +1145,7 @@ sub all_parts { p.priceupdate, p.image, p.drawing, p.microfiche, pg.partsgroup, '' AS invnumber, o.ordnumber, o.quonumber, oi.trans_id, - ct.name|; + ct.name, NULL AS deliverydate|; if ($form->{ordered}) { $query .= qq|$union @@ -1160,7 +1172,7 @@ sub all_parts { p.priceupdate, p.image, p.drawing, p.microfiche, pg.partsgroup, '' AS invnumber, o.ordnumber, o.quonumber, oi.trans_id, - ct.name|; + ct.name, NULL AS deliverydate|; $query .= qq|$union SELECT $flds, 'oe' AS module, 'purchase_order' AS type, @@ -1198,7 +1210,7 @@ sub all_parts { p.priceupdate, p.image, p.drawing, p.microfiche, pg.partsgroup, '' AS invnumber, o.ordnumber, o.quonumber, oi.trans_id, - ct.name|; + ct.name, NULL AS deliverydate|; if ($form->{quoted}) { $query .= qq|$union @@ -1225,7 +1237,7 @@ sub all_parts { p.priceupdate, p.image, p.drawing, p.microfiche, pg.partsgroup, '' AS invnumber, o.ordnumber, o.quonumber, oi.trans_id, - ct.name|; + ct.name, NULL AS deliverydate|; $query .= qq|$union SELECT $flds, 'oe' AS module, 'request_quotation' AS type, @@ -1516,7 +1528,7 @@ sub create_links { # get payment terms $query = qq|SELECT id, description FROM payment_terms - ORDER BY 1|; + ORDER BY sortkey|; $sth = $dbh->prepare($query); $sth->execute || $form->dberror($query); @@ -1768,7 +1780,7 @@ sub retrieve_accounts { my ($query, $sth, $dbh); - return $main::lxdebug->leave_sub() if (!defined($form->{"taxzone_id"})); + $form->{"taxzone_id"} *= 1; $dbh = $form->dbconnect($myconfig);