payment link request refactoring

This commit is contained in:
ragu 2024-02-15 10:43:10 +01:00
parent 6212b1aefb
commit addf1ab6db
13 changed files with 227 additions and 194 deletions

View file

@ -27,6 +27,7 @@ use Mod::DBtank;
use Mod::Callib;
use Mod::Basework;
use Mod::Pricing;
use Mod::Payment;
use Mod::MailTransport;
use Data::Dumper;
use Sys::Hostname;
@ -37,6 +38,7 @@ my $dbt = new DBtank;
my $cal = new Callib;
my $bw = new Basework;
my $pri = new Pricing;
my $pay = new Payment;
my $mailtrans = new MailTransport;
sub new {
@ -3009,7 +3011,7 @@ sub auth_verify(){
#first prepaid account check (not save because without rental history)
if($auth_primary->{int03} == 3){
my $prepaidhash = { prepaid_total => 0 };
$prepaidhash = $pri->collect_prepaid($dbh_primary,$auth_primary) if($auth_primary->{c_id});
$prepaidhash = $pay->collect_prepaid($dbh_primary,$auth_primary) if($auth_primary->{c_id});
if(!$prepaidhash->{prepaid_total} || $prepaidhash->{prepaid_total} < 0){
my $vde = $auth_primary->{int12} || 1;
$update_primary->{int12} = $vde;

View file

@ -71,7 +71,7 @@ my $response = {
apiserver => "$apiserver",
response => "$respreq",
uri_primary => "$dbt->{primary}->{sharee_primary}->{primaryApp}",
copri_version => "4.1.23.26",
copri_version => "4.1.23.28",
user_id => "",
authcookie => "",
new_authcoo => "0",

View file

@ -553,10 +553,9 @@ sub handler {
if($users_sharee->{c_id} && $R::sharee_edit && $R::sharee_edit =~ /save_transact/){
$returnwww = $shwo->save_transact($q,$users_sharee->{c_id},$coo,$aowner);
}
#we do it in PayoneLink.pm
#if($users_sharee->{c_id} && $R::sharee_edit && $R::sharee_edit =~ /generate_payonelink/){
# $returnwww = $pay->generate_payonelink($q,\%varenv,$users_sharee,$R::prepaid_id,$R::prepaid_amount,$aowner);
#}
if($users_sharee->{c_id} && $R::sharee_edit && $R::sharee_edit =~ /generate_payonelink/ && $R::prepaid_amount && $R::prepaid_amount =~ /\d+/){
system("$dbt->{copri_conf}->{basedir}/$varenv{syshost}/src/scripts/payonelink.pl '$varenv{syshost}' '$users_sharee->{c_id}' '$R::prepaid_amount' '$aowner' &");
}
if($returnwww && $returnwww =~ /failure::(.*)/){
$returnwww =~ s/::/=/g;

View file

@ -101,7 +101,7 @@ sub country_code(){
'DK' => 'Dänemark',
'EE' => 'Estland',
'IE' => 'Irland',
'EL' => 'Griechenland',
'GR' => 'Griechenland',
'ES' => 'Spanien',
'FR' => 'Frankreich',
'HR' => 'Kroatien',

View file

@ -187,8 +187,8 @@ sub mail_feedback2garage {
my $sendref = $self->sendrefhash();
$sendref->{mail_to} = $crecord_content->{fleed_email};
$sendref->{subject} = "sharee.bike Werkstatt Meldung";
$sendref->{message} = "Es ist folgende sharee.bike App-Meldung zu Mietrad $contentpos->{ct_name} an Station $contentpos->{int04} eingegangen:\n\n$contentpos->{txt01}\n\nFreundliche Grüße,\nIhr sharee.bike Mietradsystem";
$sendref->{subject} = "sharee.bike App Meldung";
$sendref->{message} = "Es ist folgende sharee.bike App Nachricht zu Mietrad $contentpos->{ct_name} an Station $contentpos->{int04} eingegangen:\n\n$contentpos->{txt01}\n\nFreundliche Grüße,\nIhr sharee.bike Mietradsystem";
$sendref->{message} =~ s/\n/\<br \/\>/g;#TOD prepare_content
my ($smtp,$mailxconf) = $self->mail_connect($sendref);

View file

@ -52,7 +52,7 @@ sub mobox3(){
if($R::node2edit eq "edit_relation" || $R::rel_edit =~ /_relation/){
$title = "Node Editor";
$height = "400";
$height = "500";
$width = "600";
}

View file

@ -158,7 +158,11 @@ sub admin_tpl(){
}elsif($key =~ /fleed_/){
print $q->Tr();
print $q->td({-class=>'left_italic_cms'},"$des"),"\n";
print $q->td({-class=>'content1_cms'},$q->textfield(-class=>'etxt',-name=>"$key",-default=>"$node_meta->{$key}",-override=>'1',-size=>"$isize",-maxlength=>120)),"\n";
if($isize eq "area"){
print $q->td({-class=>'content1_cms', -colspan=>'3'},$q->textarea(-class=>"etxt", -style=>'border: 1px solid silver;', -name=>"$key", -override=>'1',-default=>"$node_meta->{$key}",-rows=>"2",-cols=>25)),"\n";
}else{
print $q->td({-class=>'content1_cms'},$q->textfield(-class=>'etxt',-name=>"$key",-default=>"$node_meta->{$key}",-override=>'1',-size=>"$isize",-maxlength=>120)),"\n";
}
}
}
}

View file

@ -1176,6 +1176,152 @@ sub payone_capture {
return ($retval,$return_text);
}
#payment-type prepaid request
sub prepaid_request {
my $self = shift;
my $dbh = shift;
my $ctadr = shift || {};
my $owner = shift;
my $feedb = {
u_rows => 0,
prepaid_account => "",
prepaid_id => 0,
message => "",
};
if($ctadr->{c_id}){
my $pref_ctt = {
table => "contenttrans",
fetch => "one",
main_id => 300023,
template_id => 219,#prepaid tpl
int10 => "$ctadr->{c_id}",
state => "is::null",
close_time => "is::null",
};
my $ctt_prepaid = { c_id => 0 };
$ctt_prepaid = $dbt->fetch_record($dbh,$pref_ctt);
if(!$ctt_prepaid->{c_id}){
my $ct_id = $dbt->insert_contenttrans($dbh,$ctadr,"300023","219","----","$owner");
$pref_ctt->{c_id} = $ct_id;
$ctt_prepaid = $dbt->fetch_record($dbh,$pref_ctt) if($pref_ctt->{c_id});
my $update_adr = {
table => "contentadr",
mtime => "now()",
owner => $owner,
int18 => 3,#pay_ack
ct_name => "Prepaid-$ctt_prepaid->{c_id}",
};
$feedb->{u_rows} = $dbt->update_record($dbh,$update_adr,$ctadr);
}
my $pos_id = 0;
my $cttpos = { c_id => 0 };
if($ctt_prepaid->{c_id} > 0){
my $posref = {
table => "contenttrans",
table_pos => "contenttranspos",
fetch => "one",
keyfield => "c_id",
ca_id => "$ctadr->{c_id}",
int02 => "is::null",#0
};
$cttpos = $dbt->collect_post($dbh,$posref);
if(!$cttpos->{c_id}){
#pseudo part. not available in content
my $ct = {
c_id => 0,
barcode => 0,
ca_id => $ctadr->{c_id},
ct_id => $ctt_prepaid->{c_id},
int02 => 0,#prepaid price on request is 0
txt01 => 'Prepaid Position',
int16 => 4,#fibumark for prepaid
template_id => 219,
};
$cttpos->{c_id} = $dbt->insert_pos($dbh,$ctt_prepaid->{c_id},$ct,"",$ctadr,"","","","0",$owner,"");
$dbt->update_one($dbh,{table => 'contenttranspos',c_id => $cttpos->{c_id}},"barcode = $cttpos->{c_id},ct_name = '$ctt_prepaid->{c_id}-$cttpos->{c_id}'");
$feedb->{prepaid_id} = $ctt_prepaid->{c_id} . "-" . $cttpos->{c_id};
}
$feedb->{prepaid_account} = $ctt_prepaid->{c_id};
}
}
return $feedb;
}#end prepaid_request
#primary collect prepaid
sub collect_prepaid {
my $self = shift;
my $dbh = shift;
my $ctadr = shift || {};
my $prepaidhash = {
prepaid_total => 0,
prepaid_id => 0,
};
if($ctadr->{c_id}){
#all un-booked or opos
my $posref = {
table => "contenttrans",
table_pos => "contenttranspos",
fetch => "all",
keyfield => "c_id",
ca_id => "$ctadr->{c_id}",
'ct.state' => "is::null",#selects int04 is null OR int14 >= 1
'ct.close_time' => "is::null",
};
my $cttpos = { c_id => 0 };
$cttpos = $dbt->collect_post($dbh,$posref);
foreach my $id (sort { $cttpos->{$b}->{c_id} <=> $cttpos->{$a}->{c_id} } keys(%$cttpos)){
#print $cttpos->{$id}->{barcode} . ":" . $cttpos->{$id}->{int02},"<br>";
if($cttpos->{$id}->{barcode} && $cttpos->{$id}->{int02} == 0){
$prepaidhash->{invoice_id} = $cttpos->{$id}->{ct_id};
$prepaidhash->{number} = $cttpos->{$id}->{c_id};
$prepaidhash->{prepaid_id} = $cttpos->{$id}->{ct_id} . "-" . $cttpos->{$id}->{c_id};#payone reference
$prepaidhash->{description} = $cttpos->{$id}->{txt01};
$prepaidhash->{response_log} = $cttpos->{$id}->{txt25};
$prepaidhash->{payone_link} = $cttpos->{$id}->{txt30};
if($cttpos->{$id}->{txt25} =~ /(\d{2}\.\d{2}\.\d{4}\s\d{2}:\d{2}).*mailing/){
$prepaidhash->{mail_datetime} = $1;
}
}
if($cttpos->{$id}->{int02} && $cttpos->{$id}->{int02} != 0){
$prepaidhash->{prepaid_total} += $cttpos->{$id}->{int02};
}
}
if($prepaidhash->{invoice_id} && $ctadr->{int03} && $ctadr->{int03} == 3 && (!$ctadr->{int12} || $ctadr->{int12} != 2)){
my $update_adr = {
table => "contentadr",
ct_name => "Prepaid-$prepaidhash->{invoice_id}",
pay_time => "now()",#just to see who changes at what time
};
#for int12 vde update we need also open operator invoices to get saldo balance
#int12 => "1",
#if($prepaidhash->{prepaid_total} > 0){
#$update_adr->{int12} = "null";
#}else{
# $update_adr->{int12} = "1";
#}
$dbt->update_record($dbh,$update_adr,$ctadr);
$dbt->update_operatorsloop("",$ctadr->{c_id},"update");
}
}
$bw->log("Pricing prepaidhash:",$prepaidhash,"");
return $prepaidhash;
}#end collect prepaid
#request "payone-link"
sub generate_payonelink {
my $self = shift;
@ -1193,6 +1339,7 @@ sub generate_payonelink {
my $dbh = "";
my $now_dt = strftime "%Y-%m-%d %H:%M:%S", localtime;
my $view_dt = strftime "%d.%m.%Y %H:%M:%S", localtime;
open(FILE,">>$varenv->{logdir}/payonelink.log");
print FILE "\n*** $now_dt 'generate_payonelink' ctadr:$ctadr->{c_id}|$ctadr->{txt08}\n";
@ -1227,7 +1374,7 @@ sub generate_payonelink {
mode => "$dbt->{payonelink_conf}->{mode}",
notifyUrl => "$dbt->{payonelink_conf}->{notifyUrl}",
description => "Ihr vorbereiteter sharee.bike Prepaid/Vorkasse Auftrag",
paymentMethods => ['visa', 'mastercard', 'giropay'],
paymentMethods => ['visa', 'mastercard'],
reference => "$reference",
shoppingCart => [{
type => "goods",
@ -1267,6 +1414,7 @@ sub generate_payonelink {
mtime => "now()",
owner => "$aowner",
};
$update_pos->{txt01} = "$prepaidhash->{description}. Payone-Link generiert $view_dt";
eval {
$response_in = decode_json($ret_json);
@ -1286,9 +1434,8 @@ sub generate_payonelink {
my $rows = $dbt->update_record($dbh,$update_pos,$ctpos) if($ctpos->{c_id});
my $cms_message_key = "email-payonelink";
if(!$varenv->{cms}->{$cms_message_key}->{txt}){
$feedb->{message} = "failure::Achtung, '$cms_message_key' ist nicht vorhanden. Es wurde keine eMail versandt!";
}elsif($ctpos->{c_id}){
if($ctpos->{c_id}){
print FILE "$dbt->{copri_conf}->{basedir}/$varenv->{syshost}/src/scripts/mailTransportcms.pl '$varenv->{syshost}' 'send_payonelink' '$ctadr->{c_id}' '$ctpos->{c_id}' '' '$cms_message_key' '' '$app_name'";
system("$dbt->{copri_conf}->{basedir}/$varenv->{syshost}/src/scripts/mailTransportcms.pl '$varenv->{syshost}' 'send_payonelink' '$ctadr->{c_id}' '$ctpos->{c_id}' '' '$cms_message_key' '' '$app_name'");
}
@ -1342,4 +1489,3 @@ sub rpcpayone_postjson {
1;

View file

@ -48,84 +48,6 @@ my %varenv = $cf->envonline();
my $now_dt = strftime "%Y-%m-%d %H:%M:%S", localtime;
my $debug=1;
#payment-type prepaid request
sub prepaid_request {
my $self = shift;
my $dbh = shift;
my $ctadr = shift || {};
my $owner = shift;
my $feedb = {
u_rows => 0,
prepaid_account => "",
prepaid_id => 0,
message => "",
};
if($ctadr->{c_id}){
my $pref_ctt = {
table => "contenttrans",
fetch => "one",
main_id => 300023,
template_id => 219,#prepaid tpl
int10 => "$ctadr->{c_id}",
state => "is::null",
close_time => "is::null",
};
my $ctt_prepaid = { c_id => 0 };
$ctt_prepaid = $dbt->fetch_record($dbh,$pref_ctt);
if(!$ctt_prepaid->{c_id}){
my $ct_id = $dbt->insert_contenttrans($dbh,$ctadr,"300023","219","----","$owner");
$pref_ctt->{c_id} = $ct_id;
$ctt_prepaid = $dbt->fetch_record($dbh,$pref_ctt) if($pref_ctt->{c_id});
my $update_adr = {
table => "contentadr",
mtime => "now()",
owner => $owner,
int18 => 3,#pay_ack
ct_name => "Prepaid-$ctt_prepaid->{c_id}",
};
$feedb->{u_rows} = $dbt->update_record($dbh,$update_adr,$ctadr);
}
my $pos_id = 0;
my $cttpos = { c_id => 0 };
if($ctt_prepaid->{c_id} > 0){
my $posref = {
table => "contenttrans",
table_pos => "contenttranspos",
fetch => "one",
keyfield => "c_id",
ca_id => "$ctadr->{c_id}",
int02 => "is::null",#0
};
$cttpos = $dbt->collect_post($dbh,$posref);
if(!$cttpos->{c_id}){
#pseudo part. not available in content
my $ct = {
c_id => 0,
barcode => 0,
ca_id => $ctadr->{c_id},
ct_id => $ctt_prepaid->{c_id},
int02 => 0,#prepaid price on request is 0
txt01 => 'Prepaid Position',
int16 => 4,#fibumark for prepaid
template_id => 219,
};
$cttpos->{c_id} = $dbt->insert_pos($dbh,$ctt_prepaid->{c_id},$ct,"",$ctadr,"","","","0",$owner,"");
$dbt->update_one($dbh,{table => 'contenttranspos',c_id => $cttpos->{c_id}},"barcode = $cttpos->{c_id},ct_name = '$ctt_prepaid->{c_id}-$cttpos->{c_id}'");
$feedb->{prepaid_id} = $ctt_prepaid->{c_id} . "-" . $cttpos->{c_id};
}
$feedb->{prepaid_account} = $ctt_prepaid->{c_id};
}
}
return $feedb;
}#end prepaid_request
#select rentals for messaging user if bike > 12h ... occupied
sub longterm_occupied {
my $self = shift;

View file

@ -634,74 +634,6 @@ sub operator_accounting2calc {
return $oac;
}
#primary collect prepaid
sub collect_prepaid {
my $self = shift;
my $dbh = shift;
my $ctadr = shift || {};
my $prepaidhash = {
prepaid_total => 0,
prepaid_id => 0,
};
if($ctadr->{c_id}){
#all un-booked or opos
my $posref = {
table => "contenttrans",
table_pos => "contenttranspos",
fetch => "all",
keyfield => "c_id",
ca_id => "$ctadr->{c_id}",
'ct.state' => "is::null",#selects int04 is null OR int14 >= 1
'ct.close_time' => "is::null",
};
my $cttpos = { c_id => 0 };
$cttpos = $dbt->collect_post($dbh,$posref);
foreach my $id (sort { $cttpos->{$b}->{c_id} <=> $cttpos->{$a}->{c_id} } keys(%$cttpos)){
#print $cttpos->{$id}->{barcode} . ":" . $cttpos->{$id}->{int02},"<br>";
if($cttpos->{$id}->{barcode} && $cttpos->{$id}->{int02} == 0){
$prepaidhash->{invoice_id} = $cttpos->{$id}->{ct_id};
$prepaidhash->{number} = $cttpos->{$id}->{c_id};
$prepaidhash->{prepaid_id} = $cttpos->{$id}->{ct_id} . "-" . $cttpos->{$id}->{c_id};#payone reference
$prepaidhash->{description} = $cttpos->{$id}->{txt01};
$prepaidhash->{response_log} = $cttpos->{$id}->{txt25};
$prepaidhash->{payone_link} = $cttpos->{$id}->{txt30};
if($cttpos->{$id}->{txt25} =~ /(\d{2}\.\d{2}\.\d{4}\s\d{2}:\d{2}).*mailing/){
$prepaidhash->{mail_datetime} = $1;
}
}
if($cttpos->{$id}->{int02} && $cttpos->{$id}->{int02} != 0){
$prepaidhash->{prepaid_total} += $cttpos->{$id}->{int02};
}
}
if($prepaidhash->{invoice_id} && $ctadr->{int03} && $ctadr->{int03} == 3 && (!$ctadr->{int12} || $ctadr->{int12} != 2)){
my $update_adr = {
table => "contentadr",
ct_name => "Prepaid-$prepaidhash->{invoice_id}",
pay_time => "now()",#just to see who changes at what time
};
#for int12 vde update we need also open operator invoices to get saldo balance
#int12 => "1",
#if($prepaidhash->{prepaid_total} > 0){
#$update_adr->{int12} = "null";
#}else{
# $update_adr->{int12} = "1";
#}
$dbt->update_record($dbh,$update_adr,$ctadr);
$dbt->update_operatorsloop("",$ctadr->{c_id},"update");
}
}
$bw->log("Pricing prepaidhash:",$prepaidhash,"");
return $prepaidhash;
}#end collect prepaid
#sum of primary prepaid
sub primary_sum_prepaid {
my $self = shift;

View file

@ -0,0 +1,49 @@
#!/usr/bin/perl
#
#
# SPDX-License-Identifier: AGPL-3.0-or-later
# Copyright (c) Rainer Gümpelein, TeilRad GmbH
#
##forking payone request to generate an mail payone-link
use vars qw($syshost);
BEGIN {
$syshost = $ARGV[0] || exit 1;
}
use lib "/var/www/copri-bike/$syshost/src";
use strict;
use warnings;
use POSIX;
use Scalar::Util qw(looks_like_number);
use Lib::Config;
use Mod::DBtank;
use Mod::Payment;
use Data::Dumper;
my $cf = new Config;
my %varenv = $cf->envonline();
my $dbt = new DBtank;
my $pay = new Payment;
my $now_dt = strftime("%Y-%m-%d %H:%M:%S",localtime(time));
my $adrc_id = $ARGV[1] || "";
my $prepaid_amount = $ARGV[2] || "";
my $aowner = $ARGV[3] || "196";
my $dbh = "";
my $dbh = $dbt->dbconnect();
my $authref = {
table => "contentadr",
fetch => "one",
template_id => "202",
c_id => "$adrc_id",
};
my $users_sharee = { c_id => 0 };
$users_sharee = $dbt->fetch_record($dbh,$authref) if($adrc_id);
my $prepaidhash = {};
$prepaidhash = $pay->collect_prepaid($dbh,$users_sharee);
my $ret_json = $pay->generate_payonelink(\%varenv,$users_sharee,$prepaidhash,$prepaid_amount,$aowner);

View file

@ -10,8 +10,6 @@ use CGI ':standard';
use Mod::Buttons;
use Mod::Basework;
use Mod::DBtank;
use Mod::Prelib;
use Mod::Pricing;
use Mod::Payment;
use Data::Dumper;
@ -36,8 +34,6 @@ sub tpl(){
my $bw = new Basework;
my $dbt = new DBtank;
my $but = new Buttons;
my $pl = new Prelib;
my $pri = new Pricing;
my $pay = new Payment;
$q->import_names('R');
@ -56,26 +52,20 @@ sub tpl(){
my $payable_check=0;
$payable_check = $bw->isuser_rentable($ctadr,$varenv);
my $prepaidhash = {};
$prepaidhash = $pri->collect_prepaid($dbh,$ctadr) if($ctadr->{c_id});
$prepaidhash = $pay->collect_prepaid($dbh,$ctadr) if($ctadr->{c_id});
if(!$prepaidhash->{prepaid_id} && $ctadr->{c_id}){
$feedb = $pl->prepaid_request($dbh,$ctadr,$aowner);
$prepaidhash = $pri->collect_prepaid($dbh,$ctadr);
$feedb = $pay->prepaid_request($dbh,$ctadr,$aowner);
$prepaidhash = $pay->collect_prepaid($dbh,$ctadr);
}
my $ret_json = "";
print $q->start_form(),"\n";
print $q->hidden(-name=>"sessionid",-override=>1,-value=>"$R::sessionid");
print "<div class='form-group' style='clear:both;'>\n";
print $q->div({-class=>'content_title3'},"$varenv->{cms}->{'iframe-prepaid-account'}->{txt}"),"\n";
if($prepaidhash->{prepaid_id}){
#print $q->hidden(-name=>"prepaid_id",-override=>1,-value=>"$prepaidhash->{prepaid_id}");
if($ctadr->{c_id} && $R::sharee_edit && $R::sharee_edit =~ /generate_payonelink/){
$ret_json = $pay->generate_payonelink($varenv,$ctadr,$prepaidhash,$R::prepaid_amount,$aowner);
$prepaidhash = $pri->collect_prepaid($dbh,$ctadr);
}
#print Dumper($prepaidhash);
if($prepaidhash->{prepaid_id} || ($R::sharee_edit eq "generate_payonelink" && $R::prepaid_amount =~ /\d+/)){
$prepaidhash->{prepaid_total} = sprintf('%.2f',$prepaidhash->{prepaid_total});
$prepaidhash->{prepaid_total} =~ s/\./,/;
$varenv->{cms}->{'iframe-prepaid-prolog'}->{txt} =~ s/\n/<br \/>/g;
@ -88,11 +78,9 @@ sub tpl(){
print $q->div({-class=>'content2'}, "$varenv->{cms}->{'iframe-failure-contact-hotline'}->{txt} $prepaidhash->{prepaid_id}"),"\n";
}
if(!$ret_json || $ret_json =~ /failure/){
my $required="required";
print $q->div({-class=>'content2', -style=>'color:#c83434;'}, "$varenv->{cms}->{'iframe-prepaid-failure'}->{txt}"),"\n" if($ret_json =~ /failure/);
if($prepaidhash->{payone_link} || ($R::sharee_edit eq "generate_payonelink" && $R::prepaid_amount =~ /\d+/)){
if($prepaidhash->{payone_link}){
$varenv->{cms}->{'iframe-prepaid-emailinfo'}->{txt} =~ s/\n/<br \/>/g;
$varenv->{cms}->{'iframe-prepaid-emailinfo'}->{txt} =~ s/::mail_datetime::/$prepaidhash->{mail_datetime}/g;
$varenv->{cms}->{'iframe-prepaid-emailinfo'}->{txt} =~ s/::email::/$ctadr->{txt08}/g;
@ -109,18 +97,7 @@ sub tpl(){
print $q->div({-style=>'margin-top:1em;text-align:center;'},"<button type='submit' name='sharee_edit' value='generate_payonelink' class='btn btn-primary btn-lg btn-block' style='border:1px solid #$bgcolor1;background-color:#$bgcolor1;'>$varenv->{cms}->{'iframe-next-prepaid'}->{txt}</button>"),"\n";
}
}elsif($ret_json){
#payone-link mailing will be done by $pay->generate_payonelink
$varenv->{cms}->{'iframe-prepaid-emailinfo'}->{txt} =~ s/\n/<br \/>/g;
$varenv->{cms}->{'iframe-prepaid-emailinfo'}->{txt} =~ s/::mail_datetime::/$prepaidhash->{mail_datetime}/g;
$varenv->{cms}->{'iframe-prepaid-emailinfo'}->{txt} =~ s/::email::/$ctadr->{txt08}/g;
$varenv->{cms}->{'iframe-prepaid-emailinfo'}->{txt} =~ s/::payone_link::/<b><a href='$prepaidhash->{payone_link}' target='_blank'>Test $prepaidhash->{payone_link}<\/a><\/b>/g if($ctadr->{c_id} eq $dbt->{copri_conf}->{superu_id});
$varenv->{cms}->{'iframe-prepaid-emailinfo'}->{txt} =~ s/::app_name::/<b>$dbt->{merchant_ids}->{$varenv->{merchant_id}}->{app_name}<\/b>/g;
print $q->div({-class=>'content2', -style=>'color:#009899;'}, "$varenv->{cms}->{'iframe-prepaid-emailinfo'}->{txt}"),"\n";
print $q->div({-style=>'margin-top:1em;text-align:center;'},"<button type='submit' name='sharee_edit' value='save_account' class='btn btn-primary btn-lg btn-block' style='border:1px solid #$bgcolor1;background-color:#$bgcolor1;'>$varenv->{cms}->{'iframe-next'}->{txt}</button>"),"\n";
}
print $q->div({-class=>'content2', -style=>'padding-top:50px;font-size:0.81em;'}, "$varenv->{cms}->{'iframe-prepaid-footer'}->{txt}"),"\n";
print $q->div({-class=>'content2', -style=>'padding-top:50px;font-size:0.91em;'}, "$varenv->{cms}->{'iframe-prepaid-footer'}->{txt}"),"\n";
print "</div>\n";
print $q->end_form,"\n";

View file

@ -12,6 +12,7 @@ use Mod::Libenz;
use Mod::DBtank;
use Mod::APIfunc;
use Mod::Pricing;
use Mod::Payment;
use Tpl::AccountSubmenu;
use Data::Dumper;
@ -35,6 +36,7 @@ sub tpl {
my $dbt = new DBtank;
my $apif = new APIfunc;
my $pri = new Pricing;
my $pay = new Payment;
my $submenu = new AccountSubmenu;
my $path = $q->path_info();
my $dbh = "";
@ -196,7 +198,7 @@ sub tpl {
}
if($ctadr->{int03} == 3){
my $prepaidhash = { prepaid_total => 0 };
$prepaidhash = $pri->collect_prepaid($dbh,$ctadr);
$prepaidhash = $pay->collect_prepaid($dbh,$ctadr);
$prepaidhash->{prepaid_total} = sprintf('%.2f',$prepaidhash->{prepaid_total});
$prepaidhash->{prepaid_total} =~ s/\./,/;
$varenv->{cms}->{'iframe-prepaid-sum'}->{txt} =~ s/\n/<br \/>/g;