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'
186 data_type: 'mediumtext'
191 data_type: 'timestamp'
192 datetime_undef_if_invalid: 1
193 default_value: current_timestamp
202 =head2 permanent_location
211 datetime_undef_if_invalid: 1
249 =head2 more_subfields_xml
251 data_type: 'longtext'
273 __PACKAGE__->add_columns(
275 { data_type => "integer", is_auto_increment => 1, is_nullable => 0 },
277 { data_type => "integer", default_value => 0, is_nullable => 0 },
280 data_type => "integer",
286 { data_type => "varchar", is_nullable => 1, size => 20 },
288 { data_type => "date", datetime_undef_if_invalid => 1, is_nullable => 1 },
290 { data_type => "mediumtext", is_nullable => 1 },
292 { data_type => "varchar", is_foreign_key => 1, is_nullable => 1, size => 10 },
294 { data_type => "decimal", is_nullable => 1, size => [8, 2] },
296 { data_type => "decimal", is_nullable => 1, size => [8, 2] },
297 "replacementpricedate",
298 { data_type => "date", datetime_undef_if_invalid => 1, is_nullable => 1 },
300 { data_type => "date", datetime_undef_if_invalid => 1, is_nullable => 1 },
302 { data_type => "date", datetime_undef_if_invalid => 1, is_nullable => 1 },
304 { data_type => "tinyint", is_nullable => 1 },
306 { data_type => "tinyint", default_value => 0, is_nullable => 0 },
308 { data_type => "tinyint", default_value => 0, is_nullable => 0 },
310 { data_type => "tinyint", default_value => 0, is_nullable => 0 },
313 data_type => "datetime",
314 datetime_undef_if_invalid => 1,
318 { data_type => "tinyint", default_value => 0, is_nullable => 0 },
321 data_type => "datetime",
322 datetime_undef_if_invalid => 1,
326 { data_type => "varchar", is_nullable => 1, size => 255 },
327 "coded_location_qualifier",
328 { data_type => "varchar", is_nullable => 1, size => 10 },
330 { data_type => "smallint", is_nullable => 1 },
332 { data_type => "smallint", is_nullable => 1 },
334 { data_type => "smallint", is_nullable => 1 },
336 { data_type => "tinyint", is_nullable => 1 },
338 { data_type => "mediumtext", is_nullable => 1 },
340 { data_type => "varchar", is_foreign_key => 1, is_nullable => 1, size => 10 },
342 { data_type => "mediumtext", is_nullable => 1 },
345 data_type => "timestamp",
346 datetime_undef_if_invalid => 1,
347 default_value => \"current_timestamp",
351 { data_type => "varchar", is_nullable => 1, size => 80 },
352 "permanent_location",
353 { data_type => "varchar", is_nullable => 1, size => 80 },
355 { data_type => "date", datetime_undef_if_invalid => 1, is_nullable => 1 },
357 { data_type => "varchar", is_nullable => 1, size => 10 },
359 { data_type => "varchar", is_nullable => 1, size => 255 },
361 { data_type => "varchar", is_nullable => 1, size => 10 },
363 { data_type => "text", is_nullable => 1 },
365 { data_type => "varchar", is_nullable => 1, size => 255 },
367 { data_type => "varchar", is_nullable => 1, size => 10 },
368 "more_subfields_xml",
369 { data_type => "longtext", is_nullable => 1 },
371 { data_type => "text", is_nullable => 1 },
373 { data_type => "varchar", is_nullable => 1, size => 32 },
375 { data_type => "varchar", is_nullable => 1, size => 32 },
382 =item * L</itemnumber>
388 __PACKAGE__->set_primary_key("itemnumber");
390 =head1 UNIQUE CONSTRAINTS
392 =head2 C<itembarcodeidx>
402 __PACKAGE__->add_unique_constraint("itembarcodeidx", ["barcode"]);
410 Related object: L<Koha::Schema::Result::Accountline>
414 __PACKAGE__->has_many(
416 "Koha::Schema::Result::Accountline",
417 { "foreign.itemnumber" => "self.itemnumber" },
418 { cascade_copy => 0, cascade_delete => 0 },
421 =head2 biblioitemnumber
425 Related object: L<Koha::Schema::Result::Biblioitem>
429 __PACKAGE__->belongs_to(
431 "Koha::Schema::Result::Biblioitem",
432 { biblioitemnumber => "biblioitemnumber" },
433 { is_deferrable => 1, on_delete => "CASCADE", on_update => "CASCADE" },
436 =head2 branchtransfers
440 Related object: L<Koha::Schema::Result::Branchtransfer>
444 __PACKAGE__->has_many(
446 "Koha::Schema::Result::Branchtransfer",
447 { "foreign.itemnumber" => "self.itemnumber" },
448 { cascade_copy => 0, cascade_delete => 0 },
455 Related object: L<Koha::Schema::Result::CourseItem>
459 __PACKAGE__->might_have(
461 "Koha::Schema::Result::CourseItem",
462 { "foreign.itemnumber" => "self.itemnumber" },
463 { cascade_copy => 0, cascade_delete => 0 },
466 =head2 creator_batches
470 Related object: L<Koha::Schema::Result::CreatorBatch>
474 __PACKAGE__->has_many(
476 "Koha::Schema::Result::CreatorBatch",
477 { "foreign.item_number" => "self.itemnumber" },
478 { cascade_copy => 0, cascade_delete => 0 },
481 =head2 hold_fill_target
485 Related object: L<Koha::Schema::Result::HoldFillTarget>
489 __PACKAGE__->might_have(
491 "Koha::Schema::Result::HoldFillTarget",
492 { "foreign.itemnumber" => "self.itemnumber" },
493 { cascade_copy => 0, cascade_delete => 0 },
500 Related object: L<Koha::Schema::Result::Branch>
504 __PACKAGE__->belongs_to(
506 "Koha::Schema::Result::Branch",
507 { branchcode => "holdingbranch" },
511 on_delete => "RESTRICT",
512 on_update => "CASCADE",
520 Related object: L<Koha::Schema::Result::Branch>
524 __PACKAGE__->belongs_to(
526 "Koha::Schema::Result::Branch",
527 { branchcode => "homebranch" },
531 on_delete => "RESTRICT",
532 on_update => "CASCADE",
540 Related object: L<Koha::Schema::Result::Issue>
544 __PACKAGE__->has_many(
546 "Koha::Schema::Result::Issue",
547 { "foreign.itemnumber" => "self.itemnumber" },
548 { cascade_copy => 0, cascade_delete => 0 },
555 Related object: L<Koha::Schema::Result::OldIssue>
559 __PACKAGE__->has_many(
561 "Koha::Schema::Result::OldIssue",
562 { "foreign.itemnumber" => "self.itemnumber" },
563 { cascade_copy => 0, cascade_delete => 0 },
570 Related object: L<Koha::Schema::Result::OldReserve>
574 __PACKAGE__->has_many(
576 "Koha::Schema::Result::OldReserve",
577 { "foreign.itemnumber" => "self.itemnumber" },
578 { cascade_copy => 0, cascade_delete => 0 },
585 Related object: L<Koha::Schema::Result::Reserve>
589 __PACKAGE__->has_many(
591 "Koha::Schema::Result::Reserve",
592 { "foreign.itemnumber" => "self.itemnumber" },
593 { cascade_copy => 0, cascade_delete => 0 },
600 Related object: L<Koha::Schema::Result::Serialitem>
604 __PACKAGE__->might_have(
606 "Koha::Schema::Result::Serialitem",
607 { "foreign.itemnumber" => "self.itemnumber" },
608 { cascade_copy => 0, cascade_delete => 0 },
612 # Created by DBIx::Class::Schema::Loader v0.07039 @ 2014-10-24 09:58:16
613 # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:2slVK/FjcRDiYLeufoOFQQ
617 my @biblioitems = $self->biblioitemnumber;
618 return $biblioitems[0];
621 sub effective_itemtype {
624 my $pref = $self->result_source->schema->resultset('Systempreference')->find('item-level_itypes');
625 if ( $pref->value() ) {
626 return $self->itype();
628 return $self->biblioitem()->itemtype();