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 1041-1047
The following keys are used: "biblionumber", "title", "basketno", "quantity", "n
Link Here
|
1041 |
|
1085 |
|
1042 |
sub NewOrder { |
1086 |
sub NewOrder { |
1043 |
my $orderinfo = shift; |
1087 |
my $orderinfo = shift; |
1044 |
#### ------------------------------ |
1088 |
my $parent_ordernumber = shift; |
|
|
1089 |
|
1045 |
my $dbh = C4::Context->dbh; |
1090 |
my $dbh = C4::Context->dbh; |
1046 |
my @params; |
1091 |
my @params; |
1047 |
|
1092 |
|
Lines 1316-1321
sub ModReceiveOrder {
Link Here
|
1316 |
$sth=$dbh->prepare(" |
1361 |
$sth=$dbh->prepare(" |
1317 |
UPDATE aqorders |
1362 |
UPDATE aqorders |
1318 |
SET quantity = ? |
1363 |
SET quantity = ? |
|
|
1364 |
ordernumber = 2 |
1319 |
WHERE ordernumber = ? |
1365 |
WHERE ordernumber = ? |
1320 |
"); |
1366 |
"); |
1321 |
|
1367 |
|
Lines 1395-1401
sub ModReceiveOrder {
Link Here
|
1395 |
} else { |
1441 |
} else { |
1396 |
$sth=$dbh->prepare("update aqorders |
1442 |
$sth=$dbh->prepare("update aqorders |
1397 |
set quantityreceived=?,datereceived=?,invoiceid=?, |
1443 |
set quantityreceived=?,datereceived=?,invoiceid=?, |
1398 |
unitprice=?,rrp=?,ecost=? |
1444 |
unitprice=?,rrp=?,ecost=?,orderstatus=3 |
1399 |
where biblionumber=? and ordernumber=?"); |
1445 |
where biblionumber=? and ordernumber=?"); |
1400 |
$sth->execute($quantrec,$datereceived,$invoiceid,$cost,$rrp,$ecost,$biblionumber,$ordernumber); |
1446 |
$sth->execute($quantrec,$datereceived,$invoiceid,$cost,$rrp,$ecost,$biblionumber,$ordernumber); |
1401 |
$sth->finish; |
1447 |
$sth->finish; |
Lines 1615-1621
sub DelOrder {
Link Here
|
1615 |
my $dbh = C4::Context->dbh; |
1661 |
my $dbh = C4::Context->dbh; |
1616 |
my $query = " |
1662 |
my $query = " |
1617 |
UPDATE aqorders |
1663 |
UPDATE aqorders |
1618 |
SET datecancellationprinted=now() |
1664 |
SET datecancellationprinted=now(), orderstatus=4 |
1619 |
WHERE biblionumber=? AND ordernumber=? |
1665 |
WHERE biblionumber=? AND ordernumber=? |
1620 |
"; |
1666 |
"; |
1621 |
my $sth = $dbh->prepare($query); |
1667 |
my $sth = $dbh->prepare($query); |
Lines 1634-1641
sub DelOrder {
Link Here
|
1634 |
|
1680 |
|
1635 |
=head3 DelMarcOrder |
1681 |
=head3 DelMarcOrder |
1636 |
|
1682 |
|
1637 |
=over 4 |
|
|
1638 |
|
1639 |
&DelMarcOrder($biblionumber, $ordernumber); |
1683 |
&DelMarcOrder($biblionumber, $ordernumber); |
1640 |
|
1684 |
|
1641 |
Delete the order field from the MARC record. aqorders.ordernumber needs |
1685 |
Delete the order field from the MARC record. aqorders.ordernumber needs |
Lines 2016-2021
sub GetHistory {
Link Here
|
2016 |
my $basket = $params{basket}; |
2060 |
my $basket = $params{basket}; |
2017 |
my $booksellerinvoicenumber = $params{booksellerinvoicenumber}; |
2061 |
my $booksellerinvoicenumber = $params{booksellerinvoicenumber}; |
2018 |
my $basketgroupname = $params{basketgroupname}; |
2062 |
my $basketgroupname = $params{basketgroupname}; |
|
|
2063 |
my $budget = $params{budget}; |
2064 |
my $branchcode = $params{branchcode}; |
2065 |
my $orderstatus = $params{orderstatus}; |
2066 |
|
2019 |
my @order_loop; |
2067 |
my @order_loop; |
2020 |
my $total_qty = 0; |
2068 |
my $total_qty = 0; |
2021 |
my $total_qtyreceived = 0; |
2069 |
my $total_qtyreceived = 0; |
Lines 2024-2033
sub GetHistory {
Link Here
|
2024 |
my $dbh = C4::Context->dbh; |
2072 |
my $dbh = C4::Context->dbh; |
2025 |
my $query =" |
2073 |
my $query =" |
2026 |
SELECT |
2074 |
SELECT |
2027 |
biblio.title, |
2075 |
COALESCE(biblio.title, deletedbiblio.title) AS title, |
2028 |
biblio.author, |
2076 |
COALESCE(biblio.author, deletedbiblio.author) AS author, |
2029 |
biblioitems.isbn, |
2077 |
COALESCE(biblioitems.isbn, deletedbiblioitems.isbn) AS isbn, |
2030 |
biblioitems.ean, |
2078 |
COALESCE(biblioitems.ean, deletedbiblioitems.ean) AS ean, |
2031 |
aqorders.basketno, |
2079 |
aqorders.basketno, |
2032 |
aqbasket.basketname, |
2080 |
aqbasket.basketname, |
2033 |
aqbasket.basketgroupid, |
2081 |
aqbasket.basketgroupid, |
Lines 2041-2059
sub GetHistory {
Link Here
|
2041 |
aqorders.ordernumber, |
2089 |
aqorders.ordernumber, |
2042 |
aqinvoices.invoicenumber, |
2090 |
aqinvoices.invoicenumber, |
2043 |
aqbooksellers.id as id, |
2091 |
aqbooksellers.id as id, |
2044 |
aqorders.biblionumber |
2092 |
aqorders.biblionumber, |
|
|
2093 |
aqorders.orderstatus, |
2094 |
aqorders.branchcode, |
2095 |
aqorders.parent_ordernumber, |
2096 |
aqbudgets.budget_name, |
2097 |
branches.branchname |
2098 |
"; |
2099 |
$query .= ", aqbudgets.budget_id AS budget" if defined $budget; |
2100 |
$query .= " |
2045 |
FROM aqorders |
2101 |
FROM aqorders |
2046 |
LEFT JOIN aqbasket ON aqorders.basketno=aqbasket.basketno |
2102 |
LEFT JOIN aqbasket ON aqorders.basketno=aqbasket.basketno |
2047 |
LEFT JOIN aqbasketgroups ON aqbasket.basketgroupid=aqbasketgroups.id |
2103 |
LEFT JOIN aqbasketgroups ON aqbasket.basketgroupid=aqbasketgroups.id |
2048 |
LEFT JOIN aqbooksellers ON aqbasket.booksellerid=aqbooksellers.id |
2104 |
LEFT JOIN aqbooksellers ON aqbasket.booksellerid=aqbooksellers.id |
2049 |
LEFT JOIN biblioitems ON biblioitems.biblionumber=aqorders.biblionumber |
2105 |
LEFT JOIN biblioitems ON biblioitems.biblionumber=aqorders.biblionumber |
2050 |
LEFT JOIN biblio ON biblio.biblionumber=aqorders.biblionumber |
2106 |
LEFT JOIN biblio ON biblio.biblionumber=aqorders.biblionumber |
2051 |
LEFT JOIN aqinvoices ON aqorders.invoiceid = aqinvoices.invoiceid"; |
2107 |
LEFT JOIN branches ON branches.branchcode=aqorders.branchcode |
|
|
2108 |
LEFT JOIN aqbudgets ON aqorders.budget_id=aqbudgets.budget_id |
2109 |
LEFT JOIN aqinvoices ON aqorders.invoiceid = aqinvoices.invoiceid |
2110 |
LEFT JOIN deletedbiblio ON deletedbiblio.biblionumber=aqorders.biblionumber |
2111 |
LEFT JOIN deletedbiblioitems ON deletedbiblioitems.biblionumber=aqorders.biblionumber |
2112 |
"; |
2113 |
|
2114 |
if ( C4::Context->preference("IndependantBranches") ) { |
2115 |
$query .= " LEFT JOIN borrowers ON aqbasket.authorisedby=borrowers.borrowernumber"; |
2116 |
} |
2052 |
|
2117 |
|
2053 |
$query .= " LEFT JOIN borrowers ON aqbasket.authorisedby=borrowers.borrowernumber" |
2118 |
$query .= " WHERE 1 "; |
2054 |
if ( C4::Context->preference("IndependantBranches") ); |
|
|
2055 |
|
2119 |
|
2056 |
$query .= " WHERE (datecancellationprinted is NULL or datecancellationprinted='0000-00-00') "; |
2120 |
$query .= " AND (datecancellationprinted is NULL or datecancellationprinted='0000-00-00') " if $orderstatus ne '4'; |
2057 |
|
2121 |
|
2058 |
my @query_params = (); |
2122 |
my @query_params = (); |
2059 |
|
2123 |
|
Lines 2072-2078
sub GetHistory {
Link Here
|
2072 |
$query .= " AND biblioitems.isbn LIKE ? "; |
2136 |
$query .= " AND biblioitems.isbn LIKE ? "; |
2073 |
push @query_params, "%$isbn%"; |
2137 |
push @query_params, "%$isbn%"; |
2074 |
} |
2138 |
} |
2075 |
if ( defined $ean and $ean ) { |
2139 |
if ( $ean ) { |
2076 |
$query .= " AND biblioitems.ean = ? "; |
2140 |
$query .= " AND biblioitems.ean = ? "; |
2077 |
push @query_params, "$ean"; |
2141 |
push @query_params, "$ean"; |
2078 |
} |
2142 |
} |
Lines 2081-2086
sub GetHistory {
Link Here
|
2081 |
push @query_params, "%$name%"; |
2145 |
push @query_params, "%$name%"; |
2082 |
} |
2146 |
} |
2083 |
|
2147 |
|
|
|
2148 |
if ( $budget ) { |
2149 |
$query .= " AND aqbudgets.budget_id = ? "; |
2150 |
push @query_params, "$budget"; |
2151 |
} |
2152 |
|
2084 |
if ( $from_placed_on ) { |
2153 |
if ( $from_placed_on ) { |
2085 |
$query .= " AND creationdate >= ? "; |
2154 |
$query .= " AND creationdate >= ? "; |
2086 |
push @query_params, $from_placed_on; |
2155 |
push @query_params, $from_placed_on; |
Lines 2091-2096
sub GetHistory {
Link Here
|
2091 |
push @query_params, $to_placed_on; |
2160 |
push @query_params, $to_placed_on; |
2092 |
} |
2161 |
} |
2093 |
|
2162 |
|
|
|
2163 |
if ( defined $orderstatus and $orderstatus ne '') { |
2164 |
$query .= " AND aqorders.orderstatus = ? "; |
2165 |
push @query_params, "$orderstatus"; |
2166 |
} |
2167 |
|
2094 |
if ($basket) { |
2168 |
if ($basket) { |
2095 |
if ($basket =~ m/^\d+$/) { |
2169 |
if ($basket =~ m/^\d+$/) { |
2096 |
$query .= " AND aqorders.basketno = ? "; |
2170 |
$query .= " AND aqorders.basketno = ? "; |
Lines 2117-2122
sub GetHistory {
Link Here
|
2117 |
$query .= " AND (borrowers.branchcode = ? OR borrowers.branchcode ='' ) "; |
2191 |
$query .= " AND (borrowers.branchcode = ? OR borrowers.branchcode ='' ) "; |
2118 |
push @query_params, $userenv->{branch}; |
2192 |
push @query_params, $userenv->{branch}; |
2119 |
} |
2193 |
} |
|
|
2194 |
} elsif ( defined $branchcode and $branchcode ) { |
2195 |
$query .= " AND aqorders.branchcode = ? "; |
2196 |
push @query_params, $branchcode; |
2120 |
} |
2197 |
} |
2121 |
$query .= " ORDER BY id"; |
2198 |
$query .= " ORDER BY id"; |
2122 |
my $sth = $dbh->prepare($query); |
2199 |
my $sth = $dbh->prepare($query); |
Lines 2126-2134
sub GetHistory {
Link Here
|
2126 |
$line->{count} = $cnt++; |
2203 |
$line->{count} = $cnt++; |
2127 |
$line->{toggle} = 1 if $cnt % 2; |
2204 |
$line->{toggle} = 1 if $cnt % 2; |
2128 |
push @order_loop, $line; |
2205 |
push @order_loop, $line; |
2129 |
$total_qty += $line->{'quantity'}; |
2206 |
$total_qty += ( $line->{quantity} ) ? $line->{quantity} : 0; |
2130 |
$total_qtyreceived += $line->{'quantityreceived'}; |
2207 |
$total_qtyreceived += ( $line->{quantityreceived} ) ? $line->{quantityreceived} : 0; |
2131 |
$total_price += $line->{'quantity'} * $line->{'ecost'}; |
2208 |
$total_price += ( $line->{quantity} and $line->{ecost} ) ? $line->{quantity} * $line->{ecost} : 0; |
2132 |
} |
2209 |
} |
2133 |
return \@order_loop, $total_qty, $total_price, $total_qtyreceived; |
2210 |
return \@order_loop, $total_qty, $total_price, $total_qtyreceived; |
2134 |
} |
2211 |
} |
Lines 2592-2597
sub ReopenInvoice {
Link Here
|
2592 |
$sth->execute($invoiceid); |
2669 |
$sth->execute($invoiceid); |
2593 |
} |
2670 |
} |
2594 |
|
2671 |
|
|
|
2672 |
=head3 GetBiblioCountByBasketno |
2673 |
|
2674 |
$biblio_count = &GetBiblioCountByBasketno($basketno); |
2675 |
|
2676 |
Looks up the biblio's count that has basketno value $basketno |
2677 |
|
2678 |
Returns a quantity |
2679 |
|
2680 |
=cut |
2681 |
|
2682 |
sub GetBiblioCountByBasketno { |
2683 |
my ($basketno) = @_; |
2684 |
my $dbh = C4::Context->dbh; |
2685 |
my $query = " |
2686 |
SELECT COUNT( DISTINCT( biblionumber ) ) |
2687 |
FROM aqorders |
2688 |
WHERE basketno = ? |
2689 |
AND (datecancellationprinted IS NULL OR datecancellationprinted='0000-00-00') |
2690 |
"; |
2691 |
|
2692 |
my $sth = $dbh->prepare($query); |
2693 |
$sth->execute($basketno); |
2694 |
return $sth->fetchrow; |
2695 |
} |
2696 |
|
2595 |
1; |
2697 |
1; |
2596 |
__END__ |
2698 |
__END__ |
2597 |
|
2699 |
|