sigo api rental fork

This commit is contained in:
ragu 2022-05-11 08:05:35 +02:00
parent 0163c06893
commit dd9be5f40e
14 changed files with 283 additions and 161 deletions

View file

@ -25,7 +25,7 @@ use Mod::DBtank;
use Mod::Callib;
use Mod::Basework;
use Mod::Pricing;
#use Mod::APIsigoclient;#no!
#use Mod::APIsigclient;#no!
use Data::Dumper;
use Sys::Hostname;
my $hostname = hostname;
@ -36,7 +36,7 @@ my $dbt = new DBtank;
my $cal = new Callib;
my $bw = new Basework;
my $pri = new Pricing;
#my $si = new APIsigoclient;
#my $si = new APIsigclient;
sub new {
my $class = shift;
@ -1143,7 +1143,7 @@ sub booking_update(){
$update_pos->{owner} = "$owner";
$update_pos->{int10} = "$state_key";
$update_pos->{txt11} = "$sig_book->{rentalid}" if($sig_book->{rentalid});
$update_pos->{txt11} = "$sig_book->{rentalId}" if($sig_book->{rentalId});
$rows = $dbt->update_record($dbh,$update_pos,$record_pos);
if($rows > 0){
@ -1171,7 +1171,7 @@ sub booking_update(){
$update_pos->{int41} = "$counting->{int41}" if(looks_like_number($counting->{int41}));
$update_pos->{int10} = "$state_key";
$update_pos->{txt11} = "$sig_book->{rentalid}" if($sig_book->{rentalid});
$update_pos->{txt11} = "$sig_book->{rentalId}" if($sig_book->{rentalId});
$rows = $dbt->update_record($dbh,$update_pos,$record_pos);
$booking_values->{response_state} = "OK: available bike " . $q->param('bike') . ", still locked";
@ -1207,7 +1207,7 @@ sub booking_update(){
$update_cc->{int04} = "$stations_raw->{$id}->{int04}";
$update_pos->{int24} = "1";
$update_pos->{int10} = "$state_key";
$update_pos->{txt11} = "$sig_book->{rentalid}" if($sig_book->{rentalid});
$update_pos->{txt11} = "$sig_book->{rentalId}" if($sig_book->{rentalId});
$update_cc->{txt06} = "$gps";#end content coordinates
$update_pos->{txt06} = "$gps";#end pos coordinates
$update_pos->{int21} = "$gps_age_minutes";

View file

@ -25,7 +25,7 @@ use Mod::Basework;
use Mod::Shareework;
use Mod::APIfunc;
use Mod::APIjsonclient;
use Mod::APIsigoclient;
use Mod::APIsigclient;
use Data::Dumper;
use Sys::Hostname;
my $hostname = hostname;
@ -42,7 +42,7 @@ sub handler {
my $tk = new Shareework;
my $apif = new APIfunc;
my $jsc = new APIjsonclient;
my $si = new APIsigoclient;
my $si = new APIsigclient;
my $dbh = "";
my %varenv = $cf->envonline();
@ -185,6 +185,7 @@ elsif($q->param('request') eq "authorization"){
elsif($q->param('request') eq "booking_request"){
($aowner,my $return_merchant) = $apif->fetch_merchant($q,\%varenv,$coo,$q->param('merchant_id'));
$varenv{merchant_id} = $return_merchant->{merchant_id};
my $rows = 0;
$response = { %$response, %$return_merchant };
my ($auth,$authraw) = $apif->auth_verify($q);
@ -241,6 +242,7 @@ elsif($q->param('request') eq "booking_request"){
($ct_bike,$ct_tariff) = $apif->fetch_bike_tariff(\%varenv,$authraw,$bike,$aowner);
my $sig_book = {
bikeId => "$ct_bike->{txt22}",
rentalId => "",
reservationId => ""
};
@ -248,7 +250,7 @@ elsif($q->param('request') eq "booking_request"){
if($ct_bike->{barcode} && $ct_tariff->{barcode}){
#sig reservation. not mandatory
if($ct_bike->{int11} == 3){
$sig_book = $si->sig_booking(\%varenv,$auth,$ct_bike,"","reserve");
$sig_book = $si->sig_booking(\%varenv,$authraw,$ct_bike,"","reserve");
}
$response_book = $apif->booking_request(\%varenv,$authraw,$bike,$ct_bike,$ct_tariff,$aowner,$gps,$sig_book);
}elsif(!$ct_tariff->{barcode}){
@ -261,6 +263,7 @@ elsif($q->param('request') eq "booking_request"){
#just in time booking
if(ref($response_book) eq "HASH" && $response_book->{response_state} =~ /OK/ && $q->param('state') && $q->param('state') =~ /occupied/){
my $booking_values = {};
my $ctpos = {};
my $booking_pos = {
table => "contenttranspos",
@ -274,13 +277,16 @@ elsif($q->param('request') eq "booking_request"){
#sig booking
if($ctpos->{int11} == 3){
#usecase with reservationId (in ctpos) is in sig not defined, thats because using ct_bike.txt22
$sig_book = $si->sig_booking(\%varenv,$auth,$ct_bike,$ctpos,"rental");
#$sig_book = $si->sig_booking(\%varenv,$authraw,$ct_bike,$ctpos,"rental");
system("$varenv{basedir}/src/scripts/sig_client.pl $varenv{syshost} 'rental' $authraw->{c_id} $ctpos->{c_id} &");
($rows, $booking_values) = $apif->booking_update($q,\%varenv,$authraw,$aowner,$sig_book);
$response = {%$response, %$booking_values};
}else{
($rows, $booking_values) = $apif->booking_update($q,\%varenv,$authraw,$aowner,$sig_book);
$response = {%$response, %$booking_values};
}
(my $rows, my $booking_values) = $apif->booking_update($q,\%varenv,$authraw,$aowner,$sig_book);
$response = {%$response, %$booking_values};
}else{
$response = {%$response, %$response_book};
$response = {%$response, %$response_book};
}
}
@ -331,7 +337,8 @@ elsif($q->param('request') eq "booking_cancel" || $q->param('request') eq "booki
$ctpos = $dbt->fetch_tablerecord($dbh,$booking_pos);
my $sig_book = {
rentalId => "",
bikeId => $ctpos->{txt22},
rentalId => $ctpos->{txt11},
reservationId => ""
};
@ -339,10 +346,10 @@ elsif($q->param('request') eq "booking_cancel" || $q->param('request') eq "booki
my $booking_values = {};
if($ctpos->{int11} == 3){
#this sigo request is still not defined
#$sig_book = $si->sig_booking(\%varenv,$auth,"",$ctpos,"reserve_end");
$response->{response_state} = "Failure: sigo bike reservation can not be canceled on sigo";
$response->{response_text} = "Abbruch, die Reservierung kann nicht storniert werden";
#this sig request is still not defined
#$response->{response_state} = "Failure: sig bike reservation can not be canceled on sig";
#$response->{response_text} = "Abbruch, die Reservierung kann nicht storniert werden";
$sig_book = $si->sig_booking(\%varenv,$authraw,"",$ctpos,"reserve_end");
($rows, $booking_values) = $apif->booking_update($q,\%varenv,$authraw,$aowner,$sig_book);
}else{
($rows, $booking_values) = $apif->booking_update($q,\%varenv,$authraw,$aowner,$sig_book);
@ -350,19 +357,24 @@ elsif($q->param('request') eq "booking_cancel" || $q->param('request') eq "booki
$response = {%$response, %$booking_values};
}elsif($q->param('request') eq "booking_update" && (($q->param('state') && $q->param('state') =~ /occupied|available/) || ($q->param('lock_state') && $q->param('lock_state') =~ /locking|locked|unlocking|unlocked/))){
my $booking_values = {};
if($ctpos->{int11} == 3){
if($q->param('state') eq "occupied"){
$sig_book = $si->sig_booking(\%varenv,$auth,"",$ctpos,"rental");
#$sig_book = $si->sig_booking(\%varenv,$authraw,"",$ctpos,"rental");
system("$varenv{basedir}/src/scripts/sig_client.pl $varenv{syshost} 'rental' $authraw->{c_id} $ctpos->{c_id} &");
}
if($q->param('state') eq "available"){
$sig_book = $si->sig_booking(\%varenv,$auth,"",$ctpos,"rental_end");
#$sig_book = $si->sig_booking(\%varenv,$authraw,"",$ctpos,"rental_end");
system("$varenv{basedir}/src/scripts/sig_client.pl $varenv{syshost} 'rental_end' $authraw->{c_id} $ctpos->{c_id} &");
}
}
($rows, my $booking_values) = $apif->booking_update($q,\%varenv,$authraw,$aowner,$sig_book);
$response = {%$response, %$booking_values};
($rows, $booking_values) = $apif->booking_update($q,\%varenv,$authraw,$aowner,$sig_book);
$response = {%$response, %$booking_values};
}else{
($rows, $booking_values) = $apif->booking_update($q,\%varenv,$authraw,$aowner,$sig_book);
$response = {%$response, %$booking_values};
}
#keep in mind, it works on operator dependency
$bw->log("user_miniquery via $varenv{dbname} exist count:",$authraw->{int23},"");
@ -493,8 +505,8 @@ elsif($q->param('request') eq "bikes_available"){
$bw->log("Y bikes_available by c_id $authraw->{c_id}, Tarif:",$authraw->{txt30},"");
if($varenv{syshost} eq "shareeapp-sx"){
($response->{bikes},my $return2copri->{bikes}) = $si->sigo_available($q,\%varenv,$authraw);
$tk->sigobike_cupdate($return2copri->{bikes});
($response->{bikes},my $return2copri->{bikes}) = $si->sig_available($q,\%varenv,$authraw);
$tk->sigbike_cupdate($return2copri->{bikes});
}else{
$response->{bikes} = $apif->bikes_available($q,\%varenv,$authraw);
}
@ -700,8 +712,8 @@ elsif($q->param('request') eq "stations_available"){
my ($auth,$authraw) = $apif->auth_verify($q);
$response = { %$response, %$auth };
if($varenv{syshost} eq "shareeapp-sx"){
($response->{stations},my $return2copri->{stations}) = $si->sigo_available($q,\%varenv,$authraw);
$tk->sigostation_cupdate($return2copri->{stations});
($response->{stations},my $return2copri->{stations}) = $si->sig_available($q,\%varenv,$authraw);
$tk->sigstation_cupdate($return2copri->{stations});
}else{
($response->{stations}, my $response_raw) = $apif->stations_available($q,\%varenv,$authraw);
}

View file

@ -1,9 +1,9 @@
package APIsigoclient;
package APIsigclient;
#
# SPDX-License-Identifier: AGPL-3.0-or-later
# Copyright (c) Rainer Gümpelein, TeilRad GmbH
#
#Client for sigo
#Client for sig
#
#380116b5-0522-43da-ab66-477744a731a3
#
@ -49,18 +49,18 @@ sub new {
my %apikeyconf = $aconf->getall;
my $ua = LWP::UserAgent->new;
$ua->agent("sharee sigoclient");
$ua->agent("sharee sigclient");
my $size = $ua->max_size;
my $bytes = 100000;
$ua->max_size( $bytes );
$ua->default_header( 'x-api-key' => $apikeyconf{sigo}->{api_key} );
#will be called on bikes_available
sub sigo_available {
sub sig_available {
my $self = shift;
my $q = shift;
my $varenv = shift || {};
my $auth = shift || {};
my $ctadr = shift || {};
my $response_in = {};
my $dbh = "";
@ -68,8 +68,8 @@ sub sigo_available {
my $authed = 0;
my $tariff_content = {};
$authed = 1 if(ref($auth) eq "HASH" && $auth->{c_id} && $auth->{c_id} > 0);
(my $bike_group,my $user_group,$tariff_content,my $user_tour) = $apif->fetch_tariff($varenv->{dbname},$auth,$q->param('authcookie'));
$authed = 1 if(ref($ctadr) eq "HASH" && $ctadr->{c_id} && $ctadr->{c_id} > 0);
(my $bike_group,my $user_group,$tariff_content,my $user_tour) = $apif->fetch_tariff($varenv->{dbname},$ctadr,$q->param('ctadrcookie'));
my $hotline_hash = {
table => "contentuser",
@ -80,15 +80,15 @@ sub sigo_available {
my $hotline_data = $dbt->fetch_record($dbh,$hotline_hash);
my $td_template = $dbt->rental_description_template();
open(FILE,">>$varenv->{logdir}/APIsigo_client.log");
print FILE "\n*** $now_dt 'sigo_available' \n";
open(FILE,">>$varenv->{logdir}/APIsigclient.log");
print FILE "\n*** $now_dt 'sig_available' \n";
#my $endpoint = "https://sigo.dev.sigo.green/api/v1/bikes";
my $endpoint = "$dbt->{operator}->{$varenv->{dbname}}->{endpoint}/bikes";
my $response_out = {};
my $return2copri = {};
my $rest_json = "";
(my $ret_json, my $ret_status) = $self->get_sigo("$endpoint",$rest_json);
(my $ret_json, my $ret_status) = $self->get_sig("$endpoint",$rest_json);
eval {
$response_in = decode_json($ret_json);
$now_dt = strftime "%Y-%m-%d %H:%M:%S", localtime;
@ -200,13 +200,13 @@ sub sigo_available {
$response_out->{$bike}->{tariff_description}->{max_eur_per_day} = "$tariff_content->{$tid}->{int17}" if($tariff_content->{$tid}->{int17});
$response_out->{$bike}->{tariff_description}->{free_hours} = "$tariff_content->{$tid}->{int16}" if($tariff_content->{$tid}->{int16});
$response_out->{$bike}->{tariff_description}->{abo_eur_per_month} = "$tariff_content->{$tid}->{int15}" if($tariff_content->{$tid}->{int15});
$response_out->{$bike}->{tariff_description}->{operator_agb} = "Mit der Mietrad Anmietung wird folgender Betreiber <a href='$dbt->{operator}->{$varenv->{dbname}}->{operatorApp}/site/agb.html' target='_blank'>AGB</a> zugestimmt (Demo)." if($auth->{c_id} && ($auth->{c_id} == 1842 || $auth->{c_id} == 5781 || $auth->{c_id} == 22262));
$response_out->{$bike}->{tariff_description}->{operator_agb} = "Mit der Mietrad Anmietung wird folgender Betreiber <a href='$dbt->{operator}->{$varenv->{dbname}}->{operatorApp}/site/agb.html' target='_blank'>AGB</a> zugestimmt (Demo)." if($ctadr->{c_id} && ($ctadr->{c_id} == 1842 || $ctadr->{c_id} == 5781 || $ctadr->{c_id} == 22262));
#new rental_description
$response_out->{$bike}->{rental_description}->{name} = "$tariff_content->{$tid}->{ct_name}";
$response_out->{$bike}->{rental_description}->{id} = "$tariff_content->{$tid}->{barcode}";
$response_out->{$bike}->{rental_description}->{rental_info}->{1} = ["Tracking","Ich stimme der Speicherung (Tracking) meiner Fahrstrecke zwecks wissenschaftlicher Auswertung und Berechnung der CO2-Einsparung zu!"];#TODO if($resp->{gps_tracker_id});
$response_out->{$bike}->{rental_description}->{rental_info}->{2} = ["AGB","Mit der Mietrad Anmietung wird folgender Betreiber <a href='$varenv->{wwwhost}/site/agb.html' target='_blank'>AGB</a> zugestimmt (als Demo sharee AGB)."] if($auth->{c_id} && ($auth->{c_id} == 1842 || $auth->{c_id} == 5781 || $auth->{c_id} == 22262));
$response_out->{$bike}->{rental_description}->{rental_info}->{2} = ["AGB","Mit der Mietrad Anmietung wird folgender Betreiber <a href='$varenv->{wwwhost}/site/agb.html' target='_blank'>AGB</a> zugestimmt (als Demo sharee AGB)."] if($ctadr->{c_id} && ($ctadr->{c_id} == 1842 || $ctadr->{c_id} == 5781 || $ctadr->{c_id} == 22262));
my $i = 0;
foreach my $td (sort keys (%$td_template)){
@ -262,17 +262,17 @@ sub sigo_available {
print FILE "warn:" . $@ . "\n";
}
print FILE "sigo_available response_out from response_in\n" . Dumper($response_out) . "\n";
print FILE "sig_available response_out from response_in\n" . Dumper($response_out) . "\n";
close(FILE);
return ($response_out,$return2copri);
}#end sigo_available
}#end sig_available
#POST resverve, rental, ...
sub sig_booking {
my $self = shift;
my $varenv = shift || {};
my $auth = shift || {};
my $ctadr = shift || {};
my $ct_bike = shift || {};
my $ctpos = shift || {};
my $todo = shift || "";
@ -281,8 +281,8 @@ sub sig_booking {
my $owner = 169;
my $sig_book = {};
open(FILE,">>$varenv->{logdir}/APIsigo_client.log");
print FILE "\n*** $now_dt 'sigo_post $todo' \n";
open(FILE,">>$varenv->{logdir}/APIsigclient.log");
print FILE "\n*** $now_dt 'sig_post $todo' \n";
my $endpoint = "$dbt->{operator}->{$varenv->{dbname}}->{endpoint}/";
my %json = ();
@ -292,25 +292,24 @@ sub sig_booking {
$endpoint .= "bikes/reserve";
%json = (
bikeId => "$ct_bike->{txt22}",
email => "r.guempelein\@sharee.bike"
email => "$ctadr->{txt08}"
);
}
#reservation end, this sigo request is still not defined
#reservation end, this sig request is still not defined. maybe end by rentalId
elsif($todo eq "reserve_end"){
$endpoint .= "reserve/end";
%json = (
reservationId => "$ctpos->{txt10}",
email => "r.guempelein\@sharee.bike"
email => "$ctadr->{txt08}"
);
}
#rental start
elsif($todo eq "rental"){
$endpoint .= "rental";
my $sig_serial = $ctpos->{txt22} || $ct_bike->{txt22};
my $sig_bikeId = $ctpos->{txt22} || $ct_bike->{txt22};
%json = (
bikeId => "$sig_serial",
#reservationId => "$ctpos->{txt10}",#not in sig implemented
email => "r.guempelein\@sharee.bike"
bikeId => "$sig_bikeId",
email => "$ctadr->{txt08}"
);
}
#rental end
@ -318,7 +317,7 @@ sub sig_booking {
$endpoint .= "rental/end";
%json = (
rentalId => "$ctpos->{txt11}",
email => "r.guempelein\@sharee.bike"
email => "$ctadr->{txt08}"
);
#keep in mind, it will return no json, just text: "Rental Ended"
}
@ -332,16 +331,16 @@ sub sig_booking {
if(ref(\%json) eq "HASH" && $json{email}){
my $rest_json = encode_json(\%json);
(my $ret_json, my $ret_status) = $self->post_sigo($endpoint,$rest_json);
(my $ret_json, my $ret_status) = $self->post_sig($endpoint,$rest_json);
$now_dt = strftime "%Y-%m-%d %H:%M:%S", localtime;
eval {
$sig_book = decode_json($ret_json);
print FILE "<--- $now_dt sig_booking sigo_post $todo response_in with status_line: $ret_status\n" . Dumper($sig_book);
print FILE "<--- $now_dt sig_booking sig_post $todo response_in with status_line: $ret_status\n" . Dumper($sig_book);
#print $ret_json . "\n";
};
if ($@){
print FILE "<--- $now_dt failure sig_booking sigo_post $todo raw response_in with status_line: $ret_status\n" . Dumper($ret_json) . "\n";
print FILE "<--- $now_dt failure sig_booking sig_post $todo raw response_in with status_line: $ret_status\n" . Dumper($ret_json) . "\n";
#warn $@;
print FILE "warn:" . $@ . "\n";
}
@ -349,10 +348,26 @@ sub sig_booking {
if(ref($sig_book) ne "HASH"){
$sig_book = {
bikeId => "",
rentalId => "",
reservationId => ""
};
print FILE "<--- $now_dt failure sig_booking sigo_post $todo , reset sig_book hash to empty\n";
print FILE "<--- $now_dt failure sig_booking sig_post $todo , reset sig_book hash to empty\n";
}
if($ctpos->{c_id}){
my $update_pos = {
table => "contenttranspos",
mtime => "now()",
owner => "169",
};
my $rows = 0;
$update_pos->{txt10} = "$sig_book->{reservationId}" if($sig_book->{reservationId});
$update_pos->{txt11} = "$sig_book->{rentalId}" if($sig_book->{rentalid});
$rows = $dbt->update_record($dbh,$update_pos,$ctpos);
print FILE "<--- rows: $rows, update_pos: $ctpos->{c_id}, with:" . Dumper($update_pos) . "\n";
}
close(FILE);
@ -361,15 +376,15 @@ sub sig_booking {
#main GET
sub get_sigo {
sub get_sig {
my $self = shift;
my $endpoint = shift || "";
my $rest_json = shift || "";
my $sigo_request = "$endpoint";
my $sig_request = "$endpoint";
print FILE "===> GET sigo >> " . $sigo_request . "\n" . $rest_json . "\n";
print FILE "===> GET sig >> " . $sig_request . "\n" . $rest_json . "\n";
my $req = HTTP::Request->new(GET => "$sigo_request");
my $req = HTTP::Request->new(GET => "$sig_request");
$req->content_type('application/json');
$req->content($rest_json);
@ -386,15 +401,15 @@ sub get_sigo {
}
#main POST
sub post_sigo {
sub post_sig {
my $self = shift;
my $endpoint = shift || "";
my $rest_json = shift || "";
my $sigo_request = "$endpoint";
my $sig_request = "$endpoint";
print FILE "===> POST sigo >> " . $sigo_request . "\n" . $rest_json . "\n";
print FILE "===> POST sig >> " . $sig_request . "\n" . $rest_json . "\n";
my $req = HTTP::Request->new(POST => "$sigo_request");
my $req = HTTP::Request->new(POST => "$sig_request");
$req->content_type('application/json');
$req->content($rest_json);

View file

@ -157,10 +157,12 @@ sub handler {
#keep all and add only LV userID if user email still exist
my $update = {
table => "contentadr",
mtime => 'now()',
owner => "$owner",
int01 => $q->escapeHTML($xmlref->{userID}),
table => "contentadr",
txt17 => "sharee_lv",
txt30 => "5511",
mtime => 'now()',
owner => "$owner",
int01 => $q->escapeHTML($xmlref->{userID}),
};
my $rows = $dbt->update_record($dbh,$update,$record);

View file

@ -276,7 +276,7 @@ sub users_map(){
sub channel_map(){
my $self = shift;
my $channel = {
169 => "sigo connector",
169 => "sig connector",
173 => "merchant fallback",#mig
175 => "example App",#mig
176 => "Mein konrad App",#mig
@ -1314,6 +1314,7 @@ sub insert_pos(){
my $status = shift || "";
my $owner = shift || "";
my $sig_book = shift || {};
#txt11=$sig_book->{rentalId} will be set on booking_update
$ct_name = $ct->{barcode} if(!$ct_name);#artikelnr or bikenr
my $prefix = "";
@ -1366,7 +1367,7 @@ sub insert_pos(){
my $sth;
#Verleihräder
if($ct->{template_id} && $ct->{template_id} == 205){#Leihrad_list
$sth = $dbh->prepare("INSERT INTO contenttranspos (ct_id,cc_id,ca_id,ct_name,barcode,txt01,txt08,txt02,txt09,txt12,itime,start_time,end_time,int02,int03,int06,int04,txt05,txt06,txt07,int10,int12,int13,owner,int07,txt04,int09,int17,int15,int16,int11,int18,int19,txt17,txt18,int20,int25,int34,txt22,txt10,int35,int36,int37,time01,time02) VALUES ('$ctt_id','$ct->{c_id}','$ctadr->{c_id}','$ct_name','$ct->{barcode}','$ct->{txt01}','$user_name','$ct->{txt02}','$ctadr->{txt09}','$prefix',now(),now(),'$endRental','$unit_price','$menge','$station','$station','$ct->{txt06}','$ct->{txt06}','$ct->{txt07}','$status','$from_main_id','$deviceId','$owner','$rabatt','$tariff_desc','$tariff_nr','$daymax_price','$abo_price','$free_hours','$ct->{int11}','$sharing_type','$bike_charge','$ct->{txt17}','$ct->{txt18}','$ct->{int20}','$trackon','$staff','$ct->{txt22}','$sig_book->{reservationId}','$unit_price1','$unit_price2','$start_price','$unit_time','$free_time') RETURNING c_id");
$sth = $dbh->prepare("INSERT INTO contenttranspos (ct_id,cc_id,ca_id,ct_name,barcode,txt01,txt08,txt02,txt09,txt12,itime,start_time,end_time,int02,int03,int06,int04,txt05,txt06,txt07,int10,int12,int13,owner,int07,txt04,int09,int17,int15,int16,int11,int18,int19,txt17,txt18,int20,int25,int34,txt22,txt10,int35,int36,int37,time01,time02) VALUES ('$ctt_id','$ct->{c_id}','$ctadr->{c_id}','$ct_name','$ct->{barcode}','$ct->{txt01}','$user_name','$ct->{txt02}','$ctadr->{txt09}','$prefix',now(),now(),'$endRental','$unit_price','$menge','$station','$station','$ct->{txt06}','$ct->{txt06}','$ct->{txt07}','$status','$from_main_id','$deviceId','$owner','$rabatt','$tariff_desc','$tariff_nr','$daymax_price','$abo_price','$free_hours','$ct->{int11}','$sharing_type','$bike_charge','$ct->{txt17}','$ct->{txt18}','$ct->{int20}','$trackon','$staff','$sig_book->{bikeId}','$sig_book->{reservationId}','$unit_price1','$unit_price2','$start_price','$unit_time','$free_time') RETURNING c_id");
}else{
$sth = $dbh->prepare("INSERT INTO contenttranspos (ct_id,cc_id,ca_id,ct_name,barcode,txt08,txt09,itime,int02,int03,txt01,txt06,txt07,int10,int12,owner) VALUES ('$ctt_id','$ct->{c_id}','$ctadr->{c_id}','$ct_name','0','$user_name','$ctadr->{txt09}',now(),'$unit_price1','1','$ct->{txt01}','$ct->{txt06}','$ct->{txt07}','0','$from_main_id','$owner') RETURNING c_id");
}

View file

@ -353,8 +353,8 @@ sub handler {
}elsif($R::rel_edit eq "new_relation" && $R::main_id && $R::main_id >= 200000){
$return = $pl->new_relation($R::main_id,$users_dms->{u_id});
}elsif($R::rel_edit eq "save_ctuser" && $R::main_id && $R::main_id >= 200000){
$return = "failure::TODO Service-Config save";
#$return = $pl->save_ctuser($users_dms);
$return = "failure::under development, $node_meta->{tpl_name}";
#$return = $pl->save_service_desc($users_dms);
}elsif($R::rel_edit && $R::main_id && $R::main_id >= 200000){
$return = $pm->maininit($users_dms);
}

View file

@ -458,4 +458,24 @@ sub set_usertarif {
return $ret;
}
sub save_service_desc {
my $self = shift;
my $users_dms = shift;
my @keywords = $q->param;
my @tpl_desc = ();
foreach(@keywords){
my @val = $q->param($_);
my $valxx = $q->escapeHTML("@val");
if($_ =~ /txt\d/){
print $_ . ":" . $valxx . "<br>\n";
#@tpl_desc = $q->param($_);
}
}
#my $tpl_obj = join('=',@tpl_desc);
#print $tpl_obj . "<br> \n";
}
1;

View file

@ -781,16 +781,16 @@ sub send_password(){
}
#sigobike just like caching and not realy used by app
sub sigobike_cupdate {
#sigbike just like caching and not realy used by app
sub sigbike_cupdate {
my $self = shift;
my $record_sigo = shift;
my $record_sig = shift;
my $dbh = "";
my $rows = 0;
foreach my $bid (keys (%$record_sigo)){
foreach my $bid (keys (%$record_sig)){
my $update = {
%{$record_sigo->{$bid}},
%{$record_sig->{$bid}},
table => "content",
template_id => "205",
main_id => "300102",
@ -798,12 +798,12 @@ sub sigobike_cupdate {
owner => "169",
};
$bw->log("UPDATE content from record_sigo with bike nr:",$update,"");
$rows = $dbt->update_record($dbh,$update,$record_sigo->{$bid});
$bw->log("UPDATE content from record_sig with bike nr:",$update,"");
$rows = $dbt->update_record($dbh,$update,$record_sig->{$bid});
if($rows != 1){
my $c_id = "";
$update->{itime} = "now()";
$bw->log("INSERT content from record_sigo with bike nr:",$update,"");
$bw->log("INSERT content from record_sig with bike nr:",$update,"");
$c_id = $dbt->insert_contentoid($dbh,$update,"");
$rows = 1 if($c_id);
}
@ -812,16 +812,16 @@ sub sigobike_cupdate {
}
#sigostation just like caching and not realy used by app
sub sigostation_cupdate {
#sigstation just like caching and not realy used by app
sub sigstation_cupdate {
my $self = shift;
my $record_sigo = shift;
my $record_sig = shift;
my $dbh = "";
my $rows = 0;
foreach my $sid (keys (%$record_sigo)){
foreach my $sid (keys (%$record_sig)){
my $update = {
%{$record_sigo->{$sid}},
%{$record_sig->{$sid}},
table => "content",
template_id => "225",
main_id => "300016",
@ -829,12 +829,12 @@ sub sigostation_cupdate {
owner => "169",
};
$bw->log("UPDATE content from record_sigo with bike nr:",$update,"");
$rows = $dbt->update_record($dbh,$update,$record_sigo->{$sid});
$bw->log("UPDATE content from record_sig with bike nr:",$update,"");
$rows = $dbt->update_record($dbh,$update,$record_sig->{$sid});
if($rows != 1){
my $c_id = "";
$update->{itime} = "now()";
$bw->log("INSERT content from record_sigo with bike nr:",$update,"");
$bw->log("INSERT content from record_sig with bike nr:",$update,"");
$c_id = $dbt->insert_contentoid($dbh,$update,"");
$rows = 1 if($c_id);
}