|
Lines 47-63
my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
Link Here
|
| 47 |
} |
47 |
} |
| 48 |
); |
48 |
); |
| 49 |
|
49 |
|
| 50 |
my $patron = Koha::Patrons->new->find($input->param('borrowernumber')); |
50 |
my @messages; # For error messages. |
| 51 |
my $method = $input->param('method') // q{}; |
51 |
my $method = $input->param('method') // q{}; |
| 52 |
my $visit_id = $input->param('visit_id') // q{}; |
52 |
my $visit_id = $input->param('visit_id') // q{}; |
| 53 |
my $branch = Koha::Libraries->new->find($patron->branchcode); |
|
|
| 54 |
my $category = Koha::Patron::Categories->new->find($patron->categorycode); |
| 55 |
my $houseboundprofile = $patron->housebound_profile; |
| 56 |
|
53 |
|
|
|
54 |
# Get patron |
| 55 |
my $patron = eval { |
| 56 |
return Koha::Patrons->new->find($input->param('borrowernumber')); |
| 57 |
}; |
| 58 |
push @messages, { type => 'error', code => 'error_on_patron_load' } |
| 59 |
if ( $@ or !$patron ); |
| 60 |
|
| 61 |
# Get supporting cast |
| 62 |
my ( $branch, $category, $houseboundprofile, $visit ); |
| 63 |
if ( $patron ) { |
| 64 |
$branch = Koha::Libraries->new->find($patron->branchcode); |
| 65 |
$category = Koha::Patron::Categories->new->find($patron->categorycode); |
| 66 |
$houseboundprofile = $patron->housebound_profile; |
| 67 |
} |
| 68 |
if ( $visit_id ) { |
| 69 |
$visit = eval { |
| 70 |
return Koha::Patron::HouseboundVisits->find($visit_id); |
| 71 |
}; |
| 72 |
push @messages, { type => 'error', code => 'error_on_visit_load' } |
| 73 |
if ( $@ or !$visit ); |
| 74 |
} |
| 75 |
|
| 76 |
# Main processing |
| 57 |
my ( $houseboundvisits, $deliverers, $choosers ); |
77 |
my ( $houseboundvisits, $deliverers, $choosers ); |
| 58 |
my ( $houseboundvisit, $deliverer, $chooser ); |
78 |
my ( $houseboundvisit, $deliverer, $chooser ); |
| 59 |
|
79 |
|
| 60 |
if ( $method eq 'updateconfirm' ) { |
80 |
if ( $method eq 'updateconfirm' and $houseboundprofile ) { |
| 61 |
# We have received the input from the profile edit form. We must save the |
81 |
# We have received the input from the profile edit form. We must save the |
| 62 |
# changes, and return to simple display. |
82 |
# changes, and return to simple display. |
| 63 |
$houseboundprofile->set({ |
83 |
$houseboundprofile->set({ |
|
Lines 69-76
if ( $method eq 'updateconfirm' ) {
Link Here
|
| 69 |
referral => $input->param('referral') // q{}, |
89 |
referral => $input->param('referral') // q{}, |
| 70 |
notes => $input->param('notes') // q{}, |
90 |
notes => $input->param('notes') // q{}, |
| 71 |
}); |
91 |
}); |
| 72 |
die("Unable to store edited profile") |
92 |
my $success = eval { return $houseboundprofile->store }; |
| 73 |
unless ( $houseboundprofile->store ); |
93 |
push @messages, { type => 'error', code => 'error_on_profile_store' } |
|
|
94 |
if ( $@ or !$success ); |
| 74 |
$method = undef; |
95 |
$method = undef; |
| 75 |
} elsif ( $method eq 'createconfirm' ) { |
96 |
} elsif ( $method eq 'createconfirm' ) { |
| 76 |
# We have received the input necessary to create a new profile. We must |
97 |
# We have received the input necessary to create a new profile. We must |
|
Lines 85-108
if ( $method eq 'updateconfirm' ) {
Link Here
|
| 85 |
referral => $input->param('referral') // q{}, |
106 |
referral => $input->param('referral') // q{}, |
| 86 |
notes => $input->param('notes') // q{}, |
107 |
notes => $input->param('notes') // q{}, |
| 87 |
}); |
108 |
}); |
| 88 |
die("Unable to store new profile") |
109 |
my $success = eval { return $houseboundprofile->store }; |
| 89 |
unless ( $houseboundprofile->store ); |
110 |
push @messages, { type => 'error', code => 'error_on_profile_create' } |
|
|
111 |
if ( $@ or !$success ); |
| 90 |
$method = undef; |
112 |
$method = undef; |
| 91 |
} elsif ( $method eq 'visit_update_or_create' ) { |
113 |
} elsif ( $method eq 'visit_update_or_create' ) { |
| 92 |
# We want to edit, edit a visit, so we must pass its details. |
114 |
# We want to edit, edit a visit, so we must pass its details. |
| 93 |
$deliverers = Koha::Patrons->new->housebound_deliverers; |
115 |
$deliverers = Koha::Patrons->new->housebound_deliverers; |
| 94 |
$choosers = Koha::Patrons->new->housebound_choosers; |
116 |
$choosers = Koha::Patrons->new->housebound_choosers; |
| 95 |
$houseboundvisit = Koha::Patron::HouseboundVisits->find($visit_id) |
117 |
$houseboundvisit = $visit; |
| 96 |
if ( $visit_id ); |
118 |
} elsif ( $method eq 'visit_delete' and $visit ) { |
| 97 |
} elsif ( $method eq 'visit_delete' ) { |
|
|
| 98 |
# We want ot delete a specific visit. |
119 |
# We want ot delete a specific visit. |
| 99 |
my $visit = Koha::Patron::HouseboundVisits->find($visit_id); |
120 |
my $success = eval { return $visit->delete }; |
| 100 |
die("Unable to delete visit") unless ( $visit->delete ); |
121 |
push @messages, { type => 'error', code => 'error_on_visit_delete' } |
|
|
122 |
if ( $@ or !$success ); |
| 101 |
$method = undef; |
123 |
$method = undef; |
| 102 |
} elsif ( $method eq 'editvisitconfirm' ) { |
124 |
} elsif ( $method eq 'editvisitconfirm' and $visit ) { |
| 103 |
# We have received input for editing a visit. We must store and return to |
125 |
# We have received input for editing a visit. We must store and return to |
| 104 |
# simple display. |
126 |
# simple display. |
| 105 |
my $visit = Koha::Patron::HouseboundVisits->find($visit_id); |
|
|
| 106 |
$visit->set({ |
127 |
$visit->set({ |
| 107 |
borrowernumber => $input->param('borrowernumber') // q{}, |
128 |
borrowernumber => $input->param('borrowernumber') // q{}, |
| 108 |
appointment_date => $input->param('date') // q{}, |
129 |
appointment_date => $input->param('date') // q{}, |
|
Lines 110-118
if ( $method eq 'updateconfirm' ) {
Link Here
|
| 110 |
chooser_brwnumber => $input->param('chooser') // q{}, |
131 |
chooser_brwnumber => $input->param('chooser') // q{}, |
| 111 |
deliverer_brwnumber => $input->param('deliverer') // q{}, |
132 |
deliverer_brwnumber => $input->param('deliverer') // q{}, |
| 112 |
}); |
133 |
}); |
| 113 |
die("Unable to store edited visit") unless ( $visit->store ); |
134 |
my $success = eval { return $visit->store }; |
|
|
135 |
push @messages, { type => 'error', code => 'error_on_visit_store' } |
| 136 |
if ( $@ or !$success ); |
| 114 |
$method = undef; |
137 |
$method = undef; |
| 115 |
} elsif ( $method eq 'addvisitconfirm' ) { |
138 |
} elsif ( $method eq 'addvisitconfirm' and !$visit ) { |
| 116 |
# We have received input for creating a visit. We must store and return |
139 |
# We have received input for creating a visit. We must store and return |
| 117 |
# to simple display. |
140 |
# to simple display. |
| 118 |
my $visit = Koha::Patron::HouseboundVisit->new({ |
141 |
my $visit = Koha::Patron::HouseboundVisit->new({ |
|
Lines 122-128
if ( $method eq 'updateconfirm' ) {
Link Here
|
| 122 |
chooser_brwnumber => $input->param('chooser') // q{}, |
145 |
chooser_brwnumber => $input->param('chooser') // q{}, |
| 123 |
deliverer_brwnumber => $input->param('deliverer') // q{}, |
146 |
deliverer_brwnumber => $input->param('deliverer') // q{}, |
| 124 |
}); |
147 |
}); |
| 125 |
die("Unable to store new visit") unless ( $visit->store ); |
148 |
my $success = eval { return $visit->store }; |
|
|
149 |
push @messages, { type => 'error', code => 'error_on_visit_create' } |
| 150 |
if ( $@ or !$success ); |
| 126 |
$method = undef; |
151 |
$method = undef; |
| 127 |
} |
152 |
} |
| 128 |
|
153 |
|
|
Lines 135-140
$template->param(
Link Here
|
| 135 |
visit => $houseboundvisit, |
160 |
visit => $houseboundvisit, |
| 136 |
branch => $branch, |
161 |
branch => $branch, |
| 137 |
category => $category, |
162 |
category => $category, |
|
|
163 |
messages => \@messages, |
| 138 |
method => $method, |
164 |
method => $method, |
| 139 |
choosers => $choosers, |
165 |
choosers => $choosers, |
| 140 |
deliverers => $deliverers, |
166 |
deliverers => $deliverers, |
| 141 |
- |
|
|