@@ -, +, @@
- Enable an adult to have a guarantor:
- Shows guarantees' fines in the guarantor's page:
- Transfer some guarantor's information to the guarantee while adding a guarantiee:
- Transfer some guarantor's information to the guarantee while creating a new patron
- Transfer some guarantor's information to the guarantee while adding a guarantiee:
- Transfer guarantor's alternate address/contact to the guarantee while creating a new patron:
- Transfer guarantor's alternate address/contact to the guarantee while adding a guarantiee:
---
C4/Members/Attributes.pm | 17 +++++++++++++-
C4/Utils/DataTables/Members.pm | 22 ++++++++++++------
Koha/Schema/Result/Category.pm | 8 +++++++
admin/categories.pl | 3 +++
.../atomicupdate/bug_12446-EnableAdultGarantee.sql | 10 ++++++++
installer/data/mysql/kohastructure.sql | 3 ++-
installer/data/mysql/sysprefs.sql | 4 +++-
.../prog/en/includes/members-toolbar.inc | 2 +-
.../prog/en/modules/admin/categories.tt | 15 ++++++++++++
.../prog/en/modules/admin/preferences/patrons.pref | 5 ++++
.../prog/en/modules/members/memberentrygen.tt | 18 +++++----------
.../prog/en/modules/members/moremember.tt | 18 +++++++++++----
members/memberentry.pl | 18 +++++++++++----
members/moremember.pl | 27 +++++++++++-----------
14 files changed, 126 insertions(+), 44 deletions(-)
create mode 100644 installer/data/mysql/atomicupdate/bug_12446-EnableAdultGarantee.sql
--- a/C4/Members/Attributes.pm
+++ a/C4/Members/Attributes.pm
@@ -34,7 +34,7 @@ BEGIN {
@EXPORT_OK = qw(GetBorrowerAttributes GetBorrowerAttributeValue CheckUniqueness SetBorrowerAttributes
DeleteBorrowerAttribute UpdateBorrowerAttribute
extended_attributes_code_value_arrayref extended_attributes_merge
- SearchIdMatchingAttribute);
+ SearchIdMatchingAttribute get_guarantor_shared_attributes);
%EXPORT_TAGS = ( all => \@EXPORT_OK );
}
@@ -357,6 +357,21 @@ sub _sort_by_code {
return $x->{code} cmp $y->{code} || $x->{value} cmp $y->{value};
}
+=head2 get_guarantor_shared_attributes
+
+ $guarantor_attributes = get_guarantor_attributes();
+
+ returns an array reference containing attributes to be shared between guarantor and guarantee.
+=cut
+sub get_guarantor_shared_attributes{
+ my @attributes = qw( streetnumber address address2 city state zipcode country branchcode phone phonepro mobile email emailpro fax );
+ if( my @additional = split(/\|/, C4::Context->preference("AdditionalGuarantorField")) ){
+ $_ =~ s/(?:^\s+)|(?:\s+$)//g for (@additional); # Trim whitespaces
+ @attributes = ( @attributes, @additional);
+ }
+ return \@attributes;
+}
+
=head1 AUTHOR
Koha Development Team
--- a/C4/Utils/DataTables/Members.pm
+++ a/C4/Utils/DataTables/Members.pm
@@ -4,6 +4,7 @@ use Modern::Perl;
use C4::Branch qw/onlymine/;
use C4::Context;
use C4::Members qw/GetMemberIssuesAndFines/;
+use C4::Members::Attributes qw/get_guarantor_shared_attributes/;
use C4::Utils::DataTables;
use Koha::DateUtils;
@@ -32,13 +33,20 @@ sub search {
}
my $dbh = C4::Context->dbh;
- my $select = "SELECT
- borrowers.borrowernumber, borrowers.surname, borrowers.firstname,
- borrowers.streetnumber, borrowers.streettype, borrowers.address,
- borrowers.address2, borrowers.city, borrowers.state, borrowers.zipcode,
- borrowers.country, cardnumber, borrowers.dateexpiry,
- borrowers.borrowernotes, borrowers.branchcode, borrowers.email,
- borrowers.userid, borrowers.dateofbirth, borrowers.categorycode,
+ my @columns = qw( borrowernumber surname firstname streetnumber streettype address address2 city state zipcode country cardnumber dateexpiry borrowernotes branchcode email userid dateofbirth categorycode );
+ if( my @guarantor_attributes = @{ get_guarantor_shared_attributes() }){
+ foreach my $item (@guarantor_attributes) {
+ if (! grep {$_ eq $item} @columns) {
+ push @columns, $item;
+ }
+ }
+ };
+ my $borrowers_columns = "";
+ foreach my $item (@columns) {
+ $borrowers_columns .= "borrowers." . $item . ", ";
+ }
+
+ my $select = "SELECT " . $borrowers_columns . "
categories.description AS category_description, categories.category_type,
branches.branchname";
my $from = "FROM borrowers
--- a/Koha/Schema/Result/Category.pm
+++ a/Koha/Schema/Result/Category.pm
@@ -109,6 +109,12 @@ __PACKAGE__->table("categories");
default_value: -1
is_nullable: 0
+=head2 canbeguarantee
+
+ data_type: 'tinyint'
+ default_value: 0
+ is_nullable: 0
+
=head2 default_privacy
data_type: 'enum'
@@ -154,6 +160,8 @@ __PACKAGE__->add_columns(
default_value => -1,
is_nullable => 0,
},
+ "canbeguarantee",
+ { data_type => "tinyint", default_value => 0, is_nullable => 0},
"default_privacy",
{
data_type => "enum",
--- a/admin/categories.pl
+++ a/admin/categories.pl
@@ -91,6 +91,7 @@ elsif ( $op eq 'add_validate' ) {
my $category_type = $input->param('category_type');
my $BlockExpiredPatronOpacActions = $input->param('BlockExpiredPatronOpacActions');
my $default_privacy = $input->param('default_privacy');
+ my $canbeguarantee = $input->param('canbeguarantee');
my @branches = grep { $_ ne q{} } $input->param('branches');
my $is_a_modif = $input->param("is_a_modif");
@@ -112,6 +113,7 @@ elsif ( $op eq 'add_validate' ) {
$category->hidelostitems($hidelostitems);
$category->overduenoticerequired($overduenoticerequired);
$category->category_type($category_type);
+ $category->canbeguarantee($canbeguarantee);
$category->BlockExpiredPatronOpacActions($BlockExpiredPatronOpacActions);
$category->default_privacy($default_privacy);
eval {
@@ -137,6 +139,7 @@ elsif ( $op eq 'add_validate' ) {
hidelostitems => $hidelostitems,
overduenoticerequired => $overduenoticerequired,
category_type => $category_type,
+ canbeguarantee => $canbeguarantee,
BlockExpiredPatronOpacActions => $BlockExpiredPatronOpacActions,
default_privacy => $default_privacy,
});
--- a/installer/data/mysql/atomicupdate/bug_12446-EnableAdultGarantee.sql
+++ a/installer/data/mysql/atomicupdate/bug_12446-EnableAdultGarantee.sql
@@ -0,0 +1,10 @@
+-- ******** --
+-- SYSPREFS --
+-- ******** --
+INSERT IGNORE INTO systempreferences ( `variable`, `value`, `options`, `explanation`, `type` )
+VALUES ('AdditionalGuarantorField','',NULL,'Additional fields name to be transfer from guarantor to guarantee.','free');
+
+-- ********* --
+-- STRUCTURE --
+-- ********* --
+ALTER TABLE categories ADD COLUMN `canbeguarantee` tinyint(1) NOT NULL default '0';
--- a/installer/data/mysql/kohastructure.sql
+++ a/installer/data/mysql/kohastructure.sql
@@ -488,7 +488,8 @@ CREATE TABLE `categories` ( -- this table shows information related to Koha patr
`hidelostitems` tinyint(1) NOT NULL default '0', -- are lost items shown to this category (1 for yes, 0 for no)
`category_type` varchar(1) NOT NULL default 'A', -- type of Koha patron (Adult, Child, Professional, Organizational, Statistical, Staff)
`BlockExpiredPatronOpacActions` tinyint(1) NOT NULL default '-1', -- wheither or not a patron of this category can renew books or place holds once their card has expired. 0 means they can, 1 means they cannot, -1 means use syspref BlockExpiredPatronOpacActions
- `default_privacy` ENUM( 'default', 'never', 'forever' ) NOT NULL DEFAULT 'default', -- Default privacy setting for this patron category
+ `default_privacy` ENUM( 'default', 'never', 'forever' ) NOT NULL DEFAULT 'default', -- Default privacy setting for this patron category,
+ `canbeguarantee` tinyint(1) NOT NULL default '0'
PRIMARY KEY (`categorycode`),
UNIQUE KEY `categorycode` (`categorycode`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
--- a/installer/data/mysql/sysprefs.sql
+++ a/installer/data/mysql/sysprefs.sql
@@ -6,6 +6,8 @@ INSERT INTO systempreferences ( `variable`, `value`, `options`, `explanation`, `
('AcquisitionDetails', '1', '', 'Hide/Show acquisition details on the biblio detail page.', 'YesNo'),
('AcqViewBaskets','user','user|branch|all','Define which baskets a user is allowed to view: his own only, any within his branch or all','Choice'),
('AcqWarnOnDuplicateInvoice','0','','Warn librarians when they try to create a duplicate invoice','YesNo'),
+('AdditionalGuarantorField','',NULL,'Additional fields name to be transfer from guarantor to guarantee.','free'),
+('AddPatronLists','categorycode','categorycode|category_type','Allow user to choose what list to pick up from when adding patrons','Choice'),
('AddressFormat','us','','Choose format to display postal addresses', 'Choice'),
('advancedMARCeditor','0','','If ON, the MARC editor won\'t display field/subfield descriptions','YesNo'),
('AdvancedSearchLanguages','','','ISO 639-2 codes of languages you wish to see appear as an Advanced search option. Example: eng|fre|ita','Textarea'),
@@ -517,5 +519,5 @@ INSERT INTO systempreferences ( `variable`, `value`, `options`, `explanation`, `
('XSLTDetailsDisplay','default','','Enable XSL stylesheet control over details page display on intranet','Free'),
('XSLTResultsDisplay','default','','Enable XSL stylesheet control over results page display on intranet','Free'),
('z3950AuthorAuthFields','701,702,700',NULL,'Define the MARC biblio fields for Personal Name Authorities to fill biblio.author','free'),
-('z3950NormalizeAuthor','0','','If ON, Personal Name Authorities will replace authors in biblio.author','YesNo')
+('z3950NormalizeAuthor','0','','If ON, Personal Name Authorities will replace authors in biblio.author','YesNo'),
;
--- a/koha-tmpl/intranet-tmpl/prog/en/includes/members-toolbar.inc
+++ a/koha-tmpl/intranet-tmpl/prog/en/includes/members-toolbar.inc
@@ -146,7 +146,7 @@ function searchToHold(){
[% IF ( CAN_user_borrowers ) %]
[% IF ( adultborrower AND activeBorrowerRelationship ) %]
- Add child
+ Add guarantee
[% END %]
[% IF ( CAN_user_borrowers ) %]
Change password
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/categories.tt
+++ a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/categories.tt
@@ -238,6 +238,18 @@
Required
+