sms_message if lock_state=locking

This commit is contained in:
Rainer Gümpelein 2022-03-07 17:14:24 +01:00
parent beb2d92f71
commit 7b24b1dca8
4 changed files with 100 additions and 2 deletions

View file

@ -1257,7 +1257,10 @@ sub booking_update(){
$booking_values->{state} = "$dbt->{copri_conf}->{bike_state}->{$booking->{int10}}";
$booking_values->{lock_state} = "locked" if($booking->{int20} == 1);
$booking_values->{lock_state} = "unlocked" if($booking->{int20} == 2);
$booking_values->{lock_state} = "locking" if($booking->{int20} == 3);
if($booking->{int20} == 3){
$booking_values->{lock_state} = "locking";
system(`$varenv{basedir}/src/scripts/sms_message.pl $varenv{syshost} locking_progress $auth->{txt07} $booking->{c_id}`);
}
#fetch tracking distance on Ilockit cloud by summary trip if(tracking && deviceId && available)
$bw->log("Ilockit_trackingcloud.pl $varenv{syshost} get_tripsum",$booking,"") if($booking->{int25});

View file

@ -99,6 +99,56 @@ sub sms_ack_digest {
return $ret_json;
}
#used for sending message if lock_state=locking and after 45 sec no lock_state=locked
sub sms_message {
my $self = shift;
my $sms_to = shift;
my $bike = shift;
my $sms_from = "Mietradinfo";
my $sms_message = "";
#goes to test if devel or joke bsp nr
if($dbt->{copri_conf}->{stage} eq "test" || $sms_to =~ /17012345678/){
$sms_to = "$dbt->{copri_conf}->{sms_to}";
$sms_message = "* offline Test *";
}
if($sms_to =~ /^0/ || $sms_to !~ /\+[1-9]/){
my $sms_tosub = $sms_to;
$sms_tosub =~ s/^\+00/\+/;
$sms_tosub =~ s/^00/\+/;
$sms_tosub =~ s/^0/\+49/;
$sms_to = $sms_tosub;
}
$sms_message .= "Die Miete zu $bike wurde nicht beendet! Bitte überprüfe ob das Schloss wirklich geschlossen wurde. Ist ihr smartphone online?";
my $message = Encode::encode('iso-8859-1', Encode::decode('utf-8',"$sms_message"));
open(FILE,">>$dbt->{copri_conf}->{logdir}/sms_gtx.log");
print FILE "\n*** $now_dt 'sharee smsclient' \n";
my $request = {
from => $sms_from,
to => $sms_to,
text => $message,
};
print FILE "---> request:\n" . Dumper($request);
my $ret_json = $self->get_sms_gtx($request);
eval {
$response_in = decode_json($ret_json);
print FILE "<--- response_in:\n" . Dumper($response_in);
};
if ($@){
print FILE "<--- failure raw response_in:\n" . Dumper($ret_json) . "\n";
warn $@;
}
close(FILE);
return $ret_json;
}
#sms gtx http request
sub get_sms_gtx {

View file

@ -424,7 +424,7 @@ sub tpl(){
my $kunde = $q->a({-class=>"linknav3",-style=>"$ware_style",-href=>"/DMS/Kunden/?detail_search=1&s_c_id=$cttpos->{$pid}->{ca_id}",-title=>"Kunde im Kundenstamm"},"$cttpos->{$pid}->{txt08} ($cttpos->{$pid}->{ca_id})");#2021-05-24 saves kd name
print $q->div({-style=>'float:left;margin-left:1em;font-size:0.91em;'}, "$i) <span style='$time_style'> $start_time $end_time</span> &rarr; $kunde &rarr; Start Station $start_station &rarr; End Station $end_station &rarr; Rad $bikenr $status $lock_state $track_info &rarr; $u_name $pos_id"),"\n";
print $q->div({-style=>'float:left;margin-left:1em;font-size:0.91em;'}, "&rarr; Faktura", $q->a({-class=>"linknav3",-style=>"$trans_style",-href=>"/DMS/Faktura?ct_trans=open\&c_id4trans=$c_id4trans\&tpl_id4trans=$tpl_id4trans\&kind_of_trans=Faktura\&owner=$users_dms->{owner}",-title=>"Faktura Terminal öffnen"},"\#$ct_name")),"\n";
print $q->div({-style=>'float:left;margin-left:1em;font-size:0.91em;'}, "&rarr; Faktura", $q->a({-class=>"linknav3",-style=>"$trans_style",-href=>"/DMS/Faktura?ct_trans=open\&c_id4trans=$c_id4trans\&tpl_id4trans=$tpl_id4trans\&kind_of_trans=Faktura\&owner=$users_dms->{owner}",-title=>"Faktura Terminal öffnen"},"\#$ct_name")),"\n" if($c_id4trans && $tpl_id4trans);
print $q->div({-style=>'float:left;margin-left:1em;font-size:0.91em;'}, "$user_device"),"\n";
}elsif($node_meta->{ct_table} eq "contenttheftpos"){

View file

@ -0,0 +1,45 @@
#!/usr/bin/perl
#
# SPDX-License-Identifier: AGPL-3.0-or-later
# Copyright (c) Rainer Gümpelein, TeilRad GmbH
#
#sudo su www-data -c "./src/scripts/sms_message.pl shareeapp-operator locking_progress '0179xxxx372' $pos_id"
#
use vars qw($syshost);
BEGIN {
$syshost = $ARGV[0] || die 'syshost not defined';
}
use lib "/var/www/copri-bike/$syshost/src";
use strict;
use warnings;
use POSIX;
use Mod::DBtank;
use Mod::SMSTransport;
my $dbt = new DBtank;
my $smstrans = new SMSTransport;
my $todo = $ARGV[1] || die 'todo not defined';
my $phone = $ARGV[2] || die 'phone not defined';
my $pos_id = $ARGV[3] || die 'no booking id available';
my $dbh = "";
if($todo eq "locking_progress"){
sleep 45;
#select booking pos if lock_state=locking still set
my $booking_pos = {
table => "contenttranspos",
fetch => "one",
c_id => "$pos_id",
};
my $booking = { c_id => 0 };
$booking = $dbt->fetch_tablerecord($dbh,$booking_pos);
if($booking->{int20} == 3){
$smstrans->sms_message($phone,$booking->{ct_name});
}
}