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

(-)a/C4/Acquisition.pm (-49 / +192 lines)
Lines 1036-1049 sub GetBasketgroups { Link Here
1036
1036
1037
  @orders = &GetOrders($basketnumber, $orderby);
1037
  @orders = &GetOrders($basketnumber, $orderby);
1038
1038
1039
Looks up the pending (non-cancelled) orders with the given basket
1039
Looks up the non-cancelled (pending and received) orders with the given basketnumber.
1040
number. If C<$booksellerID> is non-empty, only orders from that seller
1040
Parameters:
1041
are returned.
1041
- C<$basketnumber> : mandatory parameter, the basket number
1042
1042
- C<$orderby> : optional parameter, used to sort the results (must be a valid expression
1043
return :
1043
using some fields of aqorders, aqbugdets, biblio, deletedbiblio,
1044
C<&basket> returns a two-element array. C<@orders> is an array of
1044
biblioitems, deletedbiblioitems, aqorders_transfers tables)
1045
references-to-hash, whose keys are the fields from the aqorders,
1045
If C<$orderby> is not provided, results are sorted according to publishercode and title
1046
biblio, and biblioitems tables in the Koha database.
1046
1047
Return :
1048
The returned C<@orders> is an array of references-to-hash, whose keys are:
1049
- the fields from the aqorders table
1050
- the fields from the aqbudgets table
1051
- 2 fields from aqorders_transfers table : ordernumber_from, return as transferred_from
1052
and timestamp, return as transferred_from_timestamp
1053
- 5 fields of biblio or deletedbiblio tables : title, author, seriestitle, serial, copyrightdate
1054
- 9 fields of biblioitems or deletedbiblioitems tables : publicationyear, publishercode,
1055
editionstatement, issn, isbn, ean, itemtype, volume, number
1056
If the record still exists, the biblionumber key contains the biblionumber
1057
If the record have been deleted, the biblionumber key is blank,
1058
and the deletedbiblionumber key contains the biblionumber of the deleted record.
1047
1059
1048
=cut
1060
=cut
1049
1061
Lines 1052-1058 sub GetOrders { Link Here
1052
    return () unless $basketno;
1064
    return () unless $basketno;
1053
    my $dbh   = C4::Context->dbh;
1065
    my $dbh   = C4::Context->dbh;
1054
    my $query  ="
1066
    my $query  ="
1055
        SELECT biblio.*,biblioitems.*,
1067
        SELECT
1068
                COALESCE(biblio.title,                 deletedbiblio.title)                 AS title,
1069
                COALESCE(biblio.author,                deletedbiblio.author)                AS author,
1070
                COALESCE(biblio.seriestitle,           deletedbiblio.seriestitle)           AS seriestitle,
1071
                COALESCE(biblio.serial,                deletedbiblio.serial)                AS serial,
1072
                COALESCE(biblio.copyrightdate,         deletedbiblio.copyrightdate)         AS copyrightdate,
1073
                COALESCE(biblioitems.publicationyear,  deletedbiblioitems.publicationyear)  AS publicationyear,
1074
                COALESCE(biblioitems.publishercode,    deletedbiblioitems.publishercode)    AS publishercode,
1075
                COALESCE(biblioitems.editionstatement, deletedbiblioitems.editionstatement) AS editionstatement,
1076
                COALESCE(biblioitems.isbn,             deletedbiblioitems.isbn)             AS isbn,
1077
                COALESCE(biblioitems.issn,             deletedbiblioitems.issn)             AS issn,
1078
                COALESCE(biblioitems.ean,              deletedbiblioitems.ean)              AS ean,
1079
                COALESCE(biblioitems.itemtype,         deletedbiblioitems.itemtype)         AS itemtype,
1080
                COALESCE(biblioitems.volume,           deletedbiblioitems.volume)           AS volume,
1081
                COALESCE(biblioitems.number,           deletedbiblioitems.number)           AS number,
1056
                aqorders.*,
1082
                aqorders.*,
1057
                aqbudgets.*,
1083
                aqbudgets.*,
1058
                aqorders_transfers.ordernumber_from AS transferred_from,
1084
                aqorders_transfers.ordernumber_from AS transferred_from,
Lines 1061-1072 sub GetOrders { Link Here
1061
            LEFT JOIN aqbudgets        ON aqbudgets.budget_id = aqorders.budget_id
1087
            LEFT JOIN aqbudgets        ON aqbudgets.budget_id = aqorders.budget_id
1062
            LEFT JOIN biblio           ON biblio.biblionumber = aqorders.biblionumber
1088
            LEFT JOIN biblio           ON biblio.biblionumber = aqorders.biblionumber
1063
            LEFT JOIN biblioitems      ON biblioitems.biblionumber =biblio.biblionumber
1089
            LEFT JOIN biblioitems      ON biblioitems.biblionumber =biblio.biblionumber
1090
            LEFT JOIN deletedbiblio      ON deletedbiblio.biblionumber=aqorders.deletedbiblionumber
1091
            LEFT JOIN deletedbiblioitems ON deletedbiblioitems.biblionumber=deletedbiblio.biblionumber
1064
            LEFT JOIN aqorders_transfers ON aqorders_transfers.ordernumber_to = aqorders.ordernumber
1092
            LEFT JOIN aqorders_transfers ON aqorders_transfers.ordernumber_to = aqorders.ordernumber
1065
        WHERE   basketno=?
1093
        WHERE   basketno=?
1066
            AND (datecancellationprinted IS NULL OR datecancellationprinted='0000-00-00')
1094
            AND (datecancellationprinted IS NULL OR datecancellationprinted='0000-00-00')
1067
    ";
1095
    ";
1068
1096
1069
    $orderby = "biblioitems.publishercode,biblio.title" unless $orderby;
1097
    $orderby = "COALESCE(biblioitems.publishercode,deletedbiblioitems.publishercode), COALESCE(biblio.title,deletedbiblio.title)" unless $orderby;
1070
    $query .= " ORDER BY $orderby";
1098
    $query .= " ORDER BY $orderby";
1071
    my $result_set =
1099
    my $result_set =
1072
      $dbh->selectall_arrayref( $query, { Slice => {} }, $basketno );
1100
      $dbh->selectall_arrayref( $query, { Slice => {} }, $basketno );
Lines 1093-1101 sub GetOrdersByBiblionumber { Link Here
1093
    return unless $biblionumber;
1121
    return unless $biblionumber;
1094
    my $dbh   = C4::Context->dbh;
1122
    my $dbh   = C4::Context->dbh;
1095
    my $query  ="
1123
    my $query  ="
1096
        SELECT biblio.*,biblioitems.*,
1124
        SELECT
1097
                aqorders.*,
1125
            biblio.*, biblioitems.*,
1098
                aqbudgets.*
1126
            aqorders.*,
1127
            aqbudgets.*
1099
        FROM    aqorders
1128
        FROM    aqorders
1100
            LEFT JOIN aqbudgets        ON aqbudgets.budget_id = aqorders.budget_id
1129
            LEFT JOIN aqbudgets        ON aqbudgets.budget_id = aqorders.budget_id
1101
            LEFT JOIN biblio           ON biblio.biblionumber = aqorders.biblionumber
1130
            LEFT JOIN biblio           ON biblio.biblionumber = aqorders.biblionumber
Lines 1116-1123 sub GetOrdersByBiblionumber { Link Here
1116
1145
1117
Looks up an order by order number.
1146
Looks up an order by order number.
1118
1147
1119
Returns a reference-to-hash describing the order. The keys of
1148
Returns a reference-to-hash describing the order.
1120
C<$order> are fields from the biblio, biblioitems, aqorders tables of the Koha database.
1149
The keys of C<$order> are
1150
- all fields from the aqorders table
1151
- 2 fields from aqorders table returned with alternate names : rrp as unitpricesupplier, ecost as unitpricelib
1152
- 1 field from aqbasket table : basketname
1153
- 1 field from borrowers table : branchcode
1154
- 1 field from aqbudgets table : budget_name returned as budget
1155
- 2 fields from aqbooksellers : name returned as supplier, id returned as supplierid
1156
- estimateddeliverydate :  ADDDATE(aqbasket.closedate, INTERVAL aqbooksellers.deliverytime DAY)
1157
- quantity_to_receive : aqorders.quantity - COALESCE(aqorders.quantityreceived,0)
1158
- subtotal : (aqorders.quantity - COALESCE(aqorders.quantityreceived,0)) * aqorders.rrp
1159
- orderdate : DATE (aqbasket.closedate)
1160
- latesince : DATEDIFF(CURDATE( ),closedate)
1161
- 5 fields of biblio or deletedbiblio tables : title, author, seriestitle, serial, copyrightdate
1162
- 9 fields of biblioitems or deletedbiblioitems tables : publicationyear, publishercode,
1163
editionstatement, issn, isbn, ean, itemtype, volume, number
1164
If the record still exists, the biblionumber key contains the biblionumber
1165
If the record have been deleted, the biblionumber key is blank,
1166
and the deletedbiblionumber key contains the biblionumber of the deleted record.
1167
1121
1168
1122
=cut
1169
=cut
1123
1170
Lines 1126-1144 sub GetOrder { Link Here
1126
    return unless $ordernumber;
1173
    return unless $ordernumber;
1127
1174
1128
    my $dbh      = C4::Context->dbh;
1175
    my $dbh      = C4::Context->dbh;
1176
# 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
1129
    my $query = qq{SELECT
1177
    my $query = qq{SELECT
1178
                COALESCE(biblio.title,                 deletedbiblio.title)                 AS title,
1179
                COALESCE(biblio.author,                deletedbiblio.author)                AS author,
1180
                COALESCE(biblio.seriestitle,           deletedbiblio.seriestitle)           AS seriestitle,
1181
                COALESCE(biblio.serial,                deletedbiblio.serial)                AS serial,
1182
                COALESCE(biblio.copyrightdate,         deletedbiblio.copyrightdate)         AS copyrightdate,
1183
                COALESCE(biblioitems.publicationyear,  deletedbiblioitems.publicationyear)  AS publicationyear,
1184
                COALESCE(biblioitems.publishercode,    deletedbiblioitems.publishercode)    AS publishercode,
1185
                COALESCE(biblioitems.publishercode,    deletedbiblioitems.publishercode)    AS publisher,
1186
                COALESCE(biblioitems.editionstatement, deletedbiblioitems.editionstatement) AS editionstatement,
1187
                COALESCE(biblioitems.isbn,             deletedbiblioitems.isbn)             AS isbn,
1188
                COALESCE(biblioitems.issn,             deletedbiblioitems.issn)             AS issn,
1189
                COALESCE(biblioitems.ean,              deletedbiblioitems.ean)              AS ean,
1190
                COALESCE(biblioitems.itemtype,         deletedbiblioitems.itemtype)         AS itemtype,
1191
                COALESCE(biblioitems.volume,           deletedbiblioitems.volume)           AS volume,
1192
                COALESCE(biblioitems.number,           deletedbiblioitems.number)           AS number,
1130
                aqorders.*,
1193
                aqorders.*,
1131
                biblio.title,
1132
                biblio.author,
1133
                aqbasket.basketname,
1194
                aqbasket.basketname,
1134
                borrowers.branchcode,
1195
                borrowers.branchcode,
1135
                biblioitems.publicationyear,
1136
                biblio.copyrightdate,
1137
                biblioitems.editionstatement,
1138
                biblioitems.isbn,
1139
                biblioitems.ean,
1140
                biblio.seriestitle,
1141
                biblioitems.publishercode,
1142
                aqorders.rrp              AS unitpricesupplier,
1196
                aqorders.rrp              AS unitpricesupplier,
1143
                aqorders.ecost            AS unitpricelib,
1197
                aqorders.ecost            AS unitpricelib,
1144
                aqorders.claims_count     AS claims_count,
1198
                aqorders.claims_count     AS claims_count,
Lines 1146-1152 sub GetOrder { Link Here
1146
                aqbudgets.budget_name     AS budget,
1200
                aqbudgets.budget_name     AS budget,
1147
                aqbooksellers.name        AS supplier,
1201
                aqbooksellers.name        AS supplier,
1148
                aqbooksellers.id          AS supplierid,
1202
                aqbooksellers.id          AS supplierid,
1149
                biblioitems.publishercode AS publisher,
1150
                ADDDATE(aqbasket.closedate, INTERVAL aqbooksellers.deliverytime DAY) AS estimateddeliverydate,
1203
                ADDDATE(aqbasket.closedate, INTERVAL aqbooksellers.deliverytime DAY) AS estimateddeliverydate,
1151
                DATE(aqbasket.closedate)  AS orderdate,
1204
                DATE(aqbasket.closedate)  AS orderdate,
1152
                aqorders.quantity - COALESCE(aqorders.quantityreceived,0)                 AS quantity_to_receive,
1205
                aqorders.quantity - COALESCE(aqorders.quantityreceived,0)                 AS quantity_to_receive,
Lines 1154-1159 sub GetOrder { Link Here
1154
                DATEDIFF(CURDATE( ),closedate) AS latesince
1207
                DATEDIFF(CURDATE( ),closedate) AS latesince
1155
                FROM aqorders LEFT JOIN biblio ON biblio.biblionumber = aqorders.biblionumber
1208
                FROM aqorders LEFT JOIN biblio ON biblio.biblionumber = aqorders.biblionumber
1156
                LEFT JOIN biblioitems ON biblioitems.biblionumber = biblio.biblionumber
1209
                LEFT JOIN biblioitems ON biblioitems.biblionumber = biblio.biblionumber
1210
                LEFT JOIN deletedbiblio      ON deletedbiblio.biblionumber=aqorders.deletedbiblionumber
1211
                LEFT JOIN deletedbiblioitems ON deletedbiblioitems.biblionumber=deletedbiblio.biblionumber
1157
                LEFT JOIN aqbudgets ON aqorders.budget_id = aqbudgets.budget_id,
1212
                LEFT JOIN aqbudgets ON aqorders.budget_id = aqbudgets.budget_id,
1158
                aqbasket LEFT JOIN borrowers  ON aqbasket.authorisedby = borrowers.borrowernumber
1213
                aqbasket LEFT JOIN borrowers  ON aqbasket.authorisedby = borrowers.borrowernumber
1159
                LEFT JOIN aqbooksellers       ON aqbasket.booksellerid = aqbooksellers.id
1214
                LEFT JOIN aqbooksellers       ON aqbasket.booksellerid = aqbooksellers.id
Lines 1396-1404 sub ModItemOrder { Link Here
1396
1451
1397
=head3 GetCancelledOrders
1452
=head3 GetCancelledOrders
1398
1453
1399
  my @orders = GetCancelledOrders($basketno, $orderby);
1454
  my @orders = GetCancelledOrders($basketnumber, $orderby);
1400
1455
1401
Returns cancelled orders for a basket
1456
Looks up the cancelled orders with the given basketnumber.
1457
Parameters:
1458
- C<$basketnumber> : mandatory parameter, the basket number
1459
- C<$orderby> : optional parameter, used to sort the results (must be a valid expression
1460
using some fields of aqorders, aqbugdets, biblio, deletedbiblio,
1461
biblioitems, deletedbiblioitems, aqorders_transfers tables)
1462
If C<$orderby> is not provided, results are sorted according to publishercode and title
1463
1464
Return :
1465
The returned C<@orders> is an array of references-to-hash, whose keys are:
1466
- the fields from the aqorders table
1467
- the fields from the aqbudgets table
1468
- 2 fields from aqorders_transfers table : ordernumber_from, return as transferred_from
1469
and timestamp, return as transferred_from_timestamp
1470
- 5 fields of biblio or deletedbiblio tables : title, author, seriestitle, serial, copyrightdate
1471
- 9 fields of biblioitems or deletedbiblioitems tables : publicationyear, publishercode,
1472
editionstatement, issn, isbn, ean, itemtype, volume, number
1473
If the record still exists, the biblionumber key contains the biblionumber
1474
If the record have been deleted, the biblionumber key is blank,
1475
and the deletedbiblionumber key contains the biblionumber of the deleted record.
1402
1476
1403
=cut
1477
=cut
1404
1478
Lines 1410-1417 sub GetCancelledOrders { Link Here
1410
    my $dbh   = C4::Context->dbh;
1484
    my $dbh   = C4::Context->dbh;
1411
    my $query = "
1485
    my $query = "
1412
        SELECT
1486
        SELECT
1413
            biblio.*,
1487
            COALESCE(biblio.title,                 deletedbiblio.title)                 AS title,
1414
            biblioitems.*,
1488
            COALESCE(biblio.author,                deletedbiblio.author)                AS author,
1489
            COALESCE(biblio.seriestitle,           deletedbiblio.seriestitle)           AS seriestitle,
1490
            COALESCE(biblio.serial,                deletedbiblio.serial)                AS serial,
1491
            COALESCE(biblio.copyrightdate,         deletedbiblio.copyrightdate)         AS copyrightdate,
1492
            COALESCE(biblioitems.publicationyear,  deletedbiblioitems.publicationyear)  AS publicationyear,
1493
            COALESCE(biblioitems.publishercode,    deletedbiblioitems.publishercode)    AS publishercode,
1494
            COALESCE(biblioitems.editionstatement, deletedbiblioitems.editionstatement) AS editionstatement,
1495
            COALESCE(biblioitems.isbn,             deletedbiblioitems.isbn)             AS isbn,
1496
            COALESCE(biblioitems.issn,             deletedbiblioitems.issn)             AS issn,
1497
            COALESCE(biblioitems.ean,              deletedbiblioitems.ean)              AS ean,
1498
            COALESCE(biblioitems.itemtype,         deletedbiblioitems.itemtype)         AS itemtype,
1499
            COALESCE(biblioitems.volume,           deletedbiblioitems.volume)           AS volume,
1500
            COALESCE(biblioitems.number,           deletedbiblioitems.number)           AS number,
1415
            aqorders.*,
1501
            aqorders.*,
1416
            aqbudgets.*,
1502
            aqbudgets.*,
1417
            aqorders_transfers.ordernumber_to AS transferred_to,
1503
            aqorders_transfers.ordernumber_to AS transferred_to,
Lines 1420-1425 sub GetCancelledOrders { Link Here
1420
          LEFT JOIN aqbudgets   ON aqbudgets.budget_id = aqorders.budget_id
1506
          LEFT JOIN aqbudgets   ON aqbudgets.budget_id = aqorders.budget_id
1421
          LEFT JOIN biblio      ON biblio.biblionumber = aqorders.biblionumber
1507
          LEFT JOIN biblio      ON biblio.biblionumber = aqorders.biblionumber
1422
          LEFT JOIN biblioitems ON biblioitems.biblionumber = biblio.biblionumber
1508
          LEFT JOIN biblioitems ON biblioitems.biblionumber = biblio.biblionumber
1509
          LEFT JOIN deletedbiblio      ON deletedbiblio.biblionumber=aqorders.deletedbiblionumber
1510
          LEFT JOIN deletedbiblioitems ON deletedbiblioitems.biblionumber=deletedbiblio.biblionumber
1423
          LEFT JOIN aqorders_transfers ON aqorders_transfers.ordernumber_from = aqorders.ordernumber
1511
          LEFT JOIN aqorders_transfers ON aqorders_transfers.ordernumber_from = aqorders.ordernumber
1424
        WHERE basketno = ?
1512
        WHERE basketno = ?
1425
          AND (datecancellationprinted IS NOT NULL
1513
          AND (datecancellationprinted IS NOT NULL
Lines 1717-1723 C<$ordered> Finds orders to receive only (status 'ordered' or 'partial'). Link Here
1717
1805
1718
1806
1719
C<@results> is an array of references-to-hash with the keys are fields
1807
C<@results> is an array of references-to-hash with the keys are fields
1720
from aqorders, biblio, biblioitems and aqbasket tables.
1808
from aqorders, biblio, deletedbiblio, biblioitems, deletedbiblioitems,
1809
aqbasket and aqbasketgroups tables.
1810
If the record still exists, the biblionumber key contains the biblionumber
1811
If the record have been deleted, the biblionumber key is blank,
1812
and the deletedbiblionumber key contains the biblionumber of the deleted record.
1721
1813
1722
=cut
1814
=cut
1723
1815
Lines 1742-1750 sub SearchOrders { Link Here
1742
        SELECT aqbasket.basketno,
1834
        SELECT aqbasket.basketno,
1743
               borrowers.surname,
1835
               borrowers.surname,
1744
               borrowers.firstname,
1836
               borrowers.firstname,
1745
               biblio.*,
1837
               COALESCE(biblio.title,                 deletedbiblio.title)                 AS title,
1746
               biblioitems.isbn,
1838
               COALESCE(biblio.author,                deletedbiblio.author)                AS author,
1747
               biblioitems.biblioitemnumber,
1839
               COALESCE(biblio.seriestitle,           deletedbiblio.seriestitle)           AS seriestitle,
1840
               COALESCE(biblio.serial,                deletedbiblio.serial)                AS serial,
1841
               COALESCE(biblio.copyrightdate,         deletedbiblio.copyrightdate)         AS copyrightdate,
1842
               COALESCE(biblioitems.publicationyear,  deletedbiblioitems.publicationyear)  AS publicationyear,
1843
               COALESCE(biblioitems.publishercode,    deletedbiblioitems.publishercode)    AS publishercode,
1844
               COALESCE(biblioitems.editionstatement, deletedbiblioitems.editionstatement) AS editionstatement,
1845
               COALESCE(biblioitems.isbn,             deletedbiblioitems.isbn)             AS isbn,
1846
               COALESCE(biblioitems.issn,             deletedbiblioitems.issn)             AS issn,
1847
               COALESCE(biblioitems.ean,              deletedbiblioitems.ean)              AS ean,
1848
               COALESCE(biblioitems.itemtype,         deletedbiblioitems.itemtype)         AS itemtype,
1849
               COALESCE(biblioitems.volume,           deletedbiblioitems.volume)           AS volume,
1850
               COALESCE(biblioitems.number,           deletedbiblioitems.number)           AS number,
1748
               aqbasket.authorisedby,
1851
               aqbasket.authorisedby,
1749
               aqbasket.booksellerid,
1852
               aqbasket.booksellerid,
1750
               aqbasket.closedate,
1853
               aqbasket.closedate,
Lines 1759-1764 sub SearchOrders { Link Here
1759
            LEFT JOIN borrowers ON aqbasket.authorisedby=borrowers.borrowernumber
1862
            LEFT JOIN borrowers ON aqbasket.authorisedby=borrowers.borrowernumber
1760
            LEFT JOIN biblio ON aqorders.biblionumber=biblio.biblionumber
1863
            LEFT JOIN biblio ON aqorders.biblionumber=biblio.biblionumber
1761
            LEFT JOIN biblioitems ON biblioitems.biblionumber=biblio.biblionumber
1864
            LEFT JOIN biblioitems ON biblioitems.biblionumber=biblio.biblionumber
1865
            LEFT JOIN deletedbiblio ON aqorders.deletedbiblionumber=deletedbiblio.biblionumber
1866
            LEFT JOIN deletedbiblioitems ON deletedbiblioitems.biblionumber=deletedbiblio.biblionumber
1762
    };
1867
    };
1763
1868
1764
    # If we search on ordernumber, we retrieve the transfered order if a transfer has been done.
1869
    # If we search on ordernumber, we retrieve the transfered order if a transfer has been done.
Lines 1799-1809 sub SearchOrders { Link Here
1799
        push @args, $biblionumber;
1904
        push @args, $biblionumber;
1800
    }
1905
    }
1801
    if( $search ) {
1906
    if( $search ) {
1802
        $query .= ' AND (biblio.title LIKE ? OR biblio.author LIKE ? OR biblioitems.isbn LIKE ?)';
1907
        $query .= ' AND (COALESCE (biblio.title, deletedbiblio.title) LIKE ? OR COALESCE (biblio.author, deletedbiblio.author) LIKE ? OR COALESCE (biblioitems.isbn, deletedbiblioitems.isbn) LIKE ?)';
1803
        push @args, ("%$search%","%$search%","%$search%");
1908
        push @args, ("%$search%","%$search%","%$search%");
1804
    }
1909
    }
1805
    if ( $ean ) {
1910
    if ( $ean ) {
1806
        $query .= ' AND biblioitems.ean = ?';
1911
        $query .= ' AND (COALESCE biblioitems.ean,deletedbiblioitems.ean) = ?';
1807
        push @args, $ean;
1912
        push @args, $ean;
1808
    }
1913
    }
1809
    if ( $booksellerid ) {
1914
    if ( $booksellerid ) {
Lines 1947-1953 Looks up all of the received items from the supplier with the given Link Here
1947
bookseller ID at the given date, for the given code (bookseller Invoice number). Ignores cancelled and completed orders.
2052
bookseller ID at the given date, for the given code (bookseller Invoice number). Ignores cancelled and completed orders.
1948
2053
1949
C<@results> is an array of references-to-hash. The keys of each element are fields from
2054
C<@results> is an array of references-to-hash. The keys of each element are fields from
1950
the aqorders, biblio, and biblioitems tables of the Koha database.
2055
the aqorders, aqbasket, aqinvoices, borrowers, biblio, and deletedbiblio tables of the Koha database.
1951
2056
1952
C<@results> is sorted alphabetically by book title.
2057
C<@results> is sorted alphabetically by book title.
1953
2058
Lines 1976-1986 sub GetParcel { Link Here
1976
                aqorders.rrp,
2081
                aqorders.rrp,
1977
                aqorders.ecost,
2082
                aqorders.ecost,
1978
                aqorders.gstrate,
2083
                aqorders.gstrate,
1979
                biblio.title
2084
                COALESCE (biblio.title, deletedbiblio.title) AS title
1980
        FROM aqorders
2085
        FROM aqorders
1981
        LEFT JOIN aqbasket ON aqbasket.basketno=aqorders.basketno
2086
        LEFT JOIN aqbasket ON aqbasket.basketno=aqorders.basketno
1982
        LEFT JOIN borrowers ON aqbasket.authorisedby=borrowers.borrowernumber
2087
        LEFT JOIN borrowers ON aqbasket.authorisedby=borrowers.borrowernumber
1983
        LEFT JOIN biblio ON aqorders.biblionumber=biblio.biblionumber
2088
        LEFT JOIN biblio ON aqorders.biblionumber=biblio.biblionumber
2089
        LEFT JOIN deletedbiblio ON aqorders.deletedbiblionumber=deletedbiblio.biblionumber
1984
        LEFT JOIN aqinvoices ON aqorders.invoiceid = aqinvoices.invoiceid
2090
        LEFT JOIN aqinvoices ON aqorders.invoiceid = aqinvoices.invoiceid
1985
        WHERE
2091
        WHERE
1986
            aqbasket.booksellerid = ?
2092
            aqbasket.booksellerid = ?
Lines 2096-2108 sub GetParcels { Link Here
2096
2202
2097
=head3 GetLateOrders
2203
=head3 GetLateOrders
2098
2204
2099
  @results = &GetLateOrders;
2205
  @results = &GetLateOrders ($delay, $supplierid, $branch, $estimateddeliverydatefrom, $estimateddeliverydateto) ;
2100
2206
2101
Searches for bookseller with late orders.
2207
Looks up the orders to receive (non cancelled and non completely received) from a given supplier.
2102
2208
2103
return:
2209
return:
2104
the table of supplier with late issues. This table is full of hashref.
2210
the table of supplier with late issues. This table is full of hashref.
2105
2211
2212
Looks up the cancelled orders with the given basketnumber.
2213
Optional parameters are used to limit the results :
2214
- C<$delay>                         : the number of days after the closing of the basket after which an order is late
2215
- C<$supplierid>                    : the id of the vendor this function has to get orders
2216
- C<$branch>                        : the branchcode of the branch this function has to get orders
2217
- C<$estimateddeliverydatefrom>     : the oldest expected date of delivery (based on aqbooksellers.deliverytime)
2218
- C<$estimateddeliverydateto>       : the most recent expected date of delivery (based on aqbooksellers.deliverytime). If only
2219
C<$estimateddeliverydatefrom> is provided and not C<$estimateddeliverydatefrom>, the current day is used as most recent
2220
expected date of delivery.
2221
2222
Return :
2223
The returned C<@results> is an array of references-to-hash, whose keys are:
2224
- 9 fields from the aqorders table : ordernumber, biblionumber, deletedbiblionumber, claims_count, claims_date,
2225
closedate as orderdate, rrp as unitpricesupplier, ecost in unitpricelib, budget_name as budget
2226
- 1 field from the aqbasket table : basketno
2227
- 1 field from the borrowers table : branchcode as branch
2228
- 2 fields from aqbooksellers : name as supplier, id as supplierid
2229
- 2 fields of biblio or deletedbiblio tables : title, author
2230
- 2 fields of biblioitems or deletedbiblioitems tables : publishercode as publisher, publicationyear
2231
- estimateddeliverydate : ADDDATE(aqbasket.closedate, INTERVAL aqbooksellers.deliverytime DAY)
2232
- quantity ; aqorders.quantity - COALESCE(aqorders.quantityreceived,0)
2233
- subtotal : (aqorders.quantity - COALESCE(aqorders.quantityreceived,0)) * aqorders.rrp AS subtotal
2234
- latesince : DATEDIFF(CAST(now() AS date),closedate) AS latesince
2235
If the record still exists, the biblionumber key contains the biblionumber
2236
If the record have been deleted, the biblionumber key is blank,
2237
and the deletedbiblionumber key contains the biblionumber of the deleted record.
2238
2239
2106
=cut
2240
=cut
2107
2241
2108
sub GetLateOrders {
2242
sub GetLateOrders {
Lines 2121-2126 sub GetLateOrders { Link Here
2121
    my $select = "
2255
    my $select = "
2122
    SELECT aqbasket.basketno,
2256
    SELECT aqbasket.basketno,
2123
        aqorders.ordernumber,
2257
        aqorders.ordernumber,
2258
        aqorders.biblionumber,
2259
        aqorders.deletedbiblionumber,
2124
        DATE(aqbasket.closedate)  AS orderdate,
2260
        DATE(aqbasket.closedate)  AS orderdate,
2125
        aqbasket.basketname       AS basketname,
2261
        aqbasket.basketname       AS basketname,
2126
        aqbasket.basketgroupid    AS basketgroupid,
2262
        aqbasket.basketgroupid    AS basketgroupid,
Lines 2133-2147 sub GetLateOrders { Link Here
2133
        borrowers.branchcode      AS branch,
2269
        borrowers.branchcode      AS branch,
2134
        aqbooksellers.name        AS supplier,
2270
        aqbooksellers.name        AS supplier,
2135
        aqbooksellers.id          AS supplierid,
2271
        aqbooksellers.id          AS supplierid,
2136
        biblio.author, biblio.title,
2272
        COALESCE (biblio.author,               deletedbiblio.author)               AS author,
2137
        biblioitems.publishercode AS publisher,
2273
        COALESCE (biblio.title,                deletedbiblio.title)                AS title,
2138
        biblioitems.publicationyear,
2274
        COALESCE (biblioitems.publishercode,   deletedbiblioitems.publishercode)   AS publisher,
2275
        COALESCE (biblioitems.publicationyear, deletedbiblioitems.publicationyear) AS publicationyear,
2139
        ADDDATE(aqbasket.closedate, INTERVAL aqbooksellers.deliverytime DAY) AS estimateddeliverydate,
2276
        ADDDATE(aqbasket.closedate, INTERVAL aqbooksellers.deliverytime DAY) AS estimateddeliverydate,
2140
    ";
2277
    ";
2141
    my $from = "
2278
    my $from = "
2142
    FROM
2279
    FROM
2143
        aqorders LEFT JOIN biblio     ON biblio.biblionumber         = aqorders.biblionumber
2280
        aqorders LEFT JOIN biblio     ON biblio.biblionumber         = aqorders.biblionumber
2144
        LEFT JOIN biblioitems         ON biblioitems.biblionumber    = biblio.biblionumber
2281
        LEFT JOIN biblioitems         ON biblioitems.biblionumber    = biblio.biblionumber
2282
        LEFT JOIN deletedbiblio       ON deletedbiblio.biblionumber  = aqorders.deletedbiblionumber
2283
        LEFT JOIN deletedbiblioitems  ON deletedbiblioitems.biblionumber    = deletedbiblio.biblionumber
2145
        LEFT JOIN aqbudgets           ON aqorders.budget_id          = aqbudgets.budget_id,
2284
        LEFT JOIN aqbudgets           ON aqorders.budget_id          = aqbudgets.budget_id,
2146
        aqbasket LEFT JOIN borrowers  ON aqbasket.authorisedby       = borrowers.borrowernumber
2285
        aqbasket LEFT JOIN borrowers  ON aqbasket.authorisedby       = borrowers.borrowernumber
2147
        LEFT JOIN aqbooksellers       ON aqbasket.booksellerid       = aqbooksellers.id
2286
        LEFT JOIN aqbooksellers       ON aqbasket.booksellerid       = aqbooksellers.id
Lines 2269-2274 returns: Link Here
2269
    $total_qty is the sum of all of the quantities in $order_loop
2408
    $total_qty is the sum of all of the quantities in $order_loop
2270
    $total_price is the cost of each in $order_loop times the quantity
2409
    $total_price is the cost of each in $order_loop times the quantity
2271
    $total_qtyreceived is the sum of all of the quantityreceived entries in $order_loop
2410
    $total_qtyreceived is the sum of all of the quantityreceived entries in $order_loop
2411
If the record still exists, the biblionumber key contains the biblionumber
2412
If the record have been deleted, the biblionumber key is blank,
2413
and the deletedbiblionumber key contains the biblionumber of the deleted record.
2272
2414
2273
=cut
2415
=cut
2274
2416
Lines 2305-2310 sub GetHistory { Link Here
2305
            COALESCE(biblio.author,    deletedbiblio.author)    AS author,
2447
            COALESCE(biblio.author,    deletedbiblio.author)    AS author,
2306
            COALESCE(biblioitems.isbn, deletedbiblioitems.isbn) AS isbn,
2448
            COALESCE(biblioitems.isbn, deletedbiblioitems.isbn) AS isbn,
2307
            COALESCE(biblioitems.ean,  deletedbiblioitems.ean)  AS ean,
2449
            COALESCE(biblioitems.ean,  deletedbiblioitems.ean)  AS ean,
2450
            aqorders.deletedbiblionumber,
2308
            aqorders.basketno,
2451
            aqorders.basketno,
2309
            aqbasket.basketname,
2452
            aqbasket.basketname,
2310
            aqbasket.basketgroupid,
2453
            aqbasket.basketgroupid,
Lines 2334-2341 sub GetHistory { Link Here
2334
        LEFT JOIN biblio ON biblio.biblionumber=aqorders.biblionumber
2477
        LEFT JOIN biblio ON biblio.biblionumber=aqorders.biblionumber
2335
        LEFT JOIN aqbudgets ON aqorders.budget_id=aqbudgets.budget_id
2478
        LEFT JOIN aqbudgets ON aqorders.budget_id=aqbudgets.budget_id
2336
        LEFT JOIN aqinvoices ON aqorders.invoiceid = aqinvoices.invoiceid
2479
        LEFT JOIN aqinvoices ON aqorders.invoiceid = aqinvoices.invoiceid
2337
        LEFT JOIN deletedbiblio ON deletedbiblio.biblionumber=aqorders.biblionumber
2480
        LEFT JOIN deletedbiblio ON deletedbiblio.biblionumber=aqorders.deletedbiblionumber
2338
        LEFT JOIN deletedbiblioitems ON deletedbiblioitems.biblionumber=aqorders.biblionumber
2481
        LEFT JOIN deletedbiblioitems ON deletedbiblioitems.biblionumber=deletedbiblio.biblionumber
2339
        ";
2482
        ";
2340
2483
2341
    if ( C4::Context->preference("IndependentBranches") ) {
2484
    if ( C4::Context->preference("IndependentBranches") ) {
Lines 2356-2377 sub GetHistory { Link Here
2356
    }
2499
    }
2357
2500
2358
    if ( $title ) {
2501
    if ( $title ) {
2359
        $query .= " AND biblio.title LIKE ? ";
2502
        $query .= " AND COALESCE (biblio.title,deletedbiblio.title) LIKE ? ";
2360
        $title =~ s/\s+/%/g;
2503
        $title =~ s/\s+/%/g;
2361
        push @query_params, "%$title%";
2504
        push @query_params, "%$title%";
2362
    }
2505
    }
2363
2506
2364
    if ( $author ) {
2507
    if ( $author ) {
2365
        $query .= " AND biblio.author LIKE ? ";
2508
        $query .= " AND  COALESCE (biblio.author,deletedbiblio.author) LIKE ? ";
2366
        push @query_params, "%$author%";
2509
        push @query_params, "%$author%";
2367
    }
2510
    }
2368
2511
2369
    if ( $isbn ) {
2512
    if ( $isbn ) {
2370
        $query .= " AND biblioitems.isbn LIKE ? ";
2513
        $query .= " AND COALESCE (biblioitems.isbn,deletedbiblioitems.isbn) LIKE ? ";
2371
        push @query_params, "%$isbn%";
2514
        push @query_params, "%$isbn%";
2372
    }
2515
    }
2373
    if ( $ean ) {
2516
    if ( $ean ) {
2374
        $query .= " AND biblioitems.ean = ? ";
2517
        $query .= " AND OALESCE (biblioitems.ean,deletedbiblioitems.ean) = ? ";
2375
        push @query_params, "$ean";
2518
        push @query_params, "$ean";
2376
    }
2519
    }
2377
    if ( $name ) {
2520
    if ( $name ) {
(-)a/C4/Biblio.pm (-5 / +24 lines)
Lines 410-419 sub ModBiblioframework { Link Here
410
410
411
  my $error = &DelBiblio($biblionumber);
411
  my $error = &DelBiblio($biblionumber);
412
412
413
Exported function (core API) for deleting a biblio in koha.
413
Exported function (core API) for deleting a biblio in Koha.
414
Deletes biblio record from Zebra and Koha tables (biblio & biblioitems)
414
Action :
415
Also backs it up to deleted* tables.
415
It the record has an item, do not delete the record, and return an error message.
416
Checks to make sure that the biblio has no items attached.
416
If the record has no item,
417
- deletes biblio record from Zebra and Koha tables (biblio,biblioitems),
418
- copy biblio and biblioitems tables deletedbiblio and deletedbiblioitems tables,
419
- delete attached suscriptions
420
- if the record is used in an order, move the biblionumber from aqorders.biblionumber to aqorders.deletedbiblionumber
421
- record the action in logs
417
return:
422
return:
418
C<$error> : undef unless an error occurs
423
C<$error> : undef unless an error occurs
419
424
Lines 448-453 sub DelBiblio { Link Here
448
    foreach my $res ( @$reserves ) {
453
    foreach my $res ( @$reserves ) {
449
        C4::Reserves::CancelReserve({ reserve_id => $res->{'reserve_id'} });
454
        C4::Reserves::CancelReserve({ reserve_id => $res->{'reserve_id'} });
450
    }
455
    }
456
    # Get all orders using this record. Must be done before deleting the record to be able to find orders to update after deletion
457
    require C4::Acquisition;
458
    my @orders = C4::Acquisition::GetOrdersByBiblionumber ($biblionumber);
451
459
452
    # Delete in Zebra. Be careful NOT to move this line after _koha_delete_biblio
460
    # Delete in Zebra. Be careful NOT to move this line after _koha_delete_biblio
453
    # for at least 2 reasons :
461
    # for at least 2 reasons :
Lines 455-463 sub DelBiblio { Link Here
455
    #   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)
463
    #   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)
456
    ModZebra( $biblionumber, "recordDelete", "biblioserver" );
464
    ModZebra( $biblionumber, "recordDelete", "biblioserver" );
457
465
458
    # delete biblioitems and items from Koha tables and save in deletedbiblioitems,deleteditems
466
    # delete the record from biblioitems table and save it in deletedbiblioitems,deleteditems
459
    $sth = $dbh->prepare("SELECT biblioitemnumber FROM biblioitems WHERE biblionumber=?");
467
    $sth = $dbh->prepare("SELECT biblioitemnumber FROM biblioitems WHERE biblionumber=?");
460
    $sth->execute($biblionumber);
468
    $sth->execute($biblionumber);
469
    #FIXME : the loop is probably unneeded
461
    while ( my $biblioitemnumber = $sth->fetchrow ) {
470
    while ( my $biblioitemnumber = $sth->fetchrow ) {
462
471
463
        # delete this biblioitem
472
        # delete this biblioitem
Lines 470-476 sub DelBiblio { Link Here
470
    # delete cascade will prevent deletedbiblioitems rows
479
    # delete cascade will prevent deletedbiblioitems rows
471
    # from being generated by _koha_delete_biblioitems
480
    # from being generated by _koha_delete_biblioitems
472
    $error = _koha_delete_biblio( $dbh, $biblionumber );
481
    $error = _koha_delete_biblio( $dbh, $biblionumber );
482
    return $error if $error;
473
483
484
    # If the record is used in an order, move the biblionumber from aqorders.biblionumber to aqorders.deletedbiblionumber
485
    if (scalar @orders > 0) {
486
        for my $myorder (@orders) {
487
            $sth = $dbh->prepare("UPDATE aqorders
488
                                  SET deletedbiblionumber = ?
489
                                  WHERE ordernumber=?");
490
            $sth->execute($biblionumber,$myorder->{ordernumber});
491
        }
492
    }
474
    logaction( "CATALOGUING", "DELETE", $biblionumber, "biblio" ) if C4::Context->preference("CataloguingLog");
493
    logaction( "CATALOGUING", "DELETE", $biblionumber, "biblio" ) if C4::Context->preference("CataloguingLog");
475
494
476
    return;
495
    return;
(-)a/acqui/basket.pl (-1 / +1 lines)
Lines 479-485 sub get_order_infos { Link Here
479
        $line{'title'} .= " / $seriestitle" if $seriestitle;
479
        $line{'title'} .= " / $seriestitle" if $seriestitle;
480
        $line{'title'} .= " / $volume"      if $volume;
480
        $line{'title'} .= " / $volume"      if $volume;
481
    } else {
481
    } else {
482
        $line{'title'} = "Deleted bibliographic notice, can't find title.";
482
        $line{'title'} = "Can't find title.";
483
    }
483
    }
484
484
485
    my $biblionumber = $order->{'biblionumber'};
485
    my $biblionumber = $order->{'biblionumber'};
(-)a/acqui/neworderempty.pl (+1 lines)
Lines 361-366 $template->param( Link Here
361
    surnamesuggestedby   => $suggestion->{surnamesuggestedby},
361
    surnamesuggestedby   => $suggestion->{surnamesuggestedby},
362
    firstnamesuggestedby => $suggestion->{firstnamesuggestedby},
362
    firstnamesuggestedby => $suggestion->{firstnamesuggestedby},
363
    biblionumber         => $biblionumber,
363
    biblionumber         => $biblionumber,
364
    deletedbiblionumber  => $data->{'deletedbiblionumber'},
364
    uncertainprice       => $data->{'uncertainprice'},
365
    uncertainprice       => $data->{'uncertainprice'},
365
    authorisedbyname     => $borrower->{'firstname'} . " " . $borrower->{'surname'},
366
    authorisedbyname     => $borrower->{'firstname'} . " " . $borrower->{'surname'},
366
    discount_2dp         => sprintf( "%.2f",  $bookseller->{'discount'} ) ,   # for display
367
    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 8589-8594 if ( CheckVersion($DBversion) ) { Link Here
8589
    SetVersion ($DBversion);
8588
    SetVersion ($DBversion);
8590
}
8589
}
8591
8590
8591
$DBversion = "3.17.00.XXX";
8592
if ( CheckVersion($DBversion) ) {
8593
    $dbh->do("ALTER TABLE aqorders ADD COLUMN deletedbiblionumber INT(11) DEFAULT NULL AFTER biblionumber;");
8594
    $dbh->do("ALTER TABLE aqorders ADD CONSTRAINT `aqorders_ibfk_4` FOREIGN KEY (`deletedbiblionumber`) REFERENCES `deletedbiblio` (`biblionumber`) ON DELETE SET NULL ON UPDATE CASCADE;");
8595
    print "Upgrade to $DBversion done (Bug 10758 - Show bibliographic information of deleted records in acquisitions)\n";
8596
     SetVersion($DBversion);
8597
}
8598
8592
=head1 FUNCTIONS
8599
=head1 FUNCTIONS
8593
8600
8594
=head2 TableExists($table)
8601
=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 266-272 Link Here
266
                </td>
266
                </td>
267
                <td class="orderfilterclass"><a href="neworderempty.pl?ordernumber=[% loop_order.ordernumber %]&amp;booksellerid=[% loop_order.booksellerid %]">[% loop_order.ordernumber %]</a></td>
267
                <td class="orderfilterclass"><a href="neworderempty.pl?ordernumber=[% loop_order.ordernumber %]&amp;booksellerid=[% loop_order.booksellerid %]">[% loop_order.ordernumber %]</a></td>
268
                <td class="summaryfilterclass">
268
                <td class="summaryfilterclass">
269
                  <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% loop_order.biblionumber %]">[% loop_order.title |html %]</a>
269
                [% IF (loop_order.biblionumber) %]
270
                    <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% loop_order.biblionumber %]">[% loop_order.title |html %]</a>
271
                [% ELSIF (loop_order.deletedbiblionumber) %]
272
                    <em>(Deleted record, order cannot be received)</em>
273
                    <br />
274
                    [% loop_order.title |html %]
275
                [% ELSE %]
276
                    <em>Can't find title</em>
277
                [% END %]
270
                [% IF ( loop_order.author ) %] by [% loop_order.author %][% END %]
278
                [% IF ( loop_order.author ) %] by [% loop_order.author %][% END %]
271
                [% IF ( loop_order.isbn ) %] &ndash; [% loop_order.isbn %][% END %]
279
                [% IF ( loop_order.isbn ) %] &ndash; [% loop_order.isbn %][% END %]
272
                [% IF ( loop_order.publishercode ) %]<br />Publisher:[% loop_order.publishercode %][% END %]
280
                [% IF ( loop_order.publishercode ) %]<br />Publisher:[% loop_order.publishercode %][% END %]
Lines 293-300 Link Here
293
                <td>[% loop_order.ordertotal %]</td>
301
                <td>[% loop_order.ordertotal %]</td>
294
                <td>[% loop_order.budget_name %]</td>
302
                <td>[% loop_order.budget_name %]</td>
295
				<td>
303
				<td>
296
                              <a href="orderreceive.pl?ordernumber=[% loop_order.ordernumber %]&amp;invoiceid=[% invoiceid %]">Receive</a>
304
	                [% UNLESS (loop_order.deletedbiblionumber) %]
297
                    <br />
305
                        <a href="orderreceive.pl?ordernumber=[% loop_order.ordernumber %]&amp;invoiceid=[% invoiceid %]">Receive</a>
306
                        <br />
307
                    [% END %]
298
                    <a href="#" onclick="transfer_order_popup([% loop_order.ordernumber %]); return false;">Transfer</a>
308
                    <a href="#" onclick="transfer_order_popup([% loop_order.ordernumber %]); return false;">Transfer</a>
299
				</td>
309
				</td>
300
				<td>
310
				<td>
Lines 305-311 Link Here
305
                        [% END %]
315
                        [% END %]
306
                        [% IF ( loop_order.can_del_bib ) %]
316
                        [% IF ( loop_order.can_del_bib ) %]
307
                        <a href="javascript:confirm_delete_biblio([% loop_order.ordernumber %], [% loop_order.basketno %], [% loop_order.biblionumber %])" class="button">Delete order and catalog record</a><br>
317
                        <a href="javascript:confirm_delete_biblio([% loop_order.ordernumber %], [% loop_order.basketno %], [% loop_order.biblionumber %])" class="button">Delete order and catalog record</a><br>
308
                        [% ELSE %]
318
                        [% ELSIF (loop_order.biblionumber) %]
309
                        <span class="button" title="Can't delete catalog record, see constraints below">Can't delete order and catalog record</span><br>
319
                        <span class="button" title="Can't delete catalog record, see constraints below">Can't delete order and catalog record</span><br>
310
                        [% END %]
320
                        [% END %]
311
                        [% IF ( loop_order.left_item ) %]
321
                        [% IF ( loop_order.left_item ) %]
312
- 

Return to bug 10758