View | Details | Raw Unified | Return to bug 10758
Collapse All | Expand All

(-)a/C4/Acquisition.pm (-50 / +192 lines)
Lines 1033-1046 sub GetBasketgroups { Link Here
1033
1033
1034
  @orders = &GetOrders($basketnumber, $orderby);
1034
  @orders = &GetOrders($basketnumber, $orderby);
1035
1035
1036
Looks up the pending (non-cancelled) orders with the given basket
1036
Looks up the non-cancelled (pending and received) orders with the given basketnumber.
1037
number. If C<$booksellerID> is non-empty, only orders from that seller
1037
Parameters:
1038
are returned.
1038
- C<$basketnumber> : mandatory parameter, the basket number
1039
1039
- C<$orderby> : optional parameter, used to sort the results (must be a valid expression
1040
return :
1040
using some fields of aqorders, aqbugdets, biblio, deletedbiblio,
1041
C<&basket> returns a two-element array. C<@orders> is an array of
1041
biblioitems, deletedbiblioitems, aqorders_transfers tables)
1042
references-to-hash, whose keys are the fields from the aqorders,
1042
If C<$orderby> is not provided, results are sorted according to publishercode and title
1043
biblio, and biblioitems tables in the Koha database.
1043
1044
Return :
1045
The returned C<@orders> is an array of references-to-hash, whose keys are:
1046
- the fields from the aqorders table
1047
- the fields from the aqbudgets table
1048
- 2 fields from aqorders_transfers table : ordernumber_from, return as transferred_from
1049
and timestamp, return as transferred_from_timestamp
1050
- 5 fields of biblio or deletedbiblio tables : title, author, seriestitle, serial, copyrightdate
1051
- 9 fields of biblioitems or deletedbiblioitems tables : publicationyear, publishercode,
1052
editionstatement, issn, isbn, ean, itemtype, volume, number
1053
If the record still exists, the biblionumber key contains the biblionumber
1054
If the record have been deleted, the biblionumber key is blank,
1055
and the deletedbiblionumber key contains the biblionumber of the deleted record.
1044
1056
1045
=cut
1057
=cut
1046
1058
Lines 1049-1070 sub GetOrders { Link Here
1049
    return () unless $basketno;
1061
    return () unless $basketno;
1050
    my $dbh   = C4::Context->dbh;
1062
    my $dbh   = C4::Context->dbh;
1051
    my $query  ="
1063
    my $query  ="
1052
        SELECT biblio.*,biblioitems.*,
1064
        SELECT
1065
                COALESCE(biblio.title,                 deletedbiblio.title)                 AS title,
1066
                COALESCE(biblio.author,                deletedbiblio.author)                AS author,
1067
                COALESCE(biblio.seriestitle,           deletedbiblio.seriestitle)           AS seriestitle,
1068
                COALESCE(biblio.serial,                deletedbiblio.serial)                AS serial,
1069
                COALESCE(biblio.copyrightdate,         deletedbiblio.copyrightdate)         AS copyrightdate,
1070
                COALESCE(biblioitems.publicationyear,  deletedbiblioitems.publicationyear)  AS publicationyear,
1071
                COALESCE(biblioitems.publishercode,    deletedbiblioitems.publishercode)    AS publishercode,
1072
                COALESCE(biblioitems.editionstatement, deletedbiblioitems.editionstatement) AS editionstatement,
1073
                COALESCE(biblioitems.isbn,             deletedbiblioitems.isbn)             AS isbn,
1074
                COALESCE(biblioitems.issn,             deletedbiblioitems.issn)             AS issn,
1075
                COALESCE(biblioitems.ean,              deletedbiblioitems.ean)              AS ean,
1076
                COALESCE(biblioitems.itemtype,         deletedbiblioitems.itemtype)         AS itemtype,
1077
                COALESCE(biblioitems.volume,           deletedbiblioitems.volume)           AS volume,
1078
                COALESCE(biblioitems.number,           deletedbiblioitems.number)           AS number,
1053
                aqorders.*,
1079
                aqorders.*,
1054
                aqbudgets.*,
1080
                aqbudgets.*,
1055
                biblio.title,
1056
                aqorders_transfers.ordernumber_from AS transferred_from,
1081
                aqorders_transfers.ordernumber_from AS transferred_from,
1057
                aqorders_transfers.timestamp AS transferred_from_timestamp
1082
                aqorders_transfers.timestamp AS transferred_from_timestamp
1058
        FROM    aqorders
1083
        FROM    aqorders
1059
            LEFT JOIN aqbudgets        ON aqbudgets.budget_id = aqorders.budget_id
1084
            LEFT JOIN aqbudgets        ON aqbudgets.budget_id = aqorders.budget_id
1060
            LEFT JOIN biblio           ON biblio.biblionumber = aqorders.biblionumber
1085
            LEFT JOIN biblio           ON biblio.biblionumber = aqorders.biblionumber
1061
            LEFT JOIN biblioitems      ON biblioitems.biblionumber =biblio.biblionumber
1086
            LEFT JOIN biblioitems      ON biblioitems.biblionumber =biblio.biblionumber
1087
            LEFT JOIN deletedbiblio      ON deletedbiblio.biblionumber=aqorders.deletedbiblionumber
1088
            LEFT JOIN deletedbiblioitems ON deletedbiblioitems.biblionumber=deletedbiblio.biblionumber
1062
            LEFT JOIN aqorders_transfers ON aqorders_transfers.ordernumber_to = aqorders.ordernumber
1089
            LEFT JOIN aqorders_transfers ON aqorders_transfers.ordernumber_to = aqorders.ordernumber
1063
        WHERE   basketno=?
1090
        WHERE   basketno=?
1064
            AND (datecancellationprinted IS NULL OR datecancellationprinted='0000-00-00')
1091
            AND (datecancellationprinted IS NULL OR datecancellationprinted='0000-00-00')
1065
    ";
1092
    ";
1066
1093
1067
    $orderby = "biblioitems.publishercode,biblio.title" unless $orderby;
1094
    $orderby = "COALESCE(biblioitems.publishercode,deletedbiblioitems.publishercode), COALESCE(biblio.title,deletedbiblio.title)" unless $orderby;
1068
    $query .= " ORDER BY $orderby";
1095
    $query .= " ORDER BY $orderby";
1069
    my $result_set =
1096
    my $result_set =
1070
      $dbh->selectall_arrayref( $query, { Slice => {} }, $basketno );
1097
      $dbh->selectall_arrayref( $query, { Slice => {} }, $basketno );
Lines 1091-1099 sub GetOrdersByBiblionumber { Link Here
1091
    return unless $biblionumber;
1118
    return unless $biblionumber;
1092
    my $dbh   = C4::Context->dbh;
1119
    my $dbh   = C4::Context->dbh;
1093
    my $query  ="
1120
    my $query  ="
1094
        SELECT biblio.*,biblioitems.*,
1121
        SELECT
1095
                aqorders.*,
1122
            biblio.*, biblioitems.*,
1096
                aqbudgets.*
1123
            aqorders.*,
1124
            aqbudgets.*
1097
        FROM    aqorders
1125
        FROM    aqorders
1098
            LEFT JOIN aqbudgets        ON aqbudgets.budget_id = aqorders.budget_id
1126
            LEFT JOIN aqbudgets        ON aqbudgets.budget_id = aqorders.budget_id
1099
            LEFT JOIN biblio           ON biblio.biblionumber = aqorders.biblionumber
1127
            LEFT JOIN biblio           ON biblio.biblionumber = aqorders.biblionumber
Lines 1114-1121 sub GetOrdersByBiblionumber { Link Here
1114
1142
1115
Looks up an order by order number.
1143
Looks up an order by order number.
1116
1144
1117
Returns a reference-to-hash describing the order. The keys of
1145
Returns a reference-to-hash describing the order.
1118
C<$order> are fields from the biblio, biblioitems, aqorders tables of the Koha database.
1146
The keys of C<$order> are
1147
- all fields from the aqorders table
1148
- 2 fields from aqorders table returned with alternate names : rrp as unitpricesupplier, ecost as unitpricelib
1149
- 1 field from aqbasket table : basketname
1150
- 1 field from borrowers table : branchcode
1151
- 1 field from aqbudgets table : budget_name returned as budget
1152
- 2 fields from aqbooksellers : name returned as supplier, id returned as supplierid
1153
- estimateddeliverydate :  ADDDATE(aqbasket.closedate, INTERVAL aqbooksellers.deliverytime DAY)
1154
- quantity_to_receive : aqorders.quantity - COALESCE(aqorders.quantityreceived,0)
1155
- subtotal : (aqorders.quantity - COALESCE(aqorders.quantityreceived,0)) * aqorders.rrp
1156
- orderdate : DATE (aqbasket.closedate)
1157
- latesince : DATEDIFF(CURDATE( ),closedate)
1158
- 5 fields of biblio or deletedbiblio tables : title, author, seriestitle, serial, copyrightdate
1159
- 9 fields of biblioitems or deletedbiblioitems tables : publicationyear, publishercode,
1160
editionstatement, issn, isbn, ean, itemtype, volume, number
1161
If the record still exists, the biblionumber key contains the biblionumber
1162
If the record have been deleted, the biblionumber key is blank,
1163
and the deletedbiblionumber key contains the biblionumber of the deleted record.
1164
1119
1165
1120
=cut
1166
=cut
1121
1167
Lines 1124-1142 sub GetOrder { Link Here
1124
    return unless $ordernumber;
1170
    return unless $ordernumber;
1125
1171
1126
    my $dbh      = C4::Context->dbh;
1172
    my $dbh      = C4::Context->dbh;
1173
# FIXME publishercode column should probably be returned only as publisher or publishercode, but we must first investigate templates to check the use of this value
1127
    my $query = qq{SELECT
1174
    my $query = qq{SELECT
1175
                COALESCE(biblio.title,                 deletedbiblio.title)                 AS title,
1176
                COALESCE(biblio.author,                deletedbiblio.author)                AS author,
1177
                COALESCE(biblio.seriestitle,           deletedbiblio.seriestitle)           AS seriestitle,
1178
                COALESCE(biblio.serial,                deletedbiblio.serial)                AS serial,
1179
                COALESCE(biblio.copyrightdate,         deletedbiblio.copyrightdate)         AS copyrightdate,
1180
                COALESCE(biblioitems.publicationyear,  deletedbiblioitems.publicationyear)  AS publicationyear,
1181
                COALESCE(biblioitems.publishercode,    deletedbiblioitems.publishercode)    AS publishercode,
1182
                COALESCE(biblioitems.publishercode,    deletedbiblioitems.publishercode)    AS publisher,
1183
                COALESCE(biblioitems.editionstatement, deletedbiblioitems.editionstatement) AS editionstatement,
1184
                COALESCE(biblioitems.isbn,             deletedbiblioitems.isbn)             AS isbn,
1185
                COALESCE(biblioitems.issn,             deletedbiblioitems.issn)             AS issn,
1186
                COALESCE(biblioitems.ean,              deletedbiblioitems.ean)              AS ean,
1187
                COALESCE(biblioitems.itemtype,         deletedbiblioitems.itemtype)         AS itemtype,
1188
                COALESCE(biblioitems.volume,           deletedbiblioitems.volume)           AS volume,
1189
                COALESCE(biblioitems.number,           deletedbiblioitems.number)           AS number,
1128
                aqorders.*,
1190
                aqorders.*,
1129
                biblio.title,
1130
                biblio.author,
1131
                aqbasket.basketname,
1191
                aqbasket.basketname,
1132
                borrowers.branchcode,
1192
                borrowers.branchcode,
1133
                biblioitems.publicationyear,
1134
                biblio.copyrightdate,
1135
                biblioitems.editionstatement,
1136
                biblioitems.isbn,
1137
                biblioitems.ean,
1138
                biblio.seriestitle,
1139
                biblioitems.publishercode,
1140
                aqorders.rrp              AS unitpricesupplier,
1193
                aqorders.rrp              AS unitpricesupplier,
1141
                aqorders.ecost            AS unitpricelib,
1194
                aqorders.ecost            AS unitpricelib,
1142
                aqorders.claims_count     AS claims_count,
1195
                aqorders.claims_count     AS claims_count,
Lines 1144-1150 sub GetOrder { Link Here
1144
                aqbudgets.budget_name     AS budget,
1197
                aqbudgets.budget_name     AS budget,
1145
                aqbooksellers.name        AS supplier,
1198
                aqbooksellers.name        AS supplier,
1146
                aqbooksellers.id          AS supplierid,
1199
                aqbooksellers.id          AS supplierid,
1147
                biblioitems.publishercode AS publisher,
1148
                ADDDATE(aqbasket.closedate, INTERVAL aqbooksellers.deliverytime DAY) AS estimateddeliverydate,
1200
                ADDDATE(aqbasket.closedate, INTERVAL aqbooksellers.deliverytime DAY) AS estimateddeliverydate,
1149
                DATE(aqbasket.closedate)  AS orderdate,
1201
                DATE(aqbasket.closedate)  AS orderdate,
1150
                aqorders.quantity - COALESCE(aqorders.quantityreceived,0)                 AS quantity_to_receive,
1202
                aqorders.quantity - COALESCE(aqorders.quantityreceived,0)                 AS quantity_to_receive,
Lines 1152-1157 sub GetOrder { Link Here
1152
                DATEDIFF(CURDATE( ),closedate) AS latesince
1204
                DATEDIFF(CURDATE( ),closedate) AS latesince
1153
                FROM aqorders LEFT JOIN biblio ON biblio.biblionumber = aqorders.biblionumber
1205
                FROM aqorders LEFT JOIN biblio ON biblio.biblionumber = aqorders.biblionumber
1154
                LEFT JOIN biblioitems ON biblioitems.biblionumber = biblio.biblionumber
1206
                LEFT JOIN biblioitems ON biblioitems.biblionumber = biblio.biblionumber
1207
                LEFT JOIN deletedbiblio      ON deletedbiblio.biblionumber=aqorders.deletedbiblionumber
1208
                LEFT JOIN deletedbiblioitems ON deletedbiblioitems.biblionumber=deletedbiblio.biblionumber
1155
                LEFT JOIN aqbudgets ON aqorders.budget_id = aqbudgets.budget_id,
1209
                LEFT JOIN aqbudgets ON aqorders.budget_id = aqbudgets.budget_id,
1156
                aqbasket LEFT JOIN borrowers  ON aqbasket.authorisedby = borrowers.borrowernumber
1210
                aqbasket LEFT JOIN borrowers  ON aqbasket.authorisedby = borrowers.borrowernumber
1157
                LEFT JOIN aqbooksellers       ON aqbasket.booksellerid = aqbooksellers.id
1211
                LEFT JOIN aqbooksellers       ON aqbasket.booksellerid = aqbooksellers.id
Lines 1394-1402 sub ModItemOrder { Link Here
1394
1448
1395
=head3 GetCancelledOrders
1449
=head3 GetCancelledOrders
1396
1450
1397
  my @orders = GetCancelledOrders($basketno, $orderby);
1451
  my @orders = GetCancelledOrders($basketnumber, $orderby);
1398
1452
1399
Returns cancelled orders for a basket
1453
Looks up the cancelled orders with the given basketnumber.
1454
Parameters:
1455
- C<$basketnumber> : mandatory parameter, the basket number
1456
- C<$orderby> : optional parameter, used to sort the results (must be a valid expression
1457
using some fields of aqorders, aqbugdets, biblio, deletedbiblio,
1458
biblioitems, deletedbiblioitems, aqorders_transfers tables)
1459
If C<$orderby> is not provided, results are sorted according to publishercode and title
1460
1461
Return :
1462
The returned C<@orders> is an array of references-to-hash, whose keys are:
1463
- the fields from the aqorders table
1464
- the fields from the aqbudgets table
1465
- 2 fields from aqorders_transfers table : ordernumber_from, return as transferred_from
1466
and timestamp, return as transferred_from_timestamp
1467
- 5 fields of biblio or deletedbiblio tables : title, author, seriestitle, serial, copyrightdate
1468
- 9 fields of biblioitems or deletedbiblioitems tables : publicationyear, publishercode,
1469
editionstatement, issn, isbn, ean, itemtype, volume, number
1470
If the record still exists, the biblionumber key contains the biblionumber
1471
If the record have been deleted, the biblionumber key is blank,
1472
and the deletedbiblionumber key contains the biblionumber of the deleted record.
1400
1473
1401
=cut
1474
=cut
1402
1475
Lines 1408-1415 sub GetCancelledOrders { Link Here
1408
    my $dbh   = C4::Context->dbh;
1481
    my $dbh   = C4::Context->dbh;
1409
    my $query = "
1482
    my $query = "
1410
        SELECT
1483
        SELECT
1411
            biblio.*,
1484
            COALESCE(biblio.title,                 deletedbiblio.title)                 AS title,
1412
            biblioitems.*,
1485
            COALESCE(biblio.author,                deletedbiblio.author)                AS author,
1486
            COALESCE(biblio.seriestitle,           deletedbiblio.seriestitle)           AS seriestitle,
1487
            COALESCE(biblio.serial,                deletedbiblio.serial)                AS serial,
1488
            COALESCE(biblio.copyrightdate,         deletedbiblio.copyrightdate)         AS copyrightdate,
1489
            COALESCE(biblioitems.publicationyear,  deletedbiblioitems.publicationyear)  AS publicationyear,
1490
            COALESCE(biblioitems.publishercode,    deletedbiblioitems.publishercode)    AS publishercode,
1491
            COALESCE(biblioitems.editionstatement, deletedbiblioitems.editionstatement) AS editionstatement,
1492
            COALESCE(biblioitems.isbn,             deletedbiblioitems.isbn)             AS isbn,
1493
            COALESCE(biblioitems.issn,             deletedbiblioitems.issn)             AS issn,
1494
            COALESCE(biblioitems.ean,              deletedbiblioitems.ean)              AS ean,
1495
            COALESCE(biblioitems.itemtype,         deletedbiblioitems.itemtype)         AS itemtype,
1496
            COALESCE(biblioitems.volume,           deletedbiblioitems.volume)           AS volume,
1497
            COALESCE(biblioitems.number,           deletedbiblioitems.number)           AS number,
1413
            aqorders.*,
1498
            aqorders.*,
1414
            aqbudgets.*,
1499
            aqbudgets.*,
1415
            aqorders_transfers.ordernumber_to AS transferred_to,
1500
            aqorders_transfers.ordernumber_to AS transferred_to,
Lines 1418-1423 sub GetCancelledOrders { Link Here
1418
          LEFT JOIN aqbudgets   ON aqbudgets.budget_id = aqorders.budget_id
1503
          LEFT JOIN aqbudgets   ON aqbudgets.budget_id = aqorders.budget_id
1419
          LEFT JOIN biblio      ON biblio.biblionumber = aqorders.biblionumber
1504
          LEFT JOIN biblio      ON biblio.biblionumber = aqorders.biblionumber
1420
          LEFT JOIN biblioitems ON biblioitems.biblionumber = biblio.biblionumber
1505
          LEFT JOIN biblioitems ON biblioitems.biblionumber = biblio.biblionumber
1506
          LEFT JOIN deletedbiblio      ON deletedbiblio.biblionumber=aqorders.deletedbiblionumber
1507
          LEFT JOIN deletedbiblioitems ON deletedbiblioitems.biblionumber=deletedbiblio.biblionumber
1421
          LEFT JOIN aqorders_transfers ON aqorders_transfers.ordernumber_from = aqorders.ordernumber
1508
          LEFT JOIN aqorders_transfers ON aqorders_transfers.ordernumber_from = aqorders.ordernumber
1422
        WHERE basketno = ?
1509
        WHERE basketno = ?
1423
          AND (datecancellationprinted IS NOT NULL
1510
          AND (datecancellationprinted IS NOT NULL
Lines 1707-1713 C<$ordered> Finds orders to receive only (status 'ordered' or 'partial'). Link Here
1707
1794
1708
1795
1709
C<@results> is an array of references-to-hash with the keys are fields
1796
C<@results> is an array of references-to-hash with the keys are fields
1710
from aqorders, biblio, biblioitems and aqbasket tables.
1797
from aqorders, biblio, deletedbiblio, biblioitems, deletedbiblioitems,
1798
aqbasket and aqbasketgroups tables.
1799
If the record still exists, the biblionumber key contains the biblionumber
1800
If the record have been deleted, the biblionumber key is blank,
1801
and the deletedbiblionumber key contains the biblionumber of the deleted record.
1711
1802
1712
=cut
1803
=cut
1713
1804
Lines 1731-1739 sub SearchOrders { Link Here
1731
        SELECT aqbasket.basketno,
1822
        SELECT aqbasket.basketno,
1732
               borrowers.surname,
1823
               borrowers.surname,
1733
               borrowers.firstname,
1824
               borrowers.firstname,
1734
               biblio.*,
1825
               COALESCE(biblio.title,                 deletedbiblio.title)                 AS title,
1735
               biblioitems.isbn,
1826
               COALESCE(biblio.author,                deletedbiblio.author)                AS author,
1736
               biblioitems.biblioitemnumber,
1827
               COALESCE(biblio.seriestitle,           deletedbiblio.seriestitle)           AS seriestitle,
1828
               COALESCE(biblio.serial,                deletedbiblio.serial)                AS serial,
1829
               COALESCE(biblio.copyrightdate,         deletedbiblio.copyrightdate)         AS copyrightdate,
1830
               COALESCE(biblioitems.publicationyear,  deletedbiblioitems.publicationyear)  AS publicationyear,
1831
               COALESCE(biblioitems.publishercode,    deletedbiblioitems.publishercode)    AS publishercode,
1832
               COALESCE(biblioitems.editionstatement, deletedbiblioitems.editionstatement) AS editionstatement,
1833
               COALESCE(biblioitems.isbn,             deletedbiblioitems.isbn)             AS isbn,
1834
               COALESCE(biblioitems.issn,             deletedbiblioitems.issn)             AS issn,
1835
               COALESCE(biblioitems.ean,              deletedbiblioitems.ean)              AS ean,
1836
               COALESCE(biblioitems.itemtype,         deletedbiblioitems.itemtype)         AS itemtype,
1837
               COALESCE(biblioitems.volume,           deletedbiblioitems.volume)           AS volume,
1838
               COALESCE(biblioitems.number,           deletedbiblioitems.number)           AS number,
1737
               aqbasket.authorisedby,
1839
               aqbasket.authorisedby,
1738
               aqbasket.booksellerid,
1840
               aqbasket.booksellerid,
1739
               aqbasket.closedate,
1841
               aqbasket.closedate,
Lines 1748-1753 sub SearchOrders { Link Here
1748
            LEFT JOIN borrowers ON aqbasket.authorisedby=borrowers.borrowernumber
1850
            LEFT JOIN borrowers ON aqbasket.authorisedby=borrowers.borrowernumber
1749
            LEFT JOIN biblio ON aqorders.biblionumber=biblio.biblionumber
1851
            LEFT JOIN biblio ON aqorders.biblionumber=biblio.biblionumber
1750
            LEFT JOIN biblioitems ON biblioitems.biblionumber=biblio.biblionumber
1852
            LEFT JOIN biblioitems ON biblioitems.biblionumber=biblio.biblionumber
1853
            LEFT JOIN deletedbiblio ON aqorders.deletedbiblionumber=deletedbiblio.biblionumber
1854
            LEFT JOIN deletedbiblioitems ON deletedbiblioitems.biblionumber=deletedbiblio.biblionumber
1751
    };
1855
    };
1752
1856
1753
    # If we search on ordernumber, we retrieve the transfered order if a transfer has been done.
1857
    # If we search on ordernumber, we retrieve the transfered order if a transfer has been done.
Lines 1788-1798 sub SearchOrders { Link Here
1788
        push @args, $biblionumber;
1892
        push @args, $biblionumber;
1789
    }
1893
    }
1790
    if( $search ) {
1894
    if( $search ) {
1791
        $query .= ' AND (biblio.title LIKE ? OR biblio.author LIKE ? OR biblioitems.isbn LIKE ?)';
1895
        $query .= ' AND (COALESCE (biblio.title, deletedbiblio.title) LIKE ? OR COALESCE (biblio.author, deletedbiblio.author) LIKE ? OR COALESCE (biblioitems.isbn, deletedbiblioitems.isbn) LIKE ?)';
1792
        push @args, ("%$search%","%$search%","%$search%");
1896
        push @args, ("%$search%","%$search%","%$search%");
1793
    }
1897
    }
1794
    if ( $ean ) {
1898
    if ( $ean ) {
1795
        $query .= ' AND biblioitems.ean = ?';
1899
        $query .= ' AND (COALESCE biblioitems.ean,deletedbiblioitems.ean) = ?';
1796
        push @args, $ean;
1900
        push @args, $ean;
1797
    }
1901
    }
1798
    if ( $booksellerid ) {
1902
    if ( $booksellerid ) {
Lines 1926-1932 Looks up all of the received items from the supplier with the given Link Here
1926
bookseller ID at the given date, for the given code (bookseller Invoice number). Ignores cancelled and completed orders.
2030
bookseller ID at the given date, for the given code (bookseller Invoice number). Ignores cancelled and completed orders.
1927
2031
1928
C<@results> is an array of references-to-hash. The keys of each element are fields from
2032
C<@results> is an array of references-to-hash. The keys of each element are fields from
1929
the aqorders, biblio, and biblioitems tables of the Koha database.
2033
the aqorders, aqbasket, aqinvoices, borrowers, biblio, and deletedbiblio tables of the Koha database.
1930
2034
1931
C<@results> is sorted alphabetically by book title.
2035
C<@results> is sorted alphabetically by book title.
1932
2036
Lines 1955-1965 sub GetParcel { Link Here
1955
                aqorders.rrp,
2059
                aqorders.rrp,
1956
                aqorders.ecost,
2060
                aqorders.ecost,
1957
                aqorders.gstrate,
2061
                aqorders.gstrate,
1958
                biblio.title
2062
                COALESCE (biblio.title, deletedbiblio.title) AS title
1959
        FROM aqorders
2063
        FROM aqorders
1960
        LEFT JOIN aqbasket ON aqbasket.basketno=aqorders.basketno
2064
        LEFT JOIN aqbasket ON aqbasket.basketno=aqorders.basketno
1961
        LEFT JOIN borrowers ON aqbasket.authorisedby=borrowers.borrowernumber
2065
        LEFT JOIN borrowers ON aqbasket.authorisedby=borrowers.borrowernumber
1962
        LEFT JOIN biblio ON aqorders.biblionumber=biblio.biblionumber
2066
        LEFT JOIN biblio ON aqorders.biblionumber=biblio.biblionumber
2067
        LEFT JOIN deletedbiblio ON aqorders.deletedbiblionumber=deletedbiblio.biblionumber
1963
        LEFT JOIN aqinvoices ON aqorders.invoiceid = aqinvoices.invoiceid
2068
        LEFT JOIN aqinvoices ON aqorders.invoiceid = aqinvoices.invoiceid
1964
        WHERE
2069
        WHERE
1965
            aqbasket.booksellerid = ?
2070
            aqbasket.booksellerid = ?
Lines 2075-2087 sub GetParcels { Link Here
2075
2180
2076
=head3 GetLateOrders
2181
=head3 GetLateOrders
2077
2182
2078
  @results = &GetLateOrders;
2183
  @results = &GetLateOrders ($delay, $supplierid, $branch, $estimateddeliverydatefrom, $estimateddeliverydateto) ;
2079
2184
2080
Searches for bookseller with late orders.
2185
Looks up the orders to receive (non cancelled and non completely received) from a given supplier.
2081
2186
2082
return:
2187
return:
2083
the table of supplier with late issues. This table is full of hashref.
2188
the table of supplier with late issues. This table is full of hashref.
2084
2189
2190
Looks up the cancelled orders with the given basketnumber.
2191
Optional parameters are used to limit the results :
2192
- C<$delay>                         : the number of days after the closing of the basket after which an order is late
2193
- C<$supplierid>                    : the id of the vendor this function has to get orders
2194
- C<$branch>                        : the branchcode of the branch this function has to get orders
2195
- C<$estimateddeliverydatefrom>     : the oldest expected date of delivery (based on aqbooksellers.deliverytime)
2196
- C<$estimateddeliverydateto>       : the most recent expected date of delivery (based on aqbooksellers.deliverytime). If only
2197
C<$estimateddeliverydatefrom> is provided and not C<$estimateddeliverydatefrom>, the current day is used as most recent
2198
expected date of delivery.
2199
2200
Return :
2201
The returned C<@results> is an array of references-to-hash, whose keys are:
2202
- 9 fields from the aqorders table : ordernumber, biblionumber, deletedbiblionumber, claims_count, claims_date,
2203
closedate as orderdate, rrp as unitpricesupplier, ecost in unitpricelib, budget_name as budget
2204
- 1 field from the aqbasket table : basketno
2205
- 1 field from the borrowers table : branchcode as branch
2206
- 2 fields from aqbooksellers : name as supplier, id as supplierid
2207
- 2 fields of biblio or deletedbiblio tables : title, author
2208
- 2 fields of biblioitems or deletedbiblioitems tables : publishercode as publisher, publicationyear
2209
- estimateddeliverydate : ADDDATE(aqbasket.closedate, INTERVAL aqbooksellers.deliverytime DAY)
2210
- quantity ; aqorders.quantity - COALESCE(aqorders.quantityreceived,0)
2211
- subtotal : (aqorders.quantity - COALESCE(aqorders.quantityreceived,0)) * aqorders.rrp AS subtotal
2212
- latesince : DATEDIFF(CAST(now() AS date),closedate) AS latesince
2213
If the record still exists, the biblionumber key contains the biblionumber
2214
If the record have been deleted, the biblionumber key is blank,
2215
and the deletedbiblionumber key contains the biblionumber of the deleted record.
2216
2217
2085
=cut
2218
=cut
2086
2219
2087
sub GetLateOrders {
2220
sub GetLateOrders {
Lines 2100-2105 sub GetLateOrders { Link Here
2100
    my $select = "
2233
    my $select = "
2101
    SELECT aqbasket.basketno,
2234
    SELECT aqbasket.basketno,
2102
        aqorders.ordernumber,
2235
        aqorders.ordernumber,
2236
        aqorders.biblionumber,
2237
        aqorders.deletedbiblionumber,
2103
        DATE(aqbasket.closedate)  AS orderdate,
2238
        DATE(aqbasket.closedate)  AS orderdate,
2104
        aqbasket.basketname       AS basketname,
2239
        aqbasket.basketname       AS basketname,
2105
        aqbasket.basketgroupid    AS basketgroupid,
2240
        aqbasket.basketgroupid    AS basketgroupid,
Lines 2112-2126 sub GetLateOrders { Link Here
2112
        borrowers.branchcode      AS branch,
2247
        borrowers.branchcode      AS branch,
2113
        aqbooksellers.name        AS supplier,
2248
        aqbooksellers.name        AS supplier,
2114
        aqbooksellers.id          AS supplierid,
2249
        aqbooksellers.id          AS supplierid,
2115
        biblio.author, biblio.title,
2250
        COALESCE (biblio.author,               deletedbiblio.author)               AS author,
2116
        biblioitems.publishercode AS publisher,
2251
        COALESCE (biblio.title,                deletedbiblio.title)                AS title,
2117
        biblioitems.publicationyear,
2252
        COALESCE (biblioitems.publishercode,   deletedbiblioitems.publishercode)   AS publisher,
2253
        COALESCE (biblioitems.publicationyear, deletedbiblioitems.publicationyear) AS publicationyear,
2118
        ADDDATE(aqbasket.closedate, INTERVAL aqbooksellers.deliverytime DAY) AS estimateddeliverydate,
2254
        ADDDATE(aqbasket.closedate, INTERVAL aqbooksellers.deliverytime DAY) AS estimateddeliverydate,
2119
    ";
2255
    ";
2120
    my $from = "
2256
    my $from = "
2121
    FROM
2257
    FROM
2122
        aqorders LEFT JOIN biblio     ON biblio.biblionumber         = aqorders.biblionumber
2258
        aqorders LEFT JOIN biblio     ON biblio.biblionumber         = aqorders.biblionumber
2123
        LEFT JOIN biblioitems         ON biblioitems.biblionumber    = biblio.biblionumber
2259
        LEFT JOIN biblioitems         ON biblioitems.biblionumber    = biblio.biblionumber
2260
        LEFT JOIN deletedbiblio       ON deletedbiblio.biblionumber  = aqorders.deletedbiblionumber
2261
        LEFT JOIN deletedbiblioitems  ON deletedbiblioitems.biblionumber    = deletedbiblio.biblionumber
2124
        LEFT JOIN aqbudgets           ON aqorders.budget_id          = aqbudgets.budget_id,
2262
        LEFT JOIN aqbudgets           ON aqorders.budget_id          = aqbudgets.budget_id,
2125
        aqbasket LEFT JOIN borrowers  ON aqbasket.authorisedby       = borrowers.borrowernumber
2263
        aqbasket LEFT JOIN borrowers  ON aqbasket.authorisedby       = borrowers.borrowernumber
2126
        LEFT JOIN aqbooksellers       ON aqbasket.booksellerid       = aqbooksellers.id
2264
        LEFT JOIN aqbooksellers       ON aqbasket.booksellerid       = aqbooksellers.id
Lines 2248-2253 returns: Link Here
2248
    $total_qty is the sum of all of the quantities in $order_loop
2386
    $total_qty is the sum of all of the quantities in $order_loop
2249
    $total_price is the cost of each in $order_loop times the quantity
2387
    $total_price is the cost of each in $order_loop times the quantity
2250
    $total_qtyreceived is the sum of all of the quantityreceived entries in $order_loop
2388
    $total_qtyreceived is the sum of all of the quantityreceived entries in $order_loop
2389
If the record still exists, the biblionumber key contains the biblionumber
2390
If the record have been deleted, the biblionumber key is blank,
2391
and the deletedbiblionumber key contains the biblionumber of the deleted record.
2251
2392
2252
=cut
2393
=cut
2253
2394
Lines 2284-2289 sub GetHistory { Link Here
2284
            COALESCE(biblio.author,    deletedbiblio.author)    AS author,
2425
            COALESCE(biblio.author,    deletedbiblio.author)    AS author,
2285
            COALESCE(biblioitems.isbn, deletedbiblioitems.isbn) AS isbn,
2426
            COALESCE(biblioitems.isbn, deletedbiblioitems.isbn) AS isbn,
2286
            COALESCE(biblioitems.ean,  deletedbiblioitems.ean)  AS ean,
2427
            COALESCE(biblioitems.ean,  deletedbiblioitems.ean)  AS ean,
2428
            aqorders.deletedbiblionumber,
2287
            aqorders.basketno,
2429
            aqorders.basketno,
2288
            aqbasket.basketname,
2430
            aqbasket.basketname,
2289
            aqbasket.basketgroupid,
2431
            aqbasket.basketgroupid,
Lines 2313-2320 sub GetHistory { Link Here
2313
        LEFT JOIN biblio ON biblio.biblionumber=aqorders.biblionumber
2455
        LEFT JOIN biblio ON biblio.biblionumber=aqorders.biblionumber
2314
        LEFT JOIN aqbudgets ON aqorders.budget_id=aqbudgets.budget_id
2456
        LEFT JOIN aqbudgets ON aqorders.budget_id=aqbudgets.budget_id
2315
        LEFT JOIN aqinvoices ON aqorders.invoiceid = aqinvoices.invoiceid
2457
        LEFT JOIN aqinvoices ON aqorders.invoiceid = aqinvoices.invoiceid
2316
        LEFT JOIN deletedbiblio ON deletedbiblio.biblionumber=aqorders.biblionumber
2458
        LEFT JOIN deletedbiblio ON deletedbiblio.biblionumber=aqorders.deletedbiblionumber
2317
        LEFT JOIN deletedbiblioitems ON deletedbiblioitems.biblionumber=aqorders.biblionumber
2459
        LEFT JOIN deletedbiblioitems ON deletedbiblioitems.biblionumber=deletedbiblio.biblionumber
2318
        ";
2460
        ";
2319
2461
2320
    if ( C4::Context->preference("IndependentBranches") ) {
2462
    if ( C4::Context->preference("IndependentBranches") ) {
Lines 2335-2356 sub GetHistory { Link Here
2335
    }
2477
    }
2336
2478
2337
    if ( $title ) {
2479
    if ( $title ) {
2338
        $query .= " AND biblio.title LIKE ? ";
2480
        $query .= " AND COALESCE (biblio.title,deletedbiblio.title) LIKE ? ";
2339
        $title =~ s/\s+/%/g;
2481
        $title =~ s/\s+/%/g;
2340
        push @query_params, "%$title%";
2482
        push @query_params, "%$title%";
2341
    }
2483
    }
2342
2484
2343
    if ( $author ) {
2485
    if ( $author ) {
2344
        $query .= " AND biblio.author LIKE ? ";
2486
        $query .= " AND  COALESCE (biblio.author,deletedbiblio.author) LIKE ? ";
2345
        push @query_params, "%$author%";
2487
        push @query_params, "%$author%";
2346
    }
2488
    }
2347
2489
2348
    if ( $isbn ) {
2490
    if ( $isbn ) {
2349
        $query .= " AND biblioitems.isbn LIKE ? ";
2491
        $query .= " AND COALESCE (biblioitems.isbn,deletedbiblioitems.isbn) LIKE ? ";
2350
        push @query_params, "%$isbn%";
2492
        push @query_params, "%$isbn%";
2351
    }
2493
    }
2352
    if ( $ean ) {
2494
    if ( $ean ) {
2353
        $query .= " AND biblioitems.ean = ? ";
2495
        $query .= " AND OALESCE (biblioitems.ean,deletedbiblioitems.ean) = ? ";
2354
        push @query_params, "$ean";
2496
        push @query_params, "$ean";
2355
    }
2497
    }
2356
    if ( $name ) {
2498
    if ( $name ) {
(-)a/C4/Biblio.pm (-5 / +24 lines)
Lines 409-418 sub ModBiblioframework { Link Here
409
409
410
  my $error = &DelBiblio($biblionumber);
410
  my $error = &DelBiblio($biblionumber);
411
411
412
Exported function (core API) for deleting a biblio in koha.
412
Exported function (core API) for deleting a biblio in Koha.
413
Deletes biblio record from Zebra and Koha tables (biblio,biblioitems,items)
413
Action :
414
Also backs it up to deleted* tables
414
It the record has an item, do not delete the record, and return an error message.
415
Checks to make sure there are not issues on any of the items
415
If the record has no item,
416
- deletes biblio record from Zebra and Koha tables (biblio,biblioitems),
417
- backs Koha tables it up to deleted* tables,
418
- delete attached suscriptions
419
- if the record is used in an order, move the biblionumber from aqorders.biblionumber to aqorders.deletedbiblionumber
420
- record the action in logs
416
return:
421
return:
417
C<$error> : undef unless an error occurs
422
C<$error> : undef unless an error occurs
418
423
Lines 447-452 sub DelBiblio { Link Here
447
    foreach my $res ( @$reserves ) {
452
    foreach my $res ( @$reserves ) {
448
        C4::Reserves::CancelReserve({ reserve_id => $res->{'reserve_id'} });
453
        C4::Reserves::CancelReserve({ reserve_id => $res->{'reserve_id'} });
449
    }
454
    }
455
    # Get all orders using this record. Must be done before deleting the record to be able to find orders to update after deletion
456
    require C4::Acquisition;
457
    my @orders = C4::Acquisition::GetOrdersByBiblionumber ($biblionumber);
450
458
451
    # Delete in Zebra. Be careful NOT to move this line after _koha_delete_biblio
459
    # Delete in Zebra. Be careful NOT to move this line after _koha_delete_biblio
452
    # for at least 2 reasons :
460
    # for at least 2 reasons :
Lines 454-462 sub DelBiblio { Link Here
454
    #   and we would have no way to remove it (except manually in zebra, but I bet it would be very hard to handle the problem)
462
    #   and we would have no way to remove it (except manually in zebra, but I bet it would be very hard to handle the problem)
455
    ModZebra( $biblionumber, "recordDelete", "biblioserver" );
463
    ModZebra( $biblionumber, "recordDelete", "biblioserver" );
456
464
457
    # delete biblioitems and items from Koha tables and save in deletedbiblioitems,deleteditems
465
    # delete the record from biblioitems table and save it in deletedbiblioitems,deleteditems
458
    $sth = $dbh->prepare("SELECT biblioitemnumber FROM biblioitems WHERE biblionumber=?");
466
    $sth = $dbh->prepare("SELECT biblioitemnumber FROM biblioitems WHERE biblionumber=?");
459
    $sth->execute($biblionumber);
467
    $sth->execute($biblionumber);
468
    #FIXME : the loop is probably unneeded
460
    while ( my $biblioitemnumber = $sth->fetchrow ) {
469
    while ( my $biblioitemnumber = $sth->fetchrow ) {
461
470
462
        # delete this biblioitem
471
        # delete this biblioitem
Lines 469-475 sub DelBiblio { Link Here
469
    # delete cascade will prevent deletedbiblioitems rows
478
    # delete cascade will prevent deletedbiblioitems rows
470
    # from being generated by _koha_delete_biblioitems
479
    # from being generated by _koha_delete_biblioitems
471
    $error = _koha_delete_biblio( $dbh, $biblionumber );
480
    $error = _koha_delete_biblio( $dbh, $biblionumber );
481
    return $error if $error;
472
482
483
    # If the record is used in an order, move the biblionumber from aqorders.biblionumber to aqorders.deletedbiblionumber
484
    if (scalar @orders > 0) {
485
        for my $myorder (@orders) {
486
            $sth = $dbh->prepare("UPDATE aqorders
487
                                  SET deletedbiblionumber = ?
488
                                  WHERE ordernumber=?");
489
            $sth->execute($biblionumber,$myorder->{ordernumber});
490
        }
491
    }
473
    logaction( "CATALOGUING", "DELETE", $biblionumber, "biblio" ) if C4::Context->preference("CataloguingLog");
492
    logaction( "CATALOGUING", "DELETE", $biblionumber, "biblio" ) if C4::Context->preference("CataloguingLog");
474
493
475
    return;
494
    return;
(-)a/acqui/basket.pl (-1 / +1 lines)
Lines 474-480 sub get_order_infos { Link Here
474
        $line{'title'} .= " / $seriestitle" if $seriestitle;
474
        $line{'title'} .= " / $seriestitle" if $seriestitle;
475
        $line{'title'} .= " / $volume"      if $volume;
475
        $line{'title'} .= " / $volume"      if $volume;
476
    } else {
476
    } else {
477
        $line{'title'} = "Deleted bibliographic notice, can't find title.";
477
        $line{'title'} = "Can't find title.";
478
    }
478
    }
479
479
480
    my $biblionumber = $order->{'biblionumber'};
480
    my $biblionumber = $order->{'biblionumber'};
(-)a/acqui/neworderempty.pl (+1 lines)
Lines 358-363 $template->param( Link Here
358
    surnamesuggestedby   => $suggestion->{surnamesuggestedby},
358
    surnamesuggestedby   => $suggestion->{surnamesuggestedby},
359
    firstnamesuggestedby => $suggestion->{firstnamesuggestedby},
359
    firstnamesuggestedby => $suggestion->{firstnamesuggestedby},
360
    biblionumber         => $biblionumber,
360
    biblionumber         => $biblionumber,
361
    deletedbiblionumber  => $data->{'deletedbiblionumber'},
361
    uncertainprice       => $data->{'uncertainprice'},
362
    uncertainprice       => $data->{'uncertainprice'},
362
    authorisedbyname     => $borrower->{'firstname'} . " " . $borrower->{'surname'},
363
    authorisedbyname     => $borrower->{'firstname'} . " " . $borrower->{'surname'},
363
    discount_2dp         => sprintf( "%.2f",  $bookseller->{'discount'} ) ,   # for display
364
    discount_2dp         => sprintf( "%.2f",  $bookseller->{'discount'} ) ,   # for display
(-)a/installer/data/mysql/kohastructure.sql (+2 lines)
Lines 2992-2997 DROP TABLE IF EXISTS `aqorders`; Link Here
2992
CREATE TABLE `aqorders` ( -- information related to the basket line items
2992
CREATE TABLE `aqorders` ( -- information related to the basket line items
2993
  `ordernumber` int(11) NOT NULL auto_increment, -- primary key and unique identifier assigned by Koha to each line
2993
  `ordernumber` int(11) NOT NULL auto_increment, -- primary key and unique identifier assigned by Koha to each line
2994
  `biblionumber` int(11) default NULL, -- links the order to the biblio being ordered (biblio.biblionumber)
2994
  `biblionumber` int(11) default NULL, -- links the order to the biblio being ordered (biblio.biblionumber)
2995
  `deletedbiblionumber` int(11) default NULL, -- links the order to the deletedbiblio being ordered (deletedbiblio.biblionumber)
2995
  `entrydate` date default NULL, -- the date the bib was added to the basket
2996
  `entrydate` date default NULL, -- the date the bib was added to the basket
2996
  `quantity` smallint(6) default NULL, -- the quantity ordered
2997
  `quantity` smallint(6) default NULL, -- the quantity ordered
2997
  `currency` varchar(3) default NULL, -- the currency used for the purchase
2998
  `currency` varchar(3) default NULL, -- the currency used for the purchase
Lines 3034-3039 CREATE TABLE `aqorders` ( -- information related to the basket line items Link Here
3034
  CONSTRAINT `aqorders_ibfk_1` FOREIGN KEY (`basketno`) REFERENCES `aqbasket` (`basketno`) ON DELETE CASCADE ON UPDATE CASCADE,
3035
  CONSTRAINT `aqorders_ibfk_1` FOREIGN KEY (`basketno`) REFERENCES `aqbasket` (`basketno`) ON DELETE CASCADE ON UPDATE CASCADE,
3035
  CONSTRAINT `aqorders_ibfk_2` FOREIGN KEY (`biblionumber`) REFERENCES `biblio` (`biblionumber`) ON DELETE SET NULL ON UPDATE CASCADE,
3036
  CONSTRAINT `aqorders_ibfk_2` FOREIGN KEY (`biblionumber`) REFERENCES `biblio` (`biblionumber`) ON DELETE SET NULL ON UPDATE CASCADE,
3036
  CONSTRAINT aqorders_ibfk_3 FOREIGN KEY (invoiceid) REFERENCES aqinvoices (invoiceid) ON DELETE SET NULL ON UPDATE CASCADE,
3037
  CONSTRAINT aqorders_ibfk_3 FOREIGN KEY (invoiceid) REFERENCES aqinvoices (invoiceid) ON DELETE SET NULL ON UPDATE CASCADE,
3038
  CONSTRAINT aqorders_ibfk_4 FOREIGN KEY (deletedbiblionumber) REFERENCES deletedbiblio (biblionumber) ON DELETE SET NULL ON UPDATE CASCADE,
3037
  CONSTRAINT `aqorders_subscriptionid` FOREIGN KEY (`subscriptionid`) REFERENCES `subscription` (`subscriptionid`) ON DELETE CASCADE ON UPDATE CASCADE
3039
  CONSTRAINT `aqorders_subscriptionid` FOREIGN KEY (`subscriptionid`) REFERENCES `subscription` (`subscriptionid`) ON DELETE CASCADE ON UPDATE CASCADE
3038
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
3040
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
3039
3041
(-)a/installer/data/mysql/updatedatabase.pl (-1 / +8 lines)
Lines 8550-8556 if (CheckVersion($DBversion)) { Link Here
8550
    print "Upgrade to $DBversion done (Bug 11629 - Add ability to update not for loan status on checkin)\n";
8550
    print "Upgrade to $DBversion done (Bug 11629 - Add ability to update not for loan status on checkin)\n";
8551
    SetVersion($DBversion);
8551
    SetVersion($DBversion);
8552
}
8552
}
8553
8554
$DBversion = "3.17.00.008";
8553
$DBversion = "3.17.00.008";
8555
if ( CheckVersion($DBversion) ) {
8554
if ( CheckVersion($DBversion) ) {
8556
    $dbh->do(q|
8555
    $dbh->do(q|
Lines 8570-8575 if ( CheckVersion($DBversion) ) { Link Here
8570
    SetVersion($DBversion);
8569
    SetVersion($DBversion);
8571
}
8570
}
8572
8571
8572
$DBversion = "3.17.00.XXX";
8573
if ( CheckVersion($DBversion) ) {
8574
    $dbh->do("ALTER TABLE aqorders ADD COLUMN deletedbiblionumber INT(11) DEFAULT NULL AFTER biblionumber;");
8575
    $dbh->do("ALTER TABLE aqorders ADD CONSTRAINT `aqorders_ibfk_4` FOREIGN KEY (`deletedbiblionumber`) REFERENCES `deletedbiblio` (`biblionumber`) ON DELETE SET NULL ON UPDATE CASCADE;");
8576
    print "Upgrade to $DBversion done (Bug 10758 - Show bibliographic information of deleted records in acquisitions)\n";
8577
     SetVersion($DBversion);
8578
}
8579
8573
=head1 FUNCTIONS
8580
=head1 FUNCTIONS
8574
8581
8575
=head2 TableExists($table)
8582
=head2 TableExists($table)
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/basket.tt (-7 / +19 lines)
Lines 476-485 Link Here
476
                            [% books_loo.ordernumber %]
476
                            [% books_loo.ordernumber %]
477
                        </td>
477
                        </td>
478
                        <td>
478
                        <td>
479
                            <p>
479
                            <p> [% IF ( books_loo.order_received ) %] (rcvd)[% END %]
480
                                [% IF ( books_loo.order_received ) %] (rcvd)[% END %]
480
                                [% IF (books_loo.biblionumber) %]
481
                                <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% books_loo.biblionumber %]">[% books_loo.title |html %]</a> by [% books_loo.author %]
481
                                    <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% books_loo.biblionumber %]">[% books_loo.title |html %]</a> by [% books_loo.author %]
482
                                <br />
482
                                    <br />
483
                                [% ELSIF (books_loo.deletedbiblionumber) %]
484
                                    <em>(Deleted record)</em>
485
                                    <br />
486
                                    [% books_loo.title |html %] by [% books_loo.author %]
487
                                    <br />
488
                                [% ELSE %]
489
                                    <em>Can't find title</em><br />
490
                                [% END %]
483
                                [% IF ( books_loo.isbn ) %] - [% books_loo.isbn %][% END %]
491
                                [% IF ( books_loo.isbn ) %] - [% books_loo.isbn %][% END %]
484
                                [% IF ( books_loo.issn ) %] - [% books_loo.issn %][% END %]
492
                                [% IF ( books_loo.issn ) %] - [% books_loo.issn %][% END %]
485
                                [% IF ( books_loo.publishercode ) %], [% books_loo.publishercode %][% END %]
493
                                [% IF ( books_loo.publishercode ) %], [% books_loo.publishercode %][% END %]
Lines 598-607 Link Here
598
                    <td>
606
                    <td>
599
                      <p>
607
                      <p>
600
                        [% IF ( order.order_received ) %] (rcvd)[% END %]
608
                        [% IF ( order.order_received ) %] (rcvd)[% END %]
601
                        [% IF (order.title) %]
609
                        [% IF (order.deletedbiblionumber) %]
602
                          [% order.title |html %] by [% order.author %]<br />
610
                            <em>(Deleted record)</em>
611
                            <br />
612
                        [% END %]
613
                        [% IF (order.biblionumber)||(order.deletedbiblionumber) %]
614
                            [% order.title |html %] by [% order.author %]<br />
603
                        [% ELSE %]
615
                        [% ELSE %]
604
                          <em>Deleted bibliographic record, can't find title</em><br />
616
                          <em>Can't find title</em><br />
605
                        [% END %]
617
                        [% END %]
606
                        [% IF ( order.order_internalnote ) %] [% order.order_internalnote %][% END %]
618
                        [% IF ( order.order_internalnote ) %] [% order.order_internalnote %][% END %]
607
                        [% IF ( order.isbn ) %] - [% order.isbn %][% END %]
619
                        [% IF ( order.isbn ) %] - [% order.isbn %][% END %]
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/histsearch.tt (-2 / +10 lines)
Lines 178-185 Link Here
178
                        [% END %]
178
                        [% END %]
179
                    </td>
179
                    </td>
180
                    <td>
180
                    <td>
181
                        <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% order.biblionumber %]">[% order.title |html %]</a>
181
                        [% IF (order.biblionumber) %]
182
                        <br />[% order.author %] <br /> [% order.isbn %]
182
                            <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% order.biblionumber %]">[% order.title |html %]</a>
183
                            <br />[% order.author %] <br /> [% order.isbn %]
184
                        [% ELSIF (order.deletedbiblionumber) %]
185
                            <em>(Deleted record)</em>
186
                            <br />
187
                            [% order.title |html %]<br />[% order.author %] <br /> [% order.isbn %]
188
                        [% ELSE %]
189
                            <em>Can't find title</em>
190
                        [% END %]
183
                    </td>
191
                    </td>
184
                    <td><a href="/cgi-bin/koha/acqui/supplier.pl?booksellerid=[% order.id %]">[% order.name %]</a></td>
192
                    <td><a href="/cgi-bin/koha/acqui/supplier.pl?booksellerid=[% order.id %]">[% order.name %]</a></td>
185
                    <td><span title="[% order.creationdate %]">[% order.creationdate | $KohaDates %]</span></td>
193
                    <td><span title="[% order.creationdate %]">[% order.creationdate | $KohaDates %]</span></td>
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/lateorders.tt (+4 lines)
Lines 146-151 $(document).ready(function() { Link Here
146
                ([% lateorder.supplierid %])
146
                ([% lateorder.supplierid %])
147
            </td>
147
            </td>
148
            <td>
148
            <td>
149
                [% IF (lateorder.biblionumber) || (lateorder.deletedbiblionumber) %]
149
                <b>[% lateorder.title |html %]</b>
150
                <b>[% lateorder.title |html %]</b>
150
                   [% IF ( lateorder.author ) %]<br/><i>Author:</i> [% lateorder.author %][% END %]
151
                   [% IF ( lateorder.author ) %]<br/><i>Author:</i> [% lateorder.author %][% END %]
151
                   [% IF ( lateorder.publisher ) %]
152
                   [% IF ( lateorder.publisher ) %]
Lines 154-159 $(document).ready(function() { Link Here
154
                            <i> in </i>[% lateorder.publicationyear %]
155
                            <i> in </i>[% lateorder.publicationyear %]
155
                        [% END %]
156
                        [% END %]
156
                   [% END %]
157
                   [% END %]
158
                [% ELSE %]
159
                    <em>Can't find title</em>
160
                [% END %]
157
            </td>
161
            </td>
158
            <td>
162
            <td>
159
                   [% lateorder.unitpricesupplier %]x[% lateorder.quantity %] = 
163
                   [% lateorder.unitpricesupplier %]x[% lateorder.quantity %] = 
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/neworderempty.tt (-11 / +13 lines)
Lines 232-237 $(document).ready(function() Link Here
232
            Catalog details
232
            Catalog details
233
            [% IF ( biblionumber ) %]
233
            [% IF ( biblionumber ) %]
234
                <span><a href="/cgi-bin/koha/cataloguing/addbiblio.pl?biblionumber=[% biblionumber %]"> Edit record</a></span>
234
                <span><a href="/cgi-bin/koha/cataloguing/addbiblio.pl?biblionumber=[% biblionumber %]"> Edit record</a></span>
235
            [% ELSIF (deletedbiblionumber) %]
236
                <span> (Deleted record, not editable)</span>
235
            [% END %]
237
            [% END %]
236
        </legend>
238
        </legend>
237
        [% UNLESS ( existing ) %]
239
        [% UNLESS ( existing ) %]
Lines 252-259 $(document).ready(function() Link Here
252
        [% END %]
254
        [% END %]
253
255
254
        <ol><li>
256
        <ol><li>
255
            [% IF ( biblionumber ) %]
257
            [% IF ( biblionumber )||( deletedbiblionumber ) %]
256
            <span class="label">Title</span>
258
                <span class="label">Title: </span>
257
                <input type="hidden" name="title" value="[% title |html %]" /> <span class="title">[% title |html %]</span>
259
                <input type="hidden" name="title" value="[% title |html %]" /> <span class="title">[% title |html %]</span>
258
            [% ELSE %]
260
            [% ELSE %]
259
            <label for="entertitle" class="required">Title: </label>
261
            <label for="entertitle" class="required">Title: </label>
Lines 261-267 $(document).ready(function() Link Here
261
            [% END %]
263
            [% END %]
262
        </li>
264
        </li>
263
        <li>
265
        <li>
264
            [% IF ( biblionumber ) %]
266
            [% IF ( biblionumber )||( deletedbiblionumber ) %]
265
            <span class="label">Author: </span>
267
            <span class="label">Author: </span>
266
                <input type="hidden" name="author" id="author" value="[% author %]" />[% author %]
268
                <input type="hidden" name="author" id="author" value="[% author %]" />[% author %]
267
            [% ELSE %]
269
            [% ELSE %]
Lines 270-276 $(document).ready(function() Link Here
270
            [% END %]
272
            [% END %]
271
        </li>
273
        </li>
272
        <li>
274
        <li>
273
            [% IF ( biblionumber ) %]
275
            [% IF ( biblionumber )||( deletedbiblionumber ) %]
274
            <span class="label">Publisher: </span>
276
            <span class="label">Publisher: </span>
275
                <input type="hidden" name="publishercode" id="publishercode" value="[% publishercode %]" />[% publishercode %]
277
                <input type="hidden" name="publishercode" id="publishercode" value="[% publishercode %]" />[% publishercode %]
276
            [% ELSE %]
278
            [% ELSE %]
Lines 279-285 $(document).ready(function() Link Here
279
            [% END %]
281
            [% END %]
280
        </li>
282
        </li>
281
        <li>
283
        <li>
282
            [% IF ( biblionumber ) %]
284
            [% IF ( biblionumber )||( deletedbiblionumber ) %]
283
            <span class="label">Edition: </span>
285
            <span class="label">Edition: </span>
284
                <input type="hidden" name="editionstatement" id="editionstatement" value="[% editionstatement %]" />[% editionstatement %]
286
                <input type="hidden" name="editionstatement" id="editionstatement" value="[% editionstatement %]" />[% editionstatement %]
285
287
Lines 289-295 $(document).ready(function() Link Here
289
            [% END %]
291
            [% END %]
290
        </li>
292
        </li>
291
        <li>
293
        <li>
292
            [% IF ( biblionumber ) %]
294
            [% IF ( biblionumber )||( deletedbiblionumber ) %]
293
            <span class="label">Publication year: </span>
295
            <span class="label">Publication year: </span>
294
                <input type="hidden" name="publicationyear" id="publicationyear" value="[% publicationyear %]" />[% publicationyear %]
296
                <input type="hidden" name="publicationyear" id="publicationyear" value="[% publicationyear %]" />[% publicationyear %]
295
            [% ELSE %]
297
            [% ELSE %]
Lines 298-304 $(document).ready(function() Link Here
298
            [% END %]
300
            [% END %]
299
        </li>
301
        </li>
300
        <li>
302
        <li>
301
            [% IF ( biblionumber ) %]
303
            [% IF ( biblionumber )||( deletedbiblionumber ) %]
302
            <span class="label">ISBN: </span>
304
            <span class="label">ISBN: </span>
303
                <input type="hidden" name="isbn" id="ISBN" value="[% isbn %]" />[% isbn %]
305
                <input type="hidden" name="isbn" id="ISBN" value="[% isbn %]" />[% isbn %]
304
            [% ELSE %]
306
            [% ELSE %]
Lines 308-314 $(document).ready(function() Link Here
308
        </li>
310
        </li>
309
        [% IF (UNIMARC) %]
311
        [% IF (UNIMARC) %]
310
        <li>
312
        <li>
311
            [% IF ( biblionumber ) %]
313
            [% IF ( biblionumber )||( deletedbiblionumber ) %]
312
            <span class="label">EAN: </span>
314
            <span class="label">EAN: </span>
313
                <input type="hidden" name="ean" id="EAN" value="[% ean %]" />[% ean %]
315
                <input type="hidden" name="ean" id="EAN" value="[% ean %]" />[% ean %]
314
            [% ELSE %]
316
            [% ELSE %]
Lines 318-324 $(document).ready(function() Link Here
318
        </li>
320
        </li>
319
        [% END %]
321
        [% END %]
320
        <li>
322
        <li>
321
            [% IF ( biblionumber ) %]
323
            [% IF ( biblionumber )||( deletedbiblionumber ) %]
322
            <span class="label">Series: </span>
324
            <span class="label">Series: </span>
323
                <input type="hidden" name="series" id="series" value="[% seriestitle %]" />[% seriestitle %]
325
                <input type="hidden" name="series" id="series" value="[% seriestitle %]" />[% seriestitle %]
324
            [% ELSE %]
326
            [% ELSE %]
Lines 326-335 $(document).ready(function() Link Here
326
                <input type="text" size="50" name="series" id="series" value="[% seriestitle %]" />
328
                <input type="text" size="50" name="series" id="series" value="[% seriestitle %]" />
327
            [% END %]
329
            [% END %]
328
        </li>
330
        </li>
329
            [% UNLESS ( biblionumber ) %]
331
            [% UNLESS (( biblionumber )||( deletedbiblionumber )) %]
330
            [% IF ( itemtypeloop ) %]
332
            [% IF ( itemtypeloop ) %]
331
            <li>
333
            <li>
332
                <span class="label">Item type:</span>
334
                <span class="label">Item type: </span>
333
                <select name="itemtype" style="width:12em;">
335
                <select name="itemtype" style="width:12em;">
334
                [% FOREACH itemtype IN itemtypeloop %]
336
                [% FOREACH itemtype IN itemtypeloop %]
335
                    [% IF ( itemtype.selected ) %]
337
                    [% IF ( itemtype.selected ) %]
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/parcel.tt (-5 / +14 lines)
Lines 265-271 Link Here
265
                </td>
265
                </td>
266
                <td class="orderfilterclass"><a href="neworderempty.pl?ordernumber=[% loop_order.ordernumber %]&amp;booksellerid=[% loop_order.booksellerid %]">[% loop_order.ordernumber %]</a></td>
266
                <td class="orderfilterclass"><a href="neworderempty.pl?ordernumber=[% loop_order.ordernumber %]&amp;booksellerid=[% loop_order.booksellerid %]">[% loop_order.ordernumber %]</a></td>
267
                <td class="summaryfilterclass">
267
                <td class="summaryfilterclass">
268
                  <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% loop_order.biblionumber %]">[% loop_order.title |html %]</a>
268
                [% IF (loop_order.biblionumber) %]
269
                    <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% loop_order.biblionumber %]">[% loop_order.title |html %]</a>
270
                [% ELSIF (loop_order.deletedbiblionumber) %]
271
                    <em>(Deleted record, order cannot be received)</em>
272
                    <br />
273
                    [% loop_order.title |html %]
274
                [% ELSE %]
275
                    <em>Can't find title</em>
276
                [% END %]
269
                [% IF ( loop_order.author ) %] by [% loop_order.author %][% END %]
277
                [% IF ( loop_order.author ) %] by [% loop_order.author %][% END %]
270
                [% IF ( loop_order.isbn ) %] &ndash; [% loop_order.isbn %][% END %]
278
                [% IF ( loop_order.isbn ) %] &ndash; [% loop_order.isbn %][% END %]
271
                [% IF ( loop_order.publishercode ) %]<br />Publisher:[% loop_order.publishercode %][% END %]
279
                [% IF ( loop_order.publishercode ) %]<br />Publisher:[% loop_order.publishercode %][% END %]
Lines 292-299 Link Here
292
                <td>[% loop_order.ordertotal %]</td>
300
                <td>[% loop_order.ordertotal %]</td>
293
                <td>[% loop_order.budget_name %]</td>
301
                <td>[% loop_order.budget_name %]</td>
294
				<td>
302
				<td>
295
                              <a href="orderreceive.pl?ordernumber=[% loop_order.ordernumber %]&amp;invoiceid=[% invoiceid %]">Receive</a>
303
	                [% UNLESS (loop_order.deletedbiblionumber) %]
296
                    <br />
304
                        <a href="orderreceive.pl?ordernumber=[% loop_order.ordernumber %]&amp;invoiceid=[% invoiceid %]">Receive</a>
305
                        <br />
306
                    [% END %]
297
                    <a href="#" onclick="transfer_order_popup([% loop_order.ordernumber %]); return false;">Transfer</a>
307
                    <a href="#" onclick="transfer_order_popup([% loop_order.ordernumber %]); return false;">Transfer</a>
298
				</td>
308
				</td>
299
				<td>
309
				<td>
Lines 304-310 Link Here
304
                        [% END %]
314
                        [% END %]
305
                        [% IF ( loop_order.can_del_bib ) %]
315
                        [% IF ( loop_order.can_del_bib ) %]
306
                        <a href="javascript:confirm_delete_biblio([% loop_order.ordernumber %], [% loop_order.basketno %], [% loop_order.biblionumber %])" class="button">Delete order and catalog record</a><br>
316
                        <a href="javascript:confirm_delete_biblio([% loop_order.ordernumber %], [% loop_order.basketno %], [% loop_order.biblionumber %])" class="button">Delete order and catalog record</a><br>
307
                        [% ELSE %]
317
                        [% ELSIF (loop_order.biblionumber) %]
308
                        <span class="button" title="Can't delete catalog record, see constraints below">Can't delete order and catalog record</span><br>
318
                        <span class="button" title="Can't delete catalog record, see constraints below">Can't delete order and catalog record</span><br>
309
                        [% END %]
319
                        [% END %]
310
                        [% IF ( loop_order.left_item ) %]
320
                        [% IF ( loop_order.left_item ) %]
311
- 

Return to bug 10758