Lines 31-36
use C4::Debug;
Link Here
|
31 |
use C4::Bookseller qw(GetBookSellerFromId); |
31 |
use C4::Bookseller qw(GetBookSellerFromId); |
32 |
use C4::Templates qw(gettemplate); |
32 |
use C4::Templates qw(gettemplate); |
33 |
use Koha::DateUtils qw( dt_from_string output_pref ); |
33 |
use Koha::DateUtils qw( dt_from_string output_pref ); |
|
|
34 |
use Koha::Acquisition::Order; |
34 |
|
35 |
|
35 |
use Time::localtime; |
36 |
use Time::localtime; |
36 |
use HTML::Entities; |
37 |
use HTML::Entities; |
Lines 56-68
BEGIN {
Link Here
|
56 |
&ModBasketgroup &NewBasketgroup &DelBasketgroup &GetBasketgroup &CloseBasketgroup |
57 |
&ModBasketgroup &NewBasketgroup &DelBasketgroup &GetBasketgroup &CloseBasketgroup |
57 |
&GetBasketgroups &ReOpenBasketgroup |
58 |
&GetBasketgroups &ReOpenBasketgroup |
58 |
|
59 |
|
59 |
&NewOrder &DelOrder &ModOrder &GetOrder &GetOrders &GetOrdersByBiblionumber |
60 |
&DelOrder &ModOrder &GetOrder &GetOrders &GetOrdersByBiblionumber |
60 |
&GetLateOrders &GetOrderFromItemnumber |
61 |
&GetLateOrders &GetOrderFromItemnumber |
61 |
&SearchOrders &GetHistory &GetRecentAcqui |
62 |
&SearchOrders &GetHistory &GetRecentAcqui |
62 |
&ModReceiveOrder &CancelReceipt |
63 |
&ModReceiveOrder &CancelReceipt |
63 |
&GetCancelledOrders &TransferOrder |
64 |
&GetCancelledOrders &TransferOrder |
64 |
&GetLastOrderNotReceivedFromSubscriptionid &GetLastOrderReceivedFromSubscriptionid |
65 |
&GetLastOrderNotReceivedFromSubscriptionid &GetLastOrderReceivedFromSubscriptionid |
65 |
&NewOrderItem &ModItemOrder |
66 |
&ModItemOrder |
66 |
|
67 |
|
67 |
&GetParcels &GetParcel |
68 |
&GetParcels &GetParcel |
68 |
|
69 |
|
Lines 1228-1322
sub GetLastOrderReceivedFromSubscriptionid {
Link Here
|
1228 |
|
1229 |
|
1229 |
} |
1230 |
} |
1230 |
|
1231 |
|
1231 |
|
|
|
1232 |
#------------------------------------------------------------# |
1233 |
|
1234 |
=head3 NewOrder |
1235 |
|
1236 |
&NewOrder(\%hashref); |
1237 |
|
1238 |
Adds a new order to the database. Any argument that isn't described |
1239 |
below is the new value of the field with the same name in the aqorders |
1240 |
table of the Koha database. |
1241 |
|
1242 |
=over |
1243 |
|
1244 |
=item $hashref->{'basketno'} is the basketno foreign key in aqorders, it is mandatory |
1245 |
|
1246 |
=item $hashref->{'ordernumber'} is a "minimum order number." |
1247 |
|
1248 |
=item $hashref->{'budgetdate'} is effectively ignored. |
1249 |
If it's undef (anything false) or the string 'now', the current day is used. |
1250 |
Else, the upcoming July 1st is used. |
1251 |
|
1252 |
=item $hashref->{'subscription'} may be either "yes", or anything else for "no". |
1253 |
|
1254 |
=item $hashref->{'uncertainprice'} may be 0 for "the price is known" or 1 for "the price is uncertain" |
1255 |
|
1256 |
=item defaults entrydate to Now |
1257 |
|
1258 |
The following keys are used: "biblionumber", "title", "basketno", "quantity", "order_vendornote", "order_internalnote", "rrp", "ecost", "gstrate", "unitprice", "subscription", "sort1", "sort2", "booksellerinvoicenumber", "listprice", "budgetdate", "purchaseordernumber", "branchcode", "booksellerinvoicenumber", "budget_id". |
1259 |
|
1260 |
=back |
1261 |
|
1262 |
=cut |
1263 |
|
1264 |
sub NewOrder { |
1265 |
my $orderinfo = shift; |
1266 |
|
1267 |
my $dbh = C4::Context->dbh; |
1268 |
my @params; |
1269 |
|
1270 |
croak "The ordernumber parameter should not be provided on calling NewOrder" |
1271 |
if $orderinfo->{ordernumber}; |
1272 |
|
1273 |
# if these parameters are missing, we can't continue |
1274 |
for my $key ( qw( basketno quantity biblionumber budget_id ) ) { |
1275 |
croak "Cannot insert order: Mandatory parameter $key is missing" unless $orderinfo->{$key}; |
1276 |
} |
1277 |
|
1278 |
$orderinfo->{quantityreceived} ||= 0; |
1279 |
$orderinfo->{entrydate} ||= output_pref({ dt => dt_from_string, dateformat => 'iso'}); |
1280 |
|
1281 |
# get only the columns of Aqorder |
1282 |
my $schema = Koha::Database->new()->schema; |
1283 |
my $columns = ' '.join(' ', $schema->source('Aqorder')->columns).' '; |
1284 |
my $new_order = { map { $columns =~ / $_ / ? ($_ => $orderinfo->{$_}) : () } keys(%$orderinfo) }; |
1285 |
$new_order->{ordernumber} ||= undef; |
1286 |
|
1287 |
my $order = $schema->resultset('Aqorder')->create($new_order); |
1288 |
my $ordernumber = $order->id; |
1289 |
|
1290 |
unless ( $new_order->{parent_ordernumber} ) { |
1291 |
$order->update({ parent_ordernumber => $ordernumber }); |
1292 |
} |
1293 |
|
1294 |
return $ordernumber; |
1295 |
} |
1296 |
|
1297 |
|
1298 |
|
1299 |
|
1300 |
#------------------------------------------------------------# |
1301 |
|
1302 |
=head3 NewOrderItem |
1303 |
|
1304 |
&NewOrderItem(); |
1305 |
|
1306 |
=cut |
1307 |
|
1308 |
sub NewOrderItem { |
1309 |
my ($itemnumber, $ordernumber) = @_; |
1310 |
my $dbh = C4::Context->dbh; |
1311 |
my $query = qq| |
1312 |
INSERT INTO aqorders_items |
1313 |
(itemnumber, ordernumber) |
1314 |
VALUES (?,?) |; |
1315 |
|
1316 |
my $sth = $dbh->prepare($query); |
1317 |
$sth->execute( $itemnumber, $ordernumber); |
1318 |
} |
1319 |
|
1320 |
#------------------------------------------------------------# |
1232 |
#------------------------------------------------------------# |
1321 |
|
1233 |
|
1322 |
=head3 ModOrder |
1234 |
=head3 ModOrder |
Lines 1535-1541
q{SELECT * FROM aqorders WHERE biblionumber=? AND aqorders.ordernumber=?},
Link Here
|
1535 |
$order->{'rrp'} = $rrp; |
1447 |
$order->{'rrp'} = $rrp; |
1536 |
$order->{ecost} = $ecost; |
1448 |
$order->{ecost} = $ecost; |
1537 |
$order->{'orderstatus'} = 'complete'; |
1449 |
$order->{'orderstatus'} = 'complete'; |
1538 |
$new_ordernumber = NewOrder($order); |
1450 |
$new_ordernumber = Koha::Acquisition::Order->new($order)->insert->{ordernumber}; |
1539 |
|
1451 |
|
1540 |
if ($received_items) { |
1452 |
if ($received_items) { |
1541 |
foreach my $itemnumber (@$received_items) { |
1453 |
foreach my $itemnumber (@$received_items) { |
Lines 1932-1939
sub TransferOrder {
Link Here
|
1932 |
delete $order->{'ordernumber'}; |
1844 |
delete $order->{'ordernumber'}; |
1933 |
delete $order->{parent_ordernumber}; |
1845 |
delete $order->{parent_ordernumber}; |
1934 |
$order->{'basketno'} = $basketno; |
1846 |
$order->{'basketno'} = $basketno; |
1935 |
my $newordernumber; |
1847 |
|
1936 |
$newordernumber = NewOrder($order); |
1848 |
my $newordernumber = Koha::Acquisition::Order->new($order)->insert->{ordernumber}; |
1937 |
|
1849 |
|
1938 |
$query = q{ |
1850 |
$query = q{ |
1939 |
UPDATE aqorders_items |
1851 |
UPDATE aqorders_items |