Lines 1156-1205
sub ModSubscriptionHistory {
Link Here
|
1156 |
return $sth->rows; |
1156 |
return $sth->rows; |
1157 |
} |
1157 |
} |
1158 |
|
1158 |
|
1159 |
# Update missinglist field, used by ModSerialStatus |
|
|
1160 |
sub _update_missinglist { |
1161 |
my $subscriptionid = shift; |
1162 |
|
1163 |
my $dbh = C4::Context->dbh; |
1164 |
my @missingserials = GetSerials2($subscriptionid, "4,41,42,43,44,5"); |
1165 |
my $missinglist; |
1166 |
foreach my $missingserial (@missingserials) { |
1167 |
if ( grep { $_ == $missingserial->{status} } qw( 4 41 42 43 44 ) ) { |
1168 |
$missinglist .= $missingserial->{'serialseq'} . "; "; |
1169 |
} elsif($missingserial->{'status'} == 5) { |
1170 |
$missinglist .= "not issued " . $missingserial->{'serialseq'} . "; "; |
1171 |
} |
1172 |
} |
1173 |
$missinglist =~ s/; $//; |
1174 |
my $query = qq{ |
1175 |
UPDATE subscriptionhistory |
1176 |
SET missinglist = ? |
1177 |
WHERE subscriptionid = ? |
1178 |
}; |
1179 |
my $sth = $dbh->prepare($query); |
1180 |
$sth->execute($missinglist, $subscriptionid); |
1181 |
} |
1182 |
|
1183 |
# Update recievedlist field, used by ModSerialStatus |
1184 |
sub _update_receivedlist { |
1185 |
my $subscriptionid = shift; |
1186 |
|
1187 |
my $dbh = C4::Context->dbh; |
1188 |
my @receivedserials = GetSerials2($subscriptionid, "2"); |
1189 |
my $receivedlist; |
1190 |
foreach (@receivedserials) { |
1191 |
$receivedlist .= $_->{'serialseq'} . "; "; |
1192 |
} |
1193 |
$receivedlist =~ s/; $//; |
1194 |
my $query = qq{ |
1195 |
UPDATE subscriptionhistory |
1196 |
SET recievedlist = ? |
1197 |
WHERE subscriptionid = ? |
1198 |
}; |
1199 |
my $sth = $dbh->prepare($query); |
1200 |
$sth->execute($receivedlist, $subscriptionid); |
1201 |
} |
1202 |
|
1203 |
=head2 ModSerialStatus |
1159 |
=head2 ModSerialStatus |
1204 |
|
1160 |
|
1205 |
ModSerialStatus($serialid,$serialseq, $planneddate,$publisheddate,$status,$notes) |
1161 |
ModSerialStatus($serialid,$serialseq, $planneddate,$publisheddate,$status,$notes) |
Lines 1240-1256
sub ModSerialStatus {
Link Here
|
1240 |
$sth->execute($subscriptionid); |
1196 |
$sth->execute($subscriptionid); |
1241 |
my $val = $sth->fetchrow_hashref; |
1197 |
my $val = $sth->fetchrow_hashref; |
1242 |
unless ( $val->{manualhistory} ) { |
1198 |
unless ( $val->{manualhistory} ) { |
|
|
1199 |
$query = "SELECT missinglist,recievedlist FROM subscriptionhistory WHERE subscriptionid=?"; |
1200 |
$sth = $dbh->prepare($query); |
1201 |
$sth->execute($subscriptionid); |
1202 |
my ( $missinglist, $recievedlist ) = $sth->fetchrow; |
1203 |
|
1243 |
if ( $status == 2 || ($oldstatus == 2 && $status != 2) ) { |
1204 |
if ( $status == 2 || ($oldstatus == 2 && $status != 2) ) { |
1244 |
_update_receivedlist($subscriptionid); |
1205 |
$recievedlist .= "; $serialseq" |
|
|
1206 |
if ($recievedlist !~ /(^|;)\s*$serialseq(?=;|$)/); |
1245 |
} |
1207 |
} |
1246 |
my @missing_statuses = qw( 4 41 42 43 44 ); |
1208 |
|
1247 |
if ( ( grep { $_ == $status } ( @missing_statuses, 5 ) ) |
1209 |
# in case serial has been previously marked as missing |
1248 |
|| ( |
1210 |
if (grep /$status/, (1,2,3,7)) { |
1249 |
( grep { $_ == $oldstatus } @missing_statuses ) |
1211 |
$missinglist=~ s/(^|;)\s*$serialseq(?=;|$)//g; |
1250 |
&& ! ( grep { $_ == $status } @missing_statuses ) ) |
|
|
1251 |
|| ($oldstatus == 5 && $status != 5)) { |
1252 |
_update_missinglist($subscriptionid); |
1253 |
} |
1212 |
} |
|
|
1213 |
|
1214 |
my @missing_statuses = qw( 4 41 42 43 44 ); |
1215 |
$missinglist .= "; $serialseq" |
1216 |
if ( ( grep { $_ == $status } @missing_statuses ) && ( $missinglist !~/(^|;)\s*$serialseq(?=;|$)/ ) ); |
1217 |
$missinglist .= "; not issued $serialseq" |
1218 |
if ( $status == 5 && $missinglist !~ /(^|;)\s*$serialseq(?=;|$)/ ); |
1219 |
|
1220 |
$query = "UPDATE subscriptionhistory SET recievedlist=?, missinglist=? WHERE subscriptionid=?"; |
1221 |
$sth = $dbh->prepare($query); |
1222 |
$recievedlist =~ s/^; //; |
1223 |
$missinglist =~ s/^; //; |
1224 |
$sth->execute( $recievedlist, $missinglist, $subscriptionid ); |
1254 |
} |
1225 |
} |
1255 |
} |
1226 |
} |
1256 |
|
1227 |
|
1257 |
- |
|
|