From 8f8690a2a20c2eb383eaaf1bea28c41f849c0e77 Mon Sep 17 00:00:00 2001 From: Yohann Dufour Date: Tue, 22 Jul 2014 13:48:03 +0200 Subject: [PATCH] Bug 12626: SQLHelper replacement - C4::Acquisition With this patch, the subroutine NewOrder uses DBIx::Class instead of C4::SQLHelper. Test plan: 1) Apply the patch 2) Execute the unit tests by launching : prove t/db_dependent/Acquisition.t 3) The result has to be a success without error or warning : t/db_dependent/Acquisition.t .. ok All tests successful. Files=1, Tests=79, 2 wallclock secs ( 0.04 usr 0.01 sys + 1.80 cusr 0.09 csys = 1.94 CPU) Result: PASS 4) Log in the koha intranet and create a new order in the acquition module 5) The creation has to be a success Signed-off-by: Kyle M Hall --- C4/Acquisition.pm | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/C4/Acquisition.pm b/C4/Acquisition.pm index 0d1745c..332e685 100644 --- a/C4/Acquisition.pm +++ b/C4/Acquisition.pm @@ -28,7 +28,6 @@ use MARC::Record; use C4::Suggestions; use C4::Biblio; use C4::Debug; -use C4::SQLHelper qw(InsertInTable UpdateInTable); use C4::Bookseller qw(GetBookSellerFromId); use C4::Templates qw(gettemplate); @@ -1270,18 +1269,19 @@ sub NewOrder { croak "Mandatory parameter $key missing" unless $orderinfo->{$key}; } - if ( defined $orderinfo->{subscription} && $orderinfo->{'subscription'} eq 'yes' ) { - $orderinfo->{'subscription'} = 1; - } else { - $orderinfo->{'subscription'} = 0; - } $orderinfo->{'entrydate'} ||= C4::Dates->new()->output("iso"); if (!$orderinfo->{quantityreceived}) { $orderinfo->{quantityreceived} = 0; } - my $ordernumber=InsertInTable("aqorders",$orderinfo); - if (not $orderinfo->{parent_ordernumber}) { + # get only the columns of Aqorder + my $schema = Koha::Database->new()->schema; + my $columns = ' '.join(' ', $schema->source('Aqorder')->columns).' '; + my $new_order = { map { $columns =~ / $_ / ? ($_ => $orderinfo->{$_}) : () } keys(%$orderinfo) }; + + my $rs = $schema->resultset('Aqorder'); + my $ordernumber = $rs->create($new_order)->id; + if (not $new_order->{parent_ordernumber}) { my $sth = $dbh->prepare(" UPDATE aqorders SET parent_ordernumber = ordernumber @@ -1289,7 +1289,7 @@ sub NewOrder { "); $sth->execute($ordernumber); } - return ( $orderinfo->{'basketno'}, $ordernumber ); + return ( $new_order->{'basketno'}, $ordernumber ); } -- 1.9.1