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

(-)a/C4/Serials.pm (-36 / +11 lines)
Lines 52-58 BEGIN { Link Here
52
      &GetSerialInformation                   &AddItem2Serial
52
      &GetSerialInformation                   &AddItem2Serial
53
      &PrepareSerialsData &GetNextExpected    &ModNextExpected
53
      &PrepareSerialsData &GetNextExpected    &ModNextExpected
54
54
55
      &UpdateClaimdateIssues
56
      &GetSuppliersWithLateIssues             &getsupplierbyserialid
55
      &GetSuppliersWithLateIssues             &getsupplierbyserialid
57
      &GetDistributedTo   &SetDistributedTo
56
      &GetDistributedTo   &SetDistributedTo
58
      &getroutinglist     &delroutingmember   &addroutingmember
57
      &getroutinglist     &delroutingmember   &addroutingmember
Lines 235-268 sub AddItem2Serial { Link Here
235
    return $rq->rows;
234
    return $rq->rows;
236
}
235
}
237
236
238
=head2 UpdateClaimdateIssues
239
240
UpdateClaimdateIssues($serialids,[$date]);
241
242
Update Claimdate for issues in @$serialids list with date $date
243
(Take Today if none)
244
245
=cut
246
247
sub UpdateClaimdateIssues {
248
    my ( $serialids, $date ) = @_;
249
250
    return unless ($serialids);
251
252
    my $dbh = C4::Context->dbh;
253
    $date = strftime( "%Y-%m-%d", localtime ) unless ($date);
254
    my $query = "
255
        UPDATE serial
256
        SET claimdate = ?,
257
            status = 7,
258
            claims_count = claims_count + 1
259
        WHERE  serialid in (" . join( ",", map { '?' } @$serialids ) . ")
260
    ";
261
    my $rq = $dbh->prepare($query);
262
    $rq->execute($date, @$serialids);
263
    return $rq->rows;
264
}
265
266
=head2 GetSubscription
237
=head2 GetSubscription
267
238
268
$subs = GetSubscription($subscriptionid)
239
$subs = GetSubscription($subscriptionid)
Lines 1963-1977 called from claims.pl file Link Here
1963
=cut
1934
=cut
1964
1935
1965
sub updateClaim {
1936
sub updateClaim {
1966
    my ($serialid) = @_;
1937
    my ($serialids) = @_;
1967
    my $dbh        = C4::Context->dbh;
1938
    return unless $serialids;
1968
    $dbh->do(q|
1939
    unless ( ref $serialids ) {
1940
        $serialids = [ $serialids ];
1941
    }
1942
    my $dbh = C4::Context->dbh;
1943
    return $dbh->do(q|
1969
        UPDATE serial
1944
        UPDATE serial
1970
        SET claimdate = NOW(),
1945
        SET claimdate = NOW(),
1971
            claims_count = claims_count + 1
1946
            claims_count = claims_count + 1,
1972
        WHERE serialid = ?
1947
            status = 7
1973
    |, {}, $serialid );
1948
        WHERE serialid in (| . join( q|,|, (q|?|) x @$serialids ) . q|)|,
1974
    return;
1949
        {}, @$serialids );
1975
}
1950
}
1976
1951
1977
=head2 getsupplierbyserialid
1952
=head2 getsupplierbyserialid
(-)a/serials/claims.pl (-1 / +1 lines)
Lines 64-70 if (@serialnums) { # i.e. they have been flagged to generate claims Link Here
64
    eval {
64
    eval {
65
        $err = SendAlerts('claimissues',\@serialnums,$input->param("letter_code"));
65
        $err = SendAlerts('claimissues',\@serialnums,$input->param("letter_code"));
66
        if ( not ref $err or not exists $err->{error} ) {
66
        if ( not ref $err or not exists $err->{error} ) {
67
           UpdateClaimdateIssues(\@serialnums);
67
            C4::Serials::updateClaim( \@serialnums );
68
        }
68
        }
69
    };
69
    };
70
    if ( $@ ) {
70
    if ( $@ ) {
(-)a/t/db_dependent/Serials.t (-3 lines)
Lines 151-157 if ($old_frequency) { Link Here
151
151
152
# Test calling subs without parameters
152
# Test calling subs without parameters
153
is(C4::Serials::AddItem2Serial(), undef, 'test adding item to serial');
153
is(C4::Serials::AddItem2Serial(), undef, 'test adding item to serial');
154
is(C4::Serials::UpdateClaimdateIssues(), undef, 'test updating claim date');
155
is(C4::Serials::GetFullSubscription(), undef, 'test getting full subscription');
154
is(C4::Serials::GetFullSubscription(), undef, 'test getting full subscription');
156
is(C4::Serials::PrepareSerialsData(), undef, 'test preparing serial data');
155
is(C4::Serials::PrepareSerialsData(), undef, 'test preparing serial data');
157
is(C4::Serials::GetSubscriptionsFromBiblionumber(), undef, 'test getting subscriptions form biblio number');
156
is(C4::Serials::GetSubscriptionsFromBiblionumber(), undef, 'test getting subscriptions form biblio number');
Lines 184-191 is(C4::Serials::GetLateOrMissingIssues(), undef, 'test getting last or missing i Link Here
184
183
185
is(C4::Serials::removeMissingIssue(), undef, 'test removing a missing issue');
184
is(C4::Serials::removeMissingIssue(), undef, 'test removing a missing issue');
186
185
187
is(C4::Serials::updateClaim(),undef, 'test updating claim');
188
189
is(C4::Serials::getsupplierbyserialid(),undef, 'test getting supplier idea');
186
is(C4::Serials::getsupplierbyserialid(),undef, 'test getting supplier idea');
190
187
191
is(C4::Serials::check_routing(), undef, 'test checking route');
188
is(C4::Serials::check_routing(), undef, 'test checking route');
(-)a/t/db_dependent/Serials/Claims.t (-2 / +13 lines)
Lines 1-5 Link Here
1
use Modern::Perl;
1
use Modern::Perl;
2
use Test::More tests => 13;
2
use Test::More tests => 17;
3
3
4
use C4::Acquisition;
4
use C4::Acquisition;
5
use C4::Bookseller;
5
use C4::Bookseller;
Lines 135-140 is( exists $late_or_missing_issues[0]->{claimdate}, 1, 'GetLateOrMissingIssues r Link Here
135
is( exists $late_or_missing_issues[0]->{claims_count}, 1, 'GetLateOrMissingIssues returns claims_count' );
135
is( exists $late_or_missing_issues[0]->{claims_count}, 1, 'GetLateOrMissingIssues returns claims_count' );
136
is( $late_or_missing_issues[0]->{claims_count}, 0, 'The issues should not habe been claimed yet' );
136
is( $late_or_missing_issues[0]->{claims_count}, 0, 'The issues should not habe been claimed yet' );
137
137
138
is( updateClaim(), undef, 'updateClaim should return undef if not param passed' );
138
my $serialid_to_claim = $late_or_missing_issues[0]->{serialid};
139
my $serialid_to_claim = $late_or_missing_issues[0]->{serialid};
139
updateClaim( $serialid_to_claim );
140
updateClaim( $serialid_to_claim );
140
141
Lines 144-149 is( scalar(@late_or_missing_issues), 2, 'supplier 2 should have 2 issues in late Link Here
144
my ( $serial_claimed ) = grep { ($_->{serialid} == $serialid_to_claim) ? $_ : () } @late_or_missing_issues;
145
my ( $serial_claimed ) = grep { ($_->{serialid} == $serialid_to_claim) ? $_ : () } @late_or_missing_issues;
145
is( $serial_claimed->{claims_count}, 1, 'The serial should have been claimed' );
146
is( $serial_claimed->{claims_count}, 1, 'The serial should have been claimed' );
146
147
148
my @serials_to_claim = map { $_->{serialid} } @late_or_missing_issues;
149
updateClaim( \@serials_to_claim );
150
@late_or_missing_issues = GetLateOrMissingIssues( $supplier_id2);
151
is( scalar(@late_or_missing_issues), 2, 'supplier 2 should have 2 issues in late' );
152
153
( $serial_claimed ) = grep { ($_->{serialid} == $serials_to_claim[0]) ? $_ : () } @late_or_missing_issues;
154
is( $serial_claimed->{claims_count}, 2, 'The serial should have been claimed' );
155
( $serial_claimed ) = grep { ($_->{serialid} == $serials_to_claim[1]) ? $_ : () } @late_or_missing_issues;
156
is( $serial_claimed->{claims_count}, 1, 'The serial should have been claimed' );
157
158
147
my $today = output_pref({ dt => dt_from_string, dateformat => 'iso', dateonly => 1 });
159
my $today = output_pref({ dt => dt_from_string, dateformat => 'iso', dateonly => 1 });
148
# FIXME: This test should pass. The GetLateOrMissingIssues should not deal with date format!
160
# FIXME: This test should pass. The GetLateOrMissingIssues should not deal with date format!
149
#is( $serial_claimed->{claimdate}, $today, 'The serial should have been claimed today' );
161
#is( $serial_claimed->{claimdate}, $today, 'The serial should have been claimed today' );
150
- 

Return to bug 12178