package PayoneSEPA; # # SPDX-License-Identifier: AGPL-3.0-or-later # Copyright (c) Rainer Gümpelein, TeilRad GmbH # use strict; use warnings; use POSIX; use CGI ':standard'; use Mod::Buttons; use Mod::Basework; use Mod::Shareework; use Mod::DBtank; use Mod::Pricing; use Sys::Hostname; sub new { my $class = shift; my $self = {}; bless($self,$class); return $self; } #Template sub tpl(){ my $self = shift; my $tpl_id = shift; my $node_meta = shift; my $users_dms = shift || ""; my $varenv = shift; my $users_sharee = shift || ""; my $feedb = shift || ""; my $q = new CGI; my $bw = new Basework; my $tk = new Shareework; my $dbt = new DBtank; my $pri = new Pricing; my $but = new Buttons; $q->import_names('R'); my @keywords = $q->param; my $dbh = ""; my $bgcolor1 = "009899";#sharee $bgcolor1 = $dbt->{website}->{$varenv->{syshost}}->{bgcolor1} if($dbt->{website}->{$varenv->{syshost}}->{bgcolor1}); $bgcolor1 = $dbt->{merchant_ids}->{$varenv->{merchant_id}}->{bgcolor1} if($dbt->{merchant_ids}->{$varenv->{merchant_id}}->{bgcolor1}); my $coo = $q->cookie(-name=>'domcookie') || $R::sessionid; my $ctadr = $users_sharee if(ref($users_sharee) eq "HASH" && $users_sharee->{c_id}); my $payable_check=0; $payable_check = $bw->isuser_rentable($ctadr,$varenv); my $tpl = $dbt->get_tpl($dbh,$tpl_id); my @tpl_order = split /,/,$tpl->{tpl_order}; print $q->start_form(),"\n"; print $q->hidden(-name=>"sessionid",-override=>1,-value=>"$R::sessionid"); print $q->hidden(-name=>"tinkc_id",-override=>1,-value=>"$ctadr->{c_id}"); print $q->hidden(-name=>"request",-override=>1,-value=>"managemandate"); print "
\n"; #SEPA if($tpl_id == 309){ print $q->div({-class=>'content_title3'},"$varenv->{cms}->{'iframe-bank-account'}->{txt}"),"\n"; print $q->div({-class=>'content2'}, "$varenv->{cms}->{'iframe-sepa-mandat-prolog'}->{txt}"),"\n"; #print $q->div({-class=>'content2'}, "Zur Validierung Ihrer Zahlungsdaten wird eine 1,- € Testbuchung vorgenommen. Wir werden nach erfolgreicher Abbuchung den Betrag als Mietgutschrift in Ihrem Account hinterlegen."),"\n"; foreach (@tpl_order){ my ($key,$des,$size) = split /=/,$_; $ctadr->{$key} = $q->unescapeHTML("$ctadr->{$key}"); my $label_des=""; my $red = "#c83434"; my $required="required"; if($key eq "txt22"){ if($R::IBAN){ $label_des = "IBAN error"; $ctadr->{$key} = $R::IBAN; } if($R::failure eq $key){ $varenv->{cms}->{'iframe-correct-input'}->{txt} =~ s/::input::/$des/; $label_des = "$varenv->{cms}->{'iframe-correct-input'}->{txt}"; } print $q->label({-for=>"$key", -style=>'padding-top:1.5em;'},"$label_des"),"\n"; print "\n"; }elsif($key eq "txt23"){ print $q->label({-for=>"$key", -style=>'padding-top:1.5em;'},"$label_des"),"\n"; print "\n"; #------------------------ }elsif($key =~ /int03/ && $size eq "checkbox"){ if(!$payable_check){ my $int03 = ""; #$int03 = $ctadr->{$key} if($ctadr->{$key} == 1); print $q->div({-style=>'margin:10px 0;'},"$varenv->{cms}->{'iframe-sepa-mandat'}->{txt}"),"\n"; if($ctadr->{txt27} !~ /active|pending/ && $R::failure eq $key){ $varenv->{cms}->{'iframe-please-confirm'}->{txt} =~ s/::value::/$des/; $label_des = "$varenv->{cms}->{'iframe-please-confirm'}->{txt}"; print $q->label({-for=>"$key", -style=>'padding-top:10px;'},"$label_des"),"\n"; } my $des = "$varenv->{cms}->{'iframe-sepa-mandat-accept'}->{txt}"; print $q->div({-id=>"$key"},$but->checkbox("1","$key","$int03","","$required"), " $des"),"\n"; }else{ #if payone fails/error if($ctadr->{txt27} =~ /active|pending/){ if($ctadr->{ct_name} && ($ctadr->{ct_name} =~ /PO-/ || $ctadr->{ct_name} =~ /TM-/) && $coo){ my $webtarget = "_blank"; my $dtext = ""; if($varenv->{syshost} =~ /app/){ $webtarget = "_self"; $dtext = "

