#!/usr/bin/perl # Copyright 2014 ByWater Solutions # # This file is part of Koha. # # Koha is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # Koha is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with Koha; if not, see . # use Modern::Perl; use CGI; use JSON qw(to_json); use C4::Auth qw(check_cookie_auth); use Koha::Club::Enrollment::Fields; use Koha::Club::Enrollments; use Koha::Clubs; my $cgi = CGI->new; my ($auth_status) = check_cookie_auth( $cgi->cookie('CGISESSID'), { clubs => 'enroll' } ); if ( $auth_status ne "ok" ) { exit 0; } my $op = $cgi->param('op') || q{}; exit unless $op eq 'cud-enroll'; # FIXME could be nicer here. my $id = $cgi->param('id'); my $borrowernumber = $cgi->param('borrowernumber'); my $enrollent_id = scalar $cgi->param('enrollent_id'); my $club = Koha::Clubs->find($id); my $enrollment; my @club_enrollment_fields; if ($enrollent_id) { my @enrollment_fields = $club->club_template()->club_template_enrollment_fields()->as_list; @club_enrollment_fields = Koha::Club::Enrollment::Fields->search( { 'club_enrollment_id' => $enrollent_id } )->as_list; foreach my $club_enrollment_field (@club_enrollment_fields) { foreach my $e (@enrollment_fields) { if ( $e->id() == $club_enrollment_field->club_template_enrollment_field_id ) { my $value = $cgi->param( $e->id() ); $club_enrollment_field->value($value); $club_enrollment_field->update(); } } } } elsif ($club) { my $already_enrolled = Koha::Club::Entrollments->search( { club_id => $club->id(), borrowernumber => $borrowernumber, date_canceled => undef, } )->count(); my $wrong_branch = $club->branchcode && C4::Context->userenv && C4::Context->userenv->{branch} ne $club->branchcode; unless ( $already_enrolled || $wrong_branch ) { $enrollment = Koha::Club::Enrollment->new( { club_id => $club->id(), borrowernumber => $borrowernumber, date_enrolled => \'NOW()', date_created => \'NOW()', branchcode => C4::Context->userenv ? C4::Context->userenv->{branch} : undef, } )->store(); if ($enrollment) { my @enrollment_fields = $club->club_template()->club_template_enrollment_fields->as_list; foreach my $e (@enrollment_fields) { my $club_enrollment_field = Koha::Club::Enrollment::Field->new( { club_enrollment_id => $enrollment->id(), club_template_enrollment_field_id => $e->id(), value => scalar $cgi->param( $e->id() ), } )->store(); } } } } binmode STDOUT, ':encoding(UTF-8)'; print $cgi->header( -type => 'application/json', -charset => 'UTF-8' ); if ($enrollent_id) { print to_json( { success => @club_enrollment_fields ? 1 : 0 } ); } else { print to_json( { success => $enrollment ? 1 : 0 } ); }