@@ -, +, @@
(stockrotationstages, stockrotationitems): New tables.
userpermissions.
Add Stockrotation menu.
---
.../data/mysql/atomicupdate/stockrot_tables.sql | 62 ++++++++++++++++++++++
installer/data/mysql/kohastructure.sql | 54 +++++++++++++++++++
installer/data/mysql/sysprefs.sql | 4 +-
installer/data/mysql/userflags.sql | 3 +-
installer/data/mysql/userpermissions.sql | 4 +-
.../intranet-tmpl/prog/en/includes/permissions.inc | 1 +
.../en/modules/admin/preferences/circulation.pref | 13 +++++
7 files changed, 138 insertions(+), 3 deletions(-)
create mode 100644 installer/data/mysql/atomicupdate/stockrot_tables.sql
--- a/installer/data/mysql/atomicupdate/stockrot_tables.sql
+++ a/installer/data/mysql/atomicupdate/stockrot_tables.sql
@@ -0,0 +1,62 @@
+-- Stock Rotation Rotas
+
+CREATE TABLE IF NOT EXISTS stockrotationrotas (
+ rota_id int(11) auto_increment, -- Stockrotation rota ID
+ title varchar(100) NOT NULL, -- Title for this rota
+ description text NOT NULL default '', -- Description for this rota
+ cyclical tinyint(1) NOT NULL default 0, -- Should items on this rota keep cycling?
+ active tinyint(1) NOT NULL default 0, -- Is this rota currently active?
+ PRIMARY KEY (`rota_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+
+-- Stock Rotation Stages
+
+CREATE TABLE IF NOT EXISTS stockrotationstages (
+ stage_id int(11) auto_increment, -- Unique stage ID
+ position int(11) NOT NULL, -- The position of this stage within its rota
+ rota_id int(11) NOT NULL, -- The rota this stage belongs to
+ branchcode_id varchar(10) NOT NULL, -- Branch this stage relates to
+ duration int(11) NOT NULL default 4, -- The number of days items shoud occupy this stage
+ PRIMARY KEY (`stage_id`),
+ CONSTRAINT `stockrotationstages_rifk`
+ FOREIGN KEY (`rota_id`)
+ REFERENCES `stockrotationrotas` (`rota_id`)
+ ON UPDATE CASCADE ON DELETE CASCADE,
+ CONSTRAINT `stockrotationstages_bifk`
+ FOREIGN KEY (`branchcode_id`)
+ REFERENCES `branches` (`branchcode`)
+ ON UPDATE CASCADE ON DELETE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+
+-- Stock Rotation Items
+
+CREATE TABLE IF NOT EXISTS stockrotationitems (
+ itemnumber_id int(11) NOT NULL, -- Itemnumber to link to a stage & rota
+ stage_id int(11) NOT NULL, -- stage ID to link the item to
+ indemand tinyint(1) NOT NULL default 0, -- Should this item be skipped for rotation?
+ fresh tinyint(1) NOT NULL default 0, -- Flag showing item is only just added to rota
+ PRIMARY KEY (itemnumber_id),
+ CONSTRAINT `stockrotationitems_iifk`
+ FOREIGN KEY (`itemnumber_id`)
+ REFERENCES `items` (`itemnumber`)
+ ON UPDATE CASCADE ON DELETE CASCADE,
+ CONSTRAINT `stockrotationitems_sifk`
+ FOREIGN KEY (`stage_id`)
+ REFERENCES `stockrotationstages` (`stage_id`)
+ ON UPDATE CASCADE ON DELETE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+
+-- System preferences
+
+INSERT IGNORE INTO systempreferences (variable,value,explanation,options,type) VALUES
+ ('StockRotation','0','If ON, enables the stock rotation module','','YesNo'),
+ ('RotationPreventTransfers','0','If ON, prevent any transfers for items on stock rotation rotas, except for stock rotation transfers','','YesNo');
+
+-- Permissions
+
+INSERT IGNORE INTO userflags (bit, flag, flagdesc, defaulton) VALUES
+ (21, 'stockrotation', 'Manage stockrotation operations', 0);
+
+INSERT IGNORE INTO permissions (module_bit, code, description) VALUES
+ (21, 'can_edit_rotas', 'Create, edit and delete rotas'),
+ (21, 'can_add_items_rotas', 'Add and remove items from rotas');
--- a/installer/data/mysql/kohastructure.sql
+++ a/installer/data/mysql/kohastructure.sql
@@ -4089,6 +4089,60 @@ CREATE TABLE IF NOT EXISTS club_fields (
CONSTRAINT club_fields_ibfk_4 FOREIGN KEY (club_id) REFERENCES clubs (id) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+--
+-- Table structure for table `stockrotationrotas`
+--
+
+CREATE TABLE IF NOT EXISTS stockrotationrotas (
+ rota_id int(11) auto_increment, -- Stockrotation rota ID
+ title varchar(100) NOT NULL, -- Title for this rota
+ description text NOT NULL default '', -- Description for this rota
+ cyclical tinyint(1) NOT NULL default 0, -- Should items on this rota keep cycling?
+ active tinyint(1) NOT NULL default 0, -- Is this rota currently active?
+ PRIMARY KEY (`rota_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+
+--
+-- Table structure for table `stockrotationstages`
+--
+
+CREATE TABLE IF NOT EXISTS stockrotationstages (
+ stage_id int(11) auto_increment, -- Unique stage ID
+ position int(11) NOT NULL, -- The position of this stage within its rota
+ rota_id int(11) NOT NULL, -- The rota this stage belongs to
+ branchcode_id varchar(10) NOT NULL, -- Branch this stage relates to
+ duration int(11) NOT NULL default 4, -- The number of days items shoud occupy this stage
+ PRIMARY KEY (`stage_id`),
+ CONSTRAINT `stockrotationstages_rifk`
+ FOREIGN KEY (`rota_id`)
+ REFERENCES `stockrotationrotas` (`rota_id`)
+ ON UPDATE CASCADE ON DELETE CASCADE,
+ CONSTRAINT `stockrotationstages_bifk`
+ FOREIGN KEY (`branchcode_id`)
+ REFERENCES `branches` (`branchcode`)
+ ON UPDATE CASCADE ON DELETE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+
+--
+-- Table structure for table `stockrotationitems`
+--
+
+CREATE TABLE IF NOT EXISTS stockrotationitems (
+ itemnumber_id int(11) NOT NULL, -- Itemnumber to link to a stage & rota
+ stage_id int(11) NOT NULL, -- stage ID to link the item to
+ indemand tinyint(1) NOT NULL default 0, -- Should this item be skipped for rotation?
+ fresh tinyint(1) NOT NULL default 0, -- Flag showing item is only just added to rota
+ PRIMARY KEY (itemnumber_id),
+ CONSTRAINT `stockrotationitems_iifk`
+ FOREIGN KEY (`itemnumber_id`)
+ REFERENCES `items` (`itemnumber`)
+ ON UPDATE CASCADE ON DELETE CASCADE,
+ CONSTRAINT `stockrotationitems_sifk`
+ FOREIGN KEY (`stage_id`)
+ REFERENCES `stockrotationstages` (`stage_id`)
+ ON UPDATE CASCADE ON DELETE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
--- a/installer/data/mysql/sysprefs.sql
+++ a/installer/data/mysql/sysprefs.sql
@@ -579,5 +579,7 @@ INSERT INTO systempreferences ( `variable`, `value`, `options`, `explanation`, `
('XSLTListsDisplay','default','','Enable XSLT stylesheet control over lists pages display on intranet','Free'),
('XSLTResultsDisplay','default','','Enable XSL stylesheet control over results page display on intranet','Free'),
('z3950AuthorAuthFields','701,702,700',NULL,'Define the MARC biblio fields for Personal Name Authorities to fill biblio.author','free'),
-('z3950NormalizeAuthor','0','','If ON, Personal Name Authorities will replace authors in biblio.author','YesNo')
+('z3950NormalizeAuthor','0','','If ON, Personal Name Authorities will replace authors in biblio.author','YesNo'),
+('StockRotation','0',NULL,'If ON, enables the stock rotation module','YesNo'),
+('RotationPreventTransfers','0',NULL,'If ON, prevent any transfers for items on stock rotation rotas, except for stock rotation transfers','YesNo')
;
--- a/installer/data/mysql/userflags.sql
+++ a/installer/data/mysql/userflags.sql
@@ -18,5 +18,6 @@ INSERT INTO userflags (bit, flag, flagdesc, defaulton) VALUES
(18,'coursereserves','Course reserves',0),
(19, 'plugins', 'Koha plugins', '0'),
(20, 'lists', 'Lists', 0),
-(21, 'clubs', 'Patron clubs', '0')
+(21, 'clubs', 'Patron clubs', '0'),
+(22, 'stockrotation', 'Manage stockrotation operations', 0)
;
--- a/installer/data/mysql/userpermissions.sql
+++ a/installer/data/mysql/userpermissions.sql
@@ -81,5 +81,7 @@ INSERT INTO permissions (module_bit, code, description) VALUES
(20, 'delete_public_lists', 'Delete public lists'),
(21, 'edit_templates', 'Create and update club templates'),
(21, 'edit_clubs', 'Create and update clubs'),
- (21, 'enroll', 'Enroll patrons in clubs')
+ (21, 'enroll', 'Enroll patrons in clubs'),
+ (22, 'can_edit_rotas', 'Create, edit and delete rotas'),
+ (22, 'can_add_items_rotas', 'Add and remove items from rotas')
;
--- a/koha-tmpl/intranet-tmpl/prog/en/includes/permissions.inc
+++ a/koha-tmpl/intranet-tmpl/prog/en/includes/permissions.inc
@@ -20,6 +20,7 @@
[%- CASE 'plugins' -%]Koha plugins
[%- CASE 'lists' -%]Lists
[%- CASE 'clubs' -%]Patron clubs
+ [%- CASE 'stockrotation' -%]Manage stockrotation operations
[%- END -%]
[%- END -%]
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref
+++ a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref
@@ -813,6 +813,19 @@ Circulation:
yes: Enable
no: Disable
- "housebound module"
+ Stockrotation module:
+ -
+ - pref: StockRotation
+ choices:
+ yes: Enable
+ no: Disable
+ - "Enable the stock rotation module"
+ -
+ - pref: RotationPreventTransfers
+ choices:
+ yes: Enable
+ no: Disable
+ - "Prevent branchtransfers on items in stockrotation rotas"
Article Requests:
-
- pref: ArticleRequests
--