|
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 |