X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FIS.pm;h=3e72da7aa8b136f35c8a0069ec406b602f68b12f;hb=5b4da8b54a5b66176d56b2ac574e30d75b29eb31;hp=615b2eec7ca0243519c653b94b9ef31e9616d84e;hpb=2773beb180e089ba53e715a418bee4acb3ddb857;p=kivitendo-erp.git diff --git a/SL/IS.pm b/SL/IS.pm index 615b2eec7..3e72da7aa 100644 --- a/SL/IS.pm +++ b/SL/IS.pm @@ -36,6 +36,8 @@ package IS; use Data::Dumper; use SL::AM; +use SL::Common; +use SL::DBUtils; sub invoice_details { $main::lxdebug->enter_sub(); @@ -474,8 +476,6 @@ sub post_invoice { $form->get_employee($dbh); } - $form->{contact_id} = $form->{cp_id}; - $form->{contact_id} *= 1; $form->{payment_id} *= 1; $form->{language_id} *= 1; $form->{taxzone_id} *= 1; @@ -685,10 +685,6 @@ sub post_invoice { } } - $project_id = 'NULL'; - if ($form->{"projectnumber_$i"}) { - $project_id = $form->{"projectnumber_$i"}; - } $deliverydate = ($form->{"deliverydate_$i"}) ? qq|'$form->{"deliverydate_$i"}'| @@ -708,7 +704,7 @@ sub post_invoice { '$form->{"description_$i"}', '$form->{"longdescription_$i"}', $form->{"qty_$i"}, $form->{"sellprice_$i"}, $fxsellprice, $form->{"discount_$i"}, $allocated, 'f', - '$form->{"unit_$i"}', $deliverydate, (SELECT id from project where projectnumber = '$project_id'), + '$form->{"unit_$i"}', $deliverydate, | . conv_i($form->{"project_id_$i"}) . qq|, '$form->{"serialnumber_$i"}', '$pricegroup_id', '$form->{"ordnumber_$i"}', '$form->{"transdate_$i"}', '$form->{"cusordnumber_$i"}', $baseqty, '$subtotal')|; $dbh->do($query) || $form->dberror($query); @@ -801,6 +797,8 @@ sub post_invoice { $form->{exchangerate}, 0); } + $project_id = conv_i($form->{"globalproject_id"}); + foreach my $trans_id (keys %{ $form->{amount} }) { foreach my $accno (keys %{ $form->{amount}{$trans_id} }) { next unless ($form->{expense_inventory} =~ /$accno/); @@ -810,12 +808,12 @@ sub post_invoice { ) != 0 ) { $query = qq|INSERT INTO acc_trans (trans_id, chart_id, amount, - transdate, taxkey) + transdate, taxkey, project_id) VALUES ($trans_id, (SELECT c.id FROM chart c WHERE c.accno = '$accno'), $form->{amount}{$trans_id}{$accno}, '$form->{invdate}', - (SELECT taxkey_id FROM chart WHERE accno = '$accno'))|; - $dbh->do($query) || $form->dberror($query); + (SELECT taxkey_id FROM chart WHERE accno = '$accno'), ?)|; + do_query($form, $dbh, $query, $project_id); $form->{amount}{$trans_id}{$accno} = 0; } } @@ -827,12 +825,12 @@ sub post_invoice { ) != 0 ) { $query = qq|INSERT INTO acc_trans (trans_id, chart_id, amount, - transdate, taxkey) + transdate, taxkey, project_id) VALUES ($trans_id, (SELECT id FROM chart WHERE accno = '$accno'), $form->{amount}{$trans_id}{$accno}, '$form->{invdate}', - (SELECT taxkey_id FROM chart WHERE accno = '$accno'))|; - $dbh->do($query) || $form->dberror($query); + (SELECT taxkey_id FROM chart WHERE accno = '$accno'), ?)|; + do_query($form, $dbh, $query, $project_id); } } } @@ -881,23 +879,23 @@ sub post_invoice { if ($form->{amount}{ $form->{id} }{ $form->{AR} } != 0) { $query = qq|INSERT INTO acc_trans (trans_id, chart_id, amount, - transdate) + transdate, project_id) VALUES ($form->{id}, (SELECT c.id FROM chart c WHERE c.accno = '$form->{AR}'), - $amount, '$form->{"datepaid_$i"}')|; - $dbh->do($query) || $form->dberror($query); + $amount, '$form->{"datepaid_$i"}', ?)|; + do_query($form, $dbh, $query, $project_id); } # record payment $form->{"paid_$i"} *= -1; $query = qq|INSERT INTO acc_trans (trans_id, chart_id, amount, transdate, - source, memo) + source, memo, ?) VALUES ($form->{id}, (SELECT c.id FROM chart c - WHERE c.accno = '$accno'), + WHERE c.accno = '$accno', project_id), $form->{"paid_$i"}, '$form->{"datepaid_$i"}', '$form->{"source_$i"}', '$form->{"memo_$i"}')|; - $dbh->do($query) || $form->dberror($query); + do_query($form, $dbh, $query, $project_id); # exchangerate difference $form->{fx}{$accno}{ $form->{"datepaid_$i"} } += @@ -937,12 +935,12 @@ sub post_invoice { ) { $query = qq|INSERT INTO acc_trans (trans_id, chart_id, amount, - transdate, cleared, fx_transaction) + transdate, cleared, fx_transaction, project_id) VALUES ($form->{id}, (SELECT c.id FROM chart c WHERE c.accno = '$accno'), - $form->{fx}{$accno}{$transdate}, '$transdate', '0', '1')|; - $dbh->do($query) || $form->dberror($query); + $form->{fx}{$accno}{$transdate}, '$transdate', '0', '1', ?)|; + do_query($form, $dbh, $query, $project_id); } } } @@ -982,6 +980,8 @@ Message: $form->{message}\r| if $form->{message}; quonumber = '$form->{quonumber}', cusordnumber = '$form->{cusordnumber}', transdate = '$form->{invdate}', + orddate = | . conv_dateq($form->{orddate}) . qq|, + quodate = | . conv_dateq($form->{quodate}) . qq|, customer_id = $form->{customer_id}, amount = $amount, netamount = $netamount, @@ -1007,7 +1007,8 @@ Message: $form->{message}\r| if $form->{message}; delivery_vendor_id = $form->{delivery_vendor_id}, employee_id = $form->{employee_id}, storno = '$form->{storno}', - cp_id = $form->{contact_id} + globalproject_id = | . conv_i($form->{"globalproject_id"}, 'NULL') . qq|, + cp_id = | . conv_i($form->{"cp_id"}, 'NULL') . qq| WHERE id = $form->{id} |; $dbh->do($query) || $form->dberror($query); @@ -1037,9 +1038,7 @@ Message: $form->{message}\r| if $form->{message}; # save printed, emailed and queued $form->save_status($dbh); - if ($form->{webdav}) { - &webdav_folder($myconfig, $form); - } + Common::webdav_folder($form) if ($main::webdav); my $rc = $dbh->commit; $dbh->disconnect; @@ -1074,6 +1073,8 @@ sub post_payment { $form->get_exchangerate($dbh, $form->{currency}, $form->{invdate}, "buy"); + my $project_id = conv_i($form->{"globalproject_id"}); + # record payments and offsetting AR for my $i (1 .. $form->{paidaccounts}) { @@ -1108,11 +1109,11 @@ sub post_payment { $dbh->do($query) || $form->dberror($query); $query = qq|INSERT INTO acc_trans (trans_id, chart_id, amount, - transdate) + transdate, project_id) VALUES ($form->{id}, (SELECT c.id FROM chart c WHERE c.accno = '$form->{AR}'), - $amount, '$form->{"datepaid_$i"}')|; - $dbh->do($query) || $form->dberror($query); + $amount, '$form->{"datepaid_$i"}', ?)|; + do_query($form, $dbh, $query, $project_id); # record payment @@ -1123,12 +1124,12 @@ sub post_payment { $dbh->do($query) || $form->dberror($query); $query = qq|INSERT INTO acc_trans (trans_id, chart_id, amount, transdate, - source, memo) + source, memo, project_id) VALUES ($form->{id}, (SELECT c.id FROM chart c WHERE c.accno = '$accno'), $form->{"paid_$i"}, '$form->{"datepaid_$i"}', - '$form->{"source_$i"}', '$form->{"memo_$i"}')|; - $dbh->do($query) || $form->dberror($query); + '$form->{"source_$i"}', '$form->{"memo_$i"}', ?)|; + do_query($form, $dbh, $query, $project_id); # gain/loss @@ -1166,12 +1167,12 @@ sub post_payment { WHERE c.accno = '$accno') AND amount=$form->{fx}{$accno}{$transdate} AND transdate='$transdate' AND cleared='0' AND fx_transaction='1'|; $dbh->do($query) || $form->dberror($query); $query = qq|INSERT INTO acc_trans (trans_id, chart_id, amount, - transdate, cleared, fx_transaction) + transdate, cleared, fx_transaction, project_id) VALUES ($form->{id}, (SELECT c.id FROM chart c WHERE c.accno = '$accno'), - $form->{fx}{$accno}{$transdate}, '$transdate', '0', '1')|; - $dbh->do($query) || $form->dberror($query); + $form->{fx}{$accno}{$transdate}, '$transdate', '0', '1', ?)|; + do_query($form, $dbh, $query, $project_id); } } } @@ -1484,6 +1485,7 @@ sub retrieve_invoice { # retrieve invoice $query = qq|SELECT a.invnumber, a.ordnumber, a.quonumber, a.cusordnumber, + a.orddate, a.quodate, a.globalproject_id, a.transdate AS invdate, a.deliverydate, a.paid, a.storno, a.gldate, a.shippingpoint, a.shipvia, a.terms, a.notes, a.intnotes, a.taxzone_id, a.duedate, a.taxincluded, a.curr AS currency, a.shipto_id, a.cp_id, @@ -1656,9 +1658,7 @@ sub retrieve_invoice { } $sth->finish; - if ($form->{webdav}) { - &webdav_folder($myconfig, $form); - } + Common::webdav_folder($form) if ($main::webdav); } my $rc = $dbh->commit; @@ -1771,14 +1771,6 @@ sub get_customer { } $sth->finish; - $form->get_contacts($dbh, $form->{customer_id}); - $form->{cp_id} *= 1; - - # get contact if selected - if ($form->{cp_id}) { - $form->get_contact($dbh, $form->{cp_id}); - } - # get shipto if we did not converted an order or invoice if (!$form->{shipto}) { map { delete $form->{$_} } @@ -1809,19 +1801,6 @@ sub get_customer { } $sth->finish; - # get shipping addresses - $query = qq|SELECT s.shipto_id,s.shiptoname,s.shiptodepartment_1 - FROM shipto s - WHERE s.trans_id = $form->{customer_id}|; - $sth = $dbh->prepare($query); - $sth->execute || $form->dberror($query); - - my $customertax = (); - while ($ref = $sth->fetchrow_hashref(NAME_lc)) { - push(@{ $form->{SHIPTO} }, $ref); - } - $sth->finish; - # setup last accounts used for this customer if (!$form->{id} && $form->{type} !~ /_(order|quotation)/) { $query = qq|SELECT c.accno, c.description, c.link, c.category @@ -2204,36 +2183,5 @@ sub get_pricegroups_for_parts { $main::lxdebug->leave_sub(); } -sub webdav_folder { - $main::lxdebug->enter_sub(); - - my ($myconfig, $form) = @_; - -SWITCH: { - $path = "webdav/rechnungen/" . $form->{invnumber}, last SWITCH - if ($form->{vc} eq "customer"); - $path = "webdav/einkaufsrechnungen/" . $form->{invnumber}, last SWITCH - if ($form->{vc} eq "vendor"); - } - - if (!-d $path) { - mkdir($path, 0770) or die "can't make directory $!\n"; - } else { - if ($form->{id}) { - @files = <$path/*>; - foreach $file (@files) { - $file =~ /\/([^\/]*)$/; - $fname = $1; - $ENV{'SCRIPT_NAME'} =~ /\/([^\/]*)\//; - $lxerp = $1; - $link = "http://" . $ENV{'SERVER_NAME'} . "/" . $lxerp . "/" . $file; - $form->{WEBDAV}{$fname} = $link; - } - } - } - - $main::lxdebug->leave_sub(); -} - 1;