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