@@ -, +, @@
- 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 | 20 +++++++++++++
Koha/Schema/Result/Category.pm | 8 ++++++
admin/categories.pl | 3 ++
.../atomicupdate/bug_12446-EnableAdultGarantee.sql | 11 ++++++++
installer/data/mysql/kohastructure.sql | 7 +++--
installer/data/mysql/sysprefs.sql | 2 ++
.../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/common/patron_search.tt | 7 +++--
.../prog/en/modules/members/memberentrygen.tt | 6 ++--
.../prog/en/modules/members/moremember.tt | 30 ++++++++++++--------
.../en/modules/members/tables/guarantor_search.tt | 2 +-
koha-tmpl/intranet-tmpl/prog/js/members.js | 20 +++++--------
members/memberentry.pl | 20 +++++++------
members/moremember.pl | 33 ++++++++++++++++++++--
svc/members/search | 2 ++
18 files changed, 160 insertions(+), 50 deletions(-)
create mode 100644 installer/data/mysql/atomicupdate/bug_12446-EnableAdultGarantee.sql
--- a/C4/Members/Attributes.pm
+++ a/C4/Members/Attributes.pm
@@ -32,7 +32,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 );
}
@@ -383,6 +383,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
@@ -2,6 +2,8 @@ package C4::Utils::DataTables::Members;
use Modern::Perl;
use C4::Context;
+use C4::Members qw/GetMemberIssuesAndFines/;
+use C4::Members::Attributes qw/get_guarantor_shared_attributes/;
use C4::Utils::DataTables;
use Koha::DateUtils;
@@ -47,6 +49,7 @@ sub search {
}
+<<<<<<< HEAD
my $select = "SELECT
borrowers.borrowernumber, borrowers.surname, borrowers.firstname,
borrowers.streetnumber, borrowers.streettype, borrowers.address,
@@ -54,6 +57,23 @@ sub search {
borrowers.country, cardnumber, borrowers.dateexpiry,
borrowers.borrowernotes, borrowers.branchcode, borrowers.email,
borrowers.userid, borrowers.dateofbirth, borrowers.categorycode,
+=======
+ my $dbh = C4::Context->dbh;
+ 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 . "
+>>>>>>> Bug 12446 - Enable an adult to have a guarantor
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'
@@ -161,6 +167,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
@@ -93,6 +93,7 @@ elsif ( $op eq 'add_validate' ) {
my $checkPrevCheckout = $input->param('checkprevcheckout');
my $default_privacy = $input->param('default_privacy');
my @branches = grep { $_ ne q{} } $input->multi_param('branches');
+ my $canbeguarantee = $input->param('canbeguarantee');
my $is_a_modif = $input->param("is_a_modif");
@@ -119,6 +120,7 @@ elsif ( $op eq 'add_validate' ) {
$category->hidelostitems($hidelostitems);
$category->overduenoticerequired($overduenoticerequired);
$category->category_type($category_type);
+ $category->canbeguarantee($canbeguarantee);
$category->BlockExpiredPatronOpacActions($BlockExpiredPatronOpacActions);
$category->checkprevcheckout($checkPrevCheckout);
$category->default_privacy($default_privacy);
@@ -145,6 +147,7 @@ elsif ( $op eq 'add_validate' ) {
hidelostitems => $hidelostitems,
overduenoticerequired => $overduenoticerequired,
category_type => $category_type,
+ canbeguarantee => $canbeguarantee,
BlockExpiredPatronOpacActions => $BlockExpiredPatronOpacActions,
checkprevcheckout => $checkPrevCheckout,
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,11 @@
+-- ******** --
+-- 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';
+UPDATE categories SET canbeguarantee = 1 WHERE category_type = 'P' OR category_type = 'C';
--- a/installer/data/mysql/kohastructure.sql
+++ a/installer/data/mysql/kohastructure.sql
@@ -328,8 +328,9 @@ 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,
`checkprevcheckout` varchar(7) NOT NULL default 'inherit', -- produce a warning for this patron category if this item has previously been checked out to this patron if 'yes', not if 'no', defer to syspref setting if 'inherit'.
+ `canbeguarantee` tinyint(1) NOT NULL default '0'
PRIMARY KEY (`categorycode`),
UNIQUE KEY `categorycode` (`categorycode`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
@@ -898,7 +899,7 @@ CREATE TABLE `refund_lost_item_fee_rules` ( -- refund lost item fee rules tbale
--
DROP TABLE IF EXISTS `items`;
-CREATE TABLE `items` ( -- holdings/item information
+CREATE TABLE `items` ( -- holdings/item information
`itemnumber` int(11) NOT NULL auto_increment, -- primary key and unique identifier added by Koha
`biblionumber` int(11) NOT NULL default 0, -- foreign key from biblio table used to link this item to the right bib record
`biblioitemnumber` int(11) NOT NULL default 0, -- foreign key from the biblioitems table to link to item to additional information
@@ -2239,7 +2240,7 @@ CREATE TABLE `userflags` (
--
DROP TABLE IF EXISTS `virtualshelves`;
-CREATE TABLE `virtualshelves` ( -- information about lists (or virtual shelves)
+CREATE TABLE `virtualshelves` ( -- information about lists (or virtual shelves)
`shelfnumber` int(11) NOT NULL auto_increment, -- unique identifier assigned by Koha
`shelfname` varchar(255) default NULL, -- name of the list
`owner` int default NULL, -- foreign key linking to the borrowers table (using borrowernumber) for the creator of this list (changed from varchar(80) to int)
--- 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'),
--- a/koha-tmpl/intranet-tmpl/prog/en/includes/members-toolbar.inc
+++ a/koha-tmpl/intranet-tmpl/prog/en/includes/members-toolbar.inc
@@ -143,7 +143,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
@@ -151,6 +151,18 @@
Required
+