some changes in serial management :
authortipaul <tipaul>
Mon, 20 Sep 2004 10:16:05 +0000 (10:16 +0000)
committertipaul <tipaul>
Mon, 20 Sep 2004 10:16:05 +0000 (10:16 +0000)
* in subscription Add, the issue number & date is used to calculate the 1st issue (previously, a "next issue number & date" was applied, meaning you had to enter the number & date of a previous issue)
* the "inner loop" used for serials number ({XYZ}) is now shown & can be modified. The innerloop is used for numbering formulas saying "change the number once every 4 times".

C4/Bull.pm
bull/subscription-add.pl
bull/subscription-detail.pl
koha-tmpl/intranet-tmpl/default/en/bull/subscription-add.tmpl
koha-tmpl/intranet-tmpl/default/en/bull/subscription-detail.tmpl

index b49f167..e831d8f 100755 (executable)
@@ -82,17 +82,21 @@ sub newsubscription {
        $sth = $dbh->prepare("select * from subscription where subscriptionid = ? ");
        $sth->execute($subscriptionid);
        my $val = $sth->fetchrow_hashref;
+
+       # calculate issue number
+       my $serialseq = Get_Seq($val);
+       $sth = $dbh->prepare("insert into serial (serialseq,subscriptionid,biblionumber,status, planneddate) values (?,?,?,?,?)");
+       $sth->execute($serialseq, $subscriptionid, $val->{'biblionumber'}, 1, format_date_in_iso($startdate));
+
        # next issue number
-       my ($newserialseq,$newlastvalue1,$newlastvalue2,$newlastvalue3,$newinnerloop1,$newinnerloop2,$newinnerloop3) = Get_Next_Seq($val);
+       #my ($newserialseq,$newlastvalue1,$newlastvalue2,$newlastvalue3,$newinnerloop1,$newinnerloop2,$newinnerloop3) = Get_Next_Seq($val);
        # next date (calculated from actual date & frequency parameters)
-       my $nextplanneddate = Get_Next_Date($startdate,$val);
-       $sth = $dbh->prepare("insert into serial (serialseq,subscriptionid,biblionumber,status, planneddate) values (?,?,?,?,?)");
-       $sth->execute($newserialseq, $subscriptionid, $val->{'biblionumber'}, 1, $nextplanneddate);
-       $sth = $dbh->prepare("update subscription set lastvalue1=?, lastvalue2=?,lastvalue3=?,
-                                                                                                       innerloop1=?,innerloop2=?,innerloop3=?
-                                                                                                       where subscriptionid = ?");
-       $sth->execute($newlastvalue1,$newlastvalue2,$newlastvalue3,$newinnerloop1,$newinnerloop2,$newinnerloop3,$subscriptionid);
-       $sth->finish;  
+       #my $nextplanneddate = Get_Next_Date($startdate,$val);
+#      $sth = $dbh->prepare("update subscription set lastvalue1=?, lastvalue2=?,lastvalue3=?,
+#                                                                                                      innerloop1=?,innerloop2=?,innerloop3=?
+#                                                                                                      where subscriptionid = ?");
+#      $sth->execute($newlastvalue1,$newlastvalue2,$newlastvalue3,$newinnerloop1,$newinnerloop2,$newinnerloop3,$subscriptionid);
+#      $sth->finish;  
        return $subscriptionid;
 }
 sub getsubscription {
@@ -122,22 +126,22 @@ sub getsubscriptionfrombiblionumber {
 sub modsubscription {
        my ($auser,$aqbooksellerid,$cost,$aqbudgetid,$startdate,
                                        $periodicity,$dow,$numberlength,$weeklength,$monthlength,
-                                       $add1,$every1,$whenmorethan1,$setto1,$lastvalue1,
-                                       $add2,$every2,$whenmorethan2,$setto2,$lastvalue2,
-                                       $add3,$every3,$whenmorethan3,$setto3,$lastvalue3,
+                                       $add1,$every1,$whenmorethan1,$setto1,$lastvalue1,$innerloop1,
+                                       $add2,$every2,$whenmorethan2,$setto2,$lastvalue2,$innerloop2,
+                                       $add3,$every3,$whenmorethan3,$setto3,$lastvalue3,$innerloop3,
                                        $numberingmethod, $status, $biblionumber, $notes, $subscriptionid)= @_;
        my $dbh = C4::Context->dbh;
        my $sth=$dbh->prepare("update subscription set librarian=?, aqbooksellerid=?,cost=?,aqbudgetid=?,startdate=?,
                                                 periodicity=?,dow=?,numberlength=?,weeklength=?,monthlength=?,
-                                               add1=?,every1=?,whenmorethan1=?,setto1=?,lastvalue1=?,
-                                               add2=?,every2=?,whenmorethan2=?,setto2=?,lastvalue2=?,
-                                               add3=?,every3=?,whenmorethan3=?,setto3=?,lastvalue3=?,
+                                               add1=?,every1=?,whenmorethan1=?,setto1=?,lastvalue1=?,innerloop1=?,
+                                               add2=?,every2=?,whenmorethan2=?,setto2=?,lastvalue2=?,innerloop2=?,
+                                               add3=?,every3=?,whenmorethan3=?,setto3=?,lastvalue3=?,innerloop3=?,
                                                numberingmethod=?, status=?, biblionumber=?, notes=? where subscriptionid = ?");
        $sth->execute($auser,$aqbooksellerid,$cost,$aqbudgetid,$startdate,
                                        $periodicity,$dow,$numberlength,$weeklength,$monthlength,
-                                       $add1,$every1,$whenmorethan1,$setto1,$lastvalue1,
-                                       $add2,$every2,$whenmorethan2,$setto2,$lastvalue2,
-                                       $add3,$every3,$whenmorethan3,$setto3,$lastvalue3,
+                                       $add1,$every1,$whenmorethan1,$setto1,$lastvalue1,$innerloop1,
+                                       $add2,$every2,$whenmorethan2,$setto2,$lastvalue2,$innerloop2,
+                                       $add3,$every3,$whenmorethan3,$setto3,$lastvalue3,$innerloop3,
                                        $numberingmethod, $status, $biblionumber, $notes, $subscriptionid);
        $sth->finish;
 
@@ -148,7 +152,7 @@ sub getsubscriptions {
        my $dbh = C4::Context->dbh;
        my $sth;
        $sth = $dbh->prepare("select subscription.subscriptionid,biblio.title,biblioitems.issn from subscription,biblio,biblioitems where  biblio.biblionumber = biblioitems.biblionumber and biblio.biblionumber=subscription.biblionumber and (biblio.title like ? or biblioitems.issn = ? )");
-       $sth->execute($title,$ISSN);
+       $sth->execute("%$title%",$ISSN);
        my @results;
        while (my $line = $sth->fetchrow_hashref) {
                push @results, $line;
@@ -257,6 +261,18 @@ sub Get_Next_Date(@) {
     return format_date_in_iso($resultdate);
 }
 
+sub Get_Seq {
+       my ($val) =@_;
+       my $calculated = $val->{numberingmethod};
+       my $x=$val->{'lastvalue1'};
+       $calculated =~ s/\{X\}/$x/g;
+       my $y=$val->{'lastvalue2'};
+       $calculated =~ s/\{Y\}/$y/g;
+       my $z=$val->{'lastvalue3'};
+       $calculated =~ s/\{Z\}/$z/g;
+       return $calculated;
+}
+
 sub Get_Next_Seq {
        my ($val) =@_;
        my ($calculated,$newlastvalue1,$newlastvalue2,$newlastvalue3,$newinnerloop1,$newinnerloop2,$newinnerloop3);
index c585bb0..079da3b 100755 (executable)
@@ -19,9 +19,9 @@ my $op = $query->param('op');
 my $dbh = C4::Context->dbh;
 my ($subscriptionid,$auser,$librarian,$cost,$aqbooksellerid, $aqbooksellername,$aqbudgetid, $bookfundid, $startdate, $periodicity,
        $dow, $numberlength, $weeklength, $monthlength,
-       $add1,$every1,$whenmorethan1,$setto1,$lastvalue1,
-       $add2,$every2,$whenmorethan2,$setto2,$lastvalue2,
-       $add3,$every3,$whenmorethan3,$setto3,$lastvalue3,
+       $add1,$every1,$whenmorethan1,$setto1,$lastvalue1,$innerloop1,
+       $add2,$every2,$whenmorethan2,$setto2,$lastvalue2,$innerloop2,
+       $add3,$every3,$whenmorethan3,$setto3,$lastvalue3,$innerloop3,
        $numberingmethod, $status, $biblionumber, 
        $bibliotitle, $notes);
 
@@ -57,16 +57,19 @@ if ($op eq 'mod') {
        $whenmorethan1 = $subs->{'whenmorethan1'};
        $setto1 = $subs->{'setto1'};
        $lastvalue1 = $subs->{'lastvalue1'};
+       $innerloop1 = $subs->{'innerloop1'};
        $add2 = $subs->{'add2'};
        $every2 = $subs->{'every2'};
        $whenmorethan2 = $subs->{'whenmorethan2'};
        $setto2 = $subs->{'setto2'};
        $lastvalue2 = $subs->{'lastvalue2'};
+       $innerloop2 = $subs->{'innerloop2'};
        $add3 = $subs->{'add3'};
        $every3 = $subs->{'every3'};
        $whenmorethan3 = $subs->{'whenmorethan3'};
        $setto3 = $subs->{'setto3'};
        $lastvalue3 = $subs->{'lastvalue3'};
+       $innerloop3 = $subs->{'innerloop3'};
        $numberingmethod = $subs->{'numberingmethod'};
        $status = $subs->{status};
        $biblionumber = $subs->{'biblionumber'};
@@ -92,16 +95,19 @@ if ($op eq 'mod') {
                whenmorethan1 => $whenmorethan1,
                setto1 => $setto1,
                lastvalue1 => $lastvalue1,
+               innerloop1 => $innerloop1,
                add2 => $add2,
                every2 => $every2,
                whenmorethan2 => $whenmorethan2,
                setto2 => $setto2,
                lastvalue2 => $lastvalue2,
+               innerloop2 => $innerloop2,
                add3 => $add3,
                every3 => $every3,
                whenmorethan3 => $whenmorethan3,
                setto3 => $setto3,
                lastvalue3 => $lastvalue3,
+               innerloop3 => $innerloop3,
                numberingmethod => $numberingmethod,
                status => $status,
                biblionumber => $biblionumber,
index b57b6b4..9732f72 100755 (executable)
@@ -19,9 +19,9 @@ my $sth;
 my ($template, $loggedinuser, $cookie, $subs);
 my ($subscriptionid,$auser,$librarian,$cost,$aqbooksellerid, $aqbooksellername,$aqbudgetid, $bookfundid, $startdate, $periodicity,
        $dow, $numberlength, $weeklength, $monthlength,
-       $add1,$every1,$whenmorethan1,$setto1,$lastvalue1,
-       $add2,$every2,$whenmorethan2,$setto2,$lastvalue2,
-       $add3,$every3,$whenmorethan3,$setto3,$lastvalue3,
+       $add1,$every1,$whenmorethan1,$setto1,$lastvalue1,$innerloop1,
+       $add2,$every2,$whenmorethan2,$setto2,$lastvalue2,$innerloop2,
+       $add3,$every3,$whenmorethan3,$setto3,$lastvalue3,$innerloop3,
        $numberingmethod, $status, $biblionumber, $bibliotitle, $notes);
 
 $subscriptionid = $query->param('subscriptionid');
@@ -44,25 +44,28 @@ if ($op eq 'modsubscription') {
        $whenmorethan1 = $query->param('whenmorethan1');
        $setto1 = $query->param('setto1');
        $lastvalue1 = $query->param('lastvalue1');
+       $innerloop1 = $query->param('innerloop1');
        $add2 = $query->param('add2');
        $every2 = $query->param('every2');
        $whenmorethan2 = $query->param('whenmorethan2');
        $setto2 = $query->param('setto2');
        $lastvalue2 = $query->param('lastvalue2');
+       $innerloop2 = $query->param('innerloop2');
        $add3 = $query->param('add3');
        $every3 = $query->param('every3');
        $whenmorethan3 = $query->param('whenmorethan3');
        $setto3 = $query->param('setto3');
        $lastvalue3 = $query->param('lastvalue3');
+       $innerloop3 = $query->param('innerloop3');
        $numberingmethod = $query->param('numberingmethod');
        $status = 1;
        $notes = $query->param('notes');
     
        &modsubscription($auser,$aqbooksellerid,$cost,$aqbudgetid,$startdate,
                                        $periodicity,$dow,$numberlength,$weeklength,$monthlength,
-                                       $add1,$every1,$whenmorethan1,$setto1,$lastvalue1,
-                                       $add2,$every2,$whenmorethan2,$setto2,$lastvalue2,
-                                       $add3,$every3,$whenmorethan3,$setto3,$lastvalue3,
+                                       $add1,$every1,$whenmorethan1,$setto1,$lastvalue1,$innerloop1,
+                                       $add2,$every2,$whenmorethan2,$setto2,$lastvalue2,$innerloop2,
+                                       $add3,$every3,$whenmorethan3,$setto3,$lastvalue3,$innerloop3,
                                        $numberingmethod, $status, $biblionumber, $notes, $subscriptionid);
 }
 
@@ -98,6 +101,7 @@ $template->param(
        add1 => $subs->{add1},
        every1 => $subs->{every1},
        whenmorethan1 => $subs->{whenmorethan1},
+       innerloop1 => $subs->{innerloop1},
        setto1 => $subs->{setto1},
        lastvalue1 => $subs->{lastvalue1},
        add2 => $subs->{add2},
@@ -105,11 +109,13 @@ $template->param(
        whenmorethan2 => $subs->{whenmorethan2},
        setto2 => $subs->{setto2},
        lastvalue2 => $subs->{lastvalue2},
+       innerloop2 => $subs->{innerloop2},
        add3 => $subs->{add3},
        every3 => $subs->{every3},
        whenmorethan3 => $subs->{whenmorethan3},
        setto3 => $subs->{setto3},
        lastvalue3 => $subs->{lastvalue3},
+       innerloop3 => $subs->{innerloop3},
        numberingmethod => $subs->{numberingmethod},
        status => $subs->{status},
        biblionumber => $subs->{biblionumber},
index 7f45326..8613575 100644 (file)
 </div>
 <div id="bloc25">
        <h2 class="bull">Subscription length</h2>
-       <p><label class="label100">Number of num</label><input type="text" name="numberlength" value="<!-- TMPL_VAR name="numberlength" -->"></p>
-       <p><label class="label100">Number of weeks</label><input type="text" name="weeklength" value="<!-- TMPL_VAR name="weeklength" -->"></p>
-       <p><label class="label100">Number of months</label><input type="text" name="monthlength" value="<!-- TMPL_VAR name="monthlength" -->"></p>
-
+       <p>* fill 1 from :</p>
+       <ul>
+               <p><label class="label100">Number of num</label><input type="text" name="numberlength" value="<!-- TMPL_VAR name="numberlength" -->"></p>
+               <p><label class="label100">Number of weeks</label><input type="text" name="weeklength" value="<!-- TMPL_VAR name="weeklength" -->"></p>
+               <p><label class="label100">Number of months</label><input type="text" name="monthlength" value="<!-- TMPL_VAR name="monthlength" -->"></p>
+       </ul>
 </div>
 <div id="bloc25">
        <h2 class="bull">Numbering calculation</h2>
                                <td><input type="text" name="whenmorethan2" value="<!-- TMPL_VAR name="whenmorethan2" -->"></td>
                                <td><input type="text" name="whenmorethan3" value="<!-- TMPL_VAR name="whenmorethan3" -->"></td>
                        </tr>
+                       <!-- TMPL_IF name="mod" -->
+                       <tr>
+                               <td class="bull">The loop is for instance</td>
+                               <td><input type="text" name="innerloop1" value="<!-- TMPL_VAR name="innerloop1" -->"></td>
+                               <td><input type="text" name="innerloop2" value="<!-- TMPL_VAR name="innerloop2" -->"></td>
+                               <td><input type="text" name="innerloop3" value="<!-- TMPL_VAR name="innerloop3" -->"></td>
+                       </tr>
+                       <!-- /TMPL_IF -->
                        <tr>
                                <td class="bull">Set back to</td>
                                <td><input type="text" name="setto1" value="<!-- TMPL_VAR name="setto1" -->"></td>
@@ -215,12 +225,11 @@ function FindAcqui(f)
 
 function Check(f)
 {
-  if (f.dow.value.length != 0
-       && f.startdate.value.length != 0 && f.dow.value.length != 0)
-       {
-//             alert('subscription ok');
-               document.f.submit();
-        }
+       if (f.startdate.value.length != 0 && 
+                       f.numberlength.value+f.weeklength.value+f.monthlength.value > 0)
+               {
+                       document.f.submit();
+               }
 else
 {
        alert('field marked with * are mandatory');
index 783262e..8da6b62 100644 (file)
                        </tr>
                        <tr>
                                <td class="bull">When more than</td>
-                               <td><!-- TMPL_VAR name="whenmorethan1" --></td>
-                               <td><!-- TMPL_VAR name="whenmorethan2" --></td>
-                               <td><!-- TMPL_VAR name="whenmorethan3" --></td>
+                               <td><!-- TMPL_VAR name="whenmorethan1" --> <!-- TMPL_IF name="innerloop1" --><br/>
+                                       <i>(is <!-- TMPL_VAR name="innerloop1" -->)</i><!-- /TMPL_IF --></td>
+                               <td><!-- TMPL_VAR name="whenmorethan2" --> <!-- TMPL_IF name="innerloop2" --><br/>
+                                       <i>(is <!-- TMPL_VAR name="innerloop2" -->)</i><!-- /TMPL_IF --></td>
+                               <td><!-- TMPL_VAR name="whenmorethan3" --> <!-- TMPL_IF name="innerloop3" --><br/>
+                                       <i>(is <!-- TMPL_VAR name="innerloop3" -->)</i><!-- /TMPL_IF --></td>
                        </tr>
                        <tr>
                                <td class="bull">Set back to</td>
                                <td><!-- TMPL_VAR name="lastvalue1" --></td>
                                <td><!-- TMPL_VAR name="lastvalue2" --></td>
                                <td><!-- TMPL_VAR name="lastvalue3" --></td>
-                       </tr>           </table>
+                       </tr>
+               </table>
 </div>
 <div id="bloc25">
        <h2 class="bull">Issues</h2>