CMS-Text for SMS messaging

This commit is contained in:
ragu 2023-07-17 14:36:52 +02:00
parent 1744cd35a3
commit de824a241a
4 changed files with 61 additions and 29 deletions

View file

@ -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"){

View file

@ -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) });

View file

@ -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

View file

@ -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