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

(-)a/misc/cronjobs/ordersClaim.pl (-18 / +20 lines)
Lines 39-44 use Pod::Usage; Link Here
39
39
40
use C4::Letters qw( GetPreparedLetter EnqueueLetter );
40
use C4::Letters qw( GetPreparedLetter EnqueueLetter );
41
use Koha::Acquisition::Orders;
41
use Koha::Acquisition::Orders;
42
use Koha::DateUtils qw( dt_from_string output_pref );
42
43
43
=head1 NAME
44
=head1 NAME
44
45
Lines 114-136 while ( my ( $basketno, $orderids ) = each %$baskets_orders ) { Link Here
114
        $delay = $bookseller->deliverytime || 0;
115
        $delay = $bookseller->deliverytime || 0;
115
    }
116
    }
116
117
117
    my $dbh = C4::Context->dbh;
118
    my $orders        = [];
118
119
    my $order_objects = Koha::Acquisition::Orders->search( { ordernumber => { -in => $orderids } } );
119
    my $orderids_str = join( ',', ('?') x @$orderids );
120
    while ( my $order = $order_objects->next ) {
120
    my $orders       = $dbh->selectall_arrayref(
121
        my $claims_count = $order->claims_count;
121
        qq{
122
        my $last_claim   = dt_from_string( $order->claimed_date );
122
        SELECT aqorders.*, aqbasket.*, biblio.*,
123
123
        COUNT(aqorders_claims.claimed_on) AS claims_count,
124
        next if $claims_count > $max_claims;
124
        MAX(aqorders_claims.claimed_on) AS last_claim
125
        next if $last_claim && $last_claim > dt_from_string->subtract( days => $claimed_for );
125
        FROM aqorders
126
126
        LEFT JOIN biblio ON aqorders.biblionumber = biblio.biblionumber
127
        my $result = {
127
        LEFT JOIN aqbasket ON aqorders.basketno = aqbasket.basketno
128
            %{ $order->unblessed },
128
        LEFT JOIN aqorders_claims ON aqorders.ordernumber = aqorders_claims.ordernumber
129
            %{ $order->basket->unblessed },
129
        WHERE aqorders.ordernumber IN ($orderids_str)
130
            %{ $order->biblio->unblessed },
130
        HAVING claims_count <= $max_claims
131
            claims_count => $claims_count,
131
        AND (last_claim IS NULL or last_claim <= DATE_SUB(CAST(now() AS date),INTERVAL $claimed_for DAY))
132
            last_claim   => $last_claim,
132
    }, { Slice => {} }, @$orderids
133
        };
133
    );
134
135
        push @$orders, $result;
136
    }
134
137
135
    next unless @$orders;
138
    next unless @$orders;
136
139
137
- 

Return to bug 20125