|
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 75-80
BEGIN {
Link Here
|
| 75 |
&GetItemnumbersFromOrder |
75 |
&GetItemnumbersFromOrder |
| 76 |
|
76 |
|
| 77 |
&AddClaim |
77 |
&AddClaim |
|
|
78 |
&GetBiblioCountByBasketno |
| 78 |
); |
79 |
); |
| 79 |
} |
80 |
} |
| 80 |
|
81 |
|
|
Lines 214-220
sub NewBasket {
Link Here
|
| 214 |
|
215 |
|
| 215 |
&CloseBasket($basketno); |
216 |
&CloseBasket($basketno); |
| 216 |
|
217 |
|
| 217 |
close a basket (becomes unmodifiable,except for recieves) |
218 |
close a basket (becomes unmodifiable, except for receives) |
| 218 |
|
219 |
|
| 219 |
=cut |
220 |
=cut |
| 220 |
|
221 |
|
|
Lines 228-233
sub CloseBasket {
Link Here
|
| 228 |
"; |
229 |
"; |
| 229 |
my $sth = $dbh->prepare($query); |
230 |
my $sth = $dbh->prepare($query); |
| 230 |
$sth->execute($basketno); |
231 |
$sth->execute($basketno); |
|
|
232 |
|
| 233 |
my @orders = GetOrders($basketno); |
| 234 |
foreach my $order (@orders) { |
| 235 |
$query = qq{ |
| 236 |
UPDATE aqorders |
| 237 |
SET orderstatus = 1 |
| 238 |
WHERE ordernumber = ?; |
| 239 |
}; |
| 240 |
$sth = $dbh->prepare($query); |
| 241 |
$sth->execute($order->{'ordernumber'}); |
| 242 |
} |
| 243 |
} |
| 244 |
|
| 245 |
=head3 ReopenBasket |
| 246 |
|
| 247 |
&ReopenBasket($basketno); |
| 248 |
|
| 249 |
reopen a basket |
| 250 |
|
| 251 |
=cut |
| 252 |
|
| 253 |
sub ReopenBasket { |
| 254 |
my ($basketno) = @_; |
| 255 |
my $dbh = C4::Context->dbh; |
| 256 |
my $query = " |
| 257 |
UPDATE aqbasket |
| 258 |
SET closedate=NULL |
| 259 |
WHERE basketno=? |
| 260 |
"; |
| 261 |
my $sth = $dbh->prepare($query); |
| 262 |
$sth->execute($basketno); |
| 263 |
|
| 264 |
my @orders = GetOrders($basketno); |
| 265 |
foreach my $order (@orders) { |
| 266 |
$query = qq{ |
| 267 |
UPDATE aqorders |
| 268 |
SET orderstatus = 0 |
| 269 |
WHERE ordernumber = ?; |
| 270 |
}; |
| 271 |
$sth = $dbh->prepare($query); |
| 272 |
$sth->execute($order->{'ordernumber'}); |
| 273 |
} |
| 231 |
} |
274 |
} |
| 232 |
|
275 |
|
| 233 |
#------------------------------------------------------------# |
276 |
#------------------------------------------------------------# |
|
Lines 467-472
sub ModBasket {
Link Here
|
| 467 |
my $dbh = C4::Context->dbh; |
510 |
my $dbh = C4::Context->dbh; |
| 468 |
my $sth = $dbh->prepare($query); |
511 |
my $sth = $dbh->prepare($query); |
| 469 |
$sth->execute(@params); |
512 |
$sth->execute(@params); |
|
|
513 |
|
| 470 |
$sth->finish; |
514 |
$sth->finish; |
| 471 |
} |
515 |
} |
| 472 |
|
516 |
|
|
Lines 1150-1156
The following keys are used: "biblionumber", "title", "basketno", "quantity", "n
Link Here
|
| 1150 |
|
1194 |
|
| 1151 |
sub NewOrder { |
1195 |
sub NewOrder { |
| 1152 |
my $orderinfo = shift; |
1196 |
my $orderinfo = shift; |
| 1153 |
#### ------------------------------ |
1197 |
my $parent_ordernumber = shift; |
|
|
1198 |
|
| 1154 |
my $dbh = C4::Context->dbh; |
1199 |
my $dbh = C4::Context->dbh; |
| 1155 |
my @params; |
1200 |
my @params; |
| 1156 |
|
1201 |
|
|
Lines 1425-1431
sub ModReceiveOrder {
Link Here
|
| 1425 |
# (entirely received) |
1470 |
# (entirely received) |
| 1426 |
$sth=$dbh->prepare(" |
1471 |
$sth=$dbh->prepare(" |
| 1427 |
UPDATE aqorders |
1472 |
UPDATE aqorders |
| 1428 |
SET quantity = ? |
1473 |
SET quantity = ?, |
|
|
1474 |
orderstatus = 2 |
| 1429 |
WHERE ordernumber = ? |
1475 |
WHERE ordernumber = ? |
| 1430 |
"); |
1476 |
"); |
| 1431 |
|
1477 |
|
|
Lines 1452-1458
sub ModReceiveOrder {
Link Here
|
| 1452 |
} else { |
1498 |
} else { |
| 1453 |
$sth=$dbh->prepare("update aqorders |
1499 |
$sth=$dbh->prepare("update aqorders |
| 1454 |
set quantityreceived=?,datereceived=?,invoiceid=?, |
1500 |
set quantityreceived=?,datereceived=?,invoiceid=?, |
| 1455 |
unitprice=?,rrp=?,ecost=? |
1501 |
unitprice=?,rrp=?,ecost=?,orderstatus=3 |
| 1456 |
where biblionumber=? and ordernumber=?"); |
1502 |
where biblionumber=? and ordernumber=?"); |
| 1457 |
$sth->execute($quantrec,$datereceived,$invoiceid,$cost,$rrp,$ecost,$biblionumber,$ordernumber); |
1503 |
$sth->execute($quantrec,$datereceived,$invoiceid,$cost,$rrp,$ecost,$biblionumber,$ordernumber); |
| 1458 |
$sth->finish; |
1504 |
$sth->finish; |
|
Lines 1502-1508
sub CancelReceipt {
Link Here
|
| 1502 |
UPDATE aqorders |
1548 |
UPDATE aqorders |
| 1503 |
SET quantityreceived = ?, |
1549 |
SET quantityreceived = ?, |
| 1504 |
datereceived = ?, |
1550 |
datereceived = ?, |
| 1505 |
invoiceid = ? |
1551 |
invoiceid = ?, |
|
|
1552 |
orderstatus = 1 |
| 1506 |
WHERE ordernumber = ? |
1553 |
WHERE ordernumber = ? |
| 1507 |
}; |
1554 |
}; |
| 1508 |
$sth = $dbh->prepare($query); |
1555 |
$sth = $dbh->prepare($query); |
|
Lines 1529-1535
sub CancelReceipt {
Link Here
|
| 1529 |
} |
1576 |
} |
| 1530 |
$query = qq{ |
1577 |
$query = qq{ |
| 1531 |
UPDATE aqorders |
1578 |
UPDATE aqorders |
| 1532 |
SET quantity = ? |
1579 |
SET quantity = ?, |
|
|
1580 |
orderstatus = 1 |
| 1533 |
WHERE ordernumber = ? |
1581 |
WHERE ordernumber = ? |
| 1534 |
}; |
1582 |
}; |
| 1535 |
$sth = $dbh->prepare($query); |
1583 |
$sth = $dbh->prepare($query); |
|
Lines 1669-1675
sub DelOrder {
Link Here
|
| 1669 |
my $dbh = C4::Context->dbh; |
1717 |
my $dbh = C4::Context->dbh; |
| 1670 |
my $query = " |
1718 |
my $query = " |
| 1671 |
UPDATE aqorders |
1719 |
UPDATE aqorders |
| 1672 |
SET datecancellationprinted=now() |
1720 |
SET datecancellationprinted=now(), orderstatus=4 |
| 1673 |
WHERE biblionumber=? AND ordernumber=? |
1721 |
WHERE biblionumber=? AND ordernumber=? |
| 1674 |
"; |
1722 |
"; |
| 1675 |
my $sth = $dbh->prepare($query); |
1723 |
my $sth = $dbh->prepare($query); |
|
Lines 2030-2035
sub GetHistory {
Link Here
|
| 2030 |
my $basket = $params{basket}; |
2078 |
my $basket = $params{basket}; |
| 2031 |
my $booksellerinvoicenumber = $params{booksellerinvoicenumber}; |
2079 |
my $booksellerinvoicenumber = $params{booksellerinvoicenumber}; |
| 2032 |
my $basketgroupname = $params{basketgroupname}; |
2080 |
my $basketgroupname = $params{basketgroupname}; |
|
|
2081 |
my $budget = $params{budget}; |
| 2082 |
my $orderstatus = $params{orderstatus}; |
| 2083 |
|
| 2033 |
my @order_loop; |
2084 |
my @order_loop; |
| 2034 |
my $total_qty = 0; |
2085 |
my $total_qty = 0; |
| 2035 |
my $total_qtyreceived = 0; |
2086 |
my $total_qtyreceived = 0; |
|
Lines 2038-2047
sub GetHistory {
Link Here
|
| 2038 |
my $dbh = C4::Context->dbh; |
2089 |
my $dbh = C4::Context->dbh; |
| 2039 |
my $query =" |
2090 |
my $query =" |
| 2040 |
SELECT |
2091 |
SELECT |
| 2041 |
biblio.title, |
2092 |
COALESCE(biblio.title, deletedbiblio.title) AS title, |
| 2042 |
biblio.author, |
2093 |
COALESCE(biblio.author, deletedbiblio.author) AS author, |
| 2043 |
biblioitems.isbn, |
2094 |
COALESCE(biblioitems.isbn, deletedbiblioitems.isbn) AS isbn, |
| 2044 |
biblioitems.ean, |
2095 |
COALESCE(biblioitems.ean, deletedbiblioitems.ean) AS ean, |
| 2045 |
aqorders.basketno, |
2096 |
aqorders.basketno, |
| 2046 |
aqbasket.basketname, |
2097 |
aqbasket.basketname, |
| 2047 |
aqbasket.basketgroupid, |
2098 |
aqbasket.basketgroupid, |
|
Lines 2056-2074
sub GetHistory {
Link Here
|
| 2056 |
aqorders.invoiceid, |
2107 |
aqorders.invoiceid, |
| 2057 |
aqinvoices.invoicenumber, |
2108 |
aqinvoices.invoicenumber, |
| 2058 |
aqbooksellers.id as id, |
2109 |
aqbooksellers.id as id, |
| 2059 |
aqorders.biblionumber |
2110 |
aqorders.biblionumber, |
|
|
2111 |
aqorders.orderstatus, |
| 2112 |
aqorders.parent_ordernumber, |
| 2113 |
aqbudgets.budget_name |
| 2114 |
"; |
| 2115 |
$query .= ", aqbudgets.budget_id AS budget" if defined $budget; |
| 2116 |
$query .= " |
| 2060 |
FROM aqorders |
2117 |
FROM aqorders |
| 2061 |
LEFT JOIN aqbasket ON aqorders.basketno=aqbasket.basketno |
2118 |
LEFT JOIN aqbasket ON aqorders.basketno=aqbasket.basketno |
| 2062 |
LEFT JOIN aqbasketgroups ON aqbasket.basketgroupid=aqbasketgroups.id |
2119 |
LEFT JOIN aqbasketgroups ON aqbasket.basketgroupid=aqbasketgroups.id |
| 2063 |
LEFT JOIN aqbooksellers ON aqbasket.booksellerid=aqbooksellers.id |
2120 |
LEFT JOIN aqbooksellers ON aqbasket.booksellerid=aqbooksellers.id |
| 2064 |
LEFT JOIN biblioitems ON biblioitems.biblionumber=aqorders.biblionumber |
2121 |
LEFT JOIN biblioitems ON biblioitems.biblionumber=aqorders.biblionumber |
| 2065 |
LEFT JOIN biblio ON biblio.biblionumber=aqorders.biblionumber |
2122 |
LEFT JOIN biblio ON biblio.biblionumber=aqorders.biblionumber |
| 2066 |
LEFT JOIN aqinvoices ON aqorders.invoiceid = aqinvoices.invoiceid"; |
2123 |
LEFT JOIN aqbudgets ON aqorders.budget_id=aqbudgets.budget_id |
|
|
2124 |
LEFT JOIN aqinvoices ON aqorders.invoiceid = aqinvoices.invoiceid |
| 2125 |
LEFT JOIN deletedbiblio ON deletedbiblio.biblionumber=aqorders.biblionumber |
| 2126 |
LEFT JOIN deletedbiblioitems ON deletedbiblioitems.biblionumber=aqorders.biblionumber |
| 2127 |
"; |
| 2128 |
|
| 2129 |
if ( C4::Context->preference("IndependentBranches") ) { |
| 2130 |
$query .= " LEFT JOIN borrowers ON aqbasket.authorisedby=borrowers.borrowernumber"; |
| 2131 |
} |
| 2067 |
|
2132 |
|
| 2068 |
$query .= " LEFT JOIN borrowers ON aqbasket.authorisedby=borrowers.borrowernumber" |
2133 |
$query .= " WHERE 1 "; |
| 2069 |
if ( C4::Context->preference("IndependentBranches") ); |
|
|
| 2070 |
|
2134 |
|
| 2071 |
$query .= " WHERE (datecancellationprinted is NULL or datecancellationprinted='0000-00-00') "; |
2135 |
$query .= " AND (datecancellationprinted is NULL or datecancellationprinted='0000-00-00') " if $orderstatus ne '4'; |
| 2072 |
|
2136 |
|
| 2073 |
my @query_params = (); |
2137 |
my @query_params = (); |
| 2074 |
|
2138 |
|
|
Lines 2087-2093
sub GetHistory {
Link Here
|
| 2087 |
$query .= " AND biblioitems.isbn LIKE ? "; |
2151 |
$query .= " AND biblioitems.isbn LIKE ? "; |
| 2088 |
push @query_params, "%$isbn%"; |
2152 |
push @query_params, "%$isbn%"; |
| 2089 |
} |
2153 |
} |
| 2090 |
if ( defined $ean and $ean ) { |
2154 |
if ( $ean ) { |
| 2091 |
$query .= " AND biblioitems.ean = ? "; |
2155 |
$query .= " AND biblioitems.ean = ? "; |
| 2092 |
push @query_params, "$ean"; |
2156 |
push @query_params, "$ean"; |
| 2093 |
} |
2157 |
} |
|
Lines 2096-2101
sub GetHistory {
Link Here
|
| 2096 |
push @query_params, "%$name%"; |
2160 |
push @query_params, "%$name%"; |
| 2097 |
} |
2161 |
} |
| 2098 |
|
2162 |
|
|
|
2163 |
if ( $budget ) { |
| 2164 |
$query .= " AND aqbudgets.budget_id = ? "; |
| 2165 |
push @query_params, "$budget"; |
| 2166 |
} |
| 2167 |
|
| 2099 |
if ( $from_placed_on ) { |
2168 |
if ( $from_placed_on ) { |
| 2100 |
$query .= " AND creationdate >= ? "; |
2169 |
$query .= " AND creationdate >= ? "; |
| 2101 |
push @query_params, $from_placed_on; |
2170 |
push @query_params, $from_placed_on; |
|
Lines 2106-2111
sub GetHistory {
Link Here
|
| 2106 |
push @query_params, $to_placed_on; |
2175 |
push @query_params, $to_placed_on; |
| 2107 |
} |
2176 |
} |
| 2108 |
|
2177 |
|
|
|
2178 |
if ( defined $orderstatus and $orderstatus ne '') { |
| 2179 |
$query .= " AND aqorders.orderstatus = ? "; |
| 2180 |
push @query_params, "$orderstatus"; |
| 2181 |
} |
| 2182 |
|
| 2109 |
if ($basket) { |
2183 |
if ($basket) { |
| 2110 |
if ($basket =~ m/^\d+$/) { |
2184 |
if ($basket =~ m/^\d+$/) { |
| 2111 |
$query .= " AND aqorders.basketno = ? "; |
2185 |
$query .= " AND aqorders.basketno = ? "; |
|
Lines 2141-2149
sub GetHistory {
Link Here
|
| 2141 |
$line->{count} = $cnt++; |
2215 |
$line->{count} = $cnt++; |
| 2142 |
$line->{toggle} = 1 if $cnt % 2; |
2216 |
$line->{toggle} = 1 if $cnt % 2; |
| 2143 |
push @order_loop, $line; |
2217 |
push @order_loop, $line; |
| 2144 |
$total_qty += $line->{'quantity'}; |
2218 |
$total_qty += ( $line->{quantity} ) ? $line->{quantity} : 0; |
| 2145 |
$total_qtyreceived += $line->{'quantityreceived'}; |
2219 |
$total_qtyreceived += ( $line->{quantityreceived} ) ? $line->{quantityreceived} : 0; |
| 2146 |
$total_price += $line->{'quantity'} * $line->{'ecost'}; |
2220 |
$total_price += ( $line->{quantity} and $line->{ecost} ) ? $line->{quantity} * $line->{ecost} : 0; |
| 2147 |
} |
2221 |
} |
| 2148 |
return \@order_loop, $total_qty, $total_price, $total_qtyreceived; |
2222 |
return \@order_loop, $total_qty, $total_price, $total_qtyreceived; |
| 2149 |
} |
2223 |
} |
|
Lines 2607-2612
sub ReopenInvoice {
Link Here
|
| 2607 |
$sth->execute($invoiceid); |
2681 |
$sth->execute($invoiceid); |
| 2608 |
} |
2682 |
} |
| 2609 |
|
2683 |
|
|
|
2684 |
=head3 GetBiblioCountByBasketno |
| 2685 |
|
| 2686 |
$biblio_count = &GetBiblioCountByBasketno($basketno); |
| 2687 |
|
| 2688 |
Looks up the biblio's count that has basketno value $basketno |
| 2689 |
|
| 2690 |
Returns a quantity |
| 2691 |
|
| 2692 |
=cut |
| 2693 |
|
| 2694 |
sub GetBiblioCountByBasketno { |
| 2695 |
my ($basketno) = @_; |
| 2696 |
my $dbh = C4::Context->dbh; |
| 2697 |
my $query = " |
| 2698 |
SELECT COUNT( DISTINCT( biblionumber ) ) |
| 2699 |
FROM aqorders |
| 2700 |
WHERE basketno = ? |
| 2701 |
AND (datecancellationprinted IS NULL OR datecancellationprinted='0000-00-00') |
| 2702 |
"; |
| 2703 |
|
| 2704 |
my $sth = $dbh->prepare($query); |
| 2705 |
$sth->execute($basketno); |
| 2706 |
return $sth->fetchrow; |
| 2707 |
} |
| 2708 |
|
| 2610 |
1; |
2709 |
1; |
| 2611 |
__END__ |
2710 |
__END__ |
| 2612 |
|
2711 |
|