* 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".
$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 {
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;
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;
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);
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);
$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'};
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,
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');
$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);
}
add1 => $subs->{add1},
every1 => $subs->{every1},
whenmorethan1 => $subs->{whenmorethan1},
+ innerloop1 => $subs->{innerloop1},
setto1 => $subs->{setto1},
lastvalue1 => $subs->{lastvalue1},
add2 => $subs->{add2},
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},
</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>
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');
</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>