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