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