#!/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::Field; use Koha::Club::Enrollment; use Koha::Clubs; my $cgi = CGI->new; my ($auth_status) = check_cookie_auth( $cgi->cookie('CGISESSID') ); if ( $auth_status ne "ok" ) { exit 0; } my $borrowernumber = C4::Context->userenv->{'number'}; my $id = $cgi->param('id'); my $enrollment; if ( $borrowernumber && $id ) { my $already_enrolled = Koha::Club::Enrollments->search( { club_id => $id, borrowernumber => $borrowernumber, date_canceled => undef, } )->count(); my $club = Koha::Clubs->find($id); my $wrong_branch = $club->branchcode && C4::Context->userenv && C4::Context->userenv->{branch} ne $club->branchcode; unless ( $already_enrolled || $wrong_branch ) { if ( $club->club_template()->is_enrollable_from_opac() ) { $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(); my @enrollment_fields = $club->club_template()->club_template_enrollment_fields->as_list; foreach my $e (@enrollment_fields) { Koha::Club::Enrollment::Field->new()->set( { 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' ); print to_json( { success => $enrollment ? 1 : 0 } );