2 package Koha::Schema::Result::Item;
4 # Created by DBIx::Class::Schema::Loader
5 # DO NOT MODIFY THE FIRST PART OF THIS FILE
9 Koha::Schema::Result::Item
16 use base 'DBIx::Class::Core';
18 =head1 TABLE: C<items>
22 __PACKAGE__->table("items");
38 =head2 biblioitemnumber
51 =head2 dateaccessioned
54 datetime_undef_if_invalid: 1
59 data_type: 'mediumtext'
75 =head2 replacementprice
81 =head2 replacementpricedate
84 datetime_undef_if_invalid: 1
87 =head2 datelastborrowed
90 datetime_undef_if_invalid: 1
96 datetime_undef_if_invalid: 1
124 data_type: 'datetime'
125 datetime_undef_if_invalid: 1
136 data_type: 'datetime'
137 datetime_undef_if_invalid: 1
140 =head2 itemcallnumber
146 =head2 coded_location_qualifier
154 data_type: 'smallint'
159 data_type: 'smallint'
164 data_type: 'smallint'
174 data_type: 'mediumtext'
177 =head2 itemnotes_nonpublic
179 data_type: 'mediumtext'
191 data_type: 'mediumtext'
196 data_type: 'timestamp'
197 datetime_undef_if_invalid: 1
198 default_value: current_timestamp
207 =head2 permanent_location
216 datetime_undef_if_invalid: 1
254 =head2 more_subfields_xml
256 data_type: 'longtext'
285 __PACKAGE__->add_columns(
287 { data_type => "integer", is_auto_increment => 1, is_nullable => 0 },
289 { data_type => "integer", default_value => 0, is_nullable => 0 },
292 data_type => "integer",
298 { data_type => "varchar", is_nullable => 1, size => 20 },
300 { data_type => "date", datetime_undef_if_invalid => 1, is_nullable => 1 },
302 { data_type => "mediumtext", is_nullable => 1 },
304 { data_type => "varchar", is_foreign_key => 1, is_nullable => 1, size => 10 },
306 { data_type => "decimal", is_nullable => 1, size => [8, 2] },
308 { data_type => "decimal", is_nullable => 1, size => [8, 2] },
309 "replacementpricedate",
310 { data_type => "date", datetime_undef_if_invalid => 1, is_nullable => 1 },
312 { data_type => "date", datetime_undef_if_invalid => 1, is_nullable => 1 },
314 { data_type => "date", datetime_undef_if_invalid => 1, is_nullable => 1 },
316 { data_type => "tinyint", is_nullable => 1 },
318 { data_type => "tinyint", default_value => 0, is_nullable => 0 },
320 { data_type => "tinyint", default_value => 0, is_nullable => 0 },
322 { data_type => "tinyint", default_value => 0, is_nullable => 0 },
325 data_type => "datetime",
326 datetime_undef_if_invalid => 1,
330 { data_type => "tinyint", default_value => 0, is_nullable => 0 },
333 data_type => "datetime",
334 datetime_undef_if_invalid => 1,
338 { data_type => "varchar", is_nullable => 1, size => 255 },
339 "coded_location_qualifier",
340 { data_type => "varchar", is_nullable => 1, size => 10 },
342 { data_type => "smallint", is_nullable => 1 },
344 { data_type => "smallint", is_nullable => 1 },
346 { data_type => "smallint", is_nullable => 1 },
348 { data_type => "tinyint", is_nullable => 1 },
350 { data_type => "mediumtext", is_nullable => 1 },
351 "itemnotes_nonpublic",
352 { data_type => "mediumtext", is_nullable => 1 },
354 { data_type => "varchar", is_foreign_key => 1, is_nullable => 1, size => 10 },
356 { data_type => "mediumtext", is_nullable => 1 },
359 data_type => "timestamp",
360 datetime_undef_if_invalid => 1,
361 default_value => \"current_timestamp",
365 { data_type => "varchar", is_nullable => 1, size => 80 },
366 "permanent_location",
367 { data_type => "varchar", is_nullable => 1, size => 80 },
369 { data_type => "date", datetime_undef_if_invalid => 1, is_nullable => 1 },
371 { data_type => "varchar", is_nullable => 1, size => 10 },
373 { data_type => "varchar", is_nullable => 1, size => 255 },
375 { data_type => "varchar", is_nullable => 1, size => 10 },
377 { data_type => "text", is_nullable => 1 },
379 { data_type => "varchar", is_nullable => 1, size => 255 },
381 { data_type => "varchar", is_nullable => 1, size => 10 },
382 "more_subfields_xml",
383 { data_type => "longtext", is_nullable => 1 },
385 { data_type => "text", is_nullable => 1 },
387 { data_type => "varchar", is_nullable => 1, size => 32 },
389 { data_type => "varchar", is_nullable => 1, size => 32 },
391 { accessor => undef, data_type => "varchar", is_nullable => 1, size => 32 },
398 =item * L</itemnumber>
404 __PACKAGE__->set_primary_key("itemnumber");
406 =head1 UNIQUE CONSTRAINTS
408 =head2 C<itembarcodeidx>
418 __PACKAGE__->add_unique_constraint("itembarcodeidx", ["barcode"]);
426 Related object: L<Koha::Schema::Result::Accountline>
430 __PACKAGE__->has_many(
432 "Koha::Schema::Result::Accountline",
433 { "foreign.itemnumber" => "self.itemnumber" },
434 { cascade_copy => 0, cascade_delete => 0 },
437 =head2 biblioitemnumber
441 Related object: L<Koha::Schema::Result::Biblioitem>
445 __PACKAGE__->belongs_to(
447 "Koha::Schema::Result::Biblioitem",
448 { biblioitemnumber => "biblioitemnumber" },
449 { is_deferrable => 1, on_delete => "CASCADE", on_update => "CASCADE" },
452 =head2 branchtransfers
456 Related object: L<Koha::Schema::Result::Branchtransfer>
460 __PACKAGE__->has_many(
462 "Koha::Schema::Result::Branchtransfer",
463 { "foreign.itemnumber" => "self.itemnumber" },
464 { cascade_copy => 0, cascade_delete => 0 },
471 Related object: L<Koha::Schema::Result::CourseItem>
475 __PACKAGE__->might_have(
477 "Koha::Schema::Result::CourseItem",
478 { "foreign.itemnumber" => "self.itemnumber" },
479 { cascade_copy => 0, cascade_delete => 0 },
482 =head2 creator_batches
486 Related object: L<Koha::Schema::Result::CreatorBatch>
490 __PACKAGE__->has_many(
492 "Koha::Schema::Result::CreatorBatch",
493 { "foreign.item_number" => "self.itemnumber" },
494 { cascade_copy => 0, cascade_delete => 0 },
497 =head2 hold_fill_target
501 Related object: L<Koha::Schema::Result::HoldFillTarget>
505 __PACKAGE__->might_have(
507 "Koha::Schema::Result::HoldFillTarget",
508 { "foreign.itemnumber" => "self.itemnumber" },
509 { cascade_copy => 0, cascade_delete => 0 },
516 Related object: L<Koha::Schema::Result::Branch>
520 __PACKAGE__->belongs_to(
522 "Koha::Schema::Result::Branch",
523 { branchcode => "holdingbranch" },
527 on_delete => "RESTRICT",
528 on_update => "CASCADE",
536 Related object: L<Koha::Schema::Result::Branch>
540 __PACKAGE__->belongs_to(
542 "Koha::Schema::Result::Branch",
543 { branchcode => "homebranch" },
547 on_delete => "RESTRICT",
548 on_update => "CASCADE",
556 Related object: L<Koha::Schema::Result::Issue>
560 __PACKAGE__->might_have(
562 "Koha::Schema::Result::Issue",
563 { "foreign.itemnumber" => "self.itemnumber" },
564 { cascade_copy => 0, cascade_delete => 0 },
567 =head2 items_last_borrower
571 Related object: L<Koha::Schema::Result::ItemsLastBorrower>
575 __PACKAGE__->might_have(
576 "items_last_borrower",
577 "Koha::Schema::Result::ItemsLastBorrower",
578 { "foreign.itemnumber" => "self.itemnumber" },
579 { cascade_copy => 0, cascade_delete => 0 },
586 Related object: L<Koha::Schema::Result::OldIssue>
590 __PACKAGE__->has_many(
592 "Koha::Schema::Result::OldIssue",
593 { "foreign.itemnumber" => "self.itemnumber" },
594 { cascade_copy => 0, cascade_delete => 0 },
601 Related object: L<Koha::Schema::Result::OldReserve>
605 __PACKAGE__->has_many(
607 "Koha::Schema::Result::OldReserve",
608 { "foreign.itemnumber" => "self.itemnumber" },
609 { cascade_copy => 0, cascade_delete => 0 },
616 Related object: L<Koha::Schema::Result::Reserve>
620 __PACKAGE__->has_many(
622 "Koha::Schema::Result::Reserve",
623 { "foreign.itemnumber" => "self.itemnumber" },
624 { cascade_copy => 0, cascade_delete => 0 },
631 Related object: L<Koha::Schema::Result::Serialitem>
635 __PACKAGE__->might_have(
637 "Koha::Schema::Result::Serialitem",
638 { "foreign.itemnumber" => "self.itemnumber" },
639 { cascade_copy => 0, cascade_delete => 0 },
643 # Created by DBIx::Class::Schema::Loader v0.07042 @ 2016-03-04 19:32:39
644 # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:rhW0Ddhh2hLoV//7nonLCA
646 __PACKAGE__->belongs_to( biblioitem => "Koha::Schema::Result::Biblioitem", "biblioitemnumber" );
648 __PACKAGE__->belongs_to(
650 "Koha::Schema::Result::Biblio",
651 { biblionumber => "biblionumber" },
652 { is_deferrable => 1, on_delete => "CASCADE", on_update => "CASCADE" },
655 sub effective_itemtype {
658 my $pref = $self->result_source->schema->resultset('Systempreference')->find('item-level_itypes');
659 if ( $pref->value() && $self->itype() ) {
660 return $self->itype();
662 warn "item-level_itypes set but no itemtype set for item ($self->itemnumber)"
664 return $self->biblioitemnumber()->itemtype();