This still backports updatedatabase from head, update kohastructure, and fix smart-rules.tmpl/.pl.
$entry->{unlimited_maxissueqty} = 1 unless defined($entry->{maxissueqty});
}
+my $sth_branch_item;
+if ($branch eq "*") {
+ $sth_branch_item = $dbh->prepare("
+ SELECT default_branch_item_rules.*, itemtypes.description AS humanitemtype
+ FROM default_branch_item_rules
+ JOIN itemtypes USING (itemtype)
+ ");
+ $sth_branch_item->execute();
+} else {
+ $sth_branch_item = $dbh->prepare("
+ SELECT branch_item_rules.*, itemtypes.description AS humanitemtype
+ FROM branch_item_rules
+ JOIN itemtypes USING (itemtype)
+ WHERE branch_item_rules.branchcode = ?
+ ");
+ $sth_branch_item->execute($branch);
+}
+
+my @branch_item_rules = ();
+while (my $row = $sth_branch_item->fetchrow_hashref) {
+ push @branch_item_rules, $row;
+}
+my @sorted_branch_item_rules = sort { $a->{'humanitemtype'} cmp $b->{'humanitemtype'} } @branch_item_rules;
+
+# note undef holdallowed so that template can deal with them
+foreach my $entry (@sorted_branch_item_rules) {
+ $entry->{holdallowed_any} = 1 if($entry->{holdallowed} == 2);
+ $entry->{holdallowed_same} = 1 if($entry->{holdallowed} == 1);
+}
+
$template->param(show_branch_cat_rule_form => 1);
+$template->param(branch_item_rule_loop => \@sorted_branch_item_rules);
$template->param(branch_cat_rule_loop => \@sorted_branch_cat_rules);
$template->param(categoryloop => \@category_loop,
CREATE TABLE `default_branch_circ_rules` (
`branchcode` VARCHAR(10) NOT NULL,
`maxissueqty` int(4) default NULL,
+ `holdallowed` int(1) default NULL,
PRIMARY KEY (`branchcode`),
CONSTRAINT `default_branch_circ_rules_ibfk_1` FOREIGN KEY (`branchcode`) REFERENCES `branches` (`branchcode`)
ON DELETE CASCADE ON UPDATE CASCADE
ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+--
+-- Table structure for table `branch_item_rules`
+--
+
+CREATE TABLE `branch_item_rules` (
+ `branchcode` varchar(10) NOT NULL,
+ `itemtype` varchar(10) NOT NULL,
+ `holdallowed` tinyint(1) default NULL,
+ PRIMARY KEY (`itemtype`,`branchcode`),
+ KEY `branch_item_rules_ibfk_2` (`branchcode`),
+ CONSTRAINT `branch_item_rules_ibfk_1` FOREIGN KEY (`itemtype`) REFERENCES `itemtypes` (`itemtype`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `branch_item_rules_ibfk_2` FOREIGN KEY (`branchcode`) REFERENCES `branches` (`branchcode`) ON DELETE CASCADE ON UPDATE CASCADE
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8
+
--
-- Table structure for table `default_circ_rules`
--
CREATE TABLE `default_circ_rules` (
`singleton` enum('singleton') NOT NULL default 'singleton',
`maxissueqty` int(4) default NULL,
+ `holdallowed` int(1) default NULL,
PRIMARY KEY (`singleton`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
SetVersion ($DBversion);
}
-$DBversion = "3.00.04.021";
+$DBversion = "3.00.05.001";
if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
$dbh->do(<<DEFAULTBRANCHRULES);
CREATE TABLE `default_branch_item_rules` (
DEFAULTBRANCHRULES
}
+$DBversion = "3.00.05.001";
+#$DBversion = "3.01.00.012";
+if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
+ $dbh->do("INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('AllowHoldPolicyOverride', '0', 'Allow staff to override hold policies when placing holds',NULL,'YesNo')");
+ $dbh->do("
+ CREATE TABLE `branch_item_rules` (
+ `branchcode` varchar(10) NOT NULL,
+ `itemtype` varchar(10) NOT NULL,
+ `holdallowed` tinyint(1) default NULL,
+ PRIMARY KEY (`itemtype`,`branchcode`),
+ KEY `branch_item_rules_ibfk_2` (`branchcode`),
+ CONSTRAINT `branch_item_rules_ibfk_1` FOREIGN KEY (`itemtype`) REFERENCES `itemtypes` (`itemtype`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `branch_item_rules_ibfk_2` FOREIGN KEY (`branchcode`) REFERENCES `branches` (`branchcode`) ON DELETE CASCADE ON UPDATE CASCADE
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8
+ ");
+ $dbh->do("
+ ALTER TABLE default_branch_circ_rules
+ ADD COLUMN holdallowed tinyint(1) NULL
+ ");
+ $dbh->do("
+ ALTER TABLE default_circ_rules
+ ADD COLUMN holdallowed tinyint(1) NULL
+ ");
+ print "Upgrade to $DBversion done (Add tables and system preferences for holds policies)\n";
+ SetVersion ($DBversion);
+}
=item DropAllForeignKeys($table)
<tr>
<td>
<select name="itemtype">
+ <option value="*">All item types</option>
<!-- TMPL_LOOP NAME="itemtypeloop" -->
<option value="<!-- TMPL_VAR NAME="itemtype" -->"><!-- TMPL_VAR NAME="description" --></option>
<!-- /TMPL_LOOP -->