Lines 43-49
foreign key to accountlines.accountlines_id
Link Here
|
43 |
is_nullable: 0 |
43 |
is_nullable: 0 |
44 |
size: 32 |
44 |
size: 32 |
45 |
|
45 |
|
46 |
Type of linked entity: hold, old_hold, checkout, old_checkout, article_request, etc. |
46 |
Type of linked entity: hold, checkout, article_request, etc. |
47 |
|
47 |
|
48 |
=head2 linked_id |
48 |
=head2 linked_id |
49 |
|
49 |
|
Lines 143-151
This is a polymorphic relationship.
Link Here
|
143 |
sub linked_object { |
143 |
sub linked_object { |
144 |
my ($self) = @_; |
144 |
my ($self) = @_; |
145 |
|
145 |
|
|
|
146 |
# Special handling for holds - they can be in reserves OR old_reserves |
147 |
if ($self->link_type eq 'hold') { |
148 |
# Try current holds first |
149 |
my $hold = $self->result_source->schema->resultset('Reserve')->find({ |
150 |
reserve_id => $self->linked_id |
151 |
}); |
152 |
return $hold if $hold; |
153 |
|
154 |
# If not found in current holds, try old holds |
155 |
return $self->result_source->schema->resultset('OldReserve')->find({ |
156 |
reserve_id => $self->linked_id |
157 |
}); |
158 |
} |
159 |
|
160 |
# Handle other link types normally |
146 |
my $type_map = { |
161 |
my $type_map = { |
147 |
'hold' => ['Reserve', 'reserve_id'], |
|
|
148 |
'old_hold' => ['OldReserve', 'reserve_id'], |
149 |
'checkout' => ['Issue', 'issue_id'], |
162 |
'checkout' => ['Issue', 'issue_id'], |
150 |
'old_checkout' => ['OldIssue', 'issue_id'], |
163 |
'old_checkout' => ['OldIssue', 'issue_id'], |
151 |
'article_request' => ['ArticleRequest', 'id'], |
164 |
'article_request' => ['ArticleRequest', 'id'], |
Lines 159-196
sub linked_object {
Link Here
|
159 |
}); |
172 |
}); |
160 |
} |
173 |
} |
161 |
|
174 |
|
162 |
=head2 linked_object_class |
175 |
=head2 koha_objects_class |
163 |
|
176 |
|
164 |
Returns the Koha::Object class name for the linked object |
177 |
Missing POD for koha_objects_class. |
165 |
|
178 |
|
166 |
=cut |
179 |
=cut |
167 |
|
180 |
|
168 |
sub linked_object_class { |
181 |
sub koha_objects_class { |
169 |
my ($self) = @_; |
182 |
'Koha::Account::Links'; |
170 |
|
|
|
171 |
my $class_map = { |
172 |
'hold' => 'Koha::Hold', |
173 |
'old_hold' => 'Koha::Old::Hold', |
174 |
'checkout' => 'Koha::Checkout', |
175 |
'old_checkout' => 'Koha::Old::Checkout', |
176 |
'article_request' => 'Koha::ArticleRequest', |
177 |
}; |
178 |
|
179 |
return $class_map->{$self->link_type}; |
180 |
} |
183 |
} |
181 |
|
184 |
|
182 |
=head2 validate_link_integrity |
185 |
=head2 koha_object_class |
183 |
|
186 |
|
184 |
Validates that the linked entity actually exists |
187 |
Missing POD for koha_object_class. |
185 |
|
188 |
|
186 |
=cut |
189 |
=cut |
187 |
|
190 |
|
188 |
sub validate_link_integrity { |
191 |
sub koha_object_class { |
189 |
my ($self) = @_; |
192 |
'Koha::Account::Link'; |
190 |
|
|
|
191 |
my $linked_object = $self->linked_object; |
192 |
return defined($linked_object) ? 1 : 0; |
193 |
} |
193 |
} |
194 |
|
194 |
|
195 |
# You can replace this text with custom code or comments, and it will be preserved on regeneration |
195 |
# You can replace this text with custom code or comments, and it will be preserved on regeneration |
196 |
1; |
196 |
1; |