diff --git a/Koha/ILL/Request.pm b/Koha/ILL/Request.pm index 50a8f733bc..bfc840cc55 100644 --- a/Koha/ILL/Request.pm +++ b/Koha/ILL/Request.pm @@ -1407,6 +1407,22 @@ sub get_type_disclaimer_date { return $attr->value; } +=head3 manager + + my $manager = $request->manager(); + +Return the Koha::Patron object found by $self->managedby + +=cut + +sub manager { + my ($self) = @_; + + my $manager_rs = $self->_result->manager; + return unless $manager_rs; + return Koha::Patron->_new_from_dbic($manager_rs); +} + =head3 check_limits my $ok = $requests->check_limits( { diff --git a/Koha/Schema/Result/Illrequest.pm b/Koha/Schema/Result/Illrequest.pm index e7293afa59..4a866ce0e1 100644 --- a/Koha/Schema/Result/Illrequest.pm +++ b/Koha/Schema/Result/Illrequest.pm @@ -439,6 +439,18 @@ __PACKAGE__->belongs_to( }, ); +__PACKAGE__->belongs_to( + "manager", + "Koha::Schema::Result::Borrower", + { borrowernumber => "managedby" }, + { + is_deferrable => 1, + join_type => "LEFT", + on_delete => "CASCADE", + on_update => "CASCADE", + }, +); + =head2 koha_object_class Missing POD for koha_object_class. diff --git a/admin/columns_settings.yml b/admin/columns_settings.yml index c75070f886..6272ea6802 100644 --- a/admin/columns_settings.yml +++ b/admin/columns_settings.yml @@ -1144,6 +1144,9 @@ modules: columnname: orderid - columnname: patron + - + columnname: managedby + is_hidden: 1 - columnname: library_branchname - diff --git a/api/v1/swagger/definitions/ill_request.yaml b/api/v1/swagger/definitions/ill_request.yaml index 9c6459b915..07bb3af1f1 100644 --- a/api/v1/swagger/definitions/ill_request.yaml +++ b/api/v1/swagger/definitions/ill_request.yaml @@ -18,6 +18,10 @@ properties: type: - integer - "null" + managedby: + type: + - integer + - "null" description: Internal patron id due_date: type: @@ -140,6 +144,11 @@ properties: - object - "null" description: The linked patron object (x-koha-embed) + manager: + type: + - object + - "null" + description: The linked patron object (x-koha-embed) _strings: type: - object diff --git a/api/v1/swagger/paths/ill_requests.yaml b/api/v1/swagger/paths/ill_requests.yaml index 7927a56629..e31efd3ed9 100644 --- a/api/v1/swagger/paths/ill_requests.yaml +++ b/api/v1/swagger/paths/ill_requests.yaml @@ -31,6 +31,7 @@ - library - id_prefix - patron + - manager collectionFormat: csv produces: - application/json diff --git a/ill/ill-requests.pl b/ill/ill-requests.pl index d1b671fdc7..b5d6c9490d 100755 --- a/ill/ill-requests.pl +++ b/ill/ill-requests.pl @@ -305,6 +305,7 @@ if ($backends_available) { ? $params->{status_alias} : "-1"; $request->status_alias($alias); + $request->managedby( $params->{managedby} ); $request->store; my $backend_result = { error => 0, diff --git a/installer/data/mysql/kohastructure.sql b/installer/data/mysql/kohastructure.sql index bb1a44a280..651b954694 100644 --- a/installer/data/mysql/kohastructure.sql +++ b/installer/data/mysql/kohastructure.sql @@ -3786,6 +3786,7 @@ DROP TABLE IF EXISTS `illrequests`; CREATE TABLE `illrequests` ( `illrequest_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ILL request number', `borrowernumber` int(11) DEFAULT NULL COMMENT 'Patron associated with request', + `managedby` int(11) DEFAULT NULL COMMENT 'Staff member manager of request', `biblio_id` int(11) DEFAULT NULL COMMENT 'Potential bib linked to request', `deleted_biblio_id` int(11) DEFAULT NULL COMMENT 'Deleted bib linked to request', `due_date` datetime DEFAULT NULL COMMENT 'Custom date due specified by backend, leave NULL for default date_due calculation', @@ -3807,6 +3808,7 @@ CREATE TABLE `illrequests` ( `batch_id` int(11) DEFAULT NULL COMMENT 'Optional ID of batch that this request belongs to', PRIMARY KEY (`illrequest_id`), KEY `illrequests_bnfk` (`borrowernumber`), + KEY `illrequests_manfk` (`managedby`), KEY `illrequests_bcfk_2` (`branchcode`), KEY `illrequests_safk` (`status_alias`), KEY `illrequests_bibfk` (`biblio_id`), @@ -3814,6 +3816,7 @@ CREATE TABLE `illrequests` ( CONSTRAINT `illrequests_bcfk_2` FOREIGN KEY (`branchcode`) REFERENCES `branches` (`branchcode`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `illrequests_bibfk` FOREIGN KEY (`biblio_id`) REFERENCES `biblio` (`biblionumber`) ON DELETE SET NULL ON UPDATE CASCADE, CONSTRAINT `illrequests_bnfk` FOREIGN KEY (`borrowernumber`) REFERENCES `borrowers` (`borrowernumber`) ON DELETE SET NULL ON UPDATE CASCADE, + CONSTRAINT `illrequests_manfk` FOREIGN KEY (`managedby`) REFERENCES `borrowers` (`borrowernumber`) ON DELETE SET NULL ON UPDATE CASCADE, CONSTRAINT `illrequests_ibfk` FOREIGN KEY (`batch_id`) REFERENCES `illbatches` (`ill_batch_id`) ON DELETE SET NULL ON UPDATE CASCADE, CONSTRAINT `illrequests_safk` FOREIGN KEY (`status_alias`) REFERENCES `authorised_values` (`authorised_value`) ON DELETE SET NULL ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/ill-list-table.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/ill-list-table.inc index c924d7281a..1b2e62fcbc 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/includes/ill-list-table.inc +++ b/koha-tmpl/intranet-tmpl/prog/en/includes/ill-list-table.inc @@ -13,6 +13,7 @@