[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
SF.net SVN: ledger-smb: [1363] branches/1.2/LedgerSMB/OE.pm
- Subject: SF.net SVN: ledger-smb: [1363] branches/1.2/LedgerSMB/OE.pm
- From: ..hidden..
- Date: Mon, 09 Jul 2007 17:44:39 -0700
Revision: 1363
http://svn.sourceforge.net/ledger-smb/?rev=1363&view=rev
Author: einhverfr
Date: 2007-07-09 17:44:38 -0700 (Mon, 09 Jul 2007)
Log Message:
-----------
Fixed major Sales order consolidation bug where line items were dropped on consolidation
Modified Paths:
--------------
branches/1.2/LedgerSMB/OE.pm
Modified: branches/1.2/LedgerSMB/OE.pm
===================================================================
--- branches/1.2/LedgerSMB/OE.pm 2007-07-09 23:23:56 UTC (rev 1362)
+++ branches/1.2/LedgerSMB/OE.pm 2007-07-10 00:44:38 UTC (rev 1363)
@@ -246,24 +246,9 @@
sub save {
my ( $self, $myconfig, $form ) = @_;
- $form->{"$ordnumber"} =
- $form->update_defaults( $myconfig, $numberfld, $dbh )
- unless $form->{ordnumber};
-
- $form->db_prepare_vars(
- "quonumber", "transdate", "vendor_id", "customer_id",
- "reqdate", "taxincluded", "shippingpoint", "shipvia",
- "currency", "department_id", "employee_id", "language_code",
- "ponumber", "terms"
- );
-
- # connect to database, turn off autocommit
- my $dbh = $form->{dbh};
- my @queryargs;
- my $quotation;
my $ordnumber;
+ my $quotation;
my $numberfld;
- $form->{vc} = ( $form->{vc} eq 'customer' ) ? 'customer' : 'vendor';
if ( $form->{type} =~ /_order$/ ) {
$quotation = "0";
$ordnumber = "ordnumber";
@@ -282,6 +267,21 @@
}
+ $form->{"$ordnumber"} =
+ $form->update_defaults( $myconfig, $numberfld, $dbh )
+ unless $form->{"$ordnumber"};
+
+ $form->db_prepare_vars(
+ "quonumber", "transdate", "vendor_id", "customer_id",
+ "reqdate", "taxincluded", "shippingpoint", "shipvia",
+ "currency", "department_id", "employee_id", "language_code",
+ "ponumber", "terms"
+ );
+
+ # connect to database, turn off autocommit
+ my $dbh = $form->{dbh};
+ my @queryargs;
+ $form->{vc} = ( $form->{vc} eq 'customer' ) ? 'customer' : 'vendor';
my $query;
my $sth;
my $null;
@@ -2519,11 +2519,15 @@
$form->{"$form->{vc}_id"} = $vc_id;
$amount = 0;
$netamount = 0;
- $ordnumber ||=
+ $ordnumber =
$form->update_defaults( $myconfig, $numberfld, $dbh );
+ my @orderids;
+ my $orderid_str = "";
- foreach $id ( @{ $oe{orders}{$curr}{$vc_id} } ) {
+ foreach $id ( @{ $oe{orders}{$curr}{$vc_id} } ) {
+ push(@orderids, $id);
+ $orderid_str .= "?, ";
# header
$ref = $oe{oe}{$curr}{$id};
@@ -2588,34 +2592,23 @@
$sth = $dbh->prepare($query);
$sth->execute() || $form->dberror($query);
+ $orderid_str =~ s/, $//;
# add items
- foreach $item (@orderitems) {
- for (
- qw(
- qty sellprice discount project_id ship)
- )
- {
- $item->{$_} *= 1;
- }
- $query = qq|
+ $query = qq|
INSERT INTO orderitems
(trans_id, parts_id, description,
qty, sellprice, discount, unit, reqdate,
project_id, ship, serialnumber, notes)
- VALUES
- (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)|;
+ SELECT ?, parts_id, description, qty,
+ sellprice, discount, unit, reqdate,
+ project_id, 0, description, qty
+ FROM orderitems
+ WHERE trans_id IN ($orderid_str)|;
- $sth = $dbh->prepare($query);
- $sth->execute(
- $id, $item->{parts_id},
- $item->{description}, $item->{qty},
- $item->{sellprice}, $item->{discount},
- $item->{unit}, $form->{reqdate},
- $item->{project_id}, $item->{ship},
- $item->{serialnumber}, $item->{notes}
- ) || $form->dberror($query);
+ $sth = $dbh->prepare($query);
+ $sth->execute($id, @orderids) || $form->dberror($query);
- }
+
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.