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

(-)a/C4/Serials.pm (-47 / +46 lines)
Lines 1824-1887 this function selects missing issues on database - where serial.status = MISSING Link Here
1824
1824
1825
return :
1825
return :
1826
the issuelist as an array of hash refs. Each element of this array contains 
1826
the issuelist as an array of hash refs. Each element of this array contains 
1827
name,title,planneddate,serialseq,serial.subscriptionid from tables : subscription, serial & biblio
1827
name,title,issn,planneddate,serialseq,serial.subscriptionid from tables : subscription, serial & biblio
1828
1828
1829
=cut
1829
=cut
1830
1830
1831
sub GetLateOrMissingIssues {
1831
sub GetLateOrMissingIssues {
1832
    my ( $supplierid, $serialid, $order ) = @_;
1832
    my ( $supplierid, $serialid ) = @_;
1833
1833
1834
    return unless ( $supplierid or $serialid );
1834
    return unless ( $supplierid or $serialid );
1835
1835
1836
    my $dbh = C4::Context->dbh;
1836
    my $dbh = C4::Context->dbh;
1837
1837
1838
    my $sth;
1839
    my $byserial = '';
1840
    if ($serialid) {
1841
        $byserial = "and serialid = " . $serialid;
1842
    }
1843
    if ($order) {
1844
        $order .= ", title";
1845
    } else {
1846
        $order = "title";
1847
    }
1848
    my $missing_statuses_string = join ',', (MISSING_STATUSES);
1838
    my $missing_statuses_string = join ',', (MISSING_STATUSES);
1839
    my @params = (EXPECTED, LATE, CLAIMED);
1840
1841
    my $query = qq{
1842
        SELECT
1843
            serial.serialid,
1844
            serial.planneddate,
1845
            serial.serialseq,
1846
            serial.status,
1847
            serial.subscriptionid,
1848
            serial.claimdate,
1849
            serial.claims_count,
1850
            subscription.branchcode,
1851
            subscription.aqbooksellerid,
1852
            biblio.title,
1853
            biblioitems.issn,
1854
            aqbooksellers.name
1855
        FROM serial
1856
            LEFT JOIN subscription  ON serial.subscriptionid = subscription.subscriptionid
1857
            LEFT JOIN biblio        ON subscription.biblionumber = biblio.biblionumber
1858
            LEFT JOIN biblioitems   ON subscription.biblionumber = biblioitems.biblionumber
1859
            LEFT JOIN aqbooksellers ON subscription.aqbooksellerid = aqbooksellers.id
1860
        WHERE subscription.subscriptionid = serial.subscriptionid
1861
            AND (
1862
                serial.STATUS IN ($missing_statuses_string)
1863
                OR ((serial.planneddate < now() AND serial.STATUS = ?) OR serial.STATUS = ? OR serial.STATUS = ?)
1864
            )
1865
    };
1849
    if ($supplierid) {
1866
    if ($supplierid) {
1850
        $sth = $dbh->prepare(
1867
        $query .= qq{
1851
            "SELECT
1868
            AND subscription.aqbooksellerid = ?
1852
                serialid,      aqbooksellerid,        name,
1869
        };
1853
                biblio.title,  biblioitems.issn,      planneddate,    serialseq,
1870
        push @params, $supplierid;
1854
                serial.status, serial.subscriptionid, claimdate, claims_count,
1871
    }
1855
                subscription.branchcode
1872
    if ($serialid) {
1856
            FROM      serial
1873
        $query .= qq{
1857
                LEFT JOIN subscription  ON serial.subscriptionid=subscription.subscriptionid
1874
            AND serial.serialid = ?
1858
                LEFT JOIN biblio        ON subscription.biblionumber=biblio.biblionumber
1875
        };
1859
                LEFT JOIN biblioitems   ON subscription.biblionumber=biblioitems.biblionumber
1876
        push @params, $serialid;
1860
                LEFT JOIN aqbooksellers ON subscription.aqbooksellerid = aqbooksellers.id
1861
                WHERE subscription.subscriptionid = serial.subscriptionid
1862
                AND (serial.STATUS IN ($missing_statuses_string) OR ((planneddate < now() AND serial.STATUS = ?) OR serial.STATUS = ? OR serial.STATUS = ?))
1863
                AND subscription.aqbooksellerid=$supplierid
1864
                $byserial
1865
                ORDER BY $order"
1866
        );
1867
    } else {
1868
        $sth = $dbh->prepare(
1869
            "SELECT
1870
            serialid,      aqbooksellerid,         name,
1871
            biblio.title,  planneddate,           serialseq,
1872
                serial.status, serial.subscriptionid, claimdate, claims_count,
1873
                subscription.branchcode
1874
            FROM serial
1875
                LEFT JOIN subscription ON serial.subscriptionid=subscription.subscriptionid
1876
                LEFT JOIN biblio ON subscription.biblionumber=biblio.biblionumber
1877
                LEFT JOIN aqbooksellers ON subscription.aqbooksellerid = aqbooksellers.id
1878
                WHERE subscription.subscriptionid = serial.subscriptionid
1879
                        AND (serial.STATUS IN ($missing_statuses_string) OR ((planneddate < now() AND serial.STATUS = ?) OR serial.STATUS = ? OR serial.STATUS = ?))
1880
                $byserial
1881
                ORDER BY $order"
1882
        );
1883
    }
1877
    }
1884
    $sth->execute( EXPECTED, LATE, CLAIMED );
1878
    $query .= q{
1879
        ORDER BY biblio.title
1880
    };
1881
1882
    my $sth = $dbh->prepare($query);
1883
    $sth->execute(@params);
1884
1885
    my @issuelist;
1885
    my @issuelist;
1886
    while ( my $line = $sth->fetchrow_hashref ) {
1886
    while ( my $line = $sth->fetchrow_hashref ) {
1887
1887
1888
- 

Return to bug 17703