X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/kivitendo-erp.git/blobdiff_plain/b8da8785c1b6d313518202acb307adfb50ebdb65..b2f45e7ebfee8fd1cf79632baccad61d6814fd8c:/SL/IS.pm diff --git a/SL/IS.pm b/SL/IS.pm index 3232ddba7..f3c7855d1 100644 --- a/SL/IS.pm +++ b/SL/IS.pm @@ -34,7 +34,7 @@ package IS; -use strict; +#use strict; use List::Util qw(max); @@ -143,7 +143,7 @@ sub invoice_details { partnotes serialnumber reqdate sellprice listprice netprice discount p_discount discount_sub nodiscount_sub linetotal nodiscount_linetotal tax_rate projectnumber - price_factor price_factor_name); + price_factor price_factor_name partsgroup); my @tax_arrays = qw(taxbase tax taxdescription taxrate taxnumber); @@ -196,6 +196,7 @@ sub invoice_details { push @{ $form->{invdate} }, $form->{"invdate"}; push @{ $form->{price_factor} }, $price_factor->{formatted_factor}; push @{ $form->{price_factor_name} }, $price_factor->{description}; + push @{ $form->{partsgroup} }, $form->{"partsgroup_$i"}; if ($form->{lizenzen}) { if ($form->{"licensenumber_$i"}) { @@ -549,6 +550,8 @@ sub post_invoice { my %price_factors = map { $_->{id} => $_->{factor} } @{ $form->{ALL_PRICE_FACTORS} }; my $price_factor; + $form->{amount_cogs} = {}; + foreach my $i (1 .. $form->{rowcount}) { if ($form->{type} eq "credit_note") { $form->{"qty_$i"} = $form->parse_amount($myconfig, $form->{"qty_$i"}) * -1; @@ -771,6 +774,35 @@ sub post_invoice { $project_id = conv_i($form->{"globalproject_id"}); + foreach my $trans_id (keys %{ $form->{amount_cogs} }) { + foreach my $accno (keys %{ $form->{amount_cogs}{$trans_id} }) { + next unless ($form->{expense_inventory} =~ /\Q$accno\E/); + + $form->{amount_cogs}{$trans_id}{$accno} = $form->round_amount($form->{amount_cogs}{$trans_id}{$accno}, 2); + + if (!$payments_only && ($form->{amount_cogs}{$trans_id}{$accno} != 0)) { + $query = + qq|INSERT INTO acc_trans (trans_id, chart_id, amount, transdate, taxkey, project_id) + VALUES (?, (SELECT id FROM chart WHERE accno = ?), ?, ?, 0, ?)|; + @values = (conv_i($trans_id), $accno, $form->{amount_cogs}{$trans_id}{$accno}, conv_date($form->{invdate}), conv_i($project_id)); + do_query($form, $dbh, $query, @values); + $form->{amount_cogs}{$trans_id}{$accno} = 0; + } + } + + foreach my $accno (keys %{ $form->{amount_cogs}{$trans_id} }) { + $form->{amount_cogs}{$trans_id}{$accno} = $form->round_amount($form->{amount_cogs}{$trans_id}{$accno}, 2); + + if (!$payments_only && ($form->{amount_cogs}{$trans_id}{$accno} != 0)) { + $query = + qq|INSERT INTO acc_trans (trans_id, chart_id, amount, transdate, taxkey, project_id) + VALUES (?, (SELECT id FROM chart WHERE accno = ?), ?, ?, 0, ?)|; + @values = (conv_i($trans_id), $accno, $form->{amount_cogs}{$trans_id}{$accno}, conv_date($form->{invdate}), conv_i($project_id)); + do_query($form, $dbh, $query, @values); + } + } + } + foreach my $trans_id (keys %{ $form->{amount} }) { foreach my $accno (keys %{ $form->{amount}{$trans_id} }) { next unless ($form->{expense_inventory} =~ /\Q$accno\E/); @@ -919,6 +951,8 @@ sub post_invoice { $amount = $netamount + $tax; # save AR record + #erweiterung fuer lieferscheinnummer (donumber) 12.02.09 jb + $query = qq|UPDATE ar set invnumber = ?, ordnumber = ?, quonumber = ?, cusordnumber = ?, transdate = ?, orddate = ?, quodate = ?, customer_id = ?, @@ -930,7 +964,8 @@ sub post_invoice { employee_id = ?, salesman_id = ?, storno_id = ?, storno = ?, cp_id = ?, marge_total = ?, marge_percent = ?, globalproject_id = ?, delivery_customer_id = ?, - transaction_description = ?, delivery_vendor_id = ? + transaction_description = ?, delivery_vendor_id = ?, + donumber = ? WHERE id = ?|; @values = ( $form->{"invnumber"}, $form->{"ordnumber"}, $form->{"quonumber"}, $form->{"cusordnumber"}, conv_date($form->{"invdate"}), conv_date($form->{"orddate"}), conv_date($form->{"quodate"}), conv_i($form->{"customer_id"}), @@ -943,6 +978,7 @@ sub post_invoice { conv_i($form->{"cp_id"}), 1 * $form->{marge_total} , 1 * $form->{marge_percent}, conv_i($form->{"globalproject_id"}), conv_i($form->{"delivery_customer_id"}), $form->{transaction_description}, conv_i($form->{"delivery_vendor_id"}), + $form->{"donumber"}, #das entsprechende feld lieferscheinnummer aus der html-form 12.02.09 jb conv_i($form->{"id"})); do_query($form, $dbh, $query, @values); @@ -1211,11 +1247,11 @@ sub cogs { if (!$main::eur) { $ref->{expense_accno} = ($form->{"expense_accno_$row"}) ? $form->{"expense_accno_$row"} : $ref->{expense_accno}; # add to expense - $form->{amount}{ $form->{id} }{ $ref->{expense_accno} } += -$linetotal; + $form->{amount_cogs}{ $form->{id} }{ $ref->{expense_accno} } += -$linetotal; $form->{expense_inventory} .= " " . $ref->{expense_accno}; $ref->{inventory_accno} = ($form->{"inventory_accno_$row"}) ? $form->{"inventory_accno_$row"} : $ref->{inventory_accno}; # deduct inventory - $form->{amount}{ $form->{id} }{ $ref->{inventory_accno} } -= -$linetotal; + $form->{amount_cogs}{ $form->{id} }{ $ref->{inventory_accno} } -= -$linetotal; $form->{expense_inventory} .= " " . $ref->{inventory_accno}; } @@ -1353,6 +1389,8 @@ sub retrieve_invoice { my $id = conv_i($form->{id}); # retrieve invoice + #erweiterung um das entsprechende feld lieferscheinnummer (a.donumber) in der html-maske anzuzeigen 12.02.2009 jb + $query = qq|SELECT a.invnumber, a.ordnumber, a.quonumber, a.cusordnumber, @@ -1364,7 +1402,7 @@ sub retrieve_invoice { a.language_id, a.delivery_customer_id, a.delivery_vendor_id, a.type, a.transaction_description, a.marge_total, a.marge_percent, - e.name AS employee + e.name AS employee, a.donumber FROM ar a LEFT JOIN employee e ON (e.id = a.employee_id) WHERE a.id = ?|;