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

(-)a/C4/Letters.pm (-2 / +2 lines)
Lines 31-37 use C4::Log; Link Here
31
use C4::SMS;
31
use C4::SMS;
32
use C4::Debug;
32
use C4::Debug;
33
use Koha::DateUtils;
33
use Koha::DateUtils;
34
use Koha::SMS::Provider;
34
use Koha::SMS::Providers;
35
35
36
use Date::Calc qw( Add_Delta_Days );
36
use Date::Calc qw( Add_Delta_Days );
37
use Encode;
37
use Encode;
Lines 987-993 sub SendQueuedMessages { Link Here
987
        elsif ( lc( $message->{'message_transport_type'} ) eq 'sms' ) {
987
        elsif ( lc( $message->{'message_transport_type'} ) eq 'sms' ) {
988
            if ( C4::Context->preference('SMSSendDriver') eq 'Email' ) {
988
            if ( C4::Context->preference('SMSSendDriver') eq 'Email' ) {
989
                my $member = C4::Members::GetMember( 'borrowernumber' => $message->{'borrowernumber'} );
989
                my $member = C4::Members::GetMember( 'borrowernumber' => $message->{'borrowernumber'} );
990
                my $sms_provider = Koha::SMS::Provider->find( $member->{'sms_provider_id'} );
990
                my $sms_provider = Koha::SMS::Providers->find( $member->{'sms_provider_id'} );
991
                $message->{to_address} .= '@' . $sms_provider->domain();
991
                $message->{to_address} .= '@' . $sms_provider->domain();
992
                _send_message_by_email( $message, $params->{'username'}, $params->{'password'}, $params->{'method'} );
992
                _send_message_by_email( $message, $params->{'username'}, $params->{'password'}, $params->{'method'} );
993
            } else {
993
            } else {
(-)a/Koha/SMS/Provider.pm (-119 / +13 lines)
Lines 1-6 Link Here
1
package Koha::SMS::Provider;
1
package Koha::SMS::Provider;
2
2
3
# Copyright 2012 ByWater Solutions
3
# Copyright ByWater Solutions 2016
4
#
4
#
5
# This file is part of Koha.
5
# This file is part of Koha.
6
#
6
#
Lines 17-157 package Koha::SMS::Provider; Link Here
17
# with Koha; if not, write to the Free Software Foundation, Inc.,
17
# with Koha; if not, write to the Free Software Foundation, Inc.,
18
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19
19
20
=head1 NAME
21
22
Koha::SMS::Provider - class to manage sms providers
23
24
=head1 SYNOPSIS
25
26
Object-oriented class that encapsulates sms providers in Koha.
27
28
=head1 DESCRIPTION
29
30
SMS::Provider data.
31
32
=cut
33
34
use Modern::Perl;
20
use Modern::Perl;
35
21
36
use C4::Context;
22
use Carp;
37
38
use base qw(Class::Accessor);
39
40
__PACKAGE__->mk_accessors(qw( id name domain ));
41
42
=head2 new
43
44
    my $provider = Koha::SMS::Provider->new($data);
45
46
Create a new Koha::SMS::Provider object based on the provided record.
47
48
=cut
49
50
sub new {
51
    my $class = shift;
52
    my $data  = shift;
53
54
    my $self = $class->SUPER::new($data);
55
56
    bless $self, $class;
57
    return $self;
58
}
59
60
=head2 store
61
62
    Creates or updates the object in the database
63
64
=cut
65
66
sub store {
67
    my $self = shift;
68
69
    if ( $self->id ) {
70
        return C4::Context->dbh->do( "UPDATE sms_providers SET name = ?, domain = ? WHERE id = ?", undef, ( $self->name, $self->domain, $self->id ) );
71
    } else {
72
        return C4::Context->dbh->do( "INSERT INTO sms_providers ( name, domain ) VALUES ( ?, ? )", undef, ( $self->name, $self->domain ) );
73
    }
74
}
75
76
=head2 delete
77
23
78
=cut
24
use base qw(Koha::Object);
79
25
80
sub delete {
26
=head1 NAME
81
    my $self = shift;
82
27
83
    return C4::Context->dbh->do( "DELETE FROM sms_providers WHERE id = ?", undef, ( $self->id ) );
28
Koha::Biblio - Koha Biblio Object class
84
}
29
Koha::SMS::Provider - Koha SMS Provider object class
85
30
86
=head2 all
31
=head1 API
87
32
88
    my $providers = Koha::SMS::Provider->all();
33
=head2 Class Methods
89
34
90
=cut
35
=cut
91
36
92
sub all {
37
=head3 type
93
    my $class = shift;
94
95
    my $query = "SELECT * FROM sms_providers ORDER BY name";
96
    my $sth   = C4::Context->dbh->prepare($query);
97
    $sth->execute();
98
99
    my @providers;
100
    while ( my $row = $sth->fetchrow_hashref() ) {
101
        my $p = Koha::SMS::Provider->new($row);
102
        push( @providers, $p );
103
    }
104
105
    return @providers;
106
}
107
108
=head2 find
109
110
  my $provider = Koha::SMS::Provider->find( $id );
111
38
112
=cut
39
=cut
113
40
114
sub find {
41
sub type {
115
    my $class = shift;
42
    return 'SmsProvider';
116
    my $id    = shift;
117
118
    my $query = "SELECT * FROM sms_providers WHERE ID = ?";
119
    my $sth   = C4::Context->dbh->prepare($query);
120
    $sth->execute($id);
121
122
    my $row = $sth->fetchrow_hashref();
123
    my $p   = Koha::SMS::Provider->new($row);
124
125
    return $p;
126
}
43
}
127
44
128
=head2 search
45
=head1 AUTHOR
129
46
130
  my @providers = Koha::SMS::Provider->search({ [name => $name], [domain => $domain] });
47
Kyle M Hall <kyle@bywatersolutions.com>
131
48
132
=cut
49
=cut
133
50
134
sub search {
135
    my $class  = shift;
136
    my $params = shift;
137
138
    my $query = "SELECT * FROM sms_providers WHERE ";
139
140
    my @params = map( $params->{$_}, keys %$params );
141
    $query .= join( " AND ", map( "$_ = ?", keys %$params ) );
142
143
    $query .= " ORDER BY name";
144
145
    my $sth = C4::Context->dbh->prepare($query);
146
    $sth->execute(@params);
147
148
    my @providers;
149
    while ( my $row = $sth->fetchrow_hashref() ) {
150
        my $p = Koha::SMS::Provider->new($row);
151
        push( @providers, $p );
152
    }
153
154
    return @providers;
155
}
156
157
1;
51
1;
(-)a/Koha/SMS/Providers.pm (+60 lines)
Line 0 Link Here
1
package Koha::SMS::Providers;
2
3
# Copyright ByWater Solutions 2016
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 3 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 Modern::Perl;
21
22
use Carp;
23
24
use Koha::SMS::Provider;
25
26
use base qw(Koha::Objects);
27
28
=head1 NAME
29
30
Koha::SMS::Providers - Koha SMS Provider object set class
31
32
=head1 API
33
34
=head2 Class Methods
35
36
=cut
37
38
=head3 type
39
40
=cut
41
42
sub type {
43
    return 'SmsProvider';
44
}
45
46
=head3 object_class
47
48
=cut
49
50
sub object_class {
51
    return 'Koha::SMS::Provider';
52
}
53
54
=head1 AUTHOR
55
56
Kyle M Hall <kyle@bywatersolutions.com>
57
58
=cut
59
60
1;
(-)a/admin/sms_providers.pl (-5 / +17 lines)
Lines 26-36 use C4::Auth; Link Here
26
use C4::Output;
26
use C4::Output;
27
27
28
use Koha::SMS::Provider;
28
use Koha::SMS::Provider;
29
use Koha::SMS::Providers;
29
30
30
my $cgi = new CGI;
31
my $cgi = new CGI;
31
32
32
my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
33
my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
33
    {   template_name   => "admin/sms_providers.tt",
34
    {
35
        template_name   => "admin/sms_providers.tt",
34
        query           => $cgi,
36
        query           => $cgi,
35
        type            => "intranet",
37
        type            => "intranet",
36
        authnotrequired => 0,
38
        authnotrequired => 0,
Lines 46-58 my $domain = $cgi->param('domain'); Link Here
46
48
47
if ( $op eq 'add_update' ) {
49
if ( $op eq 'add_update' ) {
48
    if ( $name && $domain ) {
50
    if ( $name && $domain ) {
49
        Koha::SMS::Provider->new( { id => $id, name => $name, domain => $domain } )->store();
51
        if ($id) {
52
            my $provider = Koha::SMS::Providers->find($id);
53
            $provider->set( { name => $name, domain => $domain } )->store()
54
              if $provider;
55
        }
56
        else {
57
            Koha::SMS::Provider->new( { name => $name, domain => $domain } )
58
              ->store();
59
        }
50
    }
60
    }
51
} elsif ( $op eq 'delete' ) {
61
}
52
    Koha::SMS::Provider->find($id)->delete();
62
elsif ( $op eq 'delete' ) {
63
    my $provider = Koha::SMS::Providers->find($id);
64
    $provider->delete() if $provider;
53
}
65
}
54
66
55
my @providers = Koha::SMS::Provider->all();
67
my @providers = Koha::SMS::Providers->search();
56
68
57
$template->param( providers => \@providers );
69
$template->param( providers => \@providers );
58
70
(-)a/members/memberentry.pl (-2 / +2 lines)
Lines 46-52 use Module::Load; Link Here
46
if ( C4::Context->preference('NorwegianPatronDBEnable') && C4::Context->preference('NorwegianPatronDBEnable') == 1 ) {
46
if ( C4::Context->preference('NorwegianPatronDBEnable') && C4::Context->preference('NorwegianPatronDBEnable') == 1 ) {
47
    load Koha::NorwegianPatronDB, qw( NLGetSyncDataFromBorrowernumber );
47
    load Koha::NorwegianPatronDB, qw( NLGetSyncDataFromBorrowernumber );
48
}
48
}
49
use Koha::SMS::Provider;
49
use Koha::SMS::Providers;
50
50
51
use vars qw($debug);
51
use vars qw($debug);
52
52
Lines 70-76 my ($template, $loggedinuser, $cookie) Link Here
70
       });
70
       });
71
71
72
if ( C4::Context->preference('SMSSendDriver') eq 'Email' ) {
72
if ( C4::Context->preference('SMSSendDriver') eq 'Email' ) {
73
    my @providers = Koha::SMS::Provider->all();
73
    my @providers = Koha::SMS::Providers->search();
74
    $template->param( sms_providers => \@providers );
74
    $template->param( sms_providers => \@providers );
75
}
75
}
76
76
(-)a/opac/opac-messaging.pl (-2 / +2 lines)
Lines 31-36 use C4::Members; Link Here
31
use C4::Members::Messaging;
31
use C4::Members::Messaging;
32
use C4::Branch;
32
use C4::Branch;
33
use C4::Form::MessagingPreferences;
33
use C4::Form::MessagingPreferences;
34
use Koha::SMS::Providers;
34
35
35
my $query = CGI->new();
36
my $query = CGI->new();
36
37
Lines 70-76 $template->param( BORROWER_INFO => $borrower, Link Here
70
                  TalkingTechItivaPhone        =>  C4::Context->preference("TalkingTechItivaPhoneNotification") );
71
                  TalkingTechItivaPhone        =>  C4::Context->preference("TalkingTechItivaPhoneNotification") );
71
72
72
if ( C4::Context->preference("SMSSendDriver") eq 'Email' ) {
73
if ( C4::Context->preference("SMSSendDriver") eq 'Email' ) {
73
    my @providers = Koha::SMS::Provider->all();
74
    my @providers = Koha::SMS::Providers->search();
74
    $template->param( sms_providers => \@providers, sms_provider_id => $borrower->{'sms_provider_id'} );
75
    $template->param( sms_providers => \@providers, sms_provider_id => $borrower->{'sms_provider_id'} );
75
}
76
}
76
77
77
- 

Return to bug 9021