diff --git a/copri4/main/src/Mod/APIfunc.pm b/copri4/main/src/Mod/APIfunc.pm index 4a8f840..fa3cd06 100755 --- a/copri4/main/src/Mod/APIfunc.pm +++ b/copri4/main/src/Mod/APIfunc.pm @@ -1248,8 +1248,8 @@ sub booking_update(){ #fraud_rental sms_message if($auth->{txt29} && $auth->{txt29} =~ /Betrug/){ - $bw->log("$varenv->{basedir}/src/scripts/sms_message.pl $varenv->{syshost} fraud_renatl $auth->{txt07} $record_pos->{c_id}",$record_pos->{c_id},""); - system("$varenv->{basedir}/src/scripts/sms_message.pl $varenv->{syshost} fraud_rental $auth->{txt07} $record_pos->{c_id} &"); + $bw->log("$varenv->{basedir}/src/scripts/sms_message.pl $varenv->{syshost} fraud_rental '' $record_pos->{c_id}",$record_pos->{c_id},""); + system("$varenv->{basedir}/src/scripts/sms_message.pl $varenv->{syshost} fraud_rental '' $record_pos->{c_id} &"); } @@ -1594,8 +1594,8 @@ sub smartlock { $booking_values->{response_state} = "OK: bike " . $q->param('bike') . " locking in progress. "; $booking_values->{response_text} = "Abschließen von Fahrrad Nr. " . $q->param('bike') . " ist im Prozess. Bitte warten bis das smartlock vollständig geschlossen wurde und das abschließen bestätigt wird. "; if($varenv->{dbname} ne "sharee_lv" && !$record_pos->{int32}){ - $bw->log("$varenv->{basedir}/src/scripts/sms_message.pl $varenv->{syshost} locking_progress $auth->{txt07} $record_pos->{c_id}",$record_pos->{c_id},""); - system("$varenv->{basedir}/src/scripts/sms_message.pl $varenv->{syshost} locking_progress $auth->{txt07} $record_pos->{c_id} &"); + $bw->log("$varenv->{basedir}/src/scripts/sms_message.pl $varenv->{syshost} locking_progress $auth->{c_id} $record_pos->{c_id}",$record_pos->{c_id},""); + system("$varenv->{basedir}/src/scripts/sms_message.pl $varenv->{syshost} locking_progress $auth->{c_id} $record_pos->{c_id} &"); } $update_pos->{int32} = $record_pos->{int32} + 1;#sms_message sent marker }elsif($q->param('lock_state') eq "unlocking"){ diff --git a/copri4/main/src/Mod/APIjsonserver.pm b/copri4/main/src/Mod/APIjsonserver.pm index 69ef365..5519ff6 100755 --- a/copri4/main/src/Mod/APIjsonserver.pm +++ b/copri4/main/src/Mod/APIjsonserver.pm @@ -97,6 +97,11 @@ my $response = { if($varenv{dbname} eq $dbt->{primary}->{sharee_primary}->{database}->{dbname}){ $varenv{cms} = $dbt->fetch_cms($dbh,{ lang => $q->escapeHTML($lang) }); + if($lang eq "de"){ + $response->{faq_app_fullurl} = $dbt->{project_conf}->{faq_app_fullurl_de}; + }else{ + $response->{faq_app_fullurl} = $dbt->{project_conf}->{faq_app_fullurl_en}; + } }else{ my $dbh_primary = $dbt->dbconnect_extern($dbt->{primary}->{sharee_primary}->{database}->{dbname}); $varenv{cms} = $dbt->fetch_cms($dbh_primary,{ lang => $q->escapeHTML($lang) }); diff --git a/copri4/main/src/Mod/SMSTransport.pm b/copri4/main/src/Mod/SMSTransport.pm index d79a2a8..5a831af 100755 --- a/copri4/main/src/Mod/SMSTransport.pm +++ b/copri4/main/src/Mod/SMSTransport.pm @@ -46,16 +46,20 @@ my $dbh = ""; my $owner = 181; #used for sending smsAck codes to user +#Should be only used by primary. sub sms_ack_digest { my $self = shift; my $ctadr = shift; + my %varenv = (); + $varenv{cms} = $dbt->fetch_cms($dbh,{ lang => $ctadr->{txt10} }); + #Ack digest my $ack_digest = $q->unescapeHTML($ctadr->{txt34}) || ""; my $email_ack_digest = $1 if($ack_digest =~ /^(.{5})/); my $sms_ack_digest = $1 if($ack_digest =~ /(.{5})$/); - my $sms_from = "Mietradcode"; + my $sms_from = "$varenv{cms}->{'sms-from-code'}->{txt}"; my $sms_to = $ctadr->{txt07};# || "+491799xxxx72"; my $sms_message = ""; @@ -71,7 +75,7 @@ sub sms_ack_digest { $sms_tosub =~ s/^0/\+49/; $sms_to = $sms_tosub; } - $sms_message .= "Ihr Mietradsystem SMS-Bestätigungscode lautet: $sms_ack_digest"; + $sms_message .= "$varenv{cms}->{'sms-smsack'}->{txt} $sms_ack_digest"; my $message = Encode::encode('iso-8859-1', Encode::decode('utf-8',"$sms_message")); open(FILE,">>$dbt->{copri_conf}->{logdir}/sms_gtx.log"); @@ -115,15 +119,32 @@ sub sms_ack_digest { } #used for sending message to user +#varenv will be slurpt by syshost client sub sms_message { my $self = shift; my $todo = shift; - my $contact_hotline = shift; - my $sms_to = shift; - my $bike = shift; + my $contact_hotline = shift || ""; + my $adr_id = shift || "";#phone by adr.c_id + my $sms_to = shift || "";#direct phone (send_alarm2hotline) + my $bike = shift || ""; my %varenv = $cf->envonline(); - my $sms_from = "Mietradinfo"; + my $dbh_primary = $dbt->dbconnect_extern($dbt->{primary}->{sharee_primary}->{database}->{dbname},"iso-8859-1"); + + my $ctadr = { c_id => 0 }; + if(looks_like_number($adr_id)){ + my $pref_adr = { + table => "contentadr", + fetch => "one", + c_id => "$adr_id", + }; + $ctadr = $dbt->fetch_tablerecord($dbh_primary,$pref_adr); + $sms_to = $ctadr->{txt07}; + + $varenv{cms} = $dbt->fetch_cms($dbh_primary,{ lang => $ctadr->{txt10} }); + } + + my $sms_from = "$varenv{cms}->{'sms-from-info'}->{txt}"; my $sms_message = ""; #goes to test if devel or joke bsp nr @@ -141,18 +162,24 @@ sub sms_message { #todo locking_progress if($todo eq "locking_progress"){ - $sms_message .= "Ihre Miete von $bike wurde nicht beendet! Ihre kostenpflichtige Miete läuft weiter! Stellen Sie sicher, dass das Schloss geschlossen ist. $contact_hotline"; + #$sms_message .= "Ihre Miete von $bike wurde nicht beendet! Ihre kostenpflichtige Miete läuft weiter! Stellen Sie sicher, dass das Schloss geschlossen ist. $contact_hotline"; + $varenv{cms}->{'sms-locking-progress'}->{txt} =~ s/::bike::/$bike/; + $sms_message .= "$varenv{cms}->{'sms-locking-progress'}->{txt} $contact_hotline"; } + $varenv{cms}->{'sms-24h'}->{txt} =~ s/::bike::/$bike/; #todo if > 24h rental if($todo eq "24h_occupied"){ - $sms_message .= "Zur Info! Sie haben $bike seit 24 Stunden kostenpflichtig gemietet!. $contact_hotline"; + $varenv{cms}->{'sms-24h'}->{txt} =~ s/::hour::/24/; + $sms_message .= "$varenv{cms}->{'sms-24h'}->{txt} $contact_hotline"; } if($todo eq "48h_occupied"){ - $sms_message .= "Zur Info! Sie haben $bike seit 48 Stunden kostenpflichtig gemietet!. $contact_hotline"; + $varenv{cms}->{'sms-24h'}->{txt} =~ s/::hour::/48/; + $sms_message .= "$varenv{cms}->{'sms-24h'}->{txt} $contact_hotline"; } if($todo eq "72h_occupied"){ - $sms_message .= "Zur Info! Sie haben $bike seit 72 Stunden kostenpflichtig gemietet!. $contact_hotline"; + $varenv{cms}->{'sms-24h'}->{txt} =~ s/::hour::/72/; + $sms_message .= "$varenv{cms}->{'sms-24h'}->{txt} $contact_hotline"; } #todo send_alarm2hotline diff --git a/copri4/main/src/scripts/sms_message.pl b/copri4/main/src/scripts/sms_message.pl index e8c4df1..891b5f0 100755 --- a/copri4/main/src/scripts/sms_message.pl +++ b/copri4/main/src/scripts/sms_message.pl @@ -8,7 +8,7 @@ #./src/scripts/sms_message.pl shareedms-operator '24h_occupied' '' '' # #SMS message locking_progress after 60sec -#./src/scripts/sms_message.pl shareeapp-operator locking_progress '0179xxxx372' $pos_id +#./src/scripts/sms_message.pl shareeapp-operator locking_progress $adr_id $pos_id # #SMS theftalarm #./src/scripts/sms_message.pl shareedms-operator 'send_alarm2hotline' '' '18498' @@ -24,6 +24,7 @@ use lib "/var/www/copri-bike/$syshost/src"; use strict; use warnings; use POSIX; +use Scalar::Util qw(looks_like_number); use DateTime; use DateTime::Format::Pg; use Lib::Config; @@ -37,7 +38,7 @@ my $dbt = new DBtank; my $smstrans = new SMSTransport; my $todo = $ARGV[1] || die 'todo not defined'; -my $phone = $ARGV[2] || ""; +my $adr_id = $ARGV[2] || ""; my $pos_id = $ARGV[3] || ""; my $dbh = ""; my $oprefix = $dbt->{operator}->{$varenv{dbname}}->{oprefix} || ""; @@ -53,8 +54,7 @@ my $record_cc = { c_id => 0 }; $record_cc = $dbt->fetch_record($dbh,$pref_cc); my $contact_hotline = ""; $record_cc->{txt07} =~ s/\s//g; -$contact_hotline = "Hotline $record_cc->{txt01} $record_cc->{txt07}"; - +$contact_hotline = "Hotline $record_cc->{txt01} $record_cc->{txt08}, $record_cc->{txt07}"; #SMS message if 24h,48h,72h occupied if($todo eq "24h_occupied"){ @@ -88,8 +88,8 @@ if($todo eq "24h_occupied"){ if($dt1 >= $dt2_72h_occupied){ if($cttpos->{$pid}->{int33} != 3){ $todo = "72h_occupied"; - print $dt1 . ">=" . $dt2_72h_occupied . "|$todo,$contact_hotline,$cttpos->{$pid}->{phone},$cttpos->{$pid}->{ct_name}\n"; - $smstrans->sms_message($todo,$contact_hotline,$cttpos->{$pid}->{phone},$cttpos->{$pid}->{ct_name}); + print $dt1 . ">=" . $dt2_72h_occupied . "|$todo,$contact_hotline,$cttpos->{$pid}->{ca_id},$cttpos->{$pid}->{ct_name}\n"; + $smstrans->sms_message($todo,$contact_hotline,$cttpos->{$pid}->{ca_id},"",$cttpos->{$pid}->{ct_name}); $dbt->update_one($dbh,$update_pos,"int33=3",$cttpos->{$pid}->{c_id}); } } @@ -97,16 +97,16 @@ if($todo eq "24h_occupied"){ #elsif($dt1 >= $dt2_48h_occupied){ # if($cttpos->{$pid}->{int33} != 2){ # $todo = "48h_occupied"; - # print $dt1 . ">=" . $dt2_48h_occupied . "|$todo,$contact_hotline,$cttpos->{$pid}->{phone},$cttpos->{$pid}->{ct_name}\n"; - # $smstrans->sms_message($todo,$contact_hotline,$cttpos->{$pid}->{phone},$cttpos->{$pid}->{ct_name}); + # print $dt1 . ">=" . $dt2_48h_occupied . "|$todo,$contact_hotline,$cttpos->{$pid}->{ca_id},$cttpos->{$pid}->{ct_name}\n"; + # $smstrans->sms_message($todo,$contact_hotline,$cttpos->{$pid}->{ca_id},"",$cttpos->{$pid}->{ct_name}); # $dbt->update_one($dbh,$update_pos,"int33=2",$cttpos->{$pid}->{c_id}); # } #} elsif($dt1 >= $dt2_24h_occupied){ if($cttpos->{$pid}->{int33} != 1){ $todo = "24h_occupied"; - print $dt1 . ">=" . $dt2_24h_occupied . "|$todo,$contact_hotline,$cttpos->{$pid}->{phone},$cttpos->{$pid}->{ct_name}\n"; - $smstrans->sms_message($todo,$contact_hotline,$cttpos->{$pid}->{phone},$cttpos->{$pid}->{ct_name}); + print $dt1 . ">=" . $dt2_24h_occupied . "|$todo,$contact_hotline,$cttpos->{$pid}->{ca_id},$cttpos->{$pid}->{ct_name}\n"; + $smstrans->sms_message($todo,$contact_hotline,$cttpos->{$pid}->{ca_id},"",$cttpos->{$pid}->{ct_name}); $dbt->update_one($dbh,$update_pos,"int33=1",$cttpos->{$pid}->{c_id}); } } @@ -117,7 +117,7 @@ if($todo eq "24h_occupied"){ }#end #SMS message locking_progress after 60sec -if($todo eq "locking_progress" && $phone && $pos_id){ +if($todo eq "locking_progress" && $adr_id && $pos_id){ sleep 60; #select booking pos if lock_state=locking still set my $booking_pos = { @@ -129,7 +129,7 @@ if($todo eq "locking_progress" && $phone && $pos_id){ my $booking = { c_id => 0 }; $booking = $dbt->fetch_tablerecord($dbh,$booking_pos); if($booking->{int20} == 3){ - $smstrans->sms_message($todo,$contact_hotline,$phone,$booking->{ct_name}); + $smstrans->sms_message($todo,$contact_hotline,$adr_id,"",$booking->{ct_name}); } }#end @@ -164,10 +164,10 @@ if($todo eq "send_alarm2hotline" && $pos_id){ my @alarm_phone = ("$dbt->{copri_conf}->{sms_to_alarm}"); @alarm_phone = split(/\|/,$dbt->{copri_conf}->{sms_to_alarm}) if($dbt->{copri_conf}->{sms_to_alarm} =~ /\|/); foreach(@alarm_phone){ - $smstrans->sms_message($todo,"",$_,"$oprefix$ct->{barcode}"); + $smstrans->sms_message($todo,"","",$_,"$oprefix$ct->{barcode}"); } }else{ - $smstrans->sms_message($todo,"",$phone,"$oprefix$ct->{barcode}"); + $smstrans->sms_message($todo,"","",$phone,"$oprefix$ct->{barcode}"); } }#end @@ -186,7 +186,7 @@ if($todo eq "fraud_rental" && $pos_id){ my $booking = { c_id => 0 }; $booking = $dbt->fetch_tablerecord($dbh,$booking_pos); - $smstrans->sms_message($todo,"",$sms_to,$booking->{ct_name}); + $smstrans->sms_message($todo,"","",$sms_to,$booking->{ct_name}); }#end