From 6818c7bac0185165a9e3936955f7d223c996c0af Mon Sep 17 00:00:00 2001 From: Nick Clemens Date: Thu, 28 Apr 2022 15:53:56 +0000 Subject: [PATCH] Bug 24857: DO NOT PUSH: Schema changes --- Koha/Schema/Result/Biblio.pm | 19 +++- Koha/Schema/Result/Item.pm | 19 +++- Koha/Schema/Result/ItemGroup.pm | 156 ++++++++++++++++++++++++++++ Koha/Schema/Result/ItemGroupItem.pm | 137 ++++++++++++++++++++++++ 4 files changed, 327 insertions(+), 4 deletions(-) create mode 100644 Koha/Schema/Result/ItemGroup.pm create mode 100644 Koha/Schema/Result/ItemGroupItem.pm diff --git a/Koha/Schema/Result/Biblio.pm b/Koha/Schema/Result/Biblio.pm index 0efad30daa..d2c458a70b 100644 --- a/Koha/Schema/Result/Biblio.pm +++ b/Koha/Schema/Result/Biblio.pm @@ -315,6 +315,21 @@ __PACKAGE__->has_many( { cascade_copy => 0, cascade_delete => 0 }, ); +=head2 item_groups + +Type: has_many + +Related object: L + +=cut + +__PACKAGE__->has_many( + "item_groups", + "Koha::Schema::Result::ItemGroup", + { "foreign.biblio_id" => "self.biblionumber" }, + { cascade_copy => 0, cascade_delete => 0 }, +); + =head2 items Type: has_many @@ -541,8 +556,8 @@ __PACKAGE__->has_many( ); -# Created by DBIx::Class::Schema::Loader v0.07046 @ 2021-10-14 15:07:03 -# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:6YO2t5VoWcG/tM+8uOP/wg +# Created by DBIx::Class::Schema::Loader v0.07049 @ 2022-04-28 15:52:48 +# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:FOp18MyYe+TEYa+CrsAzrA __PACKAGE__->has_many( "biblioitem", diff --git a/Koha/Schema/Result/Item.pm b/Koha/Schema/Result/Item.pm index 8be4a775f9..544cabf481 100644 --- a/Koha/Schema/Result/Item.pm +++ b/Koha/Schema/Result/Item.pm @@ -729,6 +729,21 @@ __PACKAGE__->might_have( { cascade_copy => 0, cascade_delete => 0 }, ); +=head2 item_group_item + +Type: might_have + +Related object: L + +=cut + +__PACKAGE__->might_have( + "item_group_item", + "Koha::Schema::Result::ItemGroupItem", + { "foreign.item_id" => "self.itemnumber" }, + { cascade_copy => 0, cascade_delete => 0 }, +); + =head2 items_last_borrower Type: might_have @@ -880,8 +895,8 @@ __PACKAGE__->has_many( ); -# Created by DBIx::Class::Schema::Loader v0.07046 @ 2021-10-14 15:07:03 -# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:yRbholcHil9qRF5t+83jdA +# Created by DBIx::Class::Schema::Loader v0.07049 @ 2022-04-28 15:52:48 +# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:+ov7TqIioPjb5o1x4UXUvQ __PACKAGE__->belongs_to( biblioitem => "Koha::Schema::Result::Biblioitem", "biblioitemnumber" ); diff --git a/Koha/Schema/Result/ItemGroup.pm b/Koha/Schema/Result/ItemGroup.pm new file mode 100644 index 0000000000..2121d085bf --- /dev/null +++ b/Koha/Schema/Result/ItemGroup.pm @@ -0,0 +1,156 @@ +use utf8; +package Koha::Schema::Result::ItemGroup; + +# Created by DBIx::Class::Schema::Loader +# DO NOT MODIFY THE FIRST PART OF THIS FILE + +=head1 NAME + +Koha::Schema::Result::ItemGroup + +=cut + +use strict; +use warnings; + +use base 'DBIx::Class::Core'; + +=head1 TABLE: C + +=cut + +__PACKAGE__->table("item_groups"); + +=head1 ACCESSORS + +=head2 item_group_id + + data_type: 'integer' + is_auto_increment: 1 + is_nullable: 0 + +id for the items group + +=head2 biblio_id + + data_type: 'integer' + default_value: 0 + is_foreign_key: 1 + is_nullable: 0 + +id for the bibliographic record the group belongs to + +=head2 display_order + + data_type: 'integer' + default_value: 0 + is_nullable: 0 + +The 'sort order' for item_groups + +=head2 description + + data_type: 'mediumtext' + is_nullable: 1 + +A group description + +=head2 created_on + + data_type: 'timestamp' + datetime_undef_if_invalid: 1 + is_nullable: 1 + +Time and date the group was created + +=head2 updated_on + + data_type: 'timestamp' + datetime_undef_if_invalid: 1 + default_value: current_timestamp + is_nullable: 0 + +Time and date of the latest change on the group + +=cut + +__PACKAGE__->add_columns( + "item_group_id", + { data_type => "integer", is_auto_increment => 1, is_nullable => 0 }, + "biblio_id", + { + data_type => "integer", + default_value => 0, + is_foreign_key => 1, + is_nullable => 0, + }, + "display_order", + { data_type => "integer", default_value => 0, is_nullable => 0 }, + "description", + { data_type => "mediumtext", is_nullable => 1 }, + "created_on", + { + data_type => "timestamp", + datetime_undef_if_invalid => 1, + is_nullable => 1, + }, + "updated_on", + { + data_type => "timestamp", + datetime_undef_if_invalid => 1, + default_value => \"current_timestamp", + is_nullable => 0, + }, +); + +=head1 PRIMARY KEY + +=over 4 + +=item * L + +=back + +=cut + +__PACKAGE__->set_primary_key("item_group_id"); + +=head1 RELATIONS + +=head2 biblio + +Type: belongs_to + +Related object: L + +=cut + +__PACKAGE__->belongs_to( + "biblio", + "Koha::Schema::Result::Biblio", + { biblionumber => "biblio_id" }, + { is_deferrable => 1, on_delete => "CASCADE", on_update => "CASCADE" }, +); + +=head2 item_group_items + +Type: has_many + +Related object: L + +=cut + +__PACKAGE__->has_many( + "item_group_items", + "Koha::Schema::Result::ItemGroupItem", + { "foreign.item_group_id" => "self.item_group_id" }, + { cascade_copy => 0, cascade_delete => 0 }, +); + + +# Created by DBIx::Class::Schema::Loader v0.07049 @ 2022-04-28 15:52:48 +# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:xxuumXVFEbkVB0sFFlO5og + + +# You can replace this text with custom code or comments, and it will be preserved on regeneration +1; diff --git a/Koha/Schema/Result/ItemGroupItem.pm b/Koha/Schema/Result/ItemGroupItem.pm new file mode 100644 index 0000000000..57a4f2776e --- /dev/null +++ b/Koha/Schema/Result/ItemGroupItem.pm @@ -0,0 +1,137 @@ +use utf8; +package Koha::Schema::Result::ItemGroupItem; + +# Created by DBIx::Class::Schema::Loader +# DO NOT MODIFY THE FIRST PART OF THIS FILE + +=head1 NAME + +Koha::Schema::Result::ItemGroupItem + +=cut + +use strict; +use warnings; + +use base 'DBIx::Class::Core'; + +=head1 TABLE: C + +=cut + +__PACKAGE__->table("item_group_items"); + +=head1 ACCESSORS + +=head2 item_group_items_id + + data_type: 'integer' + is_auto_increment: 1 + is_nullable: 0 + +id for the group/item link + +=head2 item_group_id + + data_type: 'integer' + default_value: 0 + is_foreign_key: 1 + is_nullable: 0 + +foreign key making this table a 1 to 1 join from items to item groups + +=head2 item_id + + data_type: 'integer' + default_value: 0 + is_foreign_key: 1 + is_nullable: 0 + +foreign key linking this table to the items table + +=cut + +__PACKAGE__->add_columns( + "item_group_items_id", + { data_type => "integer", is_auto_increment => 1, is_nullable => 0 }, + "item_group_id", + { + data_type => "integer", + default_value => 0, + is_foreign_key => 1, + is_nullable => 0, + }, + "item_id", + { + data_type => "integer", + default_value => 0, + is_foreign_key => 1, + is_nullable => 0, + }, +); + +=head1 PRIMARY KEY + +=over 4 + +=item * L + +=back + +=cut + +__PACKAGE__->set_primary_key("item_group_items_id"); + +=head1 UNIQUE CONSTRAINTS + +=head2 C + +=over 4 + +=item * L + +=back + +=cut + +__PACKAGE__->add_unique_constraint("item_id", ["item_id"]); + +=head1 RELATIONS + +=head2 item + +Type: belongs_to + +Related object: L + +=cut + +__PACKAGE__->belongs_to( + "item", + "Koha::Schema::Result::Item", + { itemnumber => "item_id" }, + { is_deferrable => 1, on_delete => "CASCADE", on_update => "CASCADE" }, +); + +=head2 item_group + +Type: belongs_to + +Related object: L + +=cut + +__PACKAGE__->belongs_to( + "item_group", + "Koha::Schema::Result::ItemGroup", + { item_group_id => "item_group_id" }, + { is_deferrable => 1, on_delete => "CASCADE", on_update => "CASCADE" }, +); + + +# Created by DBIx::Class::Schema::Loader v0.07049 @ 2022-04-28 15:52:48 +# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:LxAamW450isCEfygq7dYDg + + +# You can replace this text with custom code or comments, and it will be preserved on regeneration +1; -- 2.30.2