|
Lines 1132-1162
sub ModSerialStatus {
Link Here
|
| 1132 |
$query = "SELECT missinglist,recievedlist FROM subscriptionhistory WHERE subscriptionid=?"; |
1132 |
$query = "SELECT missinglist,recievedlist FROM subscriptionhistory WHERE subscriptionid=?"; |
| 1133 |
$sth = $dbh->prepare($query); |
1133 |
$sth = $dbh->prepare($query); |
| 1134 |
$sth->execute($subscriptionid); |
1134 |
$sth->execute($subscriptionid); |
| 1135 |
my ( $missinglist, $recievedlist ) = $sth->fetchrow; |
1135 |
my ($missinglist, $recievedlist)= _update_missing_and_received_list($sth->fetchrow,$serialseq,$status); |
| 1136 |
|
|
|
| 1137 |
#Arrived: add to received list, remove from missing |
| 1138 |
if($status==2) { |
| 1139 |
$recievedlist .= "; $serialseq" |
| 1140 |
if $recievedlist!~/(^|;)\s*$serialseq(?=;|$)/; |
| 1141 |
$missinglist=~ s/(^|;)\s*$serialseq(?=;|$)//g; |
| 1142 |
} |
| 1143 |
#Expected,late,claimed: remove optionally from received+missing |
| 1144 |
if (grep /$status/, (1,3,7)) { |
| 1145 |
$recievedlist=~ s/(^|;)\s*$serialseq(?=;|$)//g; |
| 1146 |
$missinglist=~ s/(^|;)\s*$serialseq(?=;|$)//g; |
| 1147 |
} |
| 1148 |
#Missing, not available: add to missing, remove from received |
| 1149 |
#No longer putting additional text into missing field |
| 1150 |
if($status==4 || $status==5) { |
| 1151 |
$missinglist .= "; $serialseq" |
| 1152 |
if $missinglist!~/(^|;)\s*$serialseq(?=;|$)/; |
| 1153 |
$recievedlist=~ s/(^|;)\s*$serialseq(?=;|$)//g; |
| 1154 |
} |
| 1155 |
|
| 1156 |
$query = "UPDATE subscriptionhistory SET recievedlist=?, missinglist=? WHERE subscriptionid=?"; |
1136 |
$query = "UPDATE subscriptionhistory SET recievedlist=?, missinglist=? WHERE subscriptionid=?"; |
| 1157 |
$sth = $dbh->prepare($query); |
1137 |
$sth = $dbh->prepare($query); |
| 1158 |
$recievedlist =~ s/^; //; |
|
|
| 1159 |
$missinglist =~ s/^; //; |
| 1160 |
$sth->execute( $recievedlist, $missinglist, $subscriptionid ); |
1138 |
$sth->execute( $recievedlist, $missinglist, $subscriptionid ); |
| 1161 |
} |
1139 |
} |
| 1162 |
} |
1140 |
} |
|
Lines 1191-1196
sub ModSerialStatus {
Link Here
|
| 1191 |
return; |
1169 |
return; |
| 1192 |
} |
1170 |
} |
| 1193 |
|
1171 |
|
|
|
1172 |
sub _update_missing_and_received_list { |
| 1173 |
my ($missinglist, $recievedlist, $serialseq, $status)=@_; |
| 1174 |
|
| 1175 |
#Arrived: add to received list, remove from missing |
| 1176 |
if($status==2) { |
| 1177 |
$recievedlist .= "; $serialseq" |
| 1178 |
if $recievedlist!~/(^|;)\s*$serialseq(?=;|$)/; |
| 1179 |
$missinglist=~ s/(^|;)\s*$serialseq(?=;|$)//g; |
| 1180 |
} |
| 1181 |
#Expected,late,claimed: remove optionally from received+missing |
| 1182 |
if (grep /$status/, (1,3,7)) { |
| 1183 |
$recievedlist=~ s/(^|;)\s*$serialseq(?=;|$)//g; |
| 1184 |
$missinglist=~ s/(^|;)\s*$serialseq(?=;|$)//g; |
| 1185 |
} |
| 1186 |
#Missing, not available: add to missing, remove from received |
| 1187 |
#No longer putting additional text into missing field |
| 1188 |
if($status==4 || $status==5) { |
| 1189 |
$missinglist .= "; $serialseq" |
| 1190 |
if $missinglist!~/(^|;)\s*$serialseq(?=;|$)/; |
| 1191 |
$recievedlist=~ s/(^|;)\s*$serialseq(?=;|$)//g; |
| 1192 |
} |
| 1193 |
$missinglist =~ s/^; //; |
| 1194 |
$recievedlist =~ s/^; //; |
| 1195 |
return ($missinglist, $recievedlist); |
| 1196 |
} |
| 1197 |
|
| 1194 |
=head2 GetNextExpected |
1198 |
=head2 GetNextExpected |
| 1195 |
|
1199 |
|
| 1196 |
$nextexpected = GetNextExpected($subscriptionid) |
1200 |
$nextexpected = GetNextExpected($subscriptionid) |
|
Lines 1505-1529
sub NewIssue {
Link Here
|
| 1505 |
|; |
1509 |
|; |
| 1506 |
$sth = $dbh->prepare($query); |
1510 |
$sth = $dbh->prepare($query); |
| 1507 |
$sth->execute($subscriptionid); |
1511 |
$sth->execute($subscriptionid); |
| 1508 |
my ( $missinglist, $recievedlist ) = $sth->fetchrow; |
1512 |
my ($missinglist, $recievedlist)= _update_missing_and_received_list( |
| 1509 |
|
1513 |
$sth->fetchrow, $serialseq, $status); |
| 1510 |
if ( $status == 2 ) { |
|
|
| 1511 |
### TODO Add a feature that improves recognition and description. |
| 1512 |
### As such count (serialseq) i.e. : N18,2(N19),N20 |
| 1513 |
### Would use substr and index But be careful to previous presence of () |
| 1514 |
$recievedlist .= "; $serialseq" unless (index($recievedlist,$serialseq)>0); |
| 1515 |
} |
| 1516 |
if ( $status == 4 ) { |
| 1517 |
$missinglist .= "; $serialseq" unless (index($missinglist,$serialseq)>0); |
| 1518 |
} |
| 1519 |
$query = qq| |
1514 |
$query = qq| |
| 1520 |
UPDATE subscriptionhistory |
1515 |
UPDATE subscriptionhistory |
| 1521 |
SET recievedlist=?, missinglist=? |
1516 |
SET recievedlist=?, missinglist=? |
| 1522 |
WHERE subscriptionid=? |
1517 |
WHERE subscriptionid=? |
| 1523 |
|; |
1518 |
|; |
| 1524 |
$sth = $dbh->prepare($query); |
1519 |
$sth = $dbh->prepare($query); |
| 1525 |
$recievedlist =~ s/^; //; |
|
|
| 1526 |
$missinglist =~ s/^; //; |
| 1527 |
$sth->execute( $recievedlist, $missinglist, $subscriptionid ); |
1520 |
$sth->execute( $recievedlist, $missinglist, $subscriptionid ); |
| 1528 |
return $serialid; |
1521 |
return $serialid; |
| 1529 |
} |
1522 |
} |
| 1530 |
- |
|
|