From 7df7193a50666efe4e314a4ef1f366c912560f16 Mon Sep 17 00:00:00 2001 From: hdl Date: Tue, 8 Aug 2006 10:01:41 +0000 Subject: [PATCH] BugFixing 1124 1125. 1125 is a bug that seems to me a design error. To manage all the serials, it may be better to display the list as in full-serial-issue.tmpl and allow to change through a click on the issue. Receiving the next one or a manual one would be in a different part of the screen, short history (missing list and receivedlist) too. --- C4/Bull.pm | 10 +++++----- bull/statecollection.pl | 3 ++- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/C4/Bull.pm b/C4/Bull.pm index 6e8d05368d..49f2e61978 100755 --- a/C4/Bull.pm +++ b/C4/Bull.pm @@ -206,7 +206,7 @@ sub get_full_subscription_list_from_biblionumber { my $dbh = C4::Context->dbh; my $sth = $dbh->prepare(' SELECT serial.serialseq,serial.planneddate, serial.publisheddate, serial.status, serial.notes, - year(serial.publisheddate) as year, + year(IF(serial.publisheddate="00-00-0000",serial.planneddate,serial.publisheddate)) as year, aqbudget.bookfundid,aqbooksellers.name as aqbooksellername,biblio.title as bibliotitle FROM serial LEFT JOIN subscription ON @@ -215,7 +215,7 @@ sub get_full_subscription_list_from_biblionumber { LEFT JOIN aqbooksellers on subscription.aqbooksellerid=aqbooksellers.id LEFT JOIN biblio on biblio.biblionumber=subscription.biblionumber WHERE subscription.biblionumber = ? - ORDER BY year,serial.publisheddate,serial.subscriptionid,serial.planneddate'); + ORDER BY year,IF(serial.publisheddate="00-00-0000",serial.planneddate,serial.publisheddate),serial.subscriptionid'); $sth->execute($biblionumber); my @res; my %tmpresults; @@ -440,11 +440,11 @@ sub serialchangestatus { $sth = $dbh->prepare("SELECT missinglist,recievedlist from subscriptionhistory where subscriptionid=?"); $sth->execute($subscriptionid); my ($missinglist,$recievedlist) = $sth->fetchrow; - if ($status eq 2) { + if ($status eq 2 && ($serialseq!~/\(/ && $recievedlist!~/$serialseq/)) { $recievedlist .= ",$serialseq"; } - $missinglist .= ",$serialseq" if ($status eq 4) ; - $missinglist .= ",not issued $serialseq" if ($status eq 5); + $missinglist .= ",$serialseq" if ($status eq 4 && ($serialseq!~/\(/ && $missinglist!~/$serialseq/)) ; + $missinglist .= ",not issued $serialseq" if ($status eq 5 && ($serialseq!~/\(/ && $missinglist!~/$serialseq/)); $sth=$dbh->prepare("update subscriptionhistory set recievedlist=?, missinglist=? where subscriptionid=?"); $sth->execute($recievedlist,$missinglist,$subscriptionid); } diff --git a/bull/statecollection.pl b/bull/statecollection.pl index a2eaa0af17..4da729721d 100755 --- a/bull/statecollection.pl +++ b/bull/statecollection.pl @@ -49,7 +49,8 @@ if ($op eq 'serialchangestatus') { my ($oldstatus) = $sth->fetchrow; if ($serialids[$i]) { - serialchangestatus($serialids[$i],$serialseqs[$i],format_date_in_iso($publisheddates[$i]),($planneddates[$i]?format_date_in_iso($planneddates[$i]):format_date_in_iso(localtime(time()))),$status[$i],$notes[$i]) unless ($hassubscriptionexpired && $oldstatus == 1); + my $planneddate = ($planneddates[$i]?format_date_in_iso($planneddates[$i]):format_date_in_iso("today")) if ($status[$i]==2); + serialchangestatus($serialids[$i],$serialseqs[$i],format_date_in_iso($publisheddates[$i]),$planneddate,$status[$i],$notes[$i]) unless ($hassubscriptionexpired && $oldstatus == 1); if (($status[$i]==2) && C4::Context->preference("serialsadditems")){ my %info; $info{branch}=$homebranches[$i];