View | Details | Raw Unified | Return to bug 8309
Collapse All | Expand All

(-)a/Koha/BusinessLogic/Category.pm (+5 lines)
Line 0 Link Here
1
package Koha::BusinessLogic::Category;
2
3
use Modern::Perl;
4
use Moose;
5
extends (qw(Koha::DataObject::Category));
(-)a/Koha/DB/Borrower.pm (-1 / +3 lines)
Lines 17-23 my $schema = Koha::Schema->connect( Link Here
17
    'dbi:mysql:dbname='.C4::Context->config("database"),
17
    'dbi:mysql:dbname='.C4::Context->config("database"),
18
    C4::Context->config("user"),
18
    C4::Context->config("user"),
19
    C4::Context->config("pass"),
19
    C4::Context->config("pass"),
20
    { AutoCommit => 1 },
20
    { AutoCommit => 1
21
#      cursor_class => 'DBIx::Class::Cursor::Cached',
22
         },
21
  );
23
  );
22
24
23
sub create {
25
sub create {
(-)a/Koha/DB/Branch2.pm (-1 / +3 lines)
Lines 7-12 use Koha::Schema; Link Here
7
7
8
use Moose;
8
use Moose;
9
9
10
# the attributes must be exactly what is in the database. If you declare something that is not in the database
11
# adding or updating will fail, complaining for an attribute (declared) here that is not a column
10
has 'branchcode'     => (is => 'rw', required => 1, isa => 'Str');
12
has 'branchcode'     => (is => 'rw', required => 1, isa => 'Str');
11
has 'branchname'     => (is => 'rw', required => 1, isa => 'Str');
13
has 'branchname'     => (is => 'rw', required => 1, isa => 'Str');
12
has 'branchaddress1' => (is => 'rw', required => 0, isa => 'Str');
14
has 'branchaddress1' => (is => 'rw', required => 0, isa => 'Str');
Lines 31-37 my $schema = Koha::Schema->connect( Link Here
31
    C4::Context->config("user"),
33
    C4::Context->config("user"),
32
    C4::Context->config("pass"),
34
    C4::Context->config("pass"),
33
    { AutoCommit => 1,
35
    { AutoCommit => 1,
34
      cursor_class => 'DBIx::Class::Cursor::Cached',
36
#      cursor_class => 'DBIx::Class::Cursor::Cached',
35
    },
37
    },
36
  );
38
  );
37
39
(-)a/Koha/DB/Category.pm (+76 lines)
Line 0 Link Here
1
package Koha::DB::Category;
2
3
use Modern::Perl;
4
use C4::Context;    #FIXME = create a Koha package for KOHA_CONF reading
5
6
use Koha::Schema;
7
8
use Moose;
9
10
# the attributes must be exactly what is in the database. If you declare something that is not in the database
11
# adding or updating will fail, complaining for an attribute (declared) here that is not a column
12
has 'categorycode'          => ( is => 'rw', required => 1, isa => 'Str' );
13
has 'description'           => ( is => 'rw', required => 1, isa => 'Str' );
14
has 'enrolmentperiod'       => ( is => 'rw', required => 0, isa => 'Int' );
15
has 'enrolmentperioddate'   => ( is => 'rw', required => 0, isa => 'Str' );
16
has 'upperagelimit'         => ( is => 'rw', required => 0, isa => 'Int' );
17
has 'dateofbirthrequired'   => ( is => 'rw', required => 0, isa => 'Str' );
18
has 'finetype'              => ( is => 'rw', required => 0, isa => 'Str' );
19
has 'bulk'                  => ( is => 'rw', required => 0, isa => 'Int' );
20
has 'enrolmentfee'          => ( is => 'rw', required => 0, isa => 'Str' );
21
has 'overduenoticerequired' => ( is => 'rw', required => 0, isa => 'Int' );
22
has 'issuelimit'            => ( is => 'rw', required => 0, isa => 'Str' ); #FIXME : this column is unused : not filled by admin/categories or used anywhere
23
has 'reservefee'            => ( is => 'rw', required => 0, isa => 'Str' );
24
has 'hidelostitems' =>
25
  ( is => 'rw', required => 0, isa => 'Str', default => 0 );
26
has 'category_type' => ( is => 'rw', required => 0, isa => 'Str' );
27
28
# FIXME : we need a package to read the schema and connect to the database
29
my $schema = Koha::Schema->connect(
30
    'dbi:mysql:dbname=' . C4::Context->config("database"),
31
    C4::Context->config("user"),
32
    C4::Context->config("pass"),
33
    {
34
        AutoCommit => 1,
35
36
        #      cursor_class => 'DBIx::Class::Cursor::Cached', # FIXME does not work, ask why on a mailing list of IRC
37
        mysql_enable_utf8 => 1,    # REQUIRED to handle properly utf8
38
    },
39
);
40
41
sub create {
42
    my ($self) = @_;
43
    $schema->resultset('Category')
44
      ->create( # FIXME : the issuelimit field is unused, remove the grep once the column has been removed from the database
45
        { map { $_ => $self->$_ } grep {$_ ne 'issuelimit'} $schema->source('Category')->columns } );
46
}
47
48
sub read {
49
    my ( $self, $category ) = @_;
50
    return $schema->resultset('Category')->search(
51
        $category,
52
        {
53
            cache_for    => 300,
54
            result_class => 'DBIx::Class::ResultClass::HashRefInflator' # HashRefInflator return an array of hashref, which is what we usually need
55
                                                                        # FIXME : improve the read to return a Category object when needed
56
                                                                        # defaulting to HashRefInflator sounds like a good idea
57
        }
58
    );
59
}
60
61
sub update {
62
    my ( $self, $category ) = @_;
63
    return $schema->resultset('Category')
64
      ->search( { 'categorycode' => $category->{categorycode} } )
65
      ->update($category);
66
}
67
68
sub delete {
69
    my ( $self, $category ) = @_;
70
    $schema->resultset('Category')->search($category)->delete;
71
}
72
73
sub columns {
74
    my ( $self, $category ) = @_;
75
    return $schema->source('Category')->columns;
76
}
(-)a/Koha/DataObject/Category.pm (+5 lines)
Line 0 Link Here
1
package Koha::DataObject::Category;
2
3
use Modern::Perl;
4
use Moose;
5
extends (qw(Koha::DB::Category));
(-)a/admin/categorie.pl (-187 / +118 lines)
Lines 1-7 Link Here
1
#!/usr/bin/perl
1
#!/usr/bin/perl
2
2
3
#script to administer the categories table
3
#script to administer the categories table
4
#written 20/02/2002 by paul.poulain@free.fr
4
# Copyright 2000-2002 Katipo Communications
5
# Copyright 2002, 2012 BibLibre ()paul.poulain@biblibre.com)
5
6
6
# ALGO :
7
# ALGO :
7
# this script use an $op to know what to do.
8
# this script use an $op to know what to do.
Lines 18-25 Link Here
18
# if $op=delete_confirm
19
# if $op=delete_confirm
19
#	- we delete the record having primkey=$primkey
20
#	- we delete the record having primkey=$primkey
20
21
21
22
# Copyright 2000-2002 Katipo Communications
23
#
22
#
24
# This file is part of Koha.
23
# This file is part of Koha.
25
#
24
#
Lines 37-259 Link Here
37
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
36
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
38
37
39
use strict;
38
use strict;
39
40
#use warnings; FIXME - Bug 2505
40
#use warnings; FIXME - Bug 2505
41
use CGI;
41
use CGI;
42
use C4::Context;
42
use C4::Context;
43
use C4::Auth;
43
use C4::Auth;
44
use C4::Output;
44
use C4::Output;
45
use C4::Dates;
45
#use C4::Dates;
46
use C4::Form::MessagingPreferences;
46
use C4::Form::MessagingPreferences;
47
47
use Koha::BusinessLogic::Category;
48
sub StringSearch  {
48
use Koha::BusinessLogic::Borrower;
49
	my ($searchstring,$type)=@_;
50
	my $dbh = C4::Context->dbh;
51
	$searchstring=~ s/\'/\\\'/g;
52
	my @data=split(' ',$searchstring);
53
	my $count=@data;
54
	my $sth=$dbh->prepare("Select * from categories where (description like ?) order by category_type,description,categorycode");
55
	$sth->execute("$data[0]%");
56
	my @results;
57
	while (my $data=$sth->fetchrow_hashref){
58
	push(@results,$data);
59
	}
60
	#  $sth->execute;
61
	$sth->finish;
62
	return (scalar(@results),\@results);
63
}
64
49
65
my $input = new CGI;
50
my $input = new CGI;
66
my $searchfield=$input->param('description');
51
my $searchfield=$input->param('description'); # FIXME : for categories, this is useless (datatable handle that much better)
67
my $script_name="/cgi-bin/koha/admin/categorie.pl";
52
my $script_name="/cgi-bin/koha/admin/categorie.pl";
68
my $categorycode=$input->param('categorycode');
53
my $categorycode=$input->param('categorycode');
69
my $op = $input->param('op');
54
my $op = $input->param('op');
70
55
71
my ($template, $loggedinuser, $cookie)
56
my ($template, $loggedinuser, $cookie)
72
    = get_template_and_user({template_name => "admin/categorie.tmpl",
57
    = get_template_and_user({template_name => "admin/categorie.tmpl",
73
			     query => $input,
58
                            query => $input,
74
			     type => "intranet",
59
                            type => "intranet",
75
			     authnotrequired => 0,
60
                            authnotrequired => 0,
76
			     flagsrequired => {parameters => 1},
61
                            flagsrequired => { parameters => 1 },
77
			     debug => 1,
62
                            debug => 1,
78
			     });
63
                            });
79
80
64
81
$template->param(script_name => $script_name,
65
$template->param(script_name => $script_name,
82
		 categorycode => $categorycode,
66
                    categorycode => $categorycode,
83
		 searchfield => $searchfield);
67
                    searchfield  => $searchfield
84
68
);
85
69
86
################## ADD_FORM ##################################
70
################## ADD_FORM ##################################
87
# called by default. Used to create form to add or  modify a record
71
# called by default. Used to create form to add or  modify a record
88
if ($op eq 'add_form') {
72
if ($op eq 'add_form') {
89
	$template->param(add_form => 1);
73
    $template->param(add_form => 1);
90
	
91
	#---- if primkey exists, it's a modify action, so read values to modify...
92
	my $data;
93
	if ($categorycode) {
94
		my $dbh = C4::Context->dbh;
95
		my $sth=$dbh->prepare("select categorycode,description,enrolmentperiod,enrolmentperioddate,upperagelimit,dateofbirthrequired,enrolmentfee,issuelimit,reservefee,hidelostitems,overduenoticerequired,category_type from categories where categorycode=?");
96
		$sth->execute($categorycode);
97
		$data=$sth->fetchrow_hashref;
98
		$sth->finish;
99
	}
100
101
    $data->{'enrolmentperioddate'} = undef if ($data->{'enrolmentperioddate'} eq '0000-00-00');
102
74
103
	$template->param(description        => $data->{'description'},
75
    #---- if primkey exists, it's a modify action, so read values to modify...
104
				enrolmentperiod         => $data->{'enrolmentperiod'},
76
    my $data;
105
				enrolmentperioddate     => C4::Dates::format_date($data->{'enrolmentperioddate'}),
77
    if ($categorycode) {
106
				upperagelimit           => $data->{'upperagelimit'},
78
        $data = Koha::BusinessLogic::Category->read({'categorycode' => $categorycode})->first;
107
				dateofbirthrequired     => $data->{'dateofbirthrequired'},
108
				enrolmentfee            => sprintf("%.2f",$data->{'enrolmentfee'}),
109
				overduenoticerequired   => $data->{'overduenoticerequired'},
110
				issuelimit              => $data->{'issuelimit'},
111
				reservefee              => sprintf("%.2f",$data->{'reservefee'}),
112
                                hidelostitems           => $data->{'hidelostitems'},
113
				category_type           => $data->{'category_type'},
114
				DHTMLcalendar_dateformat => C4::Dates->DHTMLcalendar(),
115
                SMSSendDriver => C4::Context->preference("SMSSendDriver"),
116
                TalkingTechItivaPhone => C4::Context->preference("TalkingTechItivaPhoneNotification"),
117
				"type_".$data->{'category_type'} => 1,
118
				);
119
    if (C4::Context->preference('EnhancedMessagingPreferences')) {
120
        C4::Form::MessagingPreferences::set_form_values({ categorycode => $categorycode } , $template);
121
    }
79
    }
122
													# END $OP eq ADD_FORM
80
    $template->param(
81
        %{$data},
82
        DHTMLcalendar_dateformat => C4::Dates->DHTMLcalendar(),
83
        SMSSendDriver            => C4::Context->preference("SMSSendDriver"),
84
        TalkingTechItivaPhone =>
85
          C4::Context->preference("TalkingTechItivaPhoneNotification"),
86
    );
87
    if ( C4::Context->preference('EnhancedMessagingPreferences') ) {
88
        C4::Form::MessagingPreferences::set_form_values(
89
            { categorycode => $categorycode }, $template );
90
    }
91
92
    # END $OP eq ADD_FORM
123
################## ADD_VALIDATE ##################################
93
################## ADD_VALIDATE ##################################
124
# called by add_form, used to insert/modify data in DB
94
# called by add_form, used to insert/modify data in DB
125
} elsif ($op eq 'add_validate') {
95
} elsif ($op eq 'add_validate') {
126
	$template->param(add_validate => 1);
96
    $template->param( add_validate => 1 );
127
	my $is_a_modif = $input->param("is_a_modif");
97
    if ( $input->param('enrolmentperioddate') ) {
128
	my $dbh = C4::Context->dbh;
98
        $input->param(
129
	if($input->param('enrolmentperioddate')){
99
            'enrolmentperioddate' => C4::Dates::format_date_in_iso(
130
	    $input->param('enrolmentperioddate' => C4::Dates::format_date_in_iso($input->param('enrolmentperioddate')) );
100
                $input->param('enrolmentperioddate')
131
	}
101
            )
132
	
102
        );
133
	if ($is_a_modif) {
134
            my $sth=$dbh->prepare("UPDATE categories SET description=?,enrolmentperiod=?, enrolmentperioddate=?,upperagelimit=?,dateofbirthrequired=?,enrolmentfee=?,reservefee=?,hidelostitems=?,overduenoticerequired=?,category_type=? WHERE categorycode=?");
135
            $sth->execute(map { $input->param($_) } ('description','enrolmentperiod','enrolmentperioddate','upperagelimit','dateofbirthrequired','enrolmentfee','reservefee','hidelostitems','overduenoticerequired','category_type','categorycode'));
136
            $sth->finish;
137
        } else {
138
            my $sth=$dbh->prepare("INSERT INTO categories  (categorycode,description,enrolmentperiod,enrolmentperioddate,upperagelimit,dateofbirthrequired,enrolmentfee,reservefee,hidelostitems,overduenoticerequired,category_type) values (?,?,?,?,?,?,?,?,?,?,?)");
139
            $sth->execute(map { $input->param($_) } ('categorycode','description','enrolmentperiod','enrolmentperioddate','upperagelimit','dateofbirthrequired','enrolmentfee','reservefee','hidelostitems','overduenoticerequired','category_type'));
140
            $sth->finish;
141
        }
142
    if (C4::Context->preference('EnhancedMessagingPreferences')) {
143
        C4::Form::MessagingPreferences::handle_form_action($input, 
144
                                                           { categorycode => $input->param('categorycode') }, $template);
145
    }
103
    }
146
	print "Content-Type: text/html\n\n<META HTTP-EQUIV=Refresh CONTENT=\"0; URL=categorie.pl\"></html>";
147
	exit;
148
104
149
													# END $OP eq ADD_VALIDATE
105
    if ($input->param("is_a_modif")) {
150
################## DELETE_CONFIRM ##################################
106
        Koha::BusinessLogic::Category->update({ map { $_ => $input->param($_) } grep {$_ ne 'issuelimit'} # FIXME : remove grep when issuelimit has been removed from the database
151
# called by default form, used to confirm deletion of data in DB
107
              Koha::BusinessLogic::Category->columns });
152
} elsif ($op eq 'delete_confirm') {
108
    }
153
	$template->param(delete_confirm => 1);
109
    else {
110
        Koha::BusinessLogic::Category->new({ map { $_ => $input->param($_) } grep {$_ ne 'issuelimit'} # FIXME : remove grep when issuelimit has been removed from the database
111
              Koha::BusinessLogic::Category->columns })->create;
112
    }
113
    if ( C4::Context->preference('EnhancedMessagingPreferences') ) {
114
        C4::Form::MessagingPreferences::handle_form_action( $input,
115
            { categorycode => $input->param('categorycode') }, $template );
116
    }
117
    print
118
"Content-Type: text/html\n\n<META HTTP-EQUIV=Refresh CONTENT=\"0; URL=categorie.pl\"></html>";
119
    exit;
154
120
155
	my $dbh = C4::Context->dbh;
121
    # END $OP eq ADD_VALIDATE
156
	my $sth=$dbh->prepare("select count(*) as total from borrowers where categorycode=?");
122
################## DELETE_CONFIRM ##################################
157
	$sth->execute($categorycode);
123
    # called by default form, used to confirm deletion of data in DB
158
	my $total = $sth->fetchrow_hashref;
124
}
159
	$sth->finish;
125
elsif ( $op eq 'delete_confirm' ) {
160
	$template->param(total => $total->{'total'});
126
    $template->param( delete_confirm => 1 );
161
	
162
	my $sth2=$dbh->prepare("select categorycode,description,enrolmentperiod,enrolmentperioddate,upperagelimit,dateofbirthrequired,enrolmentfee,issuelimit,reservefee,hidelostitems,overduenoticerequired,category_type from categories where categorycode=?");
163
	$sth2->execute($categorycode);
164
	my $data=$sth2->fetchrow_hashref;
165
	$sth2->finish;
166
	if ($total->{'total'} >0) {
167
		$template->param(totalgtzero => 1);
168
	}
169
127
170
        $template->param(       description             => $data->{'description'},
128
    # Retrieve how many borrowers are using this categorycode
171
                                enrolmentperiod         => $data->{'enrolmentperiod'},
129
    # retrieving a scalar result in retrieving the number of lines
172
                                enrolmentperioddate     => C4::Dates::format_date($data->{'enrolmentperioddate'}),
130
    # FIXME = this is not a real SQL count(*), so it's inefficient. A specific method in Koha::Business::Borrowers for that is needed !
173
                                upperagelimit           => $data->{'upperagelimit'},
131
    my $total = Koha::BusinessLogic::Borrower->read({'me.categorycode' => $categorycode })->all;
174
                                dateofbirthrequired     => $data->{'dateofbirthrequired'},
132
    $template->param( total => $total);
175
                                enrolmentfee            =>  sprintf("%.2f",$data->{'enrolmentfee'}),
176
                                overduenoticerequired   => $data->{'overduenoticerequired'},
177
                                issuelimit              => $data->{'issuelimit'},
178
                                reservefee              =>  sprintf("%.2f",$data->{'reservefee'}),
179
                                hidelostitems           => $data->{'hidelostitems'},
180
                                category_type           => $data->{'category_type'},
181
                                );
182
													# END $OP eq DELETE_CONFIRM
183
################## DELETE_CONFIRMED ##################################
184
# called by delete_confirm, used to effectively confirm deletion of data in DB
185
} elsif ($op eq 'delete_confirmed') {
186
	$template->param(delete_confirmed => 1);
187
	my $dbh = C4::Context->dbh;
188
	my $categorycode=uc($input->param('categorycode'));
189
	my $sth=$dbh->prepare("delete from categories where categorycode=?");
190
	$sth->execute($categorycode);
191
	$sth->finish;
192
	print "Content-Type: text/html\n\n<META HTTP-EQUIV=Refresh CONTENT=\"0; URL=categorie.pl\"></html>";
193
	exit;
194
133
195
													# END $OP eq DELETE_CONFIRMED
134
    my $data = Koha::BusinessLogic::Category->read({'categorycode' => $categorycode})->first;
196
} else { # DEFAULT
197
	$template->param(else => 1);
198
	my @loop;
199
	my ($count,$results)=StringSearch($searchfield,'web');
200
	for (my $i=0; $i < $count; $i++){
201
		my %row = (
202
		        categorycode            => $results->[$i]{'categorycode'},
203
				description             => $results->[$i]{'description'},
204
				enrolmentperiod         => $results->[$i]{'enrolmentperiod'},
205
				enrolmentperioddate     => C4::Dates::format_date($results->[$i]{'enrolmentperioddate'}),
206
				upperagelimit           => $results->[$i]{'upperagelimit'},
207
				dateofbirthrequired     => $results->[$i]{'dateofbirthrequired'},
208
				enrolmentfee            => sprintf("%.2f",$results->[$i]{'enrolmentfee'}),
209
				overduenoticerequired   => $results->[$i]{'overduenoticerequired'},
210
				issuelimit              => $results->[$i]{'issuelimit'},
211
				reservefee              => sprintf("%.2f",$results->[$i]{'reservefee'}),
212
                                hidelostitems           => $results->[$i]{'hidelostitems'},
213
				category_type           => $results->[$i]{'category_type'},
214
				"type_".$results->[$i]{'category_type'} => 1);
215
        if (C4::Context->preference('EnhancedMessagingPreferences')) {
216
            my $brief_prefs = _get_brief_messaging_prefs($results->[$i]{'categorycode'});
217
            $row{messaging_prefs} = $brief_prefs if @$brief_prefs;
218
        }
219
		push @loop, \%row;
220
	}
221
	$template->param(loop => \@loop);
222
	# check that I (institution) and C (child) exists. otherwise => warning to the user
223
	my $dbh = C4::Context->dbh;
224
	my $sth=$dbh->prepare("select category_type from categories where category_type='C'");
225
	$sth->execute;
226
	my ($categoryChild) = $sth->fetchrow;
227
	$template->param(categoryChild => $categoryChild);
228
	$sth=$dbh->prepare("select category_type from categories where category_type='I'");
229
	$sth->execute;
230
	my ($categoryInstitution) = $sth->fetchrow;
231
	$template->param(categoryInstitution => $categoryInstitution);
232
	$sth->finish;
233
135
136
    $template->param(
137
        %{$data}
138
    );
234
139
235
} #---- END $OP eq DEFAULT
140
    # END $OP eq DELETE_CONFIRM
141
################## DELETE_CONFIRMED ##################################
142
  # called by delete_confirm, used to effectively confirm deletion of data in DB
143
}
144
elsif ( $op eq 'delete_confirmed' ) {
145
    $template->param( delete_confirmed => 1 );
146
    Koha::BusinessLogic::Category->delete(
147
        { 'categorycode' => $categorycode } );
148
    print
149
"Content-Type: text/html\n\n<META HTTP-EQUIV=Refresh CONTENT=\"0; URL=categorie.pl\"></html>";
150
    exit;
151
152
    # END $OP eq DELETE_CONFIRMED
153
}
154
else {    # DEFAULT
155
    my @loop = Koha::BusinessLogic::Category->read()->all;
156
    $template->param(
157
        else => 1,
158
        loop => \@loop,
159
    );
160
161
}    #---- END $OP eq DEFAULT
236
output_html_with_http_headers $input, $cookie, $template->output;
162
output_html_with_http_headers $input, $cookie, $template->output;
237
163
238
exit 0;
164
exit 0;
239
165
240
sub _get_brief_messaging_prefs {
166
# FIXME : should not be here but in a Koha::BusinessLogic Messaging package
241
    my $categorycode = shift;
167
#sub _get_brief_messaging_prefs {
242
    my $messaging_options = C4::Members::Messaging::GetMessagingOptions();
168
#    my $categorycode      = shift;
243
    my $results = [];
169
#    my $messaging_options = C4::Members::Messaging::GetMessagingOptions();
244
    PREF: foreach my $option ( @$messaging_options ) {
170
#    my $results           = [];
245
        my $pref = C4::Members::Messaging::GetMessagingPreferences( { categorycode => $categorycode,
171
#  PREF: foreach my $option (@$messaging_options) {
246
                                                                    message_name       => $option->{'message_name'} } );
172
#        my $pref = C4::Members::Messaging::GetMessagingPreferences(
247
        next unless  $pref->{'transports'};
173
#            {
248
        my $brief_pref = {
174
#                categorycode => $categorycode,
249
            message_attribute_id    => $option->{'message_attribute_id'},
175
#                message_name => $option->{'message_name'}
250
            message_name            => $option->{'message_name'},
176
#            }
251
            $option->{'message_name'} => 1
177
#        );
252
        };
178
#        next unless $pref->{'transports'};
253
        foreach my $transport ( keys %{$pref->{'transports'}} ) {
179
#        my $brief_pref = {
254
            push @{ $brief_pref->{'transports'} }, { transport => $transport };
180
#            message_attribute_id      => $option->{'message_attribute_id'},
255
        }
181
#            message_name              => $option->{'message_name'},
256
        push @$results, $brief_pref;
182
#            $option->{'message_name'} => 1
257
    }
183
#        };
258
    return $results;
184
#        foreach my $transport ( keys %{ $pref->{'transports'} } ) {
259
}
185
#            push @{ $brief_pref->{'transports'} }, { transport => $transport };
186
#        }
187
#        push @$results, $brief_pref;
188
#    }
189
#    return $results;
190
#}
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/categorie.tt (-17 / +17 lines)
Lines 1-7 Link Here
1
[% INCLUDE 'doc-head-open.inc' %]
1
[% INCLUDE 'doc-head-open.inc' %]
2
<title>Koha &rsaquo; Administration &rsaquo; Patron categories &rsaquo; [% IF ( add_form ) %][% IF ( categorycode ) %]Modify category '[% categorycode |html %]'[% ELSE %]New category[% END %][% END %]
2
<title>Koha &rsaquo; Administration &rsaquo; Patron categories &rsaquo; [% IF ( add_form ) %][% IF ( categorycode ) %]Modify category '[% categorycode |html %]'[% ELSE %]New category[% END %][% END %]
3
[% IF ( add_validate ) %]Data recorded[% END %]
3
[% IF ( add_validate ) %]Data recorded[% END %]
4
[% IF ( delete_confirm ) %][% IF ( totalgtzero ) %]Cannot delete: category [% categorycode |html %] in use[% ELSE %]Confirm deletion of category '[% categorycode |html %]'[% END %][% END %]
4
[% IF ( delete_confirm ) %][% IF total >0 %]Cannot delete: category [% categorycode |html %] in use[% ELSE %]Confirm deletion of category '[% categorycode |html %]'[% END %][% END %]
5
[% IF ( delete_confirmed ) %]Category deleted[% END %]</title>
5
[% IF ( delete_confirmed ) %]Category deleted[% END %]</title>
6
[% INCLUDE 'doc-head-close.inc' %]
6
[% INCLUDE 'doc-head-close.inc' %]
7
<script type="text/javascript" src="[% themelang %]/lib/jquery/plugins/jquery.tablesorter.min.js"></script>
7
<script type="text/javascript" src="[% themelang %]/lib/jquery/plugins/jquery.tablesorter.min.js"></script>
Lines 95-101 Link Here
95
95
96
<div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> &rsaquo; <a href="/cgi-bin/koha/admin/admin-home.pl">Administration</a> &rsaquo; [% IF ( add_form ) %] <a href="/cgi-bin/koha/admin/categorie.pl">Patron categories</a> &rsaquo; [% IF ( categorycode ) %]Modify category '[% categorycode |html %]'[% ELSE %]New category[% END %][% END %]
96
<div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> &rsaquo; <a href="/cgi-bin/koha/admin/admin-home.pl">Administration</a> &rsaquo; [% IF ( add_form ) %] <a href="/cgi-bin/koha/admin/categorie.pl">Patron categories</a> &rsaquo; [% IF ( categorycode ) %]Modify category '[% categorycode |html %]'[% ELSE %]New category[% END %][% END %]
97
[% IF ( add_validate ) %] <a href="/cgi-bin/koha/admin/categorie.pl">Patron categories</a> &rsaquo; Data recorded[% END %]
97
[% IF ( add_validate ) %] <a href="/cgi-bin/koha/admin/categorie.pl">Patron categories</a> &rsaquo; Data recorded[% END %]
98
[% IF ( delete_confirm ) %] <a href="/cgi-bin/koha/admin/categorie.pl">Patron categories</a> &rsaquo; [% IF ( totalgtzero ) %]Cannot delete: Category [% categorycode |html %] in use[% ELSE %]Confirm deletion of category '[% categorycode |html %]'[% END %][% END %]
98
[% IF ( delete_confirm ) %] <a href="/cgi-bin/koha/admin/categorie.pl">Patron categories</a> &rsaquo; [% IF total > 0 %]Cannot delete: Category [% categorycode |html %] in use[% ELSE %]Confirm deletion of category '[% categorycode |html %]'[% END %][% END %]
99
[% IF ( delete_confirmed ) %] <a href="/cgi-bin/koha/admin/categorie.pl">Patron categories</a> &rsaquo; Category deleted[% END %]
99
[% IF ( delete_confirmed ) %] <a href="/cgi-bin/koha/admin/categorie.pl">Patron categories</a> &rsaquo; Category deleted[% END %]
100
[% IF ( else ) %]Patron categories[% END %]</div>
100
[% IF ( else ) %]Patron categories[% END %]</div>
101
101
Lines 172-183 Link Here
172
	<li><label for="reservefee">Hold fee: </label><input type="text" name="reservefee" id="reservefee" size="6" value="[% reservefee %]" /></li>
172
	<li><label for="reservefee">Hold fee: </label><input type="text" name="reservefee" id="reservefee" size="6" value="[% reservefee %]" /></li>
173
	<li><label for="category_type">Category type: </label> <select name="category_type" id="category_type">
173
	<li><label for="category_type">Category type: </label> <select name="category_type" id="category_type">
174
                        [% IF ( type_n ) %]<option value="" selected="selected">Select a category type</option>[% ELSE %]<option value="">Select a category type</option>[% END %]
174
                        [% IF ( type_n ) %]<option value="" selected="selected">Select a category type</option>[% ELSE %]<option value="">Select a category type</option>[% END %]
175
					[% IF ( type_A ) %]<option value="A" selected="selected">Adult</option>[% ELSE %]<option value="A">Adult</option>[% END %]
175
					[% IF category_type == 'A' %]<option value="A" selected="selected">Adult</option>[% ELSE %]<option value="A">Adult</option>[% END %]
176
					[% IF ( type_C ) %]<option value="C" selected="selected">Child</option>[% ELSE %]<option value="C">Child</option>[% END %]
176
					[% IF ( category_type == "C" ) %]<option value="C" selected="selected">Child</option>[% ELSE %]<option value="C">Child</option>[% END %]
177
					[% IF ( type_S ) %]<option value="S" selected="selected">Staff</option>[% ELSE %]<option value="S">Staff</option>[% END %]
177
					[% IF ( category_type == "S" ) %]<option value="S" selected="selected">Staff</option>[% ELSE %]<option value="S">Staff</option>[% END %]
178
					[% IF ( type_I ) %]<option value="I" selected="selected">Organization</option>[% ELSE %]<option value="I">Organization</option>[% END %]
178
					[% IF ( category_type == "I" ) %]<option value="I" selected="selected">Organization</option>[% ELSE %]<option value="I">Organization</option>[% END %]
179
					[% IF ( type_P ) %]<option value="P" selected="selected">Professional</option>[% ELSE %]<option value="P">Professional</option>[% END %]
179
					[% IF ( category_type == "P" ) %]<option value="P" selected="selected">Professional</option>[% ELSE %]<option value="P">Professional</option>[% END %]
180
					[% IF ( type_X ) %]<option value="X" selected="selected">Statistical</option>[% ELSE %]<option value="X">Statistical</option>[% END %]
180
					[% IF ( category_type == "X" ) %]<option value="X" selected="selected">Statistical</option>[% ELSE %]<option value="X">Statistical</option>[% END %]
181
					</select>
181
					</select>
182
	</li></ol>
182
	</li></ol>
183
</fieldset>
183
</fieldset>
Lines 205-215 Link Here
205
	
205
	
206
    	<form action="[% script_name %]" method="post">
206
    	<form action="[% script_name %]" method="post">
207
	<fieldset><legend>    	
207
	<fieldset><legend>    	
208
	[% IF ( totalgtzero ) %]
208
	[% IF total >0 %]
209
	Category [% categorycode |html %] is in use.  Deletion not possible![% ELSE %]
209
	Category [% categorycode |html %] is in use.  Deletion not possible![% ELSE %]
210
Confirm deletion of category [% categorycode |html %][% END %]</legend>
210
Confirm deletion of category [% categorycode |html %][% END %]</legend>
211
211
212
[% IF ( totalgtzero ) %]<div class="dialog alert"><strong>This category is used [% total %] times</strong>. Deletion not possible</div>[% END %]
212
[% IF total >0 %]<div class="dialog alert"><strong>This category is used [% total %] times</strong>. Deletion not possible</div>[% END %]
213
	<table>
213
	<table>
214
	<tr><th scope="row">Category code: </th><td>[% categorycode |html %]</td></tr>
214
	<tr><th scope="row">Category code: </th><td>[% categorycode |html %]</td></tr>
215
	<tr><th scope="row">Description: </th><td>[% description |html %]</td></tr>
215
	<tr><th scope="row">Description: </th><td>[% description |html %]</td></tr>
Lines 229-235 Confirm deletion of category [% categorycode |html %][% END %]</legend> Link Here
229
	<tr><th scope="row">Lost items in staff client</th><td>[% IF ( hidelostitems ) %]Hidden by default[% ELSE %]Shown[% END %]</td></tr>
229
	<tr><th scope="row">Lost items in staff client</th><td>[% IF ( hidelostitems ) %]Hidden by default[% ELSE %]Shown[% END %]</td></tr>
230
	<tr><th scope="row">Hold fee: </th><td>[% reservefee %]</td></tr>
230
	<tr><th scope="row">Hold fee: </th><td>[% reservefee %]</td></tr>
231
</table>
231
</table>
232
		<fieldset class="action">[% IF ( totalgtzero ) %]
232
		<fieldset class="action">[% IF total >0 %]
233
<input type="submit" value="OK" /></form>
233
<input type="submit" value="OK" /></form>
234
		[% ELSE %]
234
		[% ELSE %]
235
			<input type="hidden" name="op" value="delete_confirmed" />
235
			<input type="hidden" name="op" value="delete_confirmed" />
Lines 301-312 Confirm deletion of category [% categorycode |html %][% END %]</legend> Link Here
301
                            <a href="[% loo.script_name %]?op=add_form&amp;categorycode=[% loo.categorycode |url %]">[% loo.description |html %]</a>
301
                            <a href="[% loo.script_name %]?op=add_form&amp;categorycode=[% loo.categorycode |url %]">[% loo.description |html %]</a>
302
                        </td>
302
                        </td>
303
                        <td>
303
                        <td>
304
                            [% IF ( loo.type_A ) %]Adult[% END %]
304
                            [% IF loo.category_type == "A" %]Adult[% END %]
305
                            [% IF ( loo.type_C ) %]Child[% END %]
305
                            [% IF loo.category_type == "C" %]Child[% END %]
306
                            [% IF ( loo.type_P ) %]Prof.[% END %]
306
                            [% IF loo.category_type == "P" %]Prof.[% END %]
307
                            [% IF ( loo.type_I ) %]Org.[% END %]
307
                            [% IF loo.category_type == "I" %]Org.[% END %]
308
                            [% IF ( loo.type_S ) %]Staff[% END %]
308
                            [% IF loo.category_type == "S" %]Staff[% END %]
309
                            [% IF ( loo.type_X ) %]Statistical[% END %]
309
                            [% IF loo.category_type == "X" %]Statistical[% END %]
310
                        </td>
310
                        </td>
311
                        <td>
311
                        <td>
312
                        	[% IF ( loo.enrolmentperiod ) %]
312
                        	[% IF ( loo.enrolmentperiod ) %]
(-)a/t/db_dependent/lib/KohaTest/Koha/BusinessLogic/Category.t (-1 / +24 lines)
Line 0 Link Here
0
- 
1
#!/usr/bin/perl
2
3
use v5.10.0;
4
use Modern::Perl;
5
6
use Test::More tests => 5;
7
8
BEGIN {
9
    use_ok('Koha::BusinessLogic::Category', 'Loading Koha::BusinessLogic::Category OK');
10
}
11
12
# CREATE
13
my $category = Koha::BusinessLogic::Category->new({'categorycode' => 'TEST_C','description' => 'CATEGORY TEST NAME', 'category_type' => 'A'});
14
ok($category->create->id eq 'TEST_C','Creating a category OK');
15
16
# READ
17
ok(Koha::BusinessLogic::Category->read({'categorycode' => 'TEST_C'})->first->description eq 'CATEGORY TEST NAME','Reading a category OK');
18
19
# UPDATE
20
Koha::BusinessLogic::Category->update({'categorycode' => 'TEST_C','description' => 'TEST UPDATED'});
21
ok(Koha::BusinessLogic::Category->read({'categorycode' => 'TEST_C'})->first->description eq 'TEST UPDATED','Updating a category OK');
22
23
# DELETE
24
ok(Koha::BusinessLogic::Category->delete({'categorycode' => 'TEST_C'}),'Deleting a category OK');

Return to bug 8309