|
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 |
- |
|
|