|
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 67-72
BEGIN {
Link Here
|
| 67 |
&GetItemnumbersFromOrder |
67 |
&GetItemnumbersFromOrder |
| 68 |
|
68 |
|
| 69 |
&AddClaim |
69 |
&AddClaim |
|
|
70 |
&GetBiblioCountByBasketno |
| 70 |
); |
71 |
); |
| 71 |
} |
72 |
} |
| 72 |
|
73 |
|
|
Lines 219-224
sub CloseBasket {
Link Here
|
| 219 |
"; |
220 |
"; |
| 220 |
my $sth = $dbh->prepare($query); |
221 |
my $sth = $dbh->prepare($query); |
| 221 |
$sth->execute($basketno); |
222 |
$sth->execute($basketno); |
|
|
223 |
|
| 224 |
my @orders = GetOrders($basketno); |
| 225 |
foreach my $order (@orders) { |
| 226 |
$query = qq{ |
| 227 |
UPDATE aqorders |
| 228 |
SET orderstatus = 1 |
| 229 |
WHERE ordernumber = ?; |
| 230 |
}; |
| 231 |
$sth = $dbh->prepare($query); |
| 232 |
$sth->execute($order->{'ordernumber'}); |
| 233 |
} |
| 222 |
} |
234 |
} |
| 223 |
|
235 |
|
| 224 |
#------------------------------------------------------------# |
236 |
#------------------------------------------------------------# |
|
Lines 453-458
sub ModBasket {
Link Here
|
| 453 |
my $dbh = C4::Context->dbh; |
465 |
my $dbh = C4::Context->dbh; |
| 454 |
my $sth = $dbh->prepare($query); |
466 |
my $sth = $dbh->prepare($query); |
| 455 |
$sth->execute(@params); |
467 |
$sth->execute(@params); |
|
|
468 |
|
| 469 |
# set orders status = new |
| 470 |
my @orders = GetOrders($basketinfo->{'basketno'}); |
| 471 |
foreach my $order (@orders) { |
| 472 |
$query = qq{ |
| 473 |
UPDATE aqorders |
| 474 |
SET orderstatus = 0 |
| 475 |
WHERE ordernumber = ?; |
| 476 |
}; |
| 477 |
$sth = $dbh->prepare($query); |
| 478 |
$sth->execute($order->{'ordernumber'}); |
| 479 |
} |
| 480 |
|
| 456 |
$sth->finish; |
481 |
$sth->finish; |
| 457 |
} |
482 |
} |
| 458 |
|
483 |
|
|
Lines 1008-1014
The following keys are used: "biblionumber", "title", "basketno", "quantity", "n
Link Here
|
| 1008 |
|
1033 |
|
| 1009 |
sub NewOrder { |
1034 |
sub NewOrder { |
| 1010 |
my $orderinfo = shift; |
1035 |
my $orderinfo = shift; |
| 1011 |
#### ------------------------------ |
1036 |
my $parent_ordernumber = shift; |
|
|
1037 |
|
| 1012 |
my $dbh = C4::Context->dbh; |
1038 |
my $dbh = C4::Context->dbh; |
| 1013 |
my @params; |
1039 |
my @params; |
| 1014 |
|
1040 |
|
|
Lines 1028-1034
sub NewOrder {
Link Here
|
| 1028 |
$orderinfo->{quantityreceived} = 0; |
1054 |
$orderinfo->{quantityreceived} = 0; |
| 1029 |
} |
1055 |
} |
| 1030 |
|
1056 |
|
| 1031 |
my $ordernumber=InsertInTable("aqorders",$orderinfo); |
1057 |
$orderinfo->{parent_ordernumber} = $parent_ordernumber if $parent_ordernumber; |
|
|
1058 |
|
| 1059 |
my $ordernumber = InsertInTable("aqorders",$orderinfo); |
| 1060 |
if ( not $parent_ordernumber ) { |
| 1061 |
$orderinfo->{parent_ordernumber} = $ordernumber; |
| 1062 |
$orderinfo->{ordernumber} = $ordernumber; |
| 1063 |
UpdateInTable( "aqorders", $orderinfo ); |
| 1064 |
} |
| 1065 |
|
| 1032 |
return ( $orderinfo->{'basketno'}, $ordernumber ); |
1066 |
return ( $orderinfo->{'basketno'}, $ordernumber ); |
| 1033 |
} |
1067 |
} |
| 1034 |
|
1068 |
|
|
Lines 1274-1279
sub ModReceiveOrder {
Link Here
|
| 1274 |
, freight=? |
1308 |
, freight=? |
| 1275 |
, rrp=? |
1309 |
, rrp=? |
| 1276 |
, quantity=? |
1310 |
, quantity=? |
|
|
1311 |
, orderstatus=3 |
| 1277 |
WHERE biblionumber=? AND ordernumber=?"); |
1312 |
WHERE biblionumber=? AND ordernumber=?"); |
| 1278 |
|
1313 |
|
| 1279 |
$sth->execute($quantrec,$datereceived,$invoiceno,$cost,$freight,$rrp,$quantrec,$biblionumber,$ordernumber); |
1314 |
$sth->execute($quantrec,$datereceived,$invoiceno,$cost,$freight,$rrp,$quantrec,$biblionumber,$ordernumber); |
|
Lines 1285-1291
sub ModReceiveOrder {
Link Here
|
| 1285 |
} |
1320 |
} |
| 1286 |
$order->{'quantity'} -= $quantrec; |
1321 |
$order->{'quantity'} -= $quantrec; |
| 1287 |
$order->{'quantityreceived'} = 0; |
1322 |
$order->{'quantityreceived'} = 0; |
| 1288 |
my $newOrder = NewOrder($order); |
1323 |
$order->{orderstatus} = 2; |
|
|
1324 |
my $newOrder = NewOrder($order, $order->{parent_ordernumber}); |
| 1289 |
# Change ordernumber in aqorders_items for items not received |
1325 |
# Change ordernumber in aqorders_items for items not received |
| 1290 |
my @orderitems = GetItemnumbersFromOrder( $order->{'ordernumber'} ); |
1326 |
my @orderitems = GetItemnumbersFromOrder( $order->{'ordernumber'} ); |
| 1291 |
my $count = scalar @orderitems; |
1327 |
my $count = scalar @orderitems; |
|
Lines 1301-1307
sub ModReceiveOrder {
Link Here
|
| 1301 |
} else { |
1337 |
} else { |
| 1302 |
$sth=$dbh->prepare("update aqorders |
1338 |
$sth=$dbh->prepare("update aqorders |
| 1303 |
set quantityreceived=?,datereceived=?,booksellerinvoicenumber=?, |
1339 |
set quantityreceived=?,datereceived=?,booksellerinvoicenumber=?, |
| 1304 |
unitprice=?,freight=?,rrp=? |
1340 |
unitprice=?,freight=?,rrp=?,orderstatus=3 |
| 1305 |
where biblionumber=? and ordernumber=?"); |
1341 |
where biblionumber=? and ordernumber=?"); |
| 1306 |
$sth->execute($quantrec,$datereceived,$invoiceno,$cost,$freight,$rrp,$biblionumber,$ordernumber); |
1342 |
$sth->execute($quantrec,$datereceived,$invoiceno,$cost,$freight,$rrp,$biblionumber,$ordernumber); |
| 1307 |
$sth->finish; |
1343 |
$sth->finish; |
|
Lines 1403-1409
sub DelOrder {
Link Here
|
| 1403 |
my $dbh = C4::Context->dbh; |
1439 |
my $dbh = C4::Context->dbh; |
| 1404 |
my $query = " |
1440 |
my $query = " |
| 1405 |
UPDATE aqorders |
1441 |
UPDATE aqorders |
| 1406 |
SET datecancellationprinted=now() |
1442 |
SET datecancellationprinted=now(), orderstatus=4 |
| 1407 |
WHERE biblionumber=? AND ordernumber=? |
1443 |
WHERE biblionumber=? AND ordernumber=? |
| 1408 |
"; |
1444 |
"; |
| 1409 |
my $sth = $dbh->prepare($query); |
1445 |
my $sth = $dbh->prepare($query); |
|
Lines 1756-1761
sub GetHistory {
Link Here
|
| 1756 |
my $to_placed_on = $params{to_placed_on}; |
1792 |
my $to_placed_on = $params{to_placed_on}; |
| 1757 |
my $basket = $params{basket}; |
1793 |
my $basket = $params{basket}; |
| 1758 |
my $booksellerinvoicenumber = $params{booksellerinvoicenumber}; |
1794 |
my $booksellerinvoicenumber = $params{booksellerinvoicenumber}; |
|
|
1795 |
my $budget = $params{budget}; |
| 1796 |
my $branchcode = $params{branchcode}; |
| 1797 |
my $orderstatus = $params{orderstatus}; |
| 1798 |
|
| 1759 |
my @order_loop; |
1799 |
my @order_loop; |
| 1760 |
my $total_qty = 0; |
1800 |
my $total_qty = 0; |
| 1761 |
my $total_qtyreceived = 0; |
1801 |
my $total_qtyreceived = 0; |
|
Lines 1764-1773
sub GetHistory {
Link Here
|
| 1764 |
my $dbh = C4::Context->dbh; |
1804 |
my $dbh = C4::Context->dbh; |
| 1765 |
my $query =" |
1805 |
my $query =" |
| 1766 |
SELECT |
1806 |
SELECT |
| 1767 |
biblio.title, |
1807 |
IFNULL(biblio.title, deletedbiblio.title) AS title, |
| 1768 |
biblio.author, |
1808 |
IFNULL(biblio.author, deletedbiblio.author) AS author, |
| 1769 |
biblioitems.isbn, |
1809 |
IFNULL(biblioitems.isbn, deletedbiblioitems.isbn) AS isbn, |
| 1770 |
biblioitems.ean, |
1810 |
IFNULL(biblioitems.ean, deletedbiblioitems.ean) AS ean, |
| 1771 |
aqorders.basketno, |
1811 |
aqorders.basketno, |
| 1772 |
aqbasket.basketname, |
1812 |
aqbasket.basketname, |
| 1773 |
aqbasket.basketgroupid, |
1813 |
aqbasket.basketgroupid, |
|
Lines 1781-1798
sub GetHistory {
Link Here
|
| 1781 |
aqorders.ordernumber, |
1821 |
aqorders.ordernumber, |
| 1782 |
aqorders.booksellerinvoicenumber as invoicenumber, |
1822 |
aqorders.booksellerinvoicenumber as invoicenumber, |
| 1783 |
aqbooksellers.id as id, |
1823 |
aqbooksellers.id as id, |
| 1784 |
aqorders.biblionumber |
1824 |
aqorders.biblionumber, |
|
|
1825 |
aqorders.orderstatus, |
| 1826 |
aqorders.parent_ordernumber"; |
| 1827 |
$query .= ", aqbudgets.budget_id AS budget" if defined $budget; |
| 1828 |
$query .= ", aqorders.branchcode " if ( not C4::Context->preference("IndependantBranches") and defined $branchcode and $branchcode ); |
| 1829 |
$query .= " |
| 1785 |
FROM aqorders |
1830 |
FROM aqorders |
| 1786 |
LEFT JOIN aqbasket ON aqorders.basketno=aqbasket.basketno |
1831 |
LEFT JOIN aqbasket ON aqorders.basketno=aqbasket.basketno |
| 1787 |
LEFT JOIN aqbasketgroups ON aqbasket.basketgroupid=aqbasketgroups.id |
1832 |
LEFT JOIN aqbasketgroups ON aqbasket.basketgroupid=aqbasketgroups.id |
| 1788 |
LEFT JOIN aqbooksellers ON aqbasket.booksellerid=aqbooksellers.id |
1833 |
LEFT JOIN aqbooksellers ON aqbasket.booksellerid=aqbooksellers.id |
| 1789 |
LEFT JOIN biblioitems ON biblioitems.biblionumber=aqorders.biblionumber |
1834 |
LEFT JOIN biblio ON biblio.biblionumber=aqorders.biblionumber |
| 1790 |
LEFT JOIN biblio ON biblio.biblionumber=aqorders.biblionumber"; |
1835 |
LEFT JOIN biblioitems ON biblioitems.biblionumber=aqorders.biblionumber |
|
|
1836 |
LEFT JOIN deletedbiblio ON deletedbiblio.biblionumber=aqorders.biblionumber |
| 1837 |
LEFT JOIN deletedbiblioitems ON deletedbiblioitems.biblionumber=aqorders.biblionumber |
| 1838 |
"; |
| 1839 |
|
| 1840 |
$query .= " LEFT JOIN aqbudgets ON aqorders.budget_id=aqbudgets.budget_id" |
| 1841 |
if defined $budget; |
| 1842 |
|
| 1843 |
if ( C4::Context->preference("IndependantBranches") ) { |
| 1844 |
$query .= " LEFT JOIN borrowers ON aqbasket.authorisedby=borrowers.borrowernumber"; |
| 1845 |
} elsif ( defined $branchcode and $branchcode) { |
| 1846 |
$query .= " LEFT JOIN borrowers ON aqorders.branchcode=borrowers.branchcode" |
| 1847 |
} |
| 1791 |
|
1848 |
|
| 1792 |
$query .= " LEFT JOIN borrowers ON aqbasket.authorisedby=borrowers.borrowernumber" |
1849 |
$query .= " WHERE 1 "; |
| 1793 |
if ( C4::Context->preference("IndependantBranches") ); |
|
|
| 1794 |
|
1850 |
|
| 1795 |
$query .= " WHERE (datecancellationprinted is NULL or datecancellationprinted='0000-00-00') "; |
1851 |
$query .= " AND (datecancellationprinted is NULL or datecancellationprinted='0000-00-00') " if $orderstatus ne '4'; |
| 1796 |
|
1852 |
|
| 1797 |
my @query_params = (); |
1853 |
my @query_params = (); |
| 1798 |
|
1854 |
|
|
Lines 1811-1817
sub GetHistory {
Link Here
|
| 1811 |
$query .= " AND biblioitems.isbn LIKE ? "; |
1867 |
$query .= " AND biblioitems.isbn LIKE ? "; |
| 1812 |
push @query_params, "%$isbn%"; |
1868 |
push @query_params, "%$isbn%"; |
| 1813 |
} |
1869 |
} |
| 1814 |
if ( defined $ean and $ean ) { |
1870 |
if ( $ean ) { |
| 1815 |
$query .= " AND biblioitems.ean = ? "; |
1871 |
$query .= " AND biblioitems.ean = ? "; |
| 1816 |
push @query_params, "$ean"; |
1872 |
push @query_params, "$ean"; |
| 1817 |
} |
1873 |
} |
|
Lines 1820-1825
sub GetHistory {
Link Here
|
| 1820 |
push @query_params, "%$name%"; |
1876 |
push @query_params, "%$name%"; |
| 1821 |
} |
1877 |
} |
| 1822 |
|
1878 |
|
|
|
1879 |
if ( $budget ) { |
| 1880 |
$query .= " AND aqbudgets.budget_id = ? "; |
| 1881 |
push @query_params, "$budget"; |
| 1882 |
} |
| 1883 |
|
| 1823 |
if ( $from_placed_on ) { |
1884 |
if ( $from_placed_on ) { |
| 1824 |
$query .= " AND creationdate >= ? "; |
1885 |
$query .= " AND creationdate >= ? "; |
| 1825 |
push @query_params, $from_placed_on; |
1886 |
push @query_params, $from_placed_on; |
|
Lines 1830-1835
sub GetHistory {
Link Here
|
| 1830 |
push @query_params, $to_placed_on; |
1891 |
push @query_params, $to_placed_on; |
| 1831 |
} |
1892 |
} |
| 1832 |
|
1893 |
|
|
|
1894 |
if ( defined $orderstatus and $orderstatus ne '') { |
| 1895 |
$query .= " AND aqorders.orderstatus = ? "; |
| 1896 |
push @query_params, "$orderstatus"; |
| 1897 |
} |
| 1898 |
|
| 1833 |
if ($basket) { |
1899 |
if ($basket) { |
| 1834 |
if ($basket =~ m/^\d+$/) { |
1900 |
if ($basket =~ m/^\d+$/) { |
| 1835 |
$query .= " AND aqorders.basketno = ? "; |
1901 |
$query .= " AND aqorders.basketno = ? "; |
|
Lines 1851-1856
sub GetHistory {
Link Here
|
| 1851 |
$query .= " AND (borrowers.branchcode = ? OR borrowers.branchcode ='' ) "; |
1917 |
$query .= " AND (borrowers.branchcode = ? OR borrowers.branchcode ='' ) "; |
| 1852 |
push @query_params, $userenv->{branch}; |
1918 |
push @query_params, $userenv->{branch}; |
| 1853 |
} |
1919 |
} |
|
|
1920 |
} elsif ( defined $branchcode and $branchcode ) { |
| 1921 |
$query .= " AND aqorders.branchcode = ? "; |
| 1922 |
push @query_params, $branchcode; |
| 1854 |
} |
1923 |
} |
| 1855 |
$query .= " ORDER BY id"; |
1924 |
$query .= " ORDER BY id"; |
| 1856 |
my $sth = $dbh->prepare($query); |
1925 |
my $sth = $dbh->prepare($query); |
|
Lines 1860-1868
sub GetHistory {
Link Here
|
| 1860 |
$line->{count} = $cnt++; |
1929 |
$line->{count} = $cnt++; |
| 1861 |
$line->{toggle} = 1 if $cnt % 2; |
1930 |
$line->{toggle} = 1 if $cnt % 2; |
| 1862 |
push @order_loop, $line; |
1931 |
push @order_loop, $line; |
| 1863 |
$total_qty += $line->{'quantity'}; |
1932 |
$total_qty += ( $line->{quantity} ) ? $line->{quantity} : 0; |
| 1864 |
$total_qtyreceived += $line->{'quantityreceived'}; |
1933 |
$total_qtyreceived += ( $line->{quantityreceived} ) ? $line->{quantityreceived} : 0; |
| 1865 |
$total_price += $line->{'quantity'} * $line->{'ecost'}; |
1934 |
$total_price += ( $line->{quantity} and $line->{ecost} ) ? $line->{quantity} * $line->{ecost} : 0; |
| 1866 |
} |
1935 |
} |
| 1867 |
return \@order_loop, $total_qty, $total_price, $total_qtyreceived; |
1936 |
return \@order_loop, $total_qty, $total_price, $total_qtyreceived; |
| 1868 |
} |
1937 |
} |
|
Lines 1986-1991
sub AddClaim {
Link Here
|
| 1986 |
|
2055 |
|
| 1987 |
} |
2056 |
} |
| 1988 |
|
2057 |
|
|
|
2058 |
=head3 GetBiblioCountByBasketno |
| 2059 |
|
| 2060 |
=over 4 |
| 2061 |
|
| 2062 |
$biblio_count = &GetBiblioCountByBasketno($basketno); |
| 2063 |
|
| 2064 |
Looks up the biblio's count that has basketno value $basketno |
| 2065 |
|
| 2066 |
Returns a quantity |
| 2067 |
=back |
| 2068 |
|
| 2069 |
=cut |
| 2070 |
sub GetBiblioCountByBasketno { |
| 2071 |
my ($basketno) = @_; |
| 2072 |
my $dbh = C4::Context->dbh; |
| 2073 |
my $query = " |
| 2074 |
SELECT COUNT( DISTINCT( biblionumber ) ) |
| 2075 |
FROM aqorders |
| 2076 |
WHERE basketno = ? |
| 2077 |
AND (datecancellationprinted IS NULL OR datecancellationprinted='0000-00-00') |
| 2078 |
"; |
| 2079 |
|
| 2080 |
my $sth = $dbh->prepare($query); |
| 2081 |
$sth->execute($basketno); |
| 2082 |
return $sth->fetchrow; |
| 2083 |
} |
| 2084 |
|
| 1989 |
1; |
2085 |
1; |
| 1990 |
__END__ |
2086 |
__END__ |
| 1991 |
|
2087 |
|