#!/usr/bin/perl
use strict;
+use warnings;
+
use C4::SMS;
use C4::Auth;
use C4::Context;
use C4::Members;
use C4::Circulation;
+
my ($res,$ua);
my %commands;
my $message;
($res,$ua)=get_sms_auth();
AGAIN:
$errorcode=0;
- if ($res->{pRetCode}==200){
- $result=read_sms($ua,$res->{pSessionId});
+if ($res->{pRetCode}==200){
+ $result=read_sms($ua,$res->{pSessionId});
$errorcode=$result->{pErrCode};
-print "connected\n";
- }else{
+ print "connected\n";
+} else {
kill_sms($ua,$res->{pSessionId});
warn (error_codes($res->{pErrCode}),$res->{pErrcode}) ;
# sleep $wait;
goto FINISH;
-
- }
+}
if ($errorcode && $errorcode !=-9005){
-kill_sms($ua,$res->{pSessionId});
-warn error_codes($errorcode) ;
-# sleep $wait;
-goto FINISH;
-
-}elsif ($errorcode ==-9005){
-print "no more messages to read\n";
-goto WAITING;
+ kill_sms($ua,$res->{pSessionId});
+ warn error_codes($errorcode) ;
+ # sleep $wait;
+ goto FINISH;
+} elsif ($errorcode ==-9005){
+ print "no more messages to read\n";
+ goto WAITING;
}
+
+
#Parse the message to a useful hash
my @action=parse_message( $result->{pContent});
## Log the request in our database;
- $smsid=write_sms($action[1], $result->{pContent},$result->{pMsisdn});
+$smsid=write_sms($action[1], $result->{pContent},$result->{pMsisdn});
print "message logged\n";
##Now do the service required
if (uc($action[0]) eq "RN"){
-print "dealing request\n";
-my ($ok,$cardnumber)=C4::Auth::checkpw($dbh,$action[1],$action[2]);
- if($ok){
+ print "dealing request\n";
+ my ($ok,$cardnumber)=C4::Auth::checkpw($dbh,$action[1],$action[2]);
+ unless ($ok) {
+ ##wrong user/pass
+ $message="Yanlis kullanici/sifre! :Wrong username/password!";
+ my $send=send_message($result,$message,$smsid);
+ goto AGAIN;
+ }
my $item=getiteminformation(undef,0,$action[3]);
- if ($item){
+ if ($item){
my $borrower=getmember($cardnumber);
my $status=renewstatus(undef,$borrower->{borrowernumber},$item->{itemnumber});
- if ($status==1){
- my $date=renewbook(undef,$borrower->{borrowernumber},$item->{itemnumber});
- $message="Uzatildi :Renewed ".$item->{barcode}." : ".$date;
- my $send=send_message($result,$message,$smsid);
- }elsif($status==2){
- $message="Cok erken- yenilenmedi! :Too early-not renewed:".$item->{barcode};
- my $send=send_message($result,$message,$smsid);
- }elsif($status==3){
- $message="Uzatamazsiniz GERI getiriniz! :No more renewals RETURN the item:".$item->{barcode};
- my $send=send_message($result,$message,$smsid);
- }elsif($status==4){
- $message="Ayirtildi GERI getiriniz! :Reserved RETURN the item:".$item->{barcode};
- my $send=send_message($result,$message,$smsid);
- }elsif($status==0){
- $message="Uzatilamaz! :Can not renew:".$item->{barcode};
- my $send=send_message($result,$message,$smsid);
+ if ($status==1) {
+ my $date=renewbook(undef,$borrower->{borrowernumber},$item->{itemnumber});
+ $message="Uzatildi :Renewed ".$item->{barcode}." : ".$date;
+ } elsif($status==2) {
+ $message="Cok erken- yenilenmedi! :Too early-not renewed:".$item->{barcode};
+ } elsif($status==3) {
+ $message="Uzatamazsiniz GERI getiriniz! :No more renewals RETURN the item:".$item->{barcode};
+ } elsif($status==4) {
+ $message="Ayirtildi GERI getiriniz! :Reserved RETURN the item:".$item->{barcode};
+ } elsif($status==0) {
+ $message="Uzatilamaz! :Can not renew:".$item->{barcode};
}
- }else{
+ } else {
$message="Yanlis barkot! :Wrong barcode!";
- my $send=send_message($result,$message,$smsid);
- }#wrong barcode
- }else{
- $message="Yanlis kullanici/sifre! :Wrong username/password!";
- my $send=send_message($result,$message,$smsid);
- }##wrong user/pass
-}else{
-## reply about error
-$message="Yanlis mesaj formati! :Wrong message! :
+ }
+} else {
+ ## reply about error
+ $message="Yanlis mesaj formati! :Wrong message! :
RN usercardno password barcode";
-my $send=send_message($result,$message,$smsid);
-}### wrong service
+} ### wrong service
+send_message($result,$message,$smsid);
goto AGAIN;
-
-
WAITING:
##Now send the messages waiting in queue
my $smssth=$dbh->prepare("SELECT smsid,user_phone,message from sms_messages where date_replied like '0000-00-00%' ");
$smssth->execute();
my @phones;
while (my $data=$smssth->fetchrow_hashref){
-push @phones,$data;
+ push @phones,$data;
}
$smssth->finish;
foreach my $user(@phones){
-print "replying $user->{user_phone}";
-my $send=send_sms($ua,$user->{user_phone},$user->{message},$res->{pSessionId});
-my $reply="--failed\n";
+ print "replying $user->{user_phone}";
+ my $send=send_sms($ua,$user->{user_phone},$user->{message},$res->{pSessionId});
+ my $reply="--failed\n";
if ($send->{pRetCode}==200){
-$reply= "--replied\n";
- mod_sms($user->{smsid},"Sent");
+ $reply= "--replied\n";
+ mod_sms($user->{smsid},"Sent");
}
-print $reply;
+ print $reply;
}
$dbh->disconnect;
-
-sub send_message{
-my ($mes,$message,$smsid)=@_;
-my $send=send_sms($ua,$mes->{pMsisdn},$message,$res->{pSessionId});
+sub send_message {
+ my ($mes,$message,$smsid)=@_;
+ my $send=send_sms($ua,$mes->{pMsisdn},$message,$res->{pSessionId});
if ($send->{pRetCode}==200){
- mod_sms($smsid,$message);
- }else{
- my $error=error_codes($send->{pErrCode});
- mod_sms($smsid,"Not replied error:".$error);
+ mod_sms($smsid,$message);
+ } else {
+ my $error=error_codes($send->{pErrCode});
+ mod_sms($smsid,"Not replied error:".$error);
}
-return $send;
+ return $send;
}
FINISH:
1;