$varenv->{cms}->{'iframe-pdf-download-info'}->{txt}"; } if( -f "$varenv->{basedir}/pdfinvoice/SEPA-Lastschriftmandat-$varenv->{praefix}-$ctadr->{ct_name}.pdf"){ print $q->div({-style=>'padding:10px;margin:10px 0;'},$q->a({-href=>"$varenv->{wwwhost}/FileOut?file=SEPA-Lastschriftmandat-$varenv->{praefix}-$ctadr->{ct_name}.pdf&sessionid=$coo", -target=>"$webtarget" , -type=>'application/octet-stream', -style=>'text-decoration:underline;font-size:1.1em;'}, $q->span({-class=>"bi bi-file-earmark-pdf"}), "SEPA-Lastschriftmandat.pdf"),"$dtext"),"\n"; } }else{ print $q->div({-style=>'padding:10px;margin:10px 0;border:1px solid silver;color:#c83434;'},"$varenv->{cms}->{'iframe-mandate-problem'}->{txt}"),"\n"; } }elsif($ctadr->{txt22}){ #if IBAN but no mandat_status print $q->div({-style=>'padding:10px;margin:10px 0;border:1px solid silver;color:#c83434;'}, "$varenv->{cms}->{'iframe-mandate-error'}->{txt}"),"\n"; } } } } print $q->div({-style=>'margin-top:1em;text-align:center;'},""),"\n"; }#end SEPA #prepay elsif($tpl_id == 313){ my $posref = { table => "contenttrans", table_pos => "contenttranspos", fetch => "all", keyfield => "c_id", ca_id => "$ctadr->{c_id}", 'ct.state' => "is::null", 'ct.int14' => "is::null", }; my $cttpos = { c_id => 0 }; $cttpos = $dbt->collect_post($dbh,$posref); #TODO negative counting booked operator invoices my $total_prepaid = 0; my $prepay_id = 0; foreach my $id (sort { $cttpos->{$b}->{c_id} <=> $cttpos->{$a}->{c_id} } keys(%$cttpos)){ #print $cttpos->{$id}->{barcode} . ":" . $cttpos->{$id}->{int02},"
"; if($cttpos->{$id}->{int02} > 0){ $total_prepaid += $cttpos->{$id}->{int02}; } if($cttpos->{$id}->{int02} == 0){ $prepay_id = $cttpos->{$id}->{barcode}; } } print $q->div({-class=>'content_title3'},"$varenv->{cms}->{'iframe-prepay-account'}->{txt}"),"\n"; if(!$prepay_id){ print $q->div({-class=>'content2'}, "$varenv->{cms}->{'iframe-failure-contact-hotline'}->{txt} $prepay_id"),"\n"; }else{ $total_prepaid = sprintf('%.2f',$total_prepaid); $total_prepaid =~ s/\./,/; $varenv->{cms}->{'iframe-prepay-prolog'}->{txt} =~ s/\n/
/g; $varenv->{cms}->{'iframe-prepay-prolog'}->{txt} =~ s/::total_prepaid::/$total_prepaid €<\/b>/g; $varenv->{cms}->{'iframe-prepay-prolog'}->{txt} =~ s/::app_name::/$dbt->{merchant_ids}->{$varenv->{merchant_id}}->{app_name}<\/b>/g; $varenv->{cms}->{'iframe-prepay-prolog'}->{txt} =~ s/::prepaid_id::/$prepay_id<\/b>/g; print $q->div({-class=>'content2'}, "$varenv->{cms}->{'iframe-prepay-prolog'}->{txt}"),"\n"; } } print "
\n"; print $q->end_form,"\n"; } 1;