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

(-)a/C4/Auth.pm (+2 lines)
Lines 333-338 sub get_template_and_user { Link Here
333
    );
333
    );
334
    if ( $in->{'type'} eq "intranet" ) {
334
    if ( $in->{'type'} eq "intranet" ) {
335
        $template->param(
335
        $template->param(
336
            useHouseboundModule         => C4::Context->preference("useHouseboundModule"),
337
            AmazonContent               => C4::Context->preference("AmazonContent"),
336
            AmazonCoverImages           => C4::Context->preference("AmazonCoverImages"),
338
            AmazonCoverImages           => C4::Context->preference("AmazonCoverImages"),
337
            AutoLocation                => C4::Context->preference("AutoLocation"),
339
            AutoLocation                => C4::Context->preference("AutoLocation"),
338
            "BiblioDefaultView".C4::Context->preference("IntranetBiblioDefaultView") => 1,
340
            "BiblioDefaultView".C4::Context->preference("IntranetBiblioDefaultView") => 1,
(-)a/C4/Housebound.pm (+245 lines)
Line 0 Link Here
1
package C4::Housebound;
2
3
# Copyright 2011 Mark Gavillet
4
#
5
# This file is part of Koha.
6
#
7
# Koha is free software; you can redistribute it and/or modify it under the
8
# terms of the GNU General Public License as published by the Free Software
9
# Foundation; either version 2 of the License, or (at your option) any later
10
# version.
11
#
12
# Koha is distributed in the hope that it will be useful, but WITHOUT ANY
13
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
14
# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
15
#
16
# You should have received a copy of the GNU General Public License along
17
# with Koha; if not, write to the Free Software Foundation, Inc.,
18
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19
20
use strict;
21
use warnings;
22
use C4::Context;
23
use parent qw(Exporter);
24
25
our $VERSION = 3.02;
26
our $debug   = $ENV{DEBUG} || 0;
27
our @EXPORT  = qw(
28
  GetHouseboundDetails
29
  CreateHouseboundDetails
30
  UpdateHouseboundDetails
31
  GetCurrentHouseboundInstanceList
32
  GetHouseboundInstanceDetails
33
  UpdateHouseboundInstanceDetails
34
  CreateHouseboundInstanceDetails
35
  DeleteHouseboundInstanceDetails
36
  GetVolunteerNameAndID
37
  GetVolunteerList
38
);
39
40
=head1 NAME
41
42
C4::Housebound - Perl Module containing functions for housebound patrons
43
44
=head1 SYNOPSIS
45
46
use C4::Housebound;
47
48
=head1 DESCRIPTION
49
50
This module contains routines for adding, modifying and deleting housebound details for patrons, and instances of item delivery by volunteers
51
52
=head1 FUNCTIONS
53
54
=over 2
55
56
=item GetHouseboundDetails
57
58
  ($hbnumber, $day, $frequency, $borrowernumber, $Itype_quant, $Item_subject, $Item_authors, $referral, $notes) = &SearchMember($borrowernumber);
59
60
=back
61
62
Values returned
63
$hbnumber 			- the id of the database record in table housebound
64
$day				- preferred day of the week for delivery
65
$frequency			- pattern of delivery (e.g. weeks 1/3, week 4, etc.)
66
$borrowernumber		- borrowernumber that is fed into the function, returned for convenience
67
$Itype_quant		- one or more values from the list of loanable Itypes (e.g. 2 BKS, 1 DVD, etc.)
68
$Item_subject		- one or more values defining subjects the borrower is interested in
69
$Item_authors		- one or more values defining authors the borrower is interested in
70
$referral			- person or organisation that referred this borrower
71
$notes				- freetext notes containing useful information about the patron (e.g. beware of the dog!)
72
73
=cut
74
75
sub GetHouseboundDetails {
76
    my ($borrowernumber) = @_;
77
    my $dbh = C4::Context->dbh;
78
    my $query;
79
    my $sth;
80
    if ($borrowernumber) {
81
        $sth = $dbh->prepare("select * from housebound where borrowernumber=?");
82
        $sth->execute($borrowernumber);
83
        my $housebound = $sth->fetchrow_hashref;
84
        return $housebound;
85
    }
86
    return;
87
}
88
89
sub CreateHouseboundDetails {
90
    my ( $borrowernumber, $day, $frequency, $Itype_quant, $Item_subject,
91
        $Item_authors, $referral, $notes )
92
      = @_;
93
    my $dbh = C4::Context->dbh;
94
    my $query;
95
    my $sth;
96
    if ($borrowernumber) {
97
        $sth = $dbh->prepare(
98
"insert into housebound (day, frequency, borrowernumber, Itype_quant, Item_subject, Item_authors, referral, notes) values (?,?,?,?,?,?,?,?)"
99
        );
100
        $sth->execute( $day, $frequency, $borrowernumber, $Itype_quant,
101
            $Item_subject, $Item_authors, $referral, $notes );
102
    }
103
    return;
104
}
105
106
sub UpdateHouseboundDetails {
107
    my ($hbnumber,     $borrowernumber, $day,
108
        $frequency,    $Itype_quant,    $Item_subject,
109
        $Item_authors, $referral,       $notes
110
    ) = @_;
111
    my $dbh = C4::Context->dbh;
112
    my $query;
113
    my $sth;
114
    if ($hbnumber) {
115
        $sth = $dbh->prepare(
116
"update housebound set day=?,frequency=?,borrowernumber=?,Itype_quant=?,Item_subject=?,Item_authors=?,referral=?,notes=? where hbnumber=?"
117
        );
118
        $sth->execute(
119
            $day,         $frequency,    $borrowernumber,
120
            $Itype_quant, $Item_subject, $Item_authors,
121
            $referral,    $notes,        $hbnumber
122
        );
123
    }
124
    return;
125
}
126
127
sub GetCurrentHouseboundInstanceList {
128
    my ($borrowernumber) = @_;
129
    my $dbh = C4::Context->dbh;
130
    my $query;
131
    my $sth;
132
    if ($borrowernumber) {
133
134
#$sth = $dbh->prepare("select * from housebound_instance where borrowernumber=?");
135
        $sth = $dbh->prepare(
136
"SELECT housebound_instance . * , concat( volunteer.firstname, ' ', volunteer.surname ) AS vol, concat(chooser.firstname, ' ', chooser.surname) as cho, concat(deliverer.firstname, ' ', deliverer.surname) as del FROM housebound_instance left JOIN borrowers volunteer ON volunteer.borrowernumber = housebound_instance.volunteer left join borrowers chooser on chooser.borrowernumber = housebound_instance.chooser left join borrowers deliverer on deliverer.borrowernumber = housebound_instance.deliverer where housebound_instance.borrowernumber=? order by housebound_instance.dmy desc"
137
        );
138
        $sth->execute($borrowernumber);
139
        my $housebound_instances = $sth->fetchall_arrayref( {} );
140
        return $housebound_instances;
141
    }
142
    return;
143
}
144
145
sub GetVolunteerNameAndID {
146
    my ($borrowernumber) = @_;
147
    my $dbh = C4::Context->dbh;
148
    my $query;
149
    my $sth;
150
    if ($borrowernumber) {
151
        $sth = $dbh->prepare(
152
"select borrowernumber,title,firstname,surname from borrowers where borrowernumber=?"
153
        );
154
        $sth->execute($borrowernumber);
155
        my $volunteer = $sth->fetchrow_hashref;
156
        return $volunteer;
157
    }
158
    return;
159
}
160
161
sub GetVolunteerList {
162
    my $dbh = C4::Context->dbh;
163
    my $query;
164
    my $sth;
165
    $sth = $dbh->prepare(
166
"SELECT borrowernumber as volbornumber, concat(title, ' ', firstname, ' ', surname) as fullname from borrowers where categorycode='VOL' order by surname, firstname asc"
167
    );
168
    $sth->execute();
169
    my $volunteers = $sth->fetchall_arrayref( {} );
170
    return $volunteers;
171
}
172
173
sub GetHouseboundInstanceDetails {
174
    my ($instanceid) = @_;
175
    my $dbh = C4::Context->dbh;
176
    my $query;
177
    my $sth;
178
    if ($instanceid) {
179
        $sth =
180
          $dbh->prepare("SELECT * from housebound_instance where instanceid=?");
181
        $sth->execute($instanceid);
182
        my $instancedetails = $sth->fetchrow_hashref;
183
        return $instancedetails;
184
    }
185
186
    # return undef if no instanceid
187
    return;
188
}
189
190
sub UpdateHouseboundInstanceDetails {
191
    my ( $instanceid, $hbnumber, $dmy, $time, $borrowernumber, $volunteer,
192
        $chooser, $deliverer )
193
      = @_;
194
    my $dbh = C4::Context->dbh;
195
    my $query;
196
    my $sth;
197
    if ($hbnumber) {
198
        $sth = $dbh->prepare(
199
"update housebound_instance set hbnumber=?, dmy=?, time=?, borrowernumber=?, volunteer=?, chooser=?, deliverer=? where instanceid=?"
200
        );
201
        $sth->execute( $hbnumber, $dmy, $time, $borrowernumber, $volunteer,
202
            $chooser, $deliverer, $instanceid );
203
    }
204
    return;
205
}
206
207
sub CreateHouseboundInstanceDetails {
208
    my ( $hbnumber, $dmy, $time, $borrowernumber, $volunteer, $chooser,
209
        $deliverer )
210
      = @_;
211
    my $dbh = C4::Context->dbh;
212
    my $query;
213
    my $sth;
214
    if ($borrowernumber) {
215
        $sth = $dbh->prepare(
216
"insert into housebound_instance (hbnumber, dmy, time, borrowernumber, volunteer, chooser, deliverer) values (?,?,?,?,?,?,?)"
217
        );
218
        $sth->execute( $hbnumber, $dmy, $time, $borrowernumber, $volunteer,
219
            $chooser, $deliverer );
220
    }
221
    return;
222
}
223
224
sub DeleteHouseboundInstanceDetails {
225
    my ($instanceid) = @_;
226
    my $dbh = C4::Context->dbh;
227
    my $query;
228
    my $sth;
229
    if ($instanceid) {
230
        $sth =
231
          $dbh->prepare("delete from housebound_instance where instanceid=?");
232
        $sth->execute($instanceid);
233
    }
234
    return;
235
}
236
237
1;
238
239
__END__
240
241
=head1 AUTHOR
242
243
Mark Gavillet
244
245
=cut
(-)a/installer/data/mysql/atomicupdate/housebound_tables.sql (+34 lines)
Line 0 Link Here
1
CREATE TABLE IF NOT EXISTS `housebound` (
2
  `hbnumber` int(11) NOT NULL auto_increment,
3
  `day` text NOT NULL,
4
  `frequency` text,
5
  `borrowernumber` int(11) default NULL,
6
  `Itype_quant` varchar(10) default NULL,
7
  `Item_subject` text,
8
  `Item_authors` text,
9
  `referral` text,
10
  `notes` text,
11
  PRIMARY KEY  (`hbnumber`),
12
  KEY `borrowernumber` (`borrowernumber`)
13
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 ;
14
15
16
17
CREATE TABLE IF NOT EXISTS `housebound_instance` (
18
  `instanceid` int(11) NOT NULL auto_increment,
19
  `hbnumber` int(11) NOT NULL,
20
  `dmy` date default NULL,
21
  `time` text,
22
  `borrowernumber` int(11) NOT NULL,
23
  `volunteer` int(11) default NULL,
24
  `chooser` int(11) default NULL,
25
  `deliverer` int(11) default NULL,
26
  PRIMARY KEY  (`instanceid`),
27
  KEY `hbnumber` (`hbnumber`,`borrowernumber`,`volunteer`,`chooser`,`deliverer`)
28
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 ;
29
30
insert into systempreferences (variable,value,options,explanation,type) values
31
('useHouseboundModule',1,'','If ON, use the Housebound module','YesNo');
32
33
insert into categories (categorycode, description, enrolmentperiod, upperagelimit, dateofbirthrequired, category_type)
34
values ('VOL','Housebound volunteer','99','999','1','A');
(-)a/koha-tmpl/intranet-tmpl/prog/en/includes/circ-menu.inc (+3 lines)
Lines 76-81 Link Here
76
    [% IF ( CAN_user_parameters ) %]
76
    [% IF ( CAN_user_parameters ) %]
77
        [% IF ( logview ) %]<li class="active">[% ELSE %]<li>[% END %]<a href="/cgi-bin/koha/tools/viewlog.pl?do_it=1&amp;modules=MEMBERS&amp;modules=circulation&amp;object=[% borrowernumber %]&amp;src=circ">Modification log</a></li>
77
        [% IF ( logview ) %]<li class="active">[% ELSE %]<li>[% END %]<a href="/cgi-bin/koha/tools/viewlog.pl?do_it=1&amp;modules=MEMBERS&amp;modules=circulation&amp;object=[% borrowernumber %]&amp;src=circ">Modification log</a></li>
78
    [% END %]
78
    [% END %]
79
    [% IF useHouseboundModule %]
80
        [% IF houseboundview %]<li class="active">[% ELSE %]<li>[% END %]<a href="/cgi-bin/koha/members/housebound.pl?borrowernumber=[% borrowernumber %]">Housebound</a></li>
81
    [% END %]
79
    [% IF ( EnhancedMessagingPreferences ) %]
82
    [% IF ( EnhancedMessagingPreferences ) %]
80
	[% IF ( sentnotices ) %]<li class="active">[% ELSE %]<li>[% END %]<a href="/cgi-bin/koha/members/notices.pl?borrowernumber=[% borrowernumber %]">Notices</a></li>
83
	[% IF ( sentnotices ) %]<li class="active">[% ELSE %]<li>[% END %]<a href="/cgi-bin/koha/members/notices.pl?borrowernumber=[% borrowernumber %]">Notices</a></li>
81
    [% END %]
84
    [% END %]
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/members/housebound.tt (+52 lines)
Line 0 Link Here
1
[% INCLUDE 'doc-head-open.inc' %]
2
<title>Koha Housebound - [% surname %], [% firstname %]</title>
3
[% INCLUDE 'doc-head-close.inc' %]
4
5
</head>
6
<body>
7
[% INCLUDE 'header.inc' %]
8
[% INCLUDE 'patron-search.inc' %]
9
10
<div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> &rsaquo; <a href="/cgi-bin/koha/members/members-home.pl">Patrons</a>  &rsaquo; Housebound details for [% firstname %] [% surname %] [% IF ( cardnumber ) %]([% cardnumber %])[% END %]</div>
11
12
<div id="doc3" class="yui-t2">
13
    <div id="bd">
14
        <div id="yui-main">
15
            <div class="yui-b"
16
                <h1>Housebound details for [% title %] [% firstname %] [% surname %] [% IF ( cardnumber ) %]([% cardnumber %])[% END %]</h1>
17
                [% IF ( hbnumber ) %]
18
                <!--<div><p><a href="/cgi-bin/koha/members/houseboundedit.pl?hbnumber=[% hbnumber %]&borrowernumber=[% borrowernumber %]">Edit</a> housebound details for this patron.</p></div>-->
19
                <div><ul class="toolbar"><li><span class="yui-button yui-link-button"><span class="first-child"><a href="/cgi-bin/koha/members/houseboundedit.pl?hbnumber=[% hbnumber %]&borrowernumber=[% borrowernumber %]&op=edit">Edit</a></span></span></li></ul></div>
20
                <div id="houseboundinfo" class="rows">
21
                    <ol>
22
                        <li><span class="label">Delivery day:</span>[% day %]</li>
23
                        <li><span class="label">Frequency:</span>[% frequency %]</li>
24
                        <li><span class="label">Material:</span>[% Itype_quant %]</li>
25
                        <li><span class="label">Subjects:</span>[% Item_subject %]</li>
26
                        <li><span class="label">Authors:</span>[% Item_authors %]</li>
27
                        <li><span class="label">Referral:</span>[% referral %]</li>
28
                        <li><span class="label">Notes:</span>[% notes %]</li>
29
                    </ol>
30
                    <br>
31
                    <div style="height:10px;clear:both;"></div><h1>Deliveries</h1>
32
                        <div><ul class="toolbar"><li><span class="yui-button yui-link-button"><span class="first-child"><a href="/cgi-bin/koha/members/houseboundinstances.pl?op=add&hbnumber=[% hbnumber %]&borrowernumber=[% borrowernumber %]">Add a new delivery</a></span></span></li></ul></div>
33
                        <table border="0" width="100%" cellpadding="3" cellspacing="0">
34
                        <th><strong>ID</strong></th><th><strong>Date</strong></th><th><strong>Volunteer</strong></th><th><strong>Chooser</strong></th><th><strong>Deliverer</strong></th><th><strong>Actions</strong></th></tr>
35
                        [% FOREACH instance IN instanceloop %]
36
                            <tr><td>[% instance.instanceid %]</td><td>[% instance.dmy %] ([% instance.time %])</td><td><a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% instance.volunteer %]">[% instance.vol %]</a></td><td><a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% instance.chooser %]">[% instance.cho %]</a></td><td><a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% instance.deliverer %]">[% instance.del %]</a></td><td align="center"><a href="/cgi-bin/koha/members/houseboundinstances.pl?op=edit&instanceid=[% instance.instanceid %]&borrowernumber=[% instance.borrowernumber %]&hbnumber=[% instance.hbnumber %]">Edit</a> | <a href="/cgi-bin/koha/members/houseboundinstances.pl?op=del&instanceid=[% instance.instanceid %]&borrowernumber=[% instance.borrowernumber %]&hbnumber=[% instance.hbnumber %]">Delete</a></td></tr>
37
                        [% END %]
38
                        </table>
39
                </div>
40
                <!--<div><br><p><a href="/cgi-bin/koha/members/housebound.pl?op=edit&hbnumber=[% hbnumber %]&borrowernumber=[% borrowernumber %]">Edit</a> housebound details for this patron.</p></div>-->
41
42
                [% ELSE %]
43
                <p>This patron does not currently have registered housebound details. To add these details <a href="/cgi-bin/koha/members/houseboundedit.pl?hnbnumber=[% hbnumber %]&borrowernumber=[% borrowernumber %]&op=add">click here</a>.</p>
44
                [% END %]
45
            </div>
46
        </div>
47
        <div class="yui-b">
48
            [% INCLUDE 'circ-menu.inc' %]
49
        </div>
50
    </div>
51
</div>
52
[% INCLUDE 'intranet-bottom.inc' %]
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/members/houseboundedit.tt (+78 lines)
Line 0 Link Here
1
[% INCLUDE 'doc-head-open.inc' %]
2
<title>Koha Housebound - [% surname %], [% firstname %]</title>
3
[% INCLUDE 'doc-head-close.inc' %]
4
<script type="text/javascript" language="javascript">
5
function check_form_housebound()
6
{
7
    document.form.submit();
8
}
9
</script>
10
</head>
11
<body>
12
[% INCLUDE 'header.inc' %]
13
[% INCLUDE 'patron-search.inc' %]
14
15
<div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> &rsaquo; <a href="/cgi-bin/koha/members/members-home.pl">Patrons</a>  &rsaquo; Edit housebound details for [% firstname %] [% surname %] [% IF ( cardnumber ) %]([% cardnumber %])[% END %]</div>
16
17
<div id="doc3" class="yui-t2">
18
    <div id="bd">
19
        <div id="yui-main">
20
            <div class="yui-b">
21
                <h1>Edit housebound details for [% title %] [% firstname %] [% surname %] [% IF ( cardnumber ) %]([% cardnumber %])[% END %]</h1>
22
23
                <!--<div><ul class="toolbar"><li><span class="yui-button yui-link-button"><span class="first-child"><a href="/cgi-bin/koha/members/housebound.pl?borrowernumber=[% borrowernumber %]">Cancel changes</a></span></span></li></ul></div>-->
24
                    <form id="editform" method="post" action="/cgi-bin/koha/members/houseboundedit.pl" name="form">
25
                        <input type="hidden" name="borrowernumber" value="[% borrowernumber %]" />
26
                        <input type="hidden" name="hbnumber" value="[% hbnumber %]" />
27
                        <input type="hidden" name="op" value="[% opeditsubmit %][% opaddsubmit %]" />
28
                        <fieldset id="houseboundentry" class="rows">
29
                            <legend>Housebound details</legend>
30
                            <ol>
31
                                <li>
32
                                    <label for="day">Delivery day:</label>
33
                                    <select id="day" name="day">
34
                                    <option value="">Select a day</option>
35
                                    <option value="Sunday"[% IF ( dsun ) %] selected="selected"[% END %]>Sunday</option>
36
                                    <option value="Monday"[% IF ( dmon ) %] selected="selected"[% END %]>Monday</option>
37
                                    <option value="Tuesday"[% IF ( dtue ) %] selected="selected"[% END %]>Tuesday</option>
38
                                    <option value="Wednesday"[% IF ( dwed ) %] selected="selected"[% END %]>Wednesday</option>
39
                                    <option value="Thursday"[% IF ( dthu ) %] selected="selected"[% END %]>Thursday</option>
40
                                    <option value="Friday"[% IF ( dfri ) %] selected="selected"[% END %]>Friday</option>
41
                                    <option value="Saturday"[% IF ( dsat ) %] selected="selected"[% END %]>Saturday</option>
42
                                    </select>
43
                                </li>
44
                                <li>
45
                                    <label for="frequency">Frequency:</label>
46
                                    <select id="frequency" name="frequency">
47
                                    <option value="">Select a frequency</option>
48
                                    <option value="Week 1/3"[% IF ( wk1 ) %] selected="selected"[% END %]>Week 1/3</option>
49
                                    <option value="Week 2/4"[% IF ( wk2 ) %] selected="selected"[% END %]>Week 2/4</option>
50
                                    </select>
51
                                </li>
52
                                <li><label for="Itype_quant">Material:</label><input id="Itype_quant" type="text" value="[% Itype_quant %]" size="50" name="Itype_quant"></li>
53
                                <li><label for="Item_subject">Subjects:</label><input id="Item_subject" type="text" value="[% Item_subject %]" size="50" name="Item_subject"></li>
54
                                <li><label for="Item_authors">Authors:</label><input id="Item_authors" type="text" value="[% Item_authors %]" size="50" name="Item_authors"></li>
55
                                <li><label for="referral">Referral:</label><input id="referral" type="text" value="[% referral %]" size="50" name="referral"></li>
56
                                <li><label for="notes">Notes:</label><input id="notes" type="text" value="[% notes %]" size="50" name="notes"></li>
57
                        </fieldset>
58
                        <fieldset class="action">
59
                            <input type="submit" value="Save changes" onclick="return check_form_housebound();" name="save">
60
                            <a class="cancel" href="/cgi-bin/koha/members/housebound.pl?borrowernumber=[% borrowernumber %]">Cancel</a>
61
                        </fieldset>
62
                    </form>
63
64
65
66
67
68
69
70
71
            </div>
72
        </div>
73
        <div class="yui-b">
74
            [% INCLUDE 'circ-menu.inc' %]
75
        </div>
76
    </div>
77
</div>
78
[% INCLUDE 'intranet-bottom.inc' %]
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/members/houseboundinstances.tt (+109 lines)
Line 0 Link Here
1
[% INCLUDE 'doc-head-open.inc' %]
2
<title>Koha Housebound - [% surname %], [% firstname %]</title>
3
[% INCLUDE 'doc-head-close.inc' %]
4
<script type="text/javascript" language="javascript">
5
function check_form_housebound()
6
{
7
    document.form.submit();
8
}
9
function deleteInstance()
10
{
11
    window.location="/cgi-bin/koha/members/houseboundinstances.pl?op=delsubmit&borrowernumber=[% borrowernumber %]&instanceid=[% delinstanceid %]&hbnumber=[% hbnumber %]";
12
}
13
function cancelInstance()
14
{
15
    window.location="/cgi-bin/koha/members/housebound.pl?borrowernumber=[% borrowernumber %]";
16
}
17
</script>
18
[% INCLUDE 'calendar.inc' %]
19
</head>
20
<body>
21
[% INCLUDE 'header.inc' %]
22
[% INCLUDE 'patron-search.inc' %]
23
24
<div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> &rsaquo; <a href="/cgi-bin/koha/members/members-home.pl">Patrons</a>  &rsaquo; Housebound deliveries for [% firstname %] [% surname %] [% IF ( cardnumber ) %]([% cardnumber %])[% END %]</div>
25
<div id="doc3" class="yui-t2">
26
    <div id="bd">
27
        <div id="yui-main">
28
            <div class="yui-b">
29
                <h1>Housebound deliveries for [% title %] [% firstname %] [% surname %] [% IF ( cardnumber ) %]([% cardnumber %])[% END %]</h1>
30
                <form name="form" id="instance_form" method="post" action="/cgi-bin/koha/members/houseboundinstances.pl">
31
                    <input type="hidden" name="op" value="[% op %]" />
32
                    <input type="hidden" name="borrowernumber" value="[% borrowernumber %]" />
33
                    <input type="hidden" name="hbnumber" value="[% hbnumber %]" />
34
                    <input type="hidden" name="instanceid" value="[% instanceid %]" />
35
                [% IF ( opdel ) %]
36
                    <p>Are you sure you want to delete this delivery?</p>
37
                    <p><button id="ybutton" onclick="deleteInstance(); return false;">YES</button>&nbsp;&nbsp;<button id="nbutton" onclick="cancelInstance(); return false;">NO</button></p>
38
                [% ELSE %]
39
                <fieldset class="rows" id="instance">
40
                    <legend>Delivery details</legend>
41
                    <ol>
42
                        <li>
43
                            <label for="dmy">Date: </label>
44
                            <input type="text" id="dmy" name="dmy" size="20" value="[% dmy %]" />
45
                            <img src="[% themelang %]/lib/calendar/cal.gif" id="dmy_button" alt="Show Calendar" />
46
                            <script language="JavaScript" type="text/javascript">
47
                                Calendar.setup(
48
                                {
49
                                    inputField : "dmy",
50
                                    ifFormat : "[% DHTMLcalendar_dateformat %]",
51
                                    ifFormat : "%Y-%m-%d",
52
                                    button : "dmy_button"
53
                                }
54
                                );
55
                            </script>
56
                        </li>
57
                        <li>
58
                            <label for="time">Time:</label>
59
                            <select id="time" name="time">
60
                                <option value="">Select a time</option>
61
                                <option value="am"[% IF ( timeam ) %] selected="selected"[% END %]>am</option>
62
                                <option value="pm"[% IF ( timepm ) %] selected="selected"[% END %]>pm</option>
63
                            </select>
64
                        </li>
65
                        <li>
66
                            <label for="volunteer">Volunteer:</label>
67
                            <select id="volunteer" name="volunteer">
68
                                <option value="">Select a volunteer</option>
69
                                [% FOREACH volunteer IN volunteerlist %]
70
                                    <option value="[% volunteer.volbornumber %]" [% volunteer.selected %]>[% volunteer.fullname %]</option>
71
                                [% END %]
72
                            </select>
73
                        </li>
74
                        <li>
75
                            <label for="chooser">Chooser:</label>
76
                            <select id="chooser" name="chooser">
77
                                <option value="">Select a chooser</option>
78
                                [% FOREACH cho IN chooserlist %]
79
                                    <option value="[% cho.volbornumber %]" [% cho.selected %]>[% cho.fullname %]</option>
80
                                [% END %]
81
                            </select>
82
                        </li>
83
                        <li>
84
                            <label for="deliverer">Deliverer:</label>
85
                            <select id="deliverer" name="deliverer">
86
                                <option value="">Select a deliverer</option>
87
                                [% FOREACH del IN delivererlist %]
88
                                    <option value="[% del.volbornumber %]" [% del.selected %]>[% del.fullname %]</option>
89
                                [% END %]
90
                            </select>
91
                        </li>
92
93
                    </ol>
94
                </fieldset>
95
                <fieldset class="action">
96
                    <input type="submit" value="Save" onclick="return check_form_instance();" name="save">
97
                    <a class="cancel" href="/cgi-bin/koha/members/housebound.pl?borrowernumber=[% borrowernumber %]">Cancel</a>
98
                </fieldset>
99
                [% END %]
100
                </form>
101
102
            </div>
103
        </div>
104
        <div class="yui-b">
105
            [% INCLUDE 'circ-menu.inc' %]
106
        </div>
107
    </div>
108
</div>
109
[% INCLUDE 'intranet-bottom.inc' %]
(-)a/members/housebound.pl (+101 lines)
Line 0 Link Here
1
#!/usr/bin/perl
2
3
# Copyright 2011 Mark Gavillet & PTFS Europe Ltd
4
#
5
# This file is part of Koha.
6
#
7
# Koha is free software; you can redistribute it and/or modify it under the
8
# terms of the GNU General Public License as published by the Free Software
9
# Foundation; either version 2 of the License, or (at your option) any later
10
# version.
11
#
12
# Koha is distributed in the hope that it will be useful, but WITHOUT ANY
13
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
14
# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
15
#
16
# You should have received a copy of the GNU General Public License along
17
# with Koha; if not, write to the Free Software Foundation, Inc.,
18
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19
20
use strict;
21
use warnings;
22
use CGI;
23
use C4::Context;
24
use C4::Auth;
25
use C4::Output;
26
use C4::Members;
27
use C4::Koha;
28
use C4::Branch;
29
use C4::Housebound;
30
31
use vars qw($debug);
32
33
BEGIN {
34
    $debug = $ENV{DEBUG} || 0;
35
}
36
37
my $input = CGI->new();
38
39
sub nl2br {
40
    my ($t) = shift or return;
41
    $t =~ s/\n/\n<br>/g;
42
    return ($t);
43
}
44
45
my $dbh = C4::Context->dbh;
46
47
my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
48
    {   template_name   => "members/housebound.tmpl",
49
        query           => $input,
50
        type            => "intranet",
51
        authnotrequired => 0,
52
        flagsrequired   => { borrowers => 1 },
53
        debug           => ($debug) ? 1 : 0,
54
    }
55
);
56
57
my $borrowernumber = $input->param('borrowernumber');
58
59
my $borrowerdetails      = C4::Members::GetMemberDetails($borrowernumber);
60
my $branchdetail         = GetBranchDetail( $borrowerdetails->{'branchcode'} );
61
my $categorydetail       = GetMember( $borrowernumber, 'borrowernumber' );
62
my $housebound           = GetHouseboundDetails($borrowernumber);
63
my $housebound_instances = GetCurrentHouseboundInstanceList($borrowernumber);
64
65
$template->param(
66
    surname        => $borrowerdetails->{'surname'},
67
    firstname      => $borrowerdetails->{'firstname'},
68
    cardnumber     => $borrowerdetails->{'cardnumber'},
69
    borrowernumber => $borrowerdetails->{'borrowernumber'},
70
    houseboundview => 'on',
71
    address        => $borrowerdetails->{'address'},
72
    address2       => $borrowerdetails->{'address2'},
73
    city           => $borrowerdetails->{'city'},
74
    phone          => $borrowerdetails->{'phone'},
75
    phonepro       => $borrowerdetails->{'phonepro'},
76
    mobile         => $borrowerdetails->{'mobile'},
77
    email          => $borrowerdetails->{'email'},
78
    emailpro       => $borrowerdetails->{'emailpro'},
79
    categoryname   => $categorydetail->{'description'},
80
    categorycode   => $borrowerdetails->{'categorycode'},
81
    branch         => $borrowerdetails->{'branch'},
82
    branchname     => $branchdetail->{branchname},
83
    zipcode        => $borrowerdetails->{'zipcode'}
84
);
85
86
$template->param(
87
    hbnumber     => $housebound->{'hbnumber'},
88
    day          => $housebound->{'day'},
89
    frequency    => $housebound->{'frequency'},
90
    Itype_quant  => $housebound->{'Itype_quant'},
91
    Item_subject => $housebound->{'Item_subject'},
92
    Item_authors => $housebound->{'Item_authors'},
93
    referral     => $housebound->{'referral'},
94
    notes        => $housebound->{'notes'}
95
);
96
97
if ($housebound_instances) {
98
    $template->param( instanceloop => $housebound_instances );
99
}
100
101
output_html_with_http_headers $input, $cookie, $template->output;
(-)a/members/houseboundedit.pl (+142 lines)
Line 0 Link Here
1
#!/usr/bin/perl
2
3
# Copyright 2011 Mark Gavillet & PTFS Europe Ltd
4
#
5
# This file is part of Koha.
6
#
7
# Koha is free software; you can redistribute it and/or modify it under the
8
# terms of the GNU General Public License as published by the Free Software
9
# Foundation; either version 2 of the License, or (at your option) any later
10
# version.
11
#
12
# Koha is distributed in the hope that it will be useful, but WITHOUT ANY
13
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
14
# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
15
#
16
# You should have received a copy of the GNU General Public License along
17
# with Koha; if not, write to the Free Software Foundation, Inc.,
18
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19
20
use strict;
21
use warnings;
22
use CGI;
23
use C4::Context;
24
use C4::Auth;
25
use C4::Output;
26
use C4::Members;
27
use C4::Koha;
28
use C4::Branch;
29
use C4::Housebound;
30
31
use vars qw($debug);
32
33
BEGIN {
34
    $debug = $ENV{DEBUG} || 0;
35
}
36
37
my $input = CGI->new();
38
39
my $dbh = C4::Context->dbh;
40
41
my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
42
    {   template_name   => "members/houseboundedit.tmpl",
43
        query           => $input,
44
        type            => "intranet",
45
        authnotrequired => 0,
46
        flagsrequired   => { borrowers => 1 },
47
        debug           => ($debug) ? 1 : 0,
48
    }
49
);
50
51
my $borrowernumber = $input->param('borrowernumber');
52
my $op             = $input->param('op');
53
if ( $op eq "editsubmit" ) {
54
    UpdateHouseboundDetails(
55
        $input->param('hbnumber'),     $input->param('borrowernumber'),
56
        $input->param('day'),          $input->param('frequency'),
57
        $input->param('Itype_quant'),  $input->param('Item_subject'),
58
        $input->param('Item_authors'), $input->param('referral'),
59
        $input->param('notes')
60
    );
61
    my $url =
62
      "/cgi-bin/koha/members/housebound.pl?borrowernumber=$borrowernumber";
63
    print "Location: $url";
64
}
65
if ( $op eq "addsubmit" ) {
66
    CreateHouseboundDetails(
67
        $input->param('borrowernumber'), $input->param('day'),
68
        $input->param('frequency'),      $input->param('Itype_quant'),
69
        $input->param('Item_subject'),   $input->param('Item_authors'),
70
        $input->param('referral'),       $input->param('notes')
71
    );
72
    my $url =
73
      "/cgi-bin/koha/members/housebound.pl?borrowernumber=$borrowernumber";
74
    print "Location: $url";
75
}
76
if ( $op eq "edit" ) {
77
    $template->param( opeditsubmit => "editsubmit" );
78
}
79
if ( $op eq "add" ) {
80
    $template->param( opaddsubmit => "addsubmit" );
81
}
82
83
my $borrowerdetails = C4::Members::GetMemberDetails($borrowernumber);
84
my $branchdetail    = GetBranchDetail( $borrowerdetails->{'branchcode'} );
85
my $categorydetail  = GetMember( $borrowernumber, 'borrowernumber' );
86
my $housebound      = GetHouseboundDetails($borrowernumber);
87
88
$template->param(
89
    surname        => $borrowerdetails->{'surname'},
90
    firstname      => $borrowerdetails->{'firstname'},
91
    cardnumber     => $borrowerdetails->{'cardnumber'},
92
    borrowernumber => $borrowerdetails->{'borrowernumber'},
93
    houseboundview => 'on',
94
    address        => $borrowerdetails->{'address'},
95
    address2       => $borrowerdetails->{'address2'},
96
    city           => $borrowerdetails->{'city'},
97
    phone          => $borrowerdetails->{'phone'},
98
    phonepro       => $borrowerdetails->{'phonepro'},
99
    mobile         => $borrowerdetails->{'mobile'},
100
    email          => $borrowerdetails->{'email'},
101
    emailpro       => $borrowerdetails->{'emailpro'},
102
    categoryname   => $categorydetail->{'description'},
103
    categorycode   => $borrowerdetails->{'categorycode'},
104
    branch         => $borrowerdetails->{'branch'},
105
    branchname     => $branchdetail->{branchname},
106
    zipcode        => $borrowerdetails->{'zipcode'}
107
);
108
109
$template->param(
110
    hbnumber     => $housebound->{'hbnumber'},
111
    day          => $housebound->{'day'},
112
    frequency    => $housebound->{'frequency'},
113
    Itype_quant  => $housebound->{'Itype_quant'},
114
    Item_subject => $housebound->{'Item_subject'},
115
    Item_authors => $housebound->{'Item_authors'},
116
    referral     => $housebound->{'referral'},
117
    notes        => $housebound->{'notes'}
118
);
119
120
if ( $housebound->{'day'} eq "Sunday" ) {
121
    $template->param( dsun => 1 );
122
} elsif ( $housebound->{'day'} eq "Monday" ) {
123
    $template->param( dmon => 1 );
124
} elsif ( $housebound->{'day'} eq "Tuesday" ) {
125
    $template->param( dtue => 1 );
126
} elsif ( $housebound->{'day'} eq "Wednesday" ) {
127
    $template->param( dwed => 1 );
128
} elsif ( $housebound->{'day'} eq "Thursday" ) {
129
    $template->param( dthu => 1 );
130
} elsif ( $housebound->{'day'} eq "Friday" ) {
131
    $template->param( dfri => 1 );
132
} elsif ( $housebound->{'day'} eq "Saturday" ) {
133
    $template->param( dsat => 1 );
134
}
135
136
if ( $housebound->{'frequency'} eq "Week 1/3" ) {
137
    $template->param( wk1 => 1 );
138
} elsif ( $housebound->{'frequency'} eq "Week 2/4" ) {
139
    $template->param( wk2 => 1 );
140
}
141
142
output_html_with_http_headers $input, $cookie, $template->output;
(-)a/members/houseboundinstances.pl (-1 / +169 lines)
Line 0 Link Here
0
- 
1
#!/usr/bin/perl
2
3
# Copyright 2011 Mark Gavillet & PTFS Europe Ltd
4
#
5
# This file is part of Koha.
6
#
7
# Koha is free software; you can redistribute it and/or modify it under the
8
# terms of the GNU General Public License as published by the Free Software
9
# Foundation; either version 2 of the License, or (at your option) any later
10
# version.
11
#
12
# Koha is distributed in the hope that it will be useful, but WITHOUT ANY
13
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
14
# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
15
#
16
# You should have received a copy of the GNU General Public License along
17
# with Koha; if not, write to the Free Software Foundation, Inc.,
18
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19
20
use strict;
21
use warnings;
22
use CGI;
23
use C4::Context;
24
use C4::Auth;
25
use C4::Output;
26
use C4::Members;
27
use C4::Koha;
28
use C4::Branch;
29
use C4::Housebound;
30
use C4::Dates;
31
32
use vars qw($debug);
33
34
BEGIN {
35
    $debug = $ENV{DEBUG} || 0;
36
}
37
38
my $input = CGI->new();
39
40
my $dbh = C4::Context->dbh;
41
42
my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
43
    {   template_name   => "members/houseboundinstances.tmpl",
44
        query           => $input,
45
        type            => "intranet",
46
        authnotrequired => 0,
47
        flagsrequired   => { borrowers => 1 },
48
        debug           => ($debug) ? 1 : 0,
49
    }
50
);
51
52
my $borrowernumber = $input->param('borrowernumber');
53
54
my $op = $input->param('op');
55
if ( $op eq "add" ) {
56
    $template->param( opadd => 1, op => "addsubmit" );
57
}
58
if ( $op eq "edit" ) {
59
    $template->param( opedit => 1, op => "editsubmit" );
60
}
61
if ( $op eq "del" ) {
62
    $template->param( opdel => 1, op => "delsubmit" );
63
}
64
if ( $op eq "addsubmit" ) {
65
    CreateHouseboundInstanceDetails(
66
        $input->param('hbnumber'),  $input->param('dmy'),
67
        $input->param('time'),      $input->param('borrowernumber'),
68
        $input->param('volunteer'), $input->param('chooser'),
69
        $input->param('deliverer')
70
    );
71
    my $url =
72
      "/cgi-bin/koha/members/housebound.pl?borrowernumber=$borrowernumber";
73
    print "Location: $url";
74
}
75
if ( $op eq "delsubmit" ) {
76
    DeleteHouseboundInstanceDetails( $input->param('instanceid') );
77
    my $url =
78
      "/cgi-bin/koha/members/housebound.pl?borrowernumber=$borrowernumber";
79
    print "Location: $url";
80
}
81
if ( $op eq "editsubmit" ) {
82
    UpdateHouseboundInstanceDetails(
83
        $input->param('instanceid'),     $input->param('hbnumber'),
84
        $input->param('dmy'),            $input->param('time'),
85
        $input->param('borrowernumber'), $input->param('volunteer'),
86
        $input->param('chooser'),        $input->param('deliverer')
87
    );
88
    my $url =
89
      "/cgi-bin/koha/members/housebound.pl?borrowernumber=$borrowernumber";
90
    print "Location: $url";
91
}
92
93
my $borrowerdetails   = C4::Members::GetMemberDetails($borrowernumber);
94
my $branchdetail      = GetBranchDetail( $borrowerdetails->{'branchcode'} );
95
my $categorydetail    = GetMember( $borrowernumber, 'borrowernumber' );
96
my $housebound        = GetHouseboundDetails($borrowernumber);
97
my $volunteerlist     = GetVolunteerList();
98
my $chooserlist       = GetVolunteerList();
99
my $delivererlist     = GetVolunteerList();
100
my $delinstanceid     = $input->param('instanceid');
101
my $instanceid        = $input->param('instanceid');
102
my $instancedetails   = GetHouseboundInstanceDetails($instanceid);
103
my $selectedvolunteer = $instancedetails->{'volunteer'};
104
my $selectedchooser   = $instancedetails->{'chooser'};
105
my $selecteddeliverer = $instancedetails->{'deliverer'};
106
107
foreach my $ivol (@$volunteerlist) {
108
    $ivol->{selected} = 'selected'
109
      if $ivol->{'volbornumber'} == $selectedvolunteer;
110
}
111
foreach my $icho (@$chooserlist) {
112
    $icho->{selected} = 'selected'
113
      if $icho->{'volbornumber'} == $selectedchooser;
114
}
115
foreach my $idel (@$delivererlist) {
116
    $idel->{selected} = 'selected'
117
      if $idel->{'volbornumber'} == $selecteddeliverer;
118
}
119
if ( $instancedetails->{'time'} eq "am" ) {
120
    $template->param( timeam => 1 );
121
}
122
if ( $instancedetails->{'time'} eq "pm" ) {
123
    $template->param( timepm => 1 );
124
}
125
126
$template->param(
127
    surname        => $borrowerdetails->{'surname'},
128
    firstname      => $borrowerdetails->{'firstname'},
129
    cardnumber     => $borrowerdetails->{'cardnumber'},
130
    borrowernumber => $borrowerdetails->{'borrowernumber'},
131
    houseboundview => 'on',
132
    address        => $borrowerdetails->{'address'},
133
    address2       => $borrowerdetails->{'address2'},
134
    city           => $borrowerdetails->{'city'},
135
    phone          => $borrowerdetails->{'phone'},
136
    phonepro       => $borrowerdetails->{'phonepro'},
137
    mobile         => $borrowerdetails->{'mobile'},
138
    email          => $borrowerdetails->{'email'},
139
    emailpro       => $borrowerdetails->{'emailpro'},
140
    categoryname   => $categorydetail->{'description'},
141
    categorycode   => $borrowerdetails->{'categorycode'},
142
    branch         => $borrowerdetails->{'branch'},
143
    branchname     => $branchdetail->{branchname},
144
    zipcode        => $borrowerdetails->{'zipcode'}
145
);
146
147
$template->param(
148
    hbnumber                 => $housebound->{'hbnumber'},
149
    day                      => $housebound->{'day'},
150
    frequency                => $housebound->{'frequency'},
151
    Itype_quant              => $housebound->{'Itype_quant'},
152
    Item_subject             => $housebound->{'Item_subject'},
153
    Item_authors             => $housebound->{'Item_authors'},
154
    referral                 => $housebound->{'referral'},
155
    notes                    => $housebound->{'notes'},
156
    DHTMLcalendar_dateformat => C4::Dates->DHTMLcalendar(),
157
    volunteerlist            => $volunteerlist,
158
    chooserlist              => $chooserlist,
159
    delivererlist            => $delivererlist,
160
    delinstanceid            => $delinstanceid,
161
    instanceid               => $instanceid,
162
    dmy                      => $instancedetails->{'dmy'},
163
    time                     => $instancedetails->{'time'},
164
    volunteer                => $instancedetails->{'volunteer'},
165
    chooser                  => $instancedetails->{'chooser'},
166
    deliverer                => $instancedetails->{'deliverer'}
167
);
168
169
output_html_with_http_headers $input, $cookie, $template->output;

Return to bug 5670