Lines 28-34
use MARC::Record;
Link Here
|
28 |
use C4::Suggestions; |
28 |
use C4::Suggestions; |
29 |
use C4::Biblio; |
29 |
use C4::Biblio; |
30 |
use C4::Debug; |
30 |
use C4::Debug; |
31 |
use C4::SQLHelper qw(InsertInTable); |
31 |
use C4::SQLHelper qw(InsertInTable UpdateInTable); |
32 |
use C4::Bookseller qw(GetBookSellerFromId); |
32 |
use C4::Bookseller qw(GetBookSellerFromId); |
33 |
use C4::Templates qw(gettemplate); |
33 |
use C4::Templates qw(gettemplate); |
34 |
|
34 |
|
Lines 43-49
BEGIN {
Link Here
|
43 |
require Exporter; |
43 |
require Exporter; |
44 |
@ISA = qw(Exporter); |
44 |
@ISA = qw(Exporter); |
45 |
@EXPORT = qw( |
45 |
@EXPORT = qw( |
46 |
&GetBasket &NewBasket &CloseBasket &DelBasket &ModBasket |
46 |
&GetBasket &NewBasket &CloseBasket &ReopenBasket &DelBasket &ModBasket |
47 |
&GetBasketAsCSV &GetBasketGroupAsCSV |
47 |
&GetBasketAsCSV &GetBasketGroupAsCSV |
48 |
&GetBasketsByBookseller &GetBasketsByBasketgroup |
48 |
&GetBasketsByBookseller &GetBasketsByBasketgroup |
49 |
&GetBasketsInfosByBookseller |
49 |
&GetBasketsInfosByBookseller |
Lines 76-81
BEGIN {
Link Here
|
76 |
&GetItemnumbersFromOrder |
76 |
&GetItemnumbersFromOrder |
77 |
|
77 |
|
78 |
&AddClaim |
78 |
&AddClaim |
|
|
79 |
&GetBiblioCountByBasketno |
79 |
); |
80 |
); |
80 |
} |
81 |
} |
81 |
|
82 |
|
Lines 215-221
sub NewBasket {
Link Here
|
215 |
|
216 |
|
216 |
&CloseBasket($basketno); |
217 |
&CloseBasket($basketno); |
217 |
|
218 |
|
218 |
close a basket (becomes unmodifiable,except for recieves) |
219 |
close a basket (becomes unmodifiable, except for receives) |
219 |
|
220 |
|
220 |
=cut |
221 |
=cut |
221 |
|
222 |
|
Lines 229-234
sub CloseBasket {
Link Here
|
229 |
"; |
230 |
"; |
230 |
my $sth = $dbh->prepare($query); |
231 |
my $sth = $dbh->prepare($query); |
231 |
$sth->execute($basketno); |
232 |
$sth->execute($basketno); |
|
|
233 |
|
234 |
my @orders = GetOrders($basketno); |
235 |
foreach my $order (@orders) { |
236 |
$query = qq{ |
237 |
UPDATE aqorders |
238 |
SET orderstatus = 1 |
239 |
WHERE ordernumber = ?; |
240 |
}; |
241 |
$sth = $dbh->prepare($query); |
242 |
$sth->execute($order->{'ordernumber'}); |
243 |
} |
244 |
} |
245 |
|
246 |
=head3 ReopenBasket |
247 |
|
248 |
&ReopenBasket($basketno); |
249 |
|
250 |
reopen a basket |
251 |
|
252 |
=cut |
253 |
|
254 |
sub ReopenBasket { |
255 |
my ($basketno) = @_; |
256 |
my $dbh = C4::Context->dbh; |
257 |
my $query = " |
258 |
UPDATE aqbasket |
259 |
SET closedate=NULL |
260 |
WHERE basketno=? |
261 |
"; |
262 |
my $sth = $dbh->prepare($query); |
263 |
$sth->execute($basketno); |
264 |
|
265 |
my @orders = GetOrders($basketno); |
266 |
foreach my $order (@orders) { |
267 |
$query = qq{ |
268 |
UPDATE aqorders |
269 |
SET orderstatus = 0 |
270 |
WHERE ordernumber = ?; |
271 |
}; |
272 |
$sth = $dbh->prepare($query); |
273 |
$sth->execute($order->{'ordernumber'}); |
274 |
} |
232 |
} |
275 |
} |
233 |
|
276 |
|
234 |
#------------------------------------------------------------# |
277 |
#------------------------------------------------------------# |
Lines 468-473
sub ModBasket {
Link Here
|
468 |
my $dbh = C4::Context->dbh; |
511 |
my $dbh = C4::Context->dbh; |
469 |
my $sth = $dbh->prepare($query); |
512 |
my $sth = $dbh->prepare($query); |
470 |
$sth->execute(@params); |
513 |
$sth->execute(@params); |
|
|
514 |
|
471 |
$sth->finish; |
515 |
$sth->finish; |
472 |
} |
516 |
} |
473 |
|
517 |
|
Lines 1118-1124
The following keys are used: "biblionumber", "title", "basketno", "quantity", "n
Link Here
|
1118 |
|
1162 |
|
1119 |
sub NewOrder { |
1163 |
sub NewOrder { |
1120 |
my $orderinfo = shift; |
1164 |
my $orderinfo = shift; |
1121 |
#### ------------------------------ |
1165 |
my $parent_ordernumber = shift; |
|
|
1166 |
|
1122 |
my $dbh = C4::Context->dbh; |
1167 |
my $dbh = C4::Context->dbh; |
1123 |
my @params; |
1168 |
my @params; |
1124 |
|
1169 |
|
Lines 1338-1344
sub ModReceiveOrder {
Link Here
|
1338 |
# (entirely received) |
1383 |
# (entirely received) |
1339 |
$sth=$dbh->prepare(" |
1384 |
$sth=$dbh->prepare(" |
1340 |
UPDATE aqorders |
1385 |
UPDATE aqorders |
1341 |
SET quantity = ? |
1386 |
SET quantity = ?, |
|
|
1387 |
orderstatus = 2 |
1342 |
WHERE ordernumber = ? |
1388 |
WHERE ordernumber = ? |
1343 |
"); |
1389 |
"); |
1344 |
|
1390 |
|
Lines 1366-1372
sub ModReceiveOrder {
Link Here
|
1366 |
} else { |
1412 |
} else { |
1367 |
$sth=$dbh->prepare("update aqorders |
1413 |
$sth=$dbh->prepare("update aqorders |
1368 |
set quantityreceived=?,datereceived=?,invoiceid=?, |
1414 |
set quantityreceived=?,datereceived=?,invoiceid=?, |
1369 |
unitprice=?,rrp=?,ecost=? |
1415 |
unitprice=?,rrp=?,ecost=?,orderstatus=3 |
1370 |
where biblionumber=? and ordernumber=?"); |
1416 |
where biblionumber=? and ordernumber=?"); |
1371 |
$sth->execute($quantrec,$datereceived,$invoiceid,$cost,$rrp,$ecost,$biblionumber,$ordernumber); |
1417 |
$sth->execute($quantrec,$datereceived,$invoiceid,$cost,$rrp,$ecost,$biblionumber,$ordernumber); |
1372 |
$sth->finish; |
1418 |
$sth->finish; |
Lines 1416-1422
sub CancelReceipt {
Link Here
|
1416 |
UPDATE aqorders |
1462 |
UPDATE aqorders |
1417 |
SET quantityreceived = ?, |
1463 |
SET quantityreceived = ?, |
1418 |
datereceived = ?, |
1464 |
datereceived = ?, |
1419 |
invoiceid = ? |
1465 |
invoiceid = ?, |
|
|
1466 |
orderstatus = 1 |
1420 |
WHERE ordernumber = ? |
1467 |
WHERE ordernumber = ? |
1421 |
}; |
1468 |
}; |
1422 |
$sth = $dbh->prepare($query); |
1469 |
$sth = $dbh->prepare($query); |
Lines 1443-1449
sub CancelReceipt {
Link Here
|
1443 |
} |
1490 |
} |
1444 |
$query = qq{ |
1491 |
$query = qq{ |
1445 |
UPDATE aqorders |
1492 |
UPDATE aqorders |
1446 |
SET quantity = ? |
1493 |
SET quantity = ?, |
|
|
1494 |
orderstatus = 1 |
1447 |
WHERE ordernumber = ? |
1495 |
WHERE ordernumber = ? |
1448 |
}; |
1496 |
}; |
1449 |
$sth = $dbh->prepare($query); |
1497 |
$sth = $dbh->prepare($query); |
Lines 1583-1589
sub DelOrder {
Link Here
|
1583 |
my $dbh = C4::Context->dbh; |
1631 |
my $dbh = C4::Context->dbh; |
1584 |
my $query = " |
1632 |
my $query = " |
1585 |
UPDATE aqorders |
1633 |
UPDATE aqorders |
1586 |
SET datecancellationprinted=now() |
1634 |
SET datecancellationprinted=now(), orderstatus=4 |
1587 |
WHERE biblionumber=? AND ordernumber=? |
1635 |
WHERE biblionumber=? AND ordernumber=? |
1588 |
"; |
1636 |
"; |
1589 |
my $sth = $dbh->prepare($query); |
1637 |
my $sth = $dbh->prepare($query); |
Lines 1944-1949
sub GetHistory {
Link Here
|
1944 |
my $basket = $params{basket}; |
1992 |
my $basket = $params{basket}; |
1945 |
my $booksellerinvoicenumber = $params{booksellerinvoicenumber}; |
1993 |
my $booksellerinvoicenumber = $params{booksellerinvoicenumber}; |
1946 |
my $basketgroupname = $params{basketgroupname}; |
1994 |
my $basketgroupname = $params{basketgroupname}; |
|
|
1995 |
my $budget = $params{budget}; |
1996 |
my $orderstatus = $params{orderstatus}; |
1997 |
|
1947 |
my @order_loop; |
1998 |
my @order_loop; |
1948 |
my $total_qty = 0; |
1999 |
my $total_qty = 0; |
1949 |
my $total_qtyreceived = 0; |
2000 |
my $total_qtyreceived = 0; |
Lines 1952-1961
sub GetHistory {
Link Here
|
1952 |
my $dbh = C4::Context->dbh; |
2003 |
my $dbh = C4::Context->dbh; |
1953 |
my $query =" |
2004 |
my $query =" |
1954 |
SELECT |
2005 |
SELECT |
1955 |
biblio.title, |
2006 |
COALESCE(biblio.title, deletedbiblio.title) AS title, |
1956 |
biblio.author, |
2007 |
COALESCE(biblio.author, deletedbiblio.author) AS author, |
1957 |
biblioitems.isbn, |
2008 |
COALESCE(biblioitems.isbn, deletedbiblioitems.isbn) AS isbn, |
1958 |
biblioitems.ean, |
2009 |
COALESCE(biblioitems.ean, deletedbiblioitems.ean) AS ean, |
1959 |
aqorders.basketno, |
2010 |
aqorders.basketno, |
1960 |
aqbasket.basketname, |
2011 |
aqbasket.basketname, |
1961 |
aqbasket.basketgroupid, |
2012 |
aqbasket.basketgroupid, |
Lines 1970-1988
sub GetHistory {
Link Here
|
1970 |
aqorders.invoiceid, |
2021 |
aqorders.invoiceid, |
1971 |
aqinvoices.invoicenumber, |
2022 |
aqinvoices.invoicenumber, |
1972 |
aqbooksellers.id as id, |
2023 |
aqbooksellers.id as id, |
1973 |
aqorders.biblionumber |
2024 |
aqorders.biblionumber, |
|
|
2025 |
aqorders.orderstatus, |
2026 |
aqorders.parent_ordernumber, |
2027 |
aqbudgets.budget_name |
2028 |
"; |
2029 |
$query .= ", aqbudgets.budget_id AS budget" if defined $budget; |
2030 |
$query .= " |
1974 |
FROM aqorders |
2031 |
FROM aqorders |
1975 |
LEFT JOIN aqbasket ON aqorders.basketno=aqbasket.basketno |
2032 |
LEFT JOIN aqbasket ON aqorders.basketno=aqbasket.basketno |
1976 |
LEFT JOIN aqbasketgroups ON aqbasket.basketgroupid=aqbasketgroups.id |
2033 |
LEFT JOIN aqbasketgroups ON aqbasket.basketgroupid=aqbasketgroups.id |
1977 |
LEFT JOIN aqbooksellers ON aqbasket.booksellerid=aqbooksellers.id |
2034 |
LEFT JOIN aqbooksellers ON aqbasket.booksellerid=aqbooksellers.id |
1978 |
LEFT JOIN biblioitems ON biblioitems.biblionumber=aqorders.biblionumber |
2035 |
LEFT JOIN biblioitems ON biblioitems.biblionumber=aqorders.biblionumber |
1979 |
LEFT JOIN biblio ON biblio.biblionumber=aqorders.biblionumber |
2036 |
LEFT JOIN biblio ON biblio.biblionumber=aqorders.biblionumber |
1980 |
LEFT JOIN aqinvoices ON aqorders.invoiceid = aqinvoices.invoiceid"; |
2037 |
LEFT JOIN aqbudgets ON aqorders.budget_id=aqbudgets.budget_id |
|
|
2038 |
LEFT JOIN aqinvoices ON aqorders.invoiceid = aqinvoices.invoiceid |
2039 |
LEFT JOIN deletedbiblio ON deletedbiblio.biblionumber=aqorders.biblionumber |
2040 |
LEFT JOIN deletedbiblioitems ON deletedbiblioitems.biblionumber=aqorders.biblionumber |
2041 |
"; |
1981 |
|
2042 |
|
1982 |
$query .= " LEFT JOIN borrowers ON aqbasket.authorisedby=borrowers.borrowernumber" |
2043 |
if ( C4::Context->preference("IndependentBranches") ) { |
1983 |
if ( C4::Context->preference("IndependentBranches") ); |
2044 |
$query .= " LEFT JOIN borrowers ON aqbasket.authorisedby=borrowers.borrowernumber"; |
|
|
2045 |
} |
1984 |
|
2046 |
|
1985 |
$query .= " WHERE (datecancellationprinted is NULL or datecancellationprinted='0000-00-00') "; |
2047 |
$query .= " WHERE 1 "; |
|
|
2048 |
|
2049 |
$query .= " AND (datecancellationprinted is NULL or datecancellationprinted='0000-00-00') " if $orderstatus ne '4'; |
1986 |
|
2050 |
|
1987 |
my @query_params = (); |
2051 |
my @query_params = (); |
1988 |
|
2052 |
|
Lines 2001-2007
sub GetHistory {
Link Here
|
2001 |
$query .= " AND biblioitems.isbn LIKE ? "; |
2065 |
$query .= " AND biblioitems.isbn LIKE ? "; |
2002 |
push @query_params, "%$isbn%"; |
2066 |
push @query_params, "%$isbn%"; |
2003 |
} |
2067 |
} |
2004 |
if ( defined $ean and $ean ) { |
2068 |
if ( $ean ) { |
2005 |
$query .= " AND biblioitems.ean = ? "; |
2069 |
$query .= " AND biblioitems.ean = ? "; |
2006 |
push @query_params, "$ean"; |
2070 |
push @query_params, "$ean"; |
2007 |
} |
2071 |
} |
Lines 2010-2015
sub GetHistory {
Link Here
|
2010 |
push @query_params, "%$name%"; |
2074 |
push @query_params, "%$name%"; |
2011 |
} |
2075 |
} |
2012 |
|
2076 |
|
|
|
2077 |
if ( $budget ) { |
2078 |
$query .= " AND aqbudgets.budget_id = ? "; |
2079 |
push @query_params, "$budget"; |
2080 |
} |
2081 |
|
2013 |
if ( $from_placed_on ) { |
2082 |
if ( $from_placed_on ) { |
2014 |
$query .= " AND creationdate >= ? "; |
2083 |
$query .= " AND creationdate >= ? "; |
2015 |
push @query_params, $from_placed_on; |
2084 |
push @query_params, $from_placed_on; |
Lines 2020-2025
sub GetHistory {
Link Here
|
2020 |
push @query_params, $to_placed_on; |
2089 |
push @query_params, $to_placed_on; |
2021 |
} |
2090 |
} |
2022 |
|
2091 |
|
|
|
2092 |
if ( defined $orderstatus and $orderstatus ne '') { |
2093 |
$query .= " AND aqorders.orderstatus = ? "; |
2094 |
push @query_params, "$orderstatus"; |
2095 |
} |
2096 |
|
2023 |
if ($basket) { |
2097 |
if ($basket) { |
2024 |
if ($basket =~ m/^\d+$/) { |
2098 |
if ($basket =~ m/^\d+$/) { |
2025 |
$query .= " AND aqorders.basketno = ? "; |
2099 |
$query .= " AND aqorders.basketno = ? "; |
Lines 2055-2063
sub GetHistory {
Link Here
|
2055 |
$line->{count} = $cnt++; |
2129 |
$line->{count} = $cnt++; |
2056 |
$line->{toggle} = 1 if $cnt % 2; |
2130 |
$line->{toggle} = 1 if $cnt % 2; |
2057 |
push @order_loop, $line; |
2131 |
push @order_loop, $line; |
2058 |
$total_qty += $line->{'quantity'}; |
2132 |
$total_qty += ( $line->{quantity} ) ? $line->{quantity} : 0; |
2059 |
$total_qtyreceived += $line->{'quantityreceived'}; |
2133 |
$total_qtyreceived += ( $line->{quantityreceived} ) ? $line->{quantityreceived} : 0; |
2060 |
$total_price += $line->{'quantity'} * $line->{'ecost'}; |
2134 |
$total_price += ( $line->{quantity} and $line->{ecost} ) ? $line->{quantity} * $line->{ecost} : 0; |
2061 |
} |
2135 |
} |
2062 |
return \@order_loop, $total_qty, $total_price, $total_qtyreceived; |
2136 |
return \@order_loop, $total_qty, $total_price, $total_qtyreceived; |
2063 |
} |
2137 |
} |
Lines 2554-2559
sub DelInvoice {
Link Here
|
2554 |
return; |
2628 |
return; |
2555 |
} |
2629 |
} |
2556 |
|
2630 |
|
|
|
2631 |
=head3 GetBiblioCountByBasketno |
2632 |
|
2633 |
$biblio_count = &GetBiblioCountByBasketno($basketno); |
2634 |
|
2635 |
Looks up the biblio's count that has basketno value $basketno |
2636 |
|
2637 |
Returns a quantity |
2638 |
|
2639 |
=cut |
2640 |
|
2641 |
sub GetBiblioCountByBasketno { |
2642 |
my ($basketno) = @_; |
2643 |
my $dbh = C4::Context->dbh; |
2644 |
my $query = " |
2645 |
SELECT COUNT( DISTINCT( biblionumber ) ) |
2646 |
FROM aqorders |
2647 |
WHERE basketno = ? |
2648 |
AND (datecancellationprinted IS NULL OR datecancellationprinted='0000-00-00') |
2649 |
"; |
2650 |
|
2651 |
my $sth = $dbh->prepare($query); |
2652 |
$sth->execute($basketno); |
2653 |
return $sth->fetchrow; |
2654 |
} |
2655 |
|
2557 |
1; |
2656 |
1; |
2558 |
__END__ |
2657 |
__END__ |
2559 |
|
2658 |
|