&GetSerialInformation &AddItem2Serial
&PrepareSerialsData &GetNextExpected &ModNextExpected
- &UpdateClaimdateIssues
&GetSuppliersWithLateIssues &getsupplierbyserialid
&GetDistributedTo &SetDistributedTo
&getroutinglist &delroutingmember &addroutingmember
return $rq->rows;
}
-=head2 UpdateClaimdateIssues
-
-UpdateClaimdateIssues($serialids,[$date]);
-
-Update Claimdate for issues in @$serialids list with date $date
-(Take Today if none)
-
-=cut
-
-sub UpdateClaimdateIssues {
- my ( $serialids, $date ) = @_;
-
- return unless ($serialids);
-
- my $dbh = C4::Context->dbh;
- $date = strftime( "%Y-%m-%d", localtime ) unless ($date);
- my $query = "
- UPDATE serial
- SET claimdate = ?,
- status = ?,
- claims_count = claims_count + 1
- WHERE serialid in (" . join( ",", map { '?' } @$serialids ) . ")
- ";
- my $rq = $dbh->prepare($query);
- $rq->execute($date, CLAIMED, @$serialids);
- return $rq->rows;
-}
-
=head2 GetSubscription
$subs = GetSubscription($subscriptionid)
=cut
sub updateClaim {
- my ($serialid) = @_;
- my $dbh = C4::Context->dbh;
- $dbh->do(q|
+ my ($serialids) = @_;
+ return unless $serialids;
+ unless ( ref $serialids ) {
+ $serialids = [ $serialids ];
+ }
+ my $dbh = C4::Context->dbh;
+ return $dbh->do(q|
UPDATE serial
SET claimdate = NOW(),
- claims_count = claims_count + 1
- WHERE serialid = ?
- |, {}, $serialid );
- return;
+ claims_count = claims_count + 1,
+ status = ?
+ WHERE serialid in (| . join( q|,|, (q|?|) x @$serialids ) . q|)|,
+ {}, CLAIMED, @$serialids );
}
=head2 getsupplierbyserialid
eval {
$err = SendAlerts('claimissues',\@serialnums,$input->param("letter_code"));
if ( not ref $err or not exists $err->{error} ) {
- UpdateClaimdateIssues(\@serialnums);
+ C4::Serials::updateClaim( \@serialnums );
}
};
if ( $@ ) {
use C4::Biblio;
use C4::Budgets;
use Koha::DateUtils;
-use Test::More tests => 48;
+use Test::More tests => 46;
BEGIN {
use_ok('C4::Serials');
# Test calling subs without parameters
is(C4::Serials::AddItem2Serial(), undef, 'test adding item to serial');
-is(C4::Serials::UpdateClaimdateIssues(), undef, 'test updating claim date');
is(C4::Serials::GetFullSubscription(), undef, 'test getting full subscription');
is(C4::Serials::PrepareSerialsData(), undef, 'test preparing serial data');
is(C4::Serials::GetSubscriptionsFromBiblionumber(), undef, 'test getting subscriptions form biblio number');
is(C4::Serials::GetLateOrMissingIssues(), undef, 'test getting last or missing issues');
-is(C4::Serials::updateClaim(),undef, 'test updating claim');
-
is(C4::Serials::getsupplierbyserialid(),undef, 'test getting supplier idea');
is(C4::Serials::check_routing(), undef, 'test checking route');
use Modern::Perl;
-use Test::More tests => 13;
+use Test::More tests => 17;
use C4::Acquisition;
use C4::Bookseller;
is( exists $late_or_missing_issues[0]->{claims_count}, 1, 'GetLateOrMissingIssues returns claims_count' );
is( $late_or_missing_issues[0]->{claims_count}, 0, 'The issues should not habe been claimed yet' );
+is( updateClaim(), undef, 'updateClaim should return undef if not param passed' );
my $serialid_to_claim = $late_or_missing_issues[0]->{serialid};
updateClaim( $serialid_to_claim );
my ( $serial_claimed ) = grep { ($_->{serialid} == $serialid_to_claim) ? $_ : () } @late_or_missing_issues;
is( $serial_claimed->{claims_count}, 1, 'The serial should have been claimed' );
+my @serials_to_claim = map { $_->{serialid} } @late_or_missing_issues;
+updateClaim( \@serials_to_claim );
+@late_or_missing_issues = GetLateOrMissingIssues( $supplier_id2);
+is( scalar(@late_or_missing_issues), 2, 'supplier 2 should have 2 issues in late' );
+
+( $serial_claimed ) = grep { ($_->{serialid} == $serials_to_claim[0]) ? $_ : () } @late_or_missing_issues;
+is( $serial_claimed->{claims_count}, 2, 'The serial should have been claimed' );
+( $serial_claimed ) = grep { ($_->{serialid} == $serials_to_claim[1]) ? $_ : () } @late_or_missing_issues;
+is( $serial_claimed->{claims_count}, 1, 'The serial should have been claimed' );
+
+
my $today = output_pref({ dt => dt_from_string, dateformat => 'iso', dateonly => 1 });
# FIXME: This test should pass. The GetLateOrMissingIssues should not deal with date format!
#is( $serial_claimed->{claimdate}, $today, 'The serial should have been claimed today' );