Adding fibu fee for operator accounting

This commit is contained in:
ragu 2023-05-05 07:30:00 +02:00
parent 7fca481632
commit 9da4bd0cb0
11 changed files with 111 additions and 60 deletions

View file

@ -1499,7 +1499,7 @@ sub insert_pos(){
if($ct->{template_id} && $ct->{template_id} == 205){#Leihrad_list 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,int01,int02,int03,int06,int04,txt05,txt06,txt07,int10,int12,template_id,int13,owner,int07,txt04,int09,int17,int15,int11,int18,int19,txt17,txt18,int20,int25,int29,int34,txt22,txt11,int35,int36,int37,int42,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','1','$unit_price','$menge','$station','$station','$ct->{txt06}','$ct->{txt06}','$ct->{txt07}','$status','$from_main_id','$from_template_id','$deviceId','$owner','$rabatt','$tariff_desc','$tariff_nr','$daymax_price','$abo_price','$ct->{int11}','$sharing_type','$bike_charge','$ct->{txt17}','$ct->{txt18}','1','$trackon','$bike_type_id','$staff','$sig_book->{bikeId}','$sig_book->{rentalId}','$unit_price1','$unit_price2','$start_price','$aa_station','$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,int01,int02,int03,int06,int04,txt05,txt06,txt07,int10,int12,template_id,int13,owner,int07,txt04,int09,int17,int15,int11,int18,int19,txt17,txt18,int20,int25,int29,int34,txt22,txt11,int35,int36,int37,int42,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','1','$unit_price','$menge','$station','$station','$ct->{txt06}','$ct->{txt06}','$ct->{txt07}','$status','$from_main_id','$from_template_id','$deviceId','$owner','$rabatt','$tariff_desc','$tariff_nr','$daymax_price','$abo_price','$ct->{int11}','$sharing_type','$bike_charge','$ct->{txt17}','$ct->{txt18}','1','$trackon','$bike_type_id','$staff','$sig_book->{bikeId}','$sig_book->{rentalId}','$unit_price1','$unit_price2','$start_price','$aa_station','$unit_time','$free_time') RETURNING c_id");
}else{ }else{
$sth = $dbh->prepare("INSERT INTO contenttranspos (ct_id,cc_id,ca_id,ct_name,barcode,txt08,txt09,itime,int01,int02,int03,txt01,txt06,txt07,int10,int12,template_id,owner) VALUES ('$ctt_id','$ct->{c_id}','$ctadr->{c_id}','$ct_name','$ct->{barcode}','$user_name','$ctadr->{txt09}',now(),'1','$unit_price','1','$ct->{txt01}','$ct->{txt06}','$ct->{txt07}','0','$from_main_id','$from_template_id','$owner') RETURNING c_id"); $sth = $dbh->prepare("INSERT INTO contenttranspos (ct_id,cc_id,ca_id,ct_name,barcode,txt08,txt09,itime,int01,int02,int03,txt01,txt06,txt07,int10,int12,int16,template_id,owner) VALUES ('$ctt_id','$ct->{c_id}','$ctadr->{c_id}','$ct_name','$ct->{barcode}','$user_name','$ctadr->{txt09}',now(),'1','$unit_price','1','$ct->{txt01}','$ct->{txt06}','$ct->{txt07}','0','$from_main_id','$ct->{int16}','$from_template_id','$owner') RETURNING c_id");
} }
my $rows = $sth->execute(); my $rows = $sth->execute();
my $last_id; my $last_id;
@ -1689,8 +1689,6 @@ sub search_content(){
$txt_where .= " and (ct.$key ilike '$valref->{$key}' OR ct.barcode $opref->{$key} $valref->{$key})"; $txt_where .= " and (ct.$key ilike '$valref->{$key}' OR ct.barcode $opref->{$key} $valref->{$key})";
}elsif($key eq "ct_name"){ }elsif($key eq "ct_name"){
$txt_where .= " and ct.$key ilike '$valref->{$key}'"; $txt_where .= " and ct.$key ilike '$valref->{$key}'";
}elsif($key =~ /int01/ && $table eq "contenttrans" && looks_like_number($valref->{$key})){
$cpgroup_where .= " group by cp.ct_id HAVING sum(cp.int02) $opref->{$key} $valref->{$key}";
}elsif($key =~ /_id|barcode|int\d+|sort|owner/ && (looks_like_number($valref->{$key}) || $valref->{$key} =~ /null|0/)){ }elsif($key =~ /_id|barcode|int\d+|sort|owner/ && (looks_like_number($valref->{$key}) || $valref->{$key} =~ /null|0/)){
$txt_where .= " and ct.$key $opref->{$key} $valref->{$key}"; $txt_where .= " and ct.$key $opref->{$key} $valref->{$key}";
}elsif($key =~ /txt|uri/){ }elsif($key =~ /txt|uri/){
@ -1701,11 +1699,16 @@ sub search_content(){
}elsif($key =~ /byte/){ }elsif($key =~ /byte/){
$txt_where .= " and ct.$key = '\\x$valref->{$key}'"; $txt_where .= " and ct.$key = '\\x$valref->{$key}'";
} }
#sum pos doesn't work anymore
#if($key =~ /int01/ && $table eq "contenttrans" && looks_like_number($valref->{$key})){
#$cpgroup_where .= " group by cp.ct_id HAVING sum(cp.int02) $opref->{$key} $valref->{$key}";
#}
} }
if($key =~ /end_/ && $key =~ /time$/){ #if($key =~ /end_/ && $key =~ /time$/){
$valref->{$key} .= " 23:59" if($valref->{$key} !~ /\d:\d/); #$valref->{$key} .= " 23:59" if($valref->{$key} !~ /\d:\d/);
} #}
if(!$v_journal){ if(!$v_journal){

View file

@ -435,7 +435,7 @@ sub handler {
$feedb = $pl->save_text2contenttrans($q,$users_dms,$R::c_id4trans); $feedb = $pl->save_text2contenttrans($q,$users_dms,$R::c_id4trans);
} }
$return .= "|"; $return .= "|";
$return .= $pre->preinit($users_dms,$lang);#transactions logic $return .= $pre->preinit($q,$users_dms);#transactions logic
} }
}elsif($R::ct_trans){ }elsif($R::ct_trans){
$feedb->{message} = "failure::Abbruch. Schreibender Zugriff \"Faktura\" verweigert."; $feedb->{message} = "failure::Abbruch. Schreibender Zugriff \"Faktura\" verweigert.";
@ -550,7 +550,7 @@ sub handler {
#int12=0 should be set after capture success in payment module #int12=0 should be set after capture success in payment module
if(($users_sharee->{int04} != 1) && ($users_sharee->{txt08} =~ /\w\@\w/)){ if(($users_sharee->{int04} != 1) && ($users_sharee->{txt08} =~ /\w\@\w/)){
$tk->emailack($users_sharee->{c_id}); $tk->emailack(\%varenv,$users_sharee->{c_id});
} }
if(($users_sharee->{int13} != 1) && ($users_sharee->{txt07} =~ /\d{9}/ && length($users_sharee->{txt07}) <= 16)){ if(($users_sharee->{int13} != 1) && ($users_sharee->{txt07} =~ /\d{9}/ && length($users_sharee->{txt07}) <= 16)){
$tk->smsack($users_sharee); $tk->smsack($users_sharee);
@ -580,7 +580,7 @@ sub handler {
if($users_sharee->{c_id} && $users_sharee->{txt34} && length($users_sharee->{txt34}) > 10 && $payable_check && $R::sharee_edit && $R::sharee_edit =~ /save_account|send_email|send_sms/){ if($users_sharee->{c_id} && $users_sharee->{txt34} && length($users_sharee->{txt34}) > 10 && $payable_check && $R::sharee_edit && $R::sharee_edit =~ /save_account|send_email|send_sms/){
if(($users_sharee->{int04} != 1 || $R::sharee_edit =~ /send_email/) && ($users_sharee->{txt08} =~ /\w\@\w/)){ if(($users_sharee->{int04} != 1 || $R::sharee_edit =~ /send_email/) && ($users_sharee->{txt08} =~ /\w\@\w/)){
$tk->emailack($users_sharee->{c_id}); $tk->emailack(\%varenv,$users_sharee->{c_id});
} }
if(($users_sharee->{int13} != 1 || $R::sharee_edit =~ /send_sms/) && ($users_sharee->{txt07} =~ /\d{9}/ && length($users_sharee->{txt07}) <= 16)){ if(($users_sharee->{int13} != 1 || $R::sharee_edit =~ /send_sms/) && ($users_sharee->{txt07} =~ /\d{9}/ && length($users_sharee->{txt07}) <= 16)){
$tk->smsack($users_sharee); $tk->smsack($users_sharee);
@ -675,7 +675,7 @@ sub handler {
if($R::email && $R::sharee_edit =~ /password_forgotten/){ if($R::email && $R::sharee_edit =~ /password_forgotten/){
my $hw_id = unpack ('H*', pack('Nc', time, $$ % 0xff));#old $co my $hw_id = unpack ('H*', pack('Nc', time, $$ % 0xff));#old $co
$tk->send_password($R::email,$hw_id,$aowner); $tk->send_password(\%varenv,$R::email,$hw_id,$aowner);
} }
#redirections #redirections

View file

@ -535,7 +535,7 @@ sub rpc {
}else{#because of Prelogic logic set it empty if no capture }else{#because of Prelogic logic set it empty if no capture
$update_ctt->{int14} = 1;#OPOS $update_ctt->{int14} = 1;#OPOS
$update_adr->{int12} = $vde_on_fail;#Vde $update_adr->{int12} = $vde_on_fail;#Vde
#system(`$varenv->{basedir}/src/Mod/newsletter_tink.pl "$varenv->{basedir}" "$varenv->{wwwhost}" "send_capture_fail" "$ctadr->{c_id}" "$ctt->{ct_name}"`); #TOD send_capture_fail mail?
} }
$update_ctt->{txt28} = $now_dt . " $todo\n" . $res->content . "\n" . $update_ctt->{txt28}; $update_ctt->{txt28} = $now_dt . " $todo\n" . $res->content . "\n" . $update_ctt->{txt28};
} }

View file

@ -107,13 +107,6 @@ sub manage_dmsusers {
$valxx =~ s/,/./g; $valxx =~ s/,/./g;
$valxx = 0 if(!looks_like_number($valxx));# set to 0 for using == operator $valxx = 0 if(!looks_like_number($valxx));# set to 0 for using == operator
$feedb->{u_rows} = $dbt->update_one($dbh,$dmsusers,"$_=$valxx"); $feedb->{u_rows} = $dbt->update_one($dbh,$dmsusers,"$_=$valxx");
if($_ eq "int09"){
if($valxx == 1){
$dbt->update_one($dbh,$adref,"int09=1");
}else{
$dbt->update_one($dbh,$adref,"int09=null");
}
}
}elsif($_ =~ /^txt\d+/){ }elsif($_ =~ /^txt\d+/){
my @val = $q->param($_); my @val = $q->param($_);
$valxx = $q->escapeHTML("@val"); $valxx = $q->escapeHTML("@val");
@ -125,6 +118,7 @@ sub manage_dmsusers {
$bw->log("insert DMS user to $varenv->{dbname}",$ctadr->{c_id},""); $bw->log("insert DMS user to $varenv->{dbname}",$ctadr->{c_id},"");
$feedb->{i_rows} = $dbt->insert_users($dbh,$ctadr->{c_id},$owner); $feedb->{i_rows} = $dbt->insert_users($dbh,$ctadr->{c_id},$owner);
$dbt->update_one($dbh,$adref,"int07=100"); $dbt->update_one($dbh,$adref,"int07=100");
$dbt->update_one($dbh,$adref,"int09=1");
} }
return $feedb; return $feedb;
@ -250,15 +244,13 @@ sub save_content {
$feedb->{message} = "failure::Eingabefehler \"$valxx\", falsche Datum Uhrzeit Format"; $feedb->{message} = "failure::Eingabefehler \"$valxx\", falsche Datum Uhrzeit Format";
} }
}elsif($_ =~ /^int|barcode/){ }elsif($_ =~ /^int|barcode/){
if(($valxx && $valxx =~ /\d/) || looks_like_number($valxx)){ my $val = $q->param("$_");
$valxx =~ s/,/./; $valxx = $q->escapeHTML("$val");
$valxx =~ s/\s//g; $valxx =~ s/,/./;
if(looks_like_number($valxx)){ $valxx =~ s/\s//g;
$update_ct->{$_} = "$valxx"; if($valxx && looks_like_number($valxx)){
}else{ $update_ct->{$_} = "$valxx";
$feedb->{message} = "failure::Eingabefehler \"$valxx\", hier sind nur numerische Werte erlaubt"; }elsif(!$valxx || $valxx eq "null"){
}
}elsif(!$valxx){
$update_ct->{$_} = "null"; $update_ct->{$_} = "null";
}else{ }else{
$feedb->{message} = "failure::Eingabefehler \"$valxx\", hier sind nur numerische Werte erlaubt"; $feedb->{message} = "failure::Eingabefehler \"$valxx\", hier sind nur numerische Werte erlaubt";

View file

@ -23,7 +23,6 @@ use Mod::Buttons;
use Mod::Libenz; use Mod::Libenz;
use Mod::Libenzdb; use Mod::Libenzdb;
use Mod::DBtank; use Mod::DBtank;
use Mod::Callib;
use Mod::Payment; use Mod::Payment;
use Mod::Pricing; use Mod::Pricing;
@ -37,16 +36,15 @@ sub new {
#Template #Template
sub preinit(){ sub preinit(){
my $self = shift; my $self = shift;
my $q = shift;
my $users_dms = shift; my $users_dms = shift;
my $q = new CGI;
$q->import_names('R'); $q->import_names('R');
my @keywords = $q->param; my @keywords = $q->param;
my $cf = new Config; my $cf = new Config;
my $lb = new Libenz; my $lb = new Libenz;
my $db = new Libenzdb; my $db = new Libenzdb;
my $dbt = new DBtank; my $dbt = new DBtank;
my $cb = new Callib;
my $but = new Buttons; my $but = new Buttons;
my $payone = new Payment; my $payone = new Payment;
my $pri = new Pricing; my $pri = new Pricing;
@ -575,6 +573,7 @@ sub preinit(){
my $sum_paid = "null"; my $sum_paid = "null";
my $sum_operatorcredit = "null"; my $sum_operatorcredit = "null";
my $sum_fibugeb = "null";
my $state = $R::state || ""; my $state = $R::state || "";
$update_ctt->{state} = "$state"; $update_ctt->{state} = "$state";
$update_ctt->{int14} = 2;#set OPOS $update_ctt->{int14} = 2;#set OPOS
@ -592,6 +591,12 @@ sub preinit(){
$update_ctt->{int14} = "null"; $update_ctt->{int14} = "null";
} }
if($R::set_state eq "buchen" && $R::sum_fibugeb){
$sum_fibugeb = $R::sum_fibugeb;
$sum_fibugeb =~ s/,/\./;
$update_ctt->{int08} = $sum_fibugeb;
}
$u_rows += $dbt->update_record($dbh,$update_ctt,$ctt); $u_rows += $dbt->update_record($dbh,$update_ctt,$ctt);
if($state =~ /payone/){ if($state =~ /payone/){
@ -604,10 +609,10 @@ sub preinit(){
$ctt->{int01} = 0; $ctt->{int01} = 0;
$ctt->{sequence} = $ctt->{int18} || 1; $ctt->{sequence} = $ctt->{int18} || 1;
$ctt->{sequence}++; $ctt->{sequence}++;
if($ctadr->{int03} == 1 && $ctt->{txt16} && $R::state =~ /SEPA/){#SEPA 0 if($ctt->{txt16} && $R::state =~ /SEPA/){#SEPA 0
my $payoneret = $payone->captureSEPA_main(\%varenv,$ctadr,$ctt,$users_dms->{u_id}); my $payoneret = $payone->captureSEPA_main(\%varenv,$ctadr,$ctt,$users_dms->{u_id});
} }
if($ctadr->{int03} == 2 && $ctt->{txt16} && $R::state =~ /Kreditkarte/){#CC 0 if($ctt->{txt16} && $R::state =~ /Kreditkarte/){#CC 0
my $payoneret = $payone->captureCC_main(\%varenv,$ctadr,$ctt,$users_dms->{u_id}); my $payoneret = $payone->captureCC_main(\%varenv,$ctadr,$ctt,$users_dms->{u_id});
} }
$ctt = $db->get_content1("contenttrans",$ctt->{c_id}); $ctt = $db->get_content1("contenttrans",$ctt->{c_id});
@ -626,11 +631,11 @@ sub preinit(){
$ctt->{sequence} = $R::payone_sequence || 1; $ctt->{sequence} = $R::payone_sequence || 1;
#SEPA capture #SEPA capture
if($ctadr->{int03} == 1 && $ctt->{txt16} && $R::state =~ /SEPA/){#SEPA if($ctt->{txt16} && $R::state =~ /SEPA/){#SEPA
my $payoneret = $payone->captureSEPA_main(\%varenv,$ctadr,$ctt,$users_dms->{u_id}); my $payoneret = $payone->captureSEPA_main(\%varenv,$ctadr,$ctt,$users_dms->{u_id});
} }
#CC capture #CC capture
elsif($ctadr->{int03} == 2 && $ctt->{txt16} && $R::state =~ /Kreditkarte/){#CC elsif($ctt->{txt16} && $R::state =~ /Kreditkarte/){#CC
my $payoneret = $payone->captureCC_main(\%varenv,$ctadr,$ctt,$users_dms->{u_id}); my $payoneret = $payone->captureCC_main(\%varenv,$ctadr,$ctt,$users_dms->{u_id});
} }
else{ else{
@ -710,11 +715,6 @@ sub preinit(){
} }
if(-f "$varenv{basedir}/pdf/$praefix-$ctt->{ct_name}.pdf" && (($R::set_state eq "buchen" && $R::send_invoice && $ctt->{int01} && $ctt->{int01} != 0) || ($ib_key eq "send_invoice_again"))){ if(-f "$varenv{basedir}/pdf/$praefix-$ctt->{ct_name}.pdf" && (($R::set_state eq "buchen" && $R::send_invoice && $ctt->{int01} && $ctt->{int01} != 0) || ($ib_key eq "send_invoice_again"))){
#sleep 3;#PDF invoice sending disabled because of partly empty invoices
#
#my $key_pdf;
#$key_pdf = `/usr/bin/pdftotext $varenv{basedir}/pdf/$praefix-$ctt->{ct_name}.pdf - | grep "Seite:"`;
#system(`$varenv{basedir}/src/Mod/newsletter_tink.pl "$varenv{basedir}" "$varenv{wwwhost}" "send_invoice" "$ctt->{int10}" "$ctt->{ct_name}"`);# if($key_pdf =~ /Seite:/);
system("$varenv{basedir}/src/scripts/mailTransport.pl '$varenv{syshost}' 'send_invoice' '$ctt->{c_id}' '$praefix-$ctt->{ct_name}.pdf'"); system("$varenv{basedir}/src/scripts/mailTransport.pl '$varenv{syshost}' 'send_invoice' '$ctt->{c_id}' '$praefix-$ctt->{ct_name}.pdf'");
} }

View file

@ -537,11 +537,18 @@ sub operator_accounting2calc {
foreach(@tplf_order){ foreach(@tplf_order){
my ($key,$val,$size) = split /=/,$_; my ($key,$val,$size) = split /=/,$_;
if($key =~ /int/){ if($key =~ /int/){
$oac->{int99} = $ctpos->{int01} if($key eq "int01" && $ctpos->{int01});#invoice capture brutto my $invoice_brutto = 0;
$oac->{int01} = $ctpos->{int01} / 119 * 100 if($key eq "int01" && $ctpos->{int01});#invoice capture netto if($key eq "int01" && $ctpos->{int01}){
$invoice_brutto = $ctpos->{int01};
#substract Fibu Gebühren like Rücklastschrift or Mahnung
$invoice_brutto = $ctpos->{int01} - $ctpos->{int08} if($ctpos->{int08} && $ctpos->{int08} > 0);
$oac->{int99} = $invoice_brutto;
#invoice capture netto
$oac->{int01} = $invoice_brutto / 119 * 100;
}
$oac->{int01} = sprintf('%.2f', $oac->{int01}); $oac->{int01} = sprintf('%.2f', $oac->{int01});
if($ctpos->{state} =~ /Lastschrift/){ if($ctpos->{state} =~ /Lastschrift|Überweisung/){
$oac->{int93} = $oac->{int01} / 100 * $ctf->{$key} if($key eq "int01");#7,5% $oac->{int93} = $oac->{int01} / 100 * $ctf->{$key} if($key eq "int01");#7,5%
$oac->{int93} = sprintf('%.3f', $oac->{int93}); $oac->{int93} = sprintf('%.3f', $oac->{int93});
$oac->{int98} = $oac->{int93} * 0.19 if($oac->{int93});#UmSt auf 7,5% $oac->{int98} = $oac->{int93} * 0.19 if($oac->{int93});#UmSt auf 7,5%

View file

@ -4,7 +4,7 @@ package Shareework;
# Copyright (c) Rainer Gümpelein, TeilRad GmbH # Copyright (c) Rainer Gümpelein, TeilRad GmbH
# #
#disable for syntax check #disable for syntax check
#use lib qw(/var/www/copri4/shareeapp-primary/src); #use lib qw(/var/www/copri-bike/shareeapp-primary/src);
use strict; use strict;
use warnings; use warnings;
@ -766,27 +766,33 @@ sub smsack(){
#Send email after payable check and !int04 #Send email after payable check and !int04
sub emailack(){ sub emailack(){
my $self = shift; my $self = shift;
my $c_id = shift; my $varenv = shift;
my %varenv = $cf->envonline(); my $adr_id = shift || "";
system(`$varenv{basedir}/src/Mod/newsletter_tink.pl "$varenv{basedir}" "$varenv{wwwhost}" "emailack" "$c_id" ""`);
system(`$varenv->{basedir}/src/Mod/newsletter_tink.pl "$varenv->{basedir}" "$varenv->{wwwhost}" "emailack" "$adr_id" ""`);
#TODO
#system("$dbt->{copri_conf}->{basedir}/$varenv->{syshost}/src/scripts/mailTransportcms.pl '$varenv->{syshost}' 'send_emailack' '$adr_id' ''");
} }
#Password forgotten send email #Password forgotten send email
sub send_password(){ sub send_password(){
my $self = shift; my $self = shift;
my ($email,$coo,$owner) = @_; my $varenv = shift;
my %varenv = $cf->envonline(); my $email = shift || "";
my $coo = shift || "";
my $owner = shift || "";
$email = $q->escapeHTML($email); $email = $q->escapeHTML($email);
$email =~ s/\s//g; $email =~ s/\s//g;
$bw->log("$varenv{basedir}/src/Mod/newsletter_tink.pl",$email,"");
my $pwmd5 = md5_hex($coo) || ""; my $pwmd5 = md5_hex($coo) || "";
if($email && $email =~ /\w\@\w/ && $pwmd5 && length($pwmd5) > 20 && $email !~ /$dbt->{copri_conf}->{test_accounts}/i){ if($email && $email =~ /\w\@\w/ && $pwmd5 && length($pwmd5) > 20 && $email !~ /$dbt->{copri_conf}->{test_accounts}/i){
my $pwsha256=sha256_base64($pwmd5) || ""; my $pwsha256=sha256_base64($pwmd5) || "";
$db->updater("contentadr","1","1","txt04","$pwsha256","$owner","txt08","ilike","$email"); $db->updater("contentadr","1","1","txt04","$pwsha256","$owner","txt08","ilike","$email");
system(`$varenv{basedir}/src/Mod/newsletter_tink.pl "$varenv{basedir}" "$varenv{wwwhost}" "send_password" "$email" "$coo"`); system(`$varenv->{basedir}/src/Mod/newsletter_tink.pl "$varenv->{basedir}" "$varenv->{wwwhost}" "send_password" "$email" "$coo"`);
#TODO
#system("$dbt->{copri_conf}->{basedir}/$varenv->{syshost}/src/scripts/mailTransportcms.pl '$varenv->{syshost}' 'send_password' '$c_id' ''");
} }
} }

View file

@ -61,7 +61,7 @@ sub tpl(){
my $pref = { my $pref = {
table => "contenttrans", table => "contenttrans",
fetch => "one", fetch => "one",
template_id => "IN::(209,218)", template_id => "IN::(208,209,218)",
c_id => $users_dms->{c_id4trans}, c_id => $users_dms->{c_id4trans},
}; };
$ctt = $dbt->fetch_record($dbh,$pref); $ctt = $dbt->fetch_record($dbh,$pref);
@ -436,7 +436,7 @@ EOF
#3. #3.
$ctt->{txt23} = $q->unescapeHTML("$ctt->{txt23}") if($ctt->{txt23}); $ctt->{txt23} = $q->unescapeHTML("$ctt->{txt23}") if($ctt->{txt23});
print $q->Tr(),"\n"; print $q->Tr(),"\n";
print $q->td({-class=>'tdval5',-colspan=>'2'},$q->textarea(-class=>'etxt',-name=>'txt23', -default=>"$ctt->{txt23}", -rows=>8, -columns=>65)),"\n"; print $q->td({-class=>'tdval5',-colspan=>'2'},$q->textarea(-class=>'etxt',-name=>'txt23', -default=>"$ctt->{txt23}", -rows=>8, -columns=>55)),"\n";
print $q->end_table,"\n"; print $q->end_table,"\n";
print "</td>\n"; print "</td>\n";
@ -458,7 +458,7 @@ EOF
#3. #3.
$ctt->{txt12} = $q->unescapeHTML($ctt->{txt12}) || ""; $ctt->{txt12} = $q->unescapeHTML($ctt->{txt12}) || "";
print $q->Tr(),"\n"; print $q->Tr(),"\n";
print $q->td({-class=>'tdval5',-colspan=>'2'},$q->textarea(-class=>'etxt',-name=>'txt12', -default=>"$ctt->{txt12}", -rows=>8, -columns=>65)),"\n"; print $q->td({-class=>'tdval5',-colspan=>'2'},$q->textarea(-class=>'etxt',-name=>'txt12', -default=>"$ctt->{txt12}", -rows=>8, -columns=>55)),"\n";
print $q->end_table,"\n"; print $q->end_table,"\n";
print "</td></tr>\n"; print "</td></tr>\n";

View file

@ -546,7 +546,7 @@ EOF
print $q->a({-class=>'elinkbutton',-style=>'margin:0 0 2px 20px;', -href=>'?accounting_select=1'},"1. Einzüge selektieren"),"\n"; print $q->a({-class=>'elinkbutton',-style=>'margin:0 0 2px 20px;', -href=>'?accounting_select=1'},"1. Einzüge selektieren"),"\n";
} }
print "<b>$months[$mon -1] $year</b>\n"; print "<b>$months[$mon -1] $year</b>\n";
print $q->span({-style=>'font-size:0.81em;'}," (1. selektiert Rechnungen mit Payone Einzug & kein OPOS & kein Storno & keine interne Bemerkung, alle anderen bitte manuell überprüfen und falls i.O. selektieren)"),"\n"; print $q->span({-style=>'font-size:0.81em;'}," (1. selektiert Rechnungen mit Payone Einzug & kein OPOS & p-Saldo=0 & kein Storno & keine interne Bemerkung, alle anderen bitte manuell überprüfen und falls i.O. selektieren)"),"\n";
print "</div>\n"; print "</div>\n";
} }
print $q->hidden(-name=>'mandant_main_id', -value=>"$dbt->{shareedms_conf}->{parent_id}"),"\n"; print $q->hidden(-name=>'mandant_main_id', -value=>"$dbt->{shareedms_conf}->{parent_id}"),"\n";
@ -669,7 +669,7 @@ EOF
$e_mtime = $searchref->{end_date_time}; $e_mtime = $searchref->{end_date_time};
} }
print $q->td({-nowrap=>1,-class=>"search_line_date"},$q->textfield(-id=>'datepicker1',-class=>'etxt',-name=>"s_start_$key",-default=>"$s_mtime",-size=>"8",-maxlength=>10),"-",$q->textfield(-id=>'datepicker2',-class=>'etxt',-name=>"s_end_$key",-default=>"$e_mtime",-size=>"8",-maxlength=>10)),"\n" if($key =~ /time$/); print $q->td({-nowrap=>1,-class=>"search_line_date"},$q->textfield(-id=>'datepicker1',-class=>'etxt',-name=>"s_start_$key",-default=>"$s_mtime",-size=>"8",-maxlength=>10),"<",$q->textfield(-id=>'datepicker2',-class=>'etxt',-name=>"s_end_$key",-default=>"$e_mtime",-size=>"8",-maxlength=>10)),"\n" if($key =~ /time$/);
} }
@ -820,7 +820,11 @@ EOF
#permissions #permissions
if($users_dms_primary->{int03} == 2 && $users_dms->{int03} == 2){ if($users_dms_primary->{int03} == 2 && $users_dms->{int03} == 2){
my $checked = 0; my $checked = 0;
$checked = 1 if($R::accounting_select && $node_meta->{template_id} == 209 && $ct4rel->{$id}->{int01} > 0 && $ct4rel->{$id}->{state} =~ /payone/i && !$ct4rel->{$id}->{int14} && !$ct4rel->{$id}->{txt22} && $ct4rel->{$id}->{int18} eq "1");
if($R::accounting_select && $node_meta->{template_id} == 209 && $ct4rel->{$id}->{int01} > 0 && $ct4rel->{$id}->{state} =~ /payone/i && !$ct4rel->{$id}->{int14} && $ct4rel->{$id}->{int16} == 0 && !$ct4rel->{$id}->{txt22} && $ct4rel->{$id}->{int18} eq "1"){
$checked = 1
}
print $q->td({-style=>"background-color:silver;"}, $q->checkbox(-name=>"ck4ex", -checked=>"$checked", -value=>"$ct4rel->{$id}->{c_id}", -label=>'')),"\n"; print $q->td({-style=>"background-color:silver;"}, $q->checkbox(-name=>"ck4ex", -checked=>"$checked", -value=>"$ct4rel->{$id}->{c_id}", -label=>'')),"\n";
}else{ }else{
print $q->td({-style=>"background-color:silver;"},"&nbsp;"),"\n"; print $q->td({-style=>"background-color:silver;"},"&nbsp;"),"\n";

View file

@ -160,6 +160,7 @@ EOF
#my $scol = "c_id";#changed to itime because of Storno resorts #my $scol = "c_id";#changed to itime because of Storno resorts
my $scol = "itime"; my $scol = "itime";
my $sum_parts19=0; my $sum_parts19=0;
my $sum_fibugeb=0;
my $diff19 = 100 + 19; my $diff19 = 100 + 19;
my $sum_umst19=0; my $sum_umst19=0;
my $i=0; my $i=0;
@ -185,6 +186,7 @@ EOF
}else{ }else{
($gesamt,my $rabatt) = $pri->price2calc($cttpos->{$id}); ($gesamt,my $rabatt) = $pri->price2calc($cttpos->{$id});
$sum_parts19 += $gesamt; $sum_parts19 += $gesamt;
$sum_fibugeb += $gesamt if($cttpos->{$id}->{int16});
$gesamt = $pri->round($gesamt); $gesamt = $pri->round($gesamt);
$gesamt = sprintf('%.2f', $gesamt); $gesamt = sprintf('%.2f', $gesamt);
} }
@ -509,6 +511,7 @@ EOF
print $q->td({-class=>'tdsum'},"<b>$summe:</b>"); print $q->td({-class=>'tdsum'},"<b>$summe:</b>");
print $q->td({-class=>'tdint',-nowrap=>"1"},"<b>$sum_paid €<b/>"); print $q->td({-class=>'tdint',-nowrap=>"1"},"<b>$sum_paid €<b/>");
print $q->hidden(-name=>'sum_paid', -override=>'1',-value=>"$sum_paid"); print $q->hidden(-name=>'sum_paid', -override=>'1',-value=>"$sum_paid");
print $q->hidden(-name=>'sum_fibugeb', -override=>'1',-value=>"$sum_fibugeb") if($sum_fibugeb);
print $q->end_table; print $q->end_table;
print "</td><td>&nbsp;</td>"; print "</td><td>&nbsp;</td>";
@ -564,7 +567,9 @@ EOF
if($ctt->{int16} && $ctt->{int16} > 0){ if($ctt->{int16} && $ctt->{int16} > 0){
print $q->div({-style=>"padding:0.5em;font-size:0.81em;width:98%;text-align:right;"},"<span style='color:red;'>$opos</span> Summe $ctt->{int01} € gebucht per \"$ctt->{state}\", Payone Saldo $ctt->{int16} € vom $vibuchen_mtime "),"\n"; print $q->div({-style=>"padding:0.5em;font-size:0.81em;width:98%;text-align:right;"},"<span style='color:red;'>$opos</span> Summe $ctt->{int01} € gebucht per \"$ctt->{state}\", Payone Saldo $ctt->{int16} € vom $vibuchen_mtime "),"\n";
}else{ }else{
print $q->div({-style=>"padding:0.5em;font-size:0.81em;width:98%;text-align:right;"},"<span style='color:red;'>$opos</span> Summe $ctt->{int01} € gebucht per \"$ctt->{state}\" am $vibuchen_mtime "),"\n"; my $fibutext = "";
$fibutext = "<span style='color:silver;'>(Fibu Gebühr $ctt->{int08})</span>" if($ctt->{int08});
print $q->div({-style=>"padding:0.5em;font-size:0.81em;width:98%;text-align:right;"},"<span style='color:red;'>$opos</span> Summe $ctt->{int01} € $fibutext gebucht per \"$ctt->{state}\" am $vibuchen_mtime "),"\n";
} }
}else{ }else{
print $q->div({-style=>"padding:0.5em;font-size:0.81em;width:98%;text-align:right;"},"<span style='color:silver;'>Summe ist nicht gebucht!</span>"),"\n"; print $q->div({-style=>"padding:0.5em;font-size:0.81em;width:98%;text-align:right;"},"<span style='color:silver;'>Summe ist nicht gebucht!</span>"),"\n";

View file

@ -64,14 +64,27 @@ my $sendref = {
#my $project = $dbt->{operator}->{$varenv{dbname}}->{project} || die "project not defined"; #my $project = $dbt->{operator}->{$varenv{dbname}}->{project} || die "project not defined";
my $oprefix = $dbt->{operator}->{$varenv{dbname}}->{oprefix} || ""; my $oprefix = $dbt->{operator}->{$varenv{dbname}}->{oprefix} || "";
my $sendmail = {}; my $sendmail = {};
#send_emailack
if($todo eq "send_emailack" && looks_like_number($adr_id)){
$sendmail = send_emailack($todo,$sendref,$adr_id);
}
#send_password
if($todo eq "send_password" && looks_like_number($adr_id)){
$sendmail = send_password($todo,$sendref,$adr_id);
}
#send_cpdate_message, done by cronjob cpdate_check.pl #send_cpdate_message, done by cronjob cpdate_check.pl
$sendmail = send_cpupdate_message($todo,$sendref,$adr_id) if(($todo eq "send_cpupdate_message" || $todo eq "send_proactive_cpupdate_message") && looks_like_number($adr_id)); if(($todo eq "send_cpupdate_message" || $todo eq "send_proactive_cpupdate_message") && looks_like_number($adr_id)){
$sendmail = send_cpupdate_message($todo,$sendref,$adr_id);
}
#send_alarm2hotline, done by Ilockit_cloud.pl #send_alarm2hotline, done by Ilockit_cloud.pl
$sendmail = send_alarm2hotline($sendref,$ct_id) if($todo eq "send_alarm2hotline" && looks_like_number($adr_id) && looks_like_number($ct_id)); if($todo eq "send_alarm2hotline" && looks_like_number($adr_id) && looks_like_number($ct_id)){
$sendmail = send_alarm2hotline($sendref,$ct_id);
}
if($sendmail->{c_id}){ if($sendmail->{c_id}){
sendmailjob($sendmail); sendmailjob($sendmail);
@ -79,6 +92,27 @@ if($sendmail->{c_id}){
print EMA "Error, can not sendmailjob without c_id\n"; print EMA "Error, can not sendmailjob without c_id\n";
} }
#send_emailack
sub send_emailack {
my $todo = shift;
my $sendref = shift;
my $adr_id = shift || "";
#TODO
return;
}
#send_password
sub send_password {
my $todo = shift;
my $sendref = shift;
my $adr_id = shift || "";
#TODO
return;
}
#send_cpupdate_message #send_cpupdate_message
sub send_cpupdate_message { sub send_cpupdate_message {
my $todo = shift; my $todo = shift;