@@ -, +, @@ --- C4/Serials.pm | 21 ++++++++++++++------- 1 files changed, 14 insertions(+), 7 deletions(-) --- a/C4/Serials.pm +++ a/C4/Serials.pm @@ -1131,18 +1131,25 @@ sub ModSerialStatus { $sth = $dbh->prepare($query); $sth->execute($subscriptionid); my ( $missinglist, $recievedlist ) = $sth->fetchrow; - if ( $status == 2 ) { + + #Arrived: add to received list, remove from missing + if($status==2) { $recievedlist .= "; $serialseq" if $recievedlist!~/(^|;)\s*$serialseq(?=;|$)/; + $missinglist=~ s/(^|;)\s*$serialseq(?=;|$)//g; } - # in case serial has been previously marked as missing - if (grep /$status/, (1,2,3,7)) { + #Expected,late,claimed: remove optionally from received+missing + if (grep /$status/, (1,3,7)) { + $recievedlist=~ s/(^|;)\s*$serialseq(?=;|$)//g; $missinglist=~ s/(^|;)\s*$serialseq(?=;|$)//g; } - $missinglist .= "; $serialseq" - if $status==4 && $missinglist!~/(^|;)\s*$serialseq(?=;|$)/; - $missinglist .= "; not issued $serialseq" - if $status==5 && $missinglist!~/(^|;)\s*$serialseq(?=;|$)/; + #Missing, not available: add to missing, remove from received + #No longer putting additional text into missing field + if($status==4 || $status==5) { + $missinglist .= "; $serialseq" + if $missinglist!~/(^|;)\s*$serialseq(?=;|$)/; + $recievedlist=~ s/(^|;)\s*$serialseq(?=;|$)//g; + } $query = "UPDATE subscriptionhistory SET recievedlist=?, missinglist=? WHERE subscriptionid=?"; $sth = $dbh->prepare($query); --