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

(-)a/C4/Serials.pm (-47 / +46 lines)
Lines 1796-1859 this function selects missing issues on database - where serial.status = MISSING Link Here
1796
1796
1797
return :
1797
return :
1798
the issuelist as an array of hash refs. Each element of this array contains 
1798
the issuelist as an array of hash refs. Each element of this array contains 
1799
name,title,planneddate,serialseq,serial.subscriptionid from tables : subscription, serial & biblio
1799
name,title,issn,planneddate,serialseq,serial.subscriptionid from tables : subscription, serial & biblio
1800
1800
1801
=cut
1801
=cut
1802
1802
1803
sub GetLateOrMissingIssues {
1803
sub GetLateOrMissingIssues {
1804
    my ( $supplierid, $serialid, $order ) = @_;
1804
    my ( $supplierid, $serialid ) = @_;
1805
1805
1806
    return unless ( $supplierid or $serialid );
1806
    return unless ( $supplierid or $serialid );
1807
1807
1808
    my $dbh = C4::Context->dbh;
1808
    my $dbh = C4::Context->dbh;
1809
1809
1810
    my $sth;
1811
    my $byserial = '';
1812
    if ($serialid) {
1813
        $byserial = "and serialid = " . $serialid;
1814
    }
1815
    if ($order) {
1816
        $order .= ", title";
1817
    } else {
1818
        $order = "title";
1819
    }
1820
    my $missing_statuses_string = join ',', (MISSING_STATUSES);
1810
    my $missing_statuses_string = join ',', (MISSING_STATUSES);
1811
    my @params = (EXPECTED, LATE, CLAIMED);
1812
1813
    my $query = qq{
1814
        SELECT
1815
            serial.serialid,
1816
            serial.planneddate,
1817
            serial.serialseq,
1818
            serial.status,
1819
            serial.subscriptionid,
1820
            serial.claimdate,
1821
            serial.claims_count,
1822
            subscription.branchcode,
1823
            subscription.aqbooksellerid,
1824
            biblio.title,
1825
            biblioitems.issn,
1826
            aqbooksellers.name
1827
        FROM serial
1828
            LEFT JOIN subscription  ON serial.subscriptionid = subscription.subscriptionid
1829
            LEFT JOIN biblio        ON subscription.biblionumber = biblio.biblionumber
1830
            LEFT JOIN biblioitems   ON subscription.biblionumber = biblioitems.biblionumber
1831
            LEFT JOIN aqbooksellers ON subscription.aqbooksellerid = aqbooksellers.id
1832
        WHERE subscription.subscriptionid = serial.subscriptionid
1833
            AND (
1834
                serial.STATUS IN ($missing_statuses_string)
1835
                OR ((serial.planneddate < now() AND serial.STATUS = ?) OR serial.STATUS = ? OR serial.STATUS = ?)
1836
            )
1837
    };
1821
    if ($supplierid) {
1838
    if ($supplierid) {
1822
        $sth = $dbh->prepare(
1839
        $query .= qq{
1823
            "SELECT
1840
            AND subscription.aqbooksellerid = ?
1824
                serialid,      aqbooksellerid,        name,
1841
        };
1825
                biblio.title,  biblioitems.issn,      planneddate,    serialseq,
1842
        push @params, $supplierid;
1826
                serial.status, serial.subscriptionid, claimdate, claims_count,
1843
    }
1827
                subscription.branchcode
1844
    if ($serialid) {
1828
            FROM      serial
1845
        $query .= qq{
1829
                LEFT JOIN subscription  ON serial.subscriptionid=subscription.subscriptionid
1846
            AND serial.serialid = ?
1830
                LEFT JOIN biblio        ON subscription.biblionumber=biblio.biblionumber
1847
        };
1831
                LEFT JOIN biblioitems   ON subscription.biblionumber=biblioitems.biblionumber
1848
        push @params, $serialid;
1832
                LEFT JOIN aqbooksellers ON subscription.aqbooksellerid = aqbooksellers.id
1833
                WHERE subscription.subscriptionid = serial.subscriptionid
1834
                AND (serial.STATUS IN ($missing_statuses_string) OR ((planneddate < now() AND serial.STATUS = ?) OR serial.STATUS = ? OR serial.STATUS = ?))
1835
                AND subscription.aqbooksellerid=$supplierid
1836
                $byserial
1837
                ORDER BY $order"
1838
        );
1839
    } else {
1840
        $sth = $dbh->prepare(
1841
            "SELECT
1842
            serialid,      aqbooksellerid,         name,
1843
            biblio.title,  planneddate,           serialseq,
1844
                serial.status, serial.subscriptionid, claimdate, claims_count,
1845
                subscription.branchcode
1846
            FROM serial
1847
                LEFT JOIN subscription ON serial.subscriptionid=subscription.subscriptionid
1848
                LEFT JOIN biblio ON subscription.biblionumber=biblio.biblionumber
1849
                LEFT JOIN aqbooksellers ON subscription.aqbooksellerid = aqbooksellers.id
1850
                WHERE subscription.subscriptionid = serial.subscriptionid
1851
                        AND (serial.STATUS IN ($missing_statuses_string) OR ((planneddate < now() AND serial.STATUS = ?) OR serial.STATUS = ? OR serial.STATUS = ?))
1852
                $byserial
1853
                ORDER BY $order"
1854
        );
1855
    }
1849
    }
1856
    $sth->execute( EXPECTED, LATE, CLAIMED );
1850
    $query .= q{
1851
        ORDER BY biblio.title
1852
    };
1853
1854
    my $sth = $dbh->prepare($query);
1855
    $sth->execute(@params);
1856
1857
    my @issuelist;
1857
    my @issuelist;
1858
    while ( my $line = $sth->fetchrow_hashref ) {
1858
    while ( my $line = $sth->fetchrow_hashref ) {
1859
1859
1860
- 

Return to bug 17703