copri Faktura ticket email integration. Table depended sort. Cleanup users table

This commit is contained in:
ragu 2023-08-01 07:47:54 +02:00
parent 1672564775
commit e3d3713994
16 changed files with 219 additions and 238 deletions

View file

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

View file

@ -31,7 +31,7 @@ sub ibuttons(){
'barcode' => 'Barcode Label drucken',
'buchen' => 'buchen',
'send_invoice_again' => 'senden',
'email_generate' => 'eMail generieren',
'send_invoice_cms' => 'eMail senden',
'new_contenttver' => 'Neues Arbeitsprofil',
'new_content' => 'NEUER Datensatz',
'new_contentcms' => 'NEUER Datensatz',

View file

@ -1679,9 +1679,9 @@ sub search_content(){
my $searchref = shift;
my $node_meta = shift;
my $users_dms = shift;
my $main_ids = shift || "";
my $tplids = shift || "";
my $ct_ids = shift || "";
my $main_ids = shift || 0;
my $tplids = shift || 0;
my $ct_ids = shift || 0;
my $v_journal = shift || "";
my $ck4ex = shift || "";
@ -1692,13 +1692,13 @@ sub search_content(){
$ck4ex =~ s/\s/,/g;
$ck4ex =~ s/,$//;
my $owner = $users_dms->{u_id};
my $sort_updown = $users_dms->{sort_updown};
my $scol = $searchref->{scol};
my $offset = $searchref->{offset};
my $limit = $searchref->{limit};
my $export = $searchref->{export};
my $opos = $searchref->{opos};
my $owner = $users_dms->{u_id} || 0;
my $sort_updown = $users_dms->{sort_updown} || "down";
my $scol = $searchref->{scol} || "mtime";
my $offset = $searchref->{offset} || 0;
my $limit = $searchref->{limit} || 200;
my $export = $searchref->{export} || "";
my $opos = $searchref->{opos} || 0;
my $stamp_time = strftime("%d.%m.%Y %H:%M",localtime(time));
my $debug=0;
@ -1751,10 +1751,10 @@ sub search_content(){
$cptxt_where .= " and cp.$key $opref->{$key} $valref->{$key}";
}
}else{
if($key eq "ct_name" && $valref->{$key} =~ /^(\d+)(0\d)$/){
if($key eq "ct_name" && $valref->{$key} =~ /^\d+$/){
$txt_where .= " and (ct.$key ilike '$valref->{$key}' OR ct.barcode $opref->{$key} $valref->{$key})";
}elsif($key eq "ct_name"){
$txt_where .= " and ct.$key ilike '$valref->{$key}'";
$txt_where .= " and ct.$key ilike '$valref->{$key}%'";
}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}";
}elsif($key =~ /txt|uri/){
@ -1826,7 +1826,7 @@ sub search_content(){
$txt_where .= " and ct.int14 is $opos" if($opos eq "null");
}
$txt_where = " and ct.c_id IN ($ck4ex)" if($export =~ /check4export/);
$txt_where = " and ct.c_id IN ($ck4ex)" if($export eq "check4export" && $ck4ex);
my $sth = "";
my $updown = "ASC";
$updown = "DESC" if($sort_updown eq "down");

View file

@ -311,16 +311,17 @@ sub handler {
my $today4db = strftime("%Y-%m-%d %H:%M",localtime(time));
$db->users_up("cal_start","$today4db",$users_dms->{u_id});
}
if($R::col_sort){
$db->users_up("col_sort",$R::col_sort,$users_dms->{u_id});
}
if($R::sort_updown){
$db->users_up("sort_updown",$R::sort_updown,$users_dms->{u_id});
}
if($R::cal_sort_updown){
$db->users_up("cal_sort_updown",$R::cal_sort_updown,$users_dms->{u_id});
}
if($R::col_sort && $node_meta->{ct_table}){
$db->users_up("col_sort_$node_meta->{ct_table}",$R::col_sort,$users_dms->{u_id});
}
if($R::sort_updown){
$db->users_up("sort_updown_$node_meta->{ct_table}",$R::sort_updown,$users_dms->{u_id});
}
#base_edit implements new DMS methodes without Pre* things
#permissions
#DMS Kunden rw
@ -431,26 +432,23 @@ sub handler {
$return = $pl->set_accounting2invoice($q,$users_dms,$R::c_id4trans,$R::set_main_id4workflow) if(looks_like_number($R::c_id4trans) && looks_like_number($R::tpl_id4trans) && looks_like_number($R::set_main_id4workflow));
}elsif($R::ct_trans =~ /save_text|save_adr/){
$feedb = $pl->save_text2contenttrans($q,$users_dms,$R::c_id4trans) if(looks_like_number($R::c_id4trans));
}elsif($R::ct_trans =~ /email_generate/){
#TODO
my $sendref = $pl->prepare_email({},{ txt08 => 'xxxx@sharee.bike' }, {}, $varenv{cms}->{$R::email_select}->{txt});
#print Dumper($sendref);
my $email_body = $q->unescapeHTML($sendref->{message});
$email_body =~ s/\r\n/\%0A/g;
$email_body =~ s/\n/\%0A/g;
#print "$email_body";
print redirect("mailto:$sendref->{mail_to}?subject=$sendref->{subject}\&body=$email_body");
exit 0;
}
#not used because of attachement
elsif($R::ct_trans =~ /email_generate/ && $R::c_id4trans && $R::email_select){
#my $sendref = $pl->prepare_email(\%varenv,$R::c_id4trans,$R::email_select);
#print redirect("mailto:$sendref->{mail_to}?subject=$sendref->{subject}\&body=$sendref->{message}");
#exit 0;
}elsif($R::detail_search && $R::detail_search eq "operator_accounting"){
my $ck4ex = "@R::ck4ex" || "";
$return = $pl->operator_accounting($q,$users_dms,$users_sharee,$R::accounting_type,$ck4ex);
}elsif($R::ct_trans || $R::v_abschluss || $R::trans2edit){
}elsif($R::ct_trans || $R::set_state || $R::v_abschluss || $R::trans2edit){
#should do all else invoice text save , without positions and booking payment
if($R::ct_trans !~ /_pos|open/ && looks_like_number($R::c_id4trans) && !$R::v_abschluss && !$R::trans2edit){
$feedb = $pl->save_text2contenttrans($q,$users_dms,$R::c_id4trans);
}
$return .= "|";
$return .= $pre->preinit($q,$users_dms);#transactions logic
$return .= $pre->preinit($q,$node_meta,$users_dms);
}
}elsif($R::ct_trans){
$feedb->{message} = "failure::Abbruch. Schreibender Zugriff \"Faktura\" verweigert.";

View file

@ -612,9 +612,7 @@ sub update_users4trans(){
my ($c_id4trans,$tpl_id4trans,$kind_of_trans,$u_id) = @_;
my $sth = $dbh->prepare("UPDATE users SET
c_id4trans='$c_id4trans',
tpl_id4trans='$tpl_id4trans',
ctpos_activ='0',
kind_of_trans='Faktura'
tpl_id4trans='$tpl_id4trans'
where u_id=$u_id");
my $rows = $sth->execute();
return $rows;
@ -625,15 +623,7 @@ sub cleanup_users(){
my $u_id = shift;
my $sth = $dbh->prepare("UPDATE users SET
c_id4trans='0',
tpl_id4trans='0',
ctpos_activ='0',
c_id4package='0',
kind_of_trans='',
parts_uri='',
address_uri='',
project_uri='',
transaction_uri='',
nel_uri=''
tpl_id4trans='0'
where u_id=$u_id");
my $rows = $sth->execute();
return $rows;
@ -2103,7 +2093,6 @@ sub update_content4comp(){
}
my $val="0";
$val=$menge if($menge);
$val = $val * -1 if($table eq "content" && $kind_of_trans eq "Einkauf");
my $ct_set = "int03=(int03 $operator $val)";
my $sth = $dbh->prepare("UPDATE $table SET $ct_set where $where") if($c_id || $ct_name);
my $rows = $sth->execute();

View file

@ -743,8 +743,8 @@ sub payone_capture(){
#send_invoice infomail, only if eMail never sent
if(-f "$dbt->{copri_conf}->{basedir}/$varenv->{syshost}/pdfinvoice/$praefix-$ctt->{ct_name}.pdf" && !$ctt->{txt30}){
system("$dbt->{copri_conf}->{basedir}/$varenv->{syshost}/src/scripts/mailTransportcms.pl '$varenv->{syshost}' 'send_invoice' '$ctt->{int10}' '$ctt->{c_id}' ''");
print EMA "---> Payment send_invoice e-mail command: $dbt->{copri_conf}->{basedir}/$varenv->{syshost}/src/scripts/mailTransportcms.pl '$varenv->{syshost}' 'send_invoice' '$ctt->{int10}' '$ctt->{c_id}' '$praefix-$ctt->{ct_name}.pdf' ''\n";
system("$dbt->{copri_conf}->{basedir}/$varenv->{syshost}/src/scripts/mailTransportcms.pl '$varenv->{syshost}' 'send_invoice' '$ctt->{int10}' '$ctt->{c_id}' '' ''");
print EMA "---> Payment send_invoice $praefix-$ctt->{ct_name}.pdf email command: $dbt->{copri_conf}->{basedir}/$varenv->{syshost}/src/scripts/mailTransportcms.pl '$varenv->{syshost}' 'send_invoice' '$ctt->{int10}' '$ctt->{c_id}' '' ''\n";
}
close EMA;
}

View file

@ -1479,14 +1479,49 @@ sub export_csv {
return $feedb;
}
#prepare email by cms markup
#also done in mailTransportcms
#prepare email standalone for extern email client posting
#partly adapted from mailTransportcms
#attachement breaks, that's because not used
sub prepare_email {
my $self = shift;
my $sendref = shift;
my $ctadr = shift;
my $ctt = shift || {};
my $cms_prim = shift;
my $varenv = shift;
my $ct_id = shift || "";
my $email_select = shift || "";
my $dbh = "";
my $cms_prim = $varenv->{cms}->{$email_select}->{txt};
#mailxcfg is shareeconf/mailx.cfg <block> selection!
#hash data to send
my $sendref = {
mailxcfg => "mailx_default",
syshost => "$varenv->{syshost}",
mail_from => "",
mail_to => "",
mail_bcc => "",
c_id => 0,
subject => "",
message => "",
signature => "",
attachment => "",
};
my $fetchctt = {
table => "contenttrans",
fetch => "one",
c_id => "=::$ct_id",
};
my $ctt = { c_id => 0 };
$ctt = $dbt->fetch_tablerecord($dbh,$fetchctt);
my $dbh_primary = $dbt->dbconnect_extern($dbt->{primary}->{sharee_primary}->{database}->{dbname},"iso-8859-1");
my $pref_adr = {
table => "contentadr",
fetch => "one",
c_id => "$ctt->{int10}",
};
my $ctadr = { c_id => 0 };
$ctadr = $dbt->fetch_tablerecord($dbh_primary,$pref_adr);
my $app_name = "Mietrad App";
$app_name = $dbt->{operator}->{$varenv{dbname}}->{app_name};
@ -1500,8 +1535,8 @@ sub prepare_email {
my $subject = "TeilRad Mietradsystem";#default
$subject = $1 if($cms_prim =~ /--subject--(.*)--subject--/);
$subject .= " $sharee_ticket" if($sharee_ticket);
$cms_prim =~ s/--subject--$subject--subject--//;
$subject .= " $sharee_ticket" if($sharee_ticket);
$cms_prim =~ s/\n//;
$cms_prim =~ s/\n//;
@ -1522,6 +1557,6 @@ sub prepare_email {
#$sendref->{message} =~ s/\n/\<br \/\>/g;
return $sendref;
}#end prepare_content
}#end prepare_email
1;

View file

@ -37,6 +37,7 @@ sub new {
sub preinit(){
my $self = shift;
my $q = shift;
my $node_meta = shift;
my $users_dms = shift;
$q->import_names('R');
@ -115,15 +116,6 @@ sub preinit(){
my $barcode=0;
my $s_owner_id=0;
if($R::cash_sort){
$db->users_up("cash_sort",$R::cash_sort,$users_dms->{u_id});
}
if($R::ctpos_close){
$db->users_up("ctpos_activ","0",$users_dms->{u_id});
}elsif($R::ctpos_activ){
$db->users_up("ctpos_activ",$R::ctpos_activ,$users_dms->{u_id});
}
if($R::s_start_date_time && $varenv{dataflow} =~ /wiki/){
$db->users_up("cal_start","$R::s_start_date_time",$users_dms->{u_id});
}
@ -439,27 +431,12 @@ sub preinit(){
}
my $pos_id = $R::c_idpos || $R::pos_id;
#DELETE verpos
if($ib_key eq "remove_verpos" && $pos_id){
$table = "contenttverpos";
$d_rows += $db->delete_content("$table","$pos_id");
}
#DELETE pos
if($ib_key =~ /delete_pos|delete_verpos/ && $pos_id){
if($ib_key =~ /delete_pos/ && $pos_id){
$table = "contenttranspos";
$table = "contenttverpos" if($ib_key =~ /delete_verpos/);
my $cttpos = $db->get_content1($table,$pos_id);
my $ctpos_sort;
if($pos_id == $users_dms->{ctpos_activ}){
my $ctt_subpos = $db->collect_content2($table,"ctpos_id","$pos_id");
foreach my $id (keys(%$ctt_subpos)){
$d_rows += $db->delete_content("$table","$ctt_subpos->{$id}->{c_id}");
}
}
$d_rows += $db->delete_content("$table","$pos_id");
$db->users_up("ctpos_activ","0",$users_dms->{u_id}) if("$pos_id" eq "$users_dms->{ctpos_activ}");
$ct_name = $1 if($R::ct_name =~ /^(\d+)/);
$u_rows += $db->update_content4comp("content",$ct_name,"$cttpos->{cc_id}","+","$cttpos->{int03}","","");
}
@ -478,7 +455,7 @@ sub preinit(){
###SET Relation (like move doc-type)
#executed by Terminal submit-buttons
#2. counter for WaWi and ReNr
if((!$R::close_time && $R::set_main_id) && ($R::set_relation || $R::set_state || $R::open_set_main_id > 300000 || $R::ct_trans =~ /print_pdf|print/i)){
if((!$R::close_time && $R::set_main_id) && ($R::set_relation || $R::set_state || $R::open_set_main_id > 300000 || $R::ct_trans =~ /print_pdf/i)){
if($R::open_set_main_id){
$R::set_main_id = $R::open_set_main_id;
$users_dms = $db->select_users($users_dms->{u_id});
@ -630,8 +607,8 @@ sub preinit(){
}
###end SET Relation or state (V Terminal submit's)
my $c_id4print = $R::c_id4trans;
$c_id4print= $R::c_id if($R::printer_id =~ /Adresse|Kunde/);
my $c_id4print = "";
$c_id4print = $R::c_id4trans if(looks_like_number($R::c_id4trans));
if($c_id4print){
open(EMA, ">> $varenv{logdir}/copri-print.log");
print EMA "$today4db\n";
@ -643,43 +620,54 @@ sub preinit(){
my $praefix = "$ctt->{txt00}-$varenv{praefix}";#like Rechnung-sharee_operator
###PRINT
if($R::ct_trans =~ /print_pdf|print/i){
my $main_id = $R::set_main_id || $R::main_id;
my $node = $db->get_node4multi($main_id,$lang);
#PDF generate
if($R::ct_trans =~ /print_pdf/ || $R::print_pdf){
my $psize="A4";
if("$ctt->{txt00}" =~ /Quittung/){
$psize="A5";
#-B 0 -T 0 -L 0 -R 0 # testing paper-margin=0
}
my ($sysname, $nodename, $release, $version, $machine) = uname();
my $topdf = "$varenv{basedir}/src/wkhtmltopdf-amd64";
if("$R::printer_id" =~ /PDF/){
#without system() because we have to wait until PDF is ready
$print_return = `$topdf --page-size $psize "$varenv{wwwhost}$script/Printpreview?printer_id=$R::printer_id\&mandant_main_id=$mandant_main_id\&main_id=$node->{main_id}\&ct_name2print=$ctt->{ct_name}\&c_id4trans=$c_id4print\&u_id=$users_dms->{u_id}\&pkey=$apikeyconf{pdfprinter}->{pkey}" "$varenv{pdf}/$praefix-$ctt->{ct_name}.pdf" 2>&1`;
$print_return = `$topdf --page-size $psize "$varenv{wwwhost}$script/Printpreview?printer_id=$R::printer_id\&mandant_main_id=$mandant_main_id\&main_id=$node_meta->{main_id}\&ct_name2print=$ctt->{ct_name}\&c_id4trans=$c_id4print\&u_id=$users_dms->{u_id}\&pkey=$apikeyconf{pdfprinter}->{pkey}" "$varenv{pdf}/$praefix-$ctt->{ct_name}.pdf" 2>&1`;
$exit_code = $?;
my $filesize = -s "$varenv{pdf}/$praefix-$ctt->{ct_name}.pdf";
print EMA "$topdf --page-size $psize $varenv{wwwhost}$script/Printpreview?printer_id=$R::printer_id\&mandant_main_id=$mandant_main_id\&main_id=$node->{main_id}\&ct_name2print=$ctt->{ct_name}\&c_id4trans=$c_id4print\&u_id=$users_dms->{u_id}\&pkey=$apikeyconf{pdfprinter}->{pkey} $varenv{pdf}/$praefix-$ctt->{ct_name}.pdf\nreturn: $print_return\nfilesize: $filesize\nexit_code: $exit_code\nset_state: $R::set_state\n";
print EMA "$topdf --page-size $psize $varenv{wwwhost}$script/Printpreview?printer_id=$R::printer_id\&mandant_main_id=$mandant_main_id\&main_id=$node_meta->{main_id}\&ct_name2print=$ctt->{ct_name}\&c_id4trans=$c_id4print\&u_id=$users_dms->{u_id}\&pkey=$apikeyconf{pdfprinter}->{pkey} $varenv{pdf}/$praefix-$ctt->{ct_name}.pdf\nreturn: $print_return\nfilesize: $filesize\nexit_code: $exit_code\nset_state: $R::set_state\n";
if($R::set_state ne "buchen"){#no redirect if buchen incl. print_pdf
#no redirect
if($R::ct_trans eq "print_pdf"){
if( -f "$varenv{basedir}/pdf/$praefix-$ctt->{ct_name}.pdf"){
print "<script type=\"text/javascript\">window.open('$varenv{wwwhost}/FileOut?file=$praefix-$ctt->{ct_name}.pdf');</script>";
}else{
return "failure::PDF konnte nicht generiert werden, bitte Info an: admin\@sharee.bike\n $varenv{wwwhost}/pdf/$praefix-$ctt->{ct_name}.pdf";
}
}
}
}
#PDF will be generated by "print_pdf" in context "buchen"
#"send_invoice_again" will use formarly generated PDF
if(-f "$varenv{basedir}/pdfinvoice/$praefix-$ctt->{ct_name}.pdf" && (($R::set_state eq "buchen" && $R::send_invoice && $ctt->{int01} && $ctt->{int01} != 0) || ($ib_key eq "send_invoice_again"))){
system("$dbt->{copri_conf}->{basedir}/$varenv{syshost}/src/scripts/mailTransportcms.pl '$varenv{syshost}' 'send_invoice' '$ctt->{int10}' '$ctt->{c_id}' ''");
print EMA "---> Prelogic send_invoice e-mail command: $dbt->{copri_conf}->{basedir}/$varenv{syshost}/src/scripts/mailTransportcms.pl '$varenv{syshost}' 'send_invoice' '$ctt->{int10}' '$ctt->{c_id}' '$praefix-$ctt->{ct_name}.pdf'\n";
my $cms_message_key = "email-invoice";
$varenv{cms} = $dbt->fetch_cms($dbh,{ lang => "de" });
if(!$varenv{cms}->{$cms_message_key}->{txt}){
return "failure::Achtung, CMS-Text '$cms_message_key' ist nicht vorhanden. Es wurde keine eMail versandt!";
}
system("$dbt->{copri_conf}->{basedir}/$varenv{syshost}/src/scripts/mailTransportcms.pl '$varenv{syshost}' 'send_invoice' '$ctt->{int10}' '$ctt->{c_id}' '' '$cms_message_key' '1'");
print EMA "---> Prelogic send_invoice $praefix-$ctt->{ct_name}.pdf email command: $dbt->{copri_conf}->{basedir}/$varenv{syshost}/src/scripts/mailTransportcms.pl '$varenv{syshost}' 'send_invoice' '$ctt->{int10}' '$ctt->{c_id}' '' '$cms_message_key' '1'\n";
}
#
if($ib_key eq "send_invoice_cms" && $R::cms_message_key){
$varenv{cms} = $dbt->fetch_cms($dbh,{ lang => "de" });
if(!$varenv{cms}->{$R::cms_message_key}->{txt}){
return "failure::Achtung, CMS-Text '$R::cms_message_key' ist nicht vorhanden. Es wurde keine eMail versandt!";
}
my $with_pdf = "";
$with_pdf = 1 if(-f "$varenv{basedir}/pdfinvoice/$praefix-$ctt->{ct_name}.pdf" && $R::print_pdf);
system("$dbt->{copri_conf}->{basedir}/$varenv{syshost}/src/scripts/mailTransportcms.pl '$varenv{syshost}' 'send_invoice_cms' '$ctt->{int10}' '$ctt->{c_id}' '' '$R::cms_message_key' '$with_pdf'");
print EMA "---> Prelogic send_invoice_cms $praefix-$ctt->{ct_name}.pdf email command: $dbt->{copri_conf}->{basedir}/$varenv{syshost}/src/scripts/mailTransportcms.pl '$varenv{syshost}' 'send_invoice_cms' '$ctt->{int10}' '$ctt->{c_id}' '' '$R::cms_message_key' '$with_pdf'\n";
}
close EMA;
}#end c_id4print

View file

@ -410,20 +410,24 @@ sub save_account(){
#phonenr
}elsif($_ eq "txt07"){
$valxx =~ s/[\s\-\/]//g;
if($valxx !~ /\d{9}/ || length($valxx) > 16){
my $email = "";
my $phone = "";
$phone = $1 if($valxx =~ /([+0-9]+)/);
if(length($phone) < 9 || length($phone) > 16){
$ret = "failure::$_#top";
}else{
#smsAck reset
if($valxx ne $ctadr->{txt07}){
if($phone ne $ctadr->{txt07}){
$u_rows = $dbt->update_one($dbh,$update_primary,"int13=0");
}
$u_rows = $dbt->update_one($dbh,$update_primary,"$_='$valxx'");
my $email = $R::txt08;
$u_rows = $dbt->update_one($dbh,$update_primary,"$_='$phone'");
$email = $q->escapeHTML("$R::txt08");
$email =~ s/\s//g;
my $confirm_digest = sha1_base64($email . $valxx);
my $confirm_digest = sha1_base64($email . $phone);
$confirm_digest =~ s/[I1LO0]//ig;
$u_rows = $dbt->update_one($dbh,$update_primary,"txt34='$confirm_digest'");
}
print FILE "confirm_digest input after substitution: $email . $phone\n" if($debug);
#user alias email
}elsif($_ eq "txt08"){
$valxx =~ s/\s//g;
@ -438,7 +442,6 @@ sub save_account(){
order => "mtime",
};
my $account_check = $dbt->fetch_tablerecord($dbh,$pref_ac);
#my $account_check = $self->check_account("txt08","ilike",$valxx,"c_id","!=",$c_id);
print FILE "account_check email:$valxx, c_id:$account_check->{c_id} && $account_check->{c_id} != $c_id\n" if($debug);
if($account_check->{c_id} && $account_check->{c_id} != $c_id){

View file

@ -952,6 +952,19 @@ EOF
my $legend = "";
$legend = "<span style='color:#FF5F1F;'>&bull; </span> Orange markierte Angaben bitte prüfen und ggf. korrigieren." if($node_meta->{tpl_id} == 221);
print $q->div($but->singlesubmit7("$edit","$save_key","$ib{$save_key}","margin:10px 5px;"), "$legend"),"\n";
if($node_meta->{tpl_id} == 194){
print $q->div({-style=>'font-size:13px;'},"<b>Text Variablen Legende:</b><br />
--subject-- --subject-- &rarr; eMail Betreff<br />
::user_name:: &rarr; Kunden Name<br />
::app_name:: &rarr; App Name<br />
::invoice_nr:: &rarr; Faktura Beleg Nr<br />
::invoice_name:: &rarr; Faktura PDF Name<br />
::txid:: &rarr; Payone TXID<br />
::signature:: &rarr; eMail Signature<br />
"),"\n";
}
my $debug = "";
$debug = "(ct_table: $node_meta->{ct_table} | main_id: $node_meta->{main_id} | c_id: $ctrel->{c_id} | tpl_id: $tpl->{tpl_id} | rel_id: $ctrel->{rel_id})";
print $q->div({-style=>'z-index:10;font-size:13px;'},"$debug"),"\n" if($users_dms->{u_id} == $dbt->{copri_conf}->{superu_id});

View file

@ -78,7 +78,6 @@ sub tpl(){
$path =~ s/\/login|\/user|\/manager|\/admin|\/$//;
my $user_agent = $q->user_agent();
my $saved_query = $q->url(-query=>1);
my %ib = $but->ibuttons();
my $main_id = $node_meta->{main_id};
my $tpl_id = $node_meta->{template_id};
@ -134,7 +133,7 @@ sub tpl(){
$cttpos = { %$cttpos_trans };
my $table = $node_meta->{ct_table} || "";
my $table = $node_meta->{ct_table} || "content";
my $hashfile = "$varenv{logdir}/$users_dms->{u_id}-$table-searchhash";
@ -153,19 +152,9 @@ sub tpl(){
my @tpl_order = split /,/,$node_meta->{tpl_order};
my $scol = "c_id";
$scol = "txt01" if($path =~ /Waren/);
#table columne check for col_sort
if($users_dms->{col_sort} eq "node_name" && ($table eq "contenttver")){
$scol = "node_name";
}elsif($users_dms->{col_sort} eq "date_time" && ($table =~ /contenttver|contenttrans/)){
$scol = "end_time";
}elsif($users_dms->{col_sort}){
my $tinfo = $db->table_info($table);
foreach (keys(%$tinfo)){
$scol = "$users_dms->{col_sort}" if("$users_dms->{col_sort}" eq "$tinfo->{$_}->{attname}");
}
$db->users_up("col_sort","0",$users_dms->{owner}) if("$scol" ne "$users_dms->{col_sort}");
my $scol = "mtime";
if($users_dms->{"col_sort_$table"}){
$scol = $users_dms->{"col_sort_$table"};
}
my $limit = $R::limit || 250;
@ -546,7 +535,7 @@ EOF
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 $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 $q->span({-style=>'font-size:0.81em;'}," (1. selektiert Rechnungen mit Payone Einzug & kein OPOS & p-Saldo=0 & kein Storno & keinen internen Bearbeitungsstatus & payone-sequence=1, alle anderen bitte manuell überprüfen und falls i.O. selektieren)"),"\n";
print "</div>\n";
}
print $q->hidden(-name=>'mandant_main_id', -value=>"$dbt->{shareedms_conf}->{parent_id}"),"\n";
@ -689,8 +678,8 @@ EOF
$i += 2;
my $sort_up = "up";
my $sort_down = "down";
$sort_up = "<b>$sort_up</b>" if($users_dms->{sort_updown} eq "up");
$sort_down = "<b>$sort_down</b>" if($users_dms->{sort_updown} eq "down");
$sort_up = "<b>$sort_up</b>" if($users_dms->{"sort_updown_$table"} eq "up");
$sort_down = "<b>$sort_down</b>" if($users_dms->{"sort_updown_$table"} eq "down");
print $q->th($q->a({-class=>"sortnav",-href=>"?sort_updown=up\&offset=$searchref->{offset}\&limit=$searchref->{limit}",-title=>'Aufsteigend sortieren'},"$sort_up"),"|",$q->a({-class=>"sortnav",-href=>"?sort_updown=down\&offset=$searchref->{offset}\&limit=$searchref->{limit}",-title=>'Absteigend sortieren'},"$sort_down")),"\n";
print $q->th(""),"\n";
@ -698,7 +687,7 @@ EOF
foreach (@tpl_order){
my ($key,$val,$size,$title) = split /=/,$_;
my $sort_title=" $title";
$val = "<b>$val</b>" if($key eq $users_dms->{col_sort});
$val = "<b>$val</b>" if($key eq $users_dms->{"col_sort_$table"});
if($key =~ /byte|txt|time|node|int|time\d+|save|state|owner|c_id|ct_name|barcode|sort|public/){
$i++;
print $q->th({-nowrap=>1},$q->a({-class=>"sortnav",-href=>"?col_sort=$key\&offset=$searchref->{offset}\&limit=$searchref->{limit}",-title=>"$sort_title"},"$val")),"\n";
@ -718,7 +707,7 @@ EOF
#BIG LOOP loop content table
foreach my $id (sort {
if($users_dms->{sort_updown} eq "down"){
if($users_dms->{"sort_updown_$table"} eq "down"){
if ($scol =~ /barcode|int/) {
$ct4rel->{$b}->{$scol} <=> $ct4rel->{$a}->{$scol}
}else{
@ -835,7 +824,7 @@ EOF
}
#1.Spalte
if("$ct4rel->{$id}->{main_id}" eq "$node_meta->{main_id}" || "$ct4rel->{$id}->{main_id}" eq "$node_meta->{parent_id}"){
if($table =~ /content$|contentadr|contentnel/){
if($table =~ /content$|contentadr/){
$ecol++;
print "<td class='tb_inst' style='$set_style' nowrap>\n";
@ -960,7 +949,7 @@ EOF
my $opos = "";
$opos = "<span style='color:red'>&bull;</span>" if($ct4rel->{$id}->{int14});
print $q->td({-class=>'tdint',-style=>"font-weight:normal;$set_style4nr", -nowrap=>1},$q->a({-class=>"linknav3",-href=>"?ct_trans=open\&mode=manager\&c_id4trans=$ct4rel->{$id}->{c_id}\&tpl_id4trans=$ct4rel->{$id}->{template_id}\&owner=$users_dms->{u_id}\&offset=$searchref->{offset}\&limit=$searchref->{limit}",-title=>"Terminal öffnen"},"$opos $ct4rel->{$id}->{$key}"));
}elsif($table =~ /content$|contentadr|contentnel/){
}elsif($table =~ /content$|contentadr/){
print $q->td({-class=>"tdint",-style=>"font-weight:normal;$set_style4nr"},$q->a({-class=>"linknav3",-href=>"?node2edit=editpart\&mode=manager\&rel_id=$ct4rel->{$id}->{rel_id}\&offset=$searchref->{offset}\&limit=$searchref->{limit}",-title=>"Terminal öffnen"},"$ct4rel->{$id}->{$key}")),"\n";
}elsif(($node_meta->{tpl_order} !~ /barcode/) || ("$ct4rel->{$id}->{$key}" ne "$ct4rel->{$id}->{barcode}")){
print $q->td({-class=>'tdint',-style=>"font-weight:bold;$set_style4nr"},"$ct4rel->{$id}->{$key}"),"\n";
@ -1246,9 +1235,8 @@ EOF
print $q->td({-class=>'tdint',-colspan=>"1",-nowrap=>"1"},"$sum_CCpayone €");
}
if($sum_gutschrift != 0){
$sum_gutschrift *= -1;
#$sum_gutschrift *= -1;
$sum_gutschrift = sprintf('%.2f',$sum_gutschrift);
$sum_gutschrift += $sum_gutschrift;
$sum_success += $sum_gutschrift;
print $q->Tr();
print $q->td({-style=>"background-color:silver;"},""),"\n";

View file

@ -121,10 +121,15 @@ sub tpl(){
$searchref->{table_pos} = "contentpos";
if($node_meta->{tpl_id} == 194 || $node_meta->{tpl_id} == 199){
$table = "contentuser";
$searchref->{table} = "$table";
$searchref->{table_pos} = "";
$searchref->{template_id_pos} = "";
$searchref->{c_id} = ">::400";
$main_ids = $node_meta->{main_id};
$searchref->{c_id} = ">::400" if($node_meta->{tpl_id} == 199);
if($node_meta->{main_id} < 400000){
$main_ids = $node_meta->{main_id};
}else{
$searchref->{ct_name} = "$node_meta->{node_name}";
}
$tpl_ids = $node_meta->{tpl_id};
}
elsif($node_meta->{tpl_id} > 400 && $node_meta->{tpl_id} <= 499){
@ -187,22 +192,23 @@ EOF
my @tpl_order = split /,/,$node_meta->{tpl_order};
my $rows = 0;
#table columne check for col_sort
if($users_dms->{col_sort}){
my $tinfo = $db->table_info($table);
foreach (keys(%$tinfo)){
$searchref->{scol} = "$users_dms->{col_sort}" if($users_dms->{col_sort} eq $tinfo->{$_}->{attname});
}
$db->users_up("col_sort","0",$users_dms->{owner}) if($searchref->{scol} ne $users_dms->{col_sort});
if($users_dms->{"col_sort_$table"}){
$searchref->{scol} = $users_dms->{"col_sort_$table"};
}
$searchref->{scol} = "u_id" if($node_meta->{template_id} == 198);
$users_dms->{sort_updown} = "down" if(!$users_dms->{sort_updown});
$users_dms->{"sort_updown_$table"} = "down" if(!$users_dms->{"sort_updown_$table"});
#print Dumper($node_meta);
my $hashfile = "$varenv{logdir}/$users_dms->{u_id}-$searchref->{table_pos}-searchhash";
$hashfile = "$varenv{logdir}/$users_dms->{u_id}-$searchref->{table}-searchhash" if(!$searchref->{table_pos});
if($node_meta->{tpl_id} =~ /194/ && !$R::detail_search && -f $hashfile && ($R::node2edit || $R::base_edit)){
$searchref = {};
$searchref = retrieve($hashfile);
}
my $ct4rel = {};
#print Dumper($node_meta);
#print "if(!$start_chck && !$end_chck && $main_ids && $tpl_ids){";
if(!$start_chck && !$end_chck && $main_ids && $tpl_ids){
#$rows = $db->count_content($searchref->{table_pos},"$main_ids","$tpl_ids");
@ -221,6 +227,12 @@ EOF
my $ck4ex = "";
#only if permission read
if(($node_meta->{ct_table} eq "users" && $users_dms->{int07} >= 1) || ($node_meta->{ct_table} eq "contentadrpos" && $users_dms->{int01} >= 1) || ($node_meta->{ct_table} eq "contentpos" && $users_dms->{int01} >= 1) || ($node_meta->{ct_table} eq "contentuser" && $users_dms->{int08} >= 1)){
#trying to save hashref
if($node_meta->{tpl_id} =~ /194/ && $R::detail_search && ref($searchref) eq "HASH"){
store $searchref, $hashfile;
}
$ct4rel = $dbt->search_content($dbh,$searchref,$node_meta,$users_dms,"$main_ids","$tpl_ids","","",$ck4ex);
}else{
$return = "failure::Abbruch. Keine Zugriffsberechtigung";
@ -259,14 +271,14 @@ EOF
}
#1. Search-fields
my $s_val = "";
foreach(@tpl_order){
my ($key,$val,$size) = split /=/,$_;
$size = 15 if($size =~ /area/);
$size = 10 if($size =~ /time/);
$size = 2 if($size =~ /checkbox/);
#$s_val = $searchref->{$key} if($searchref->{$key});
my $s_val = "";
$s_val = $searchref->{$key} if($searchref->{$key});
#print "$key=$searchref->{$key}|";
if($key =~ /node|txt|int|ct_name|_id|barcode|sort|public/){
if($key =~ /_id|barcode|int04/){
@ -309,8 +321,8 @@ EOF
#print $q->th({-style=>""},"&nbsp;"),"\n";
my $sort_up = "up";
my $sort_down = "down";
$sort_up = "<b>$sort_up</b>" if($users_dms->{sort_updown} eq "up");
$sort_down = "<b>$sort_down</b>" if($users_dms->{sort_updown} eq "down");
$sort_up = "<b>$sort_up</b>" if($users_dms->{"sort_updown_$table"} eq "up");
$sort_down = "<b>$sort_down</b>" if($users_dms->{"sort_updown_$table"} eq "down");
print $q->th($q->a({-class=>"sortnav",-href=>"?sort_updown=up\&offset=$searchref->{offset}\&limit=$searchref->{limit}",-title=>'Aufsteigend sortieren'},"$sort_up"),"|",$q->a({-class=>"sortnav",-href=>"?sort_updown=down\&offset=$searchref->{offset}\&limit=$searchref->{limit}",-title=>'Absteigend sortieren'},"$sort_down")),"\n";
print $q->th({-style=>""},"&nbsp;"),"\n";
}
@ -335,7 +347,7 @@ EOF
my $sort_title="| $val";
if($node_meta->{tpl_id} !~ /198|199/){
$val = "<b>$val</b>" if($key eq $users_dms->{col_sort});
$val = "<b>$val</b>" if($key eq $users_dms->{"col_sort_$table"});
print $q->th({-style=>'padding:5px 0'},$q->div({-style=>"$divstyle"},$q->a({-class=>"sortnav",-href=>"?col_sort=$key\&offset=$searchref->{offset}\&limit=$searchref->{limit}",-title=>"$val"},"$val"))),"\n" if($key ne "u_id");
}else{
print $q->th({-style=>'padding:5px 0'},$q->div({-style=>"$divstyle"},"$val")),"\n" if($key ne "u_id");
@ -368,7 +380,7 @@ EOF
else{
my $scol = $searchref->{scol};
foreach my $id (sort {
if($users_dms->{sort_updown} eq "down"){
if($users_dms->{"sort_updown_$table"} eq "down"){
if ($scol =~ /barcode|int|_id/) {
$ct4rel->{$b}->{$scol} <=> $ct4rel->{$a}->{$scol}
}else{

View file

@ -587,7 +587,7 @@ EOF
my $send_invoice_checkbox = 1;
$send_invoice_checkbox = 0 if($ctt->{txt30} || $ctt->{ct_name} =~ /\d-\d/);
print $q->div({-class=>'element6',-style=>'float:right;background-color:silver;'}, $q->b("$ctt->{txt00}"),
": PDF drucken ",$but->checkbox("print_pdf","ct_trans","1","PDF drucken",""),
": PDF drucken ",$but->checkbox("1","print_pdf","1","PDF drucken",""),
" eMail senden ",$but->checkbox("1","send_invoice","$send_invoice_checkbox","eMail $ctt->{txt00}",""),
" Zahlungsart/Status ",
$but->selector("state","250px",$kind_of_payment,@_paymentstate),
@ -633,6 +633,7 @@ EOF
my $praefix = "$ctt->{txt00}-$varenv{praefix}";
print $q->div({-style=>"clear:both;height:0.1px;"},""),"\n";
if($ctt->{txt30}){
$ctt->{txt30} = $lb->newline($ctt->{txt30},"","");
print $q->div({-style=>"padding:0.5em;font-size:0.81em;width:98%;text-align:right;"}, "$ctt->{txt30}"),"\n";
}elsif( -f "$dbt->{copri_conf}->{basedir}/$varenv{syshost}/pdfinvoice/$praefix-$ctt->{ct_name}.pdf" ){
print $q->start_form(),"\n";
@ -644,36 +645,28 @@ EOF
print $q->end_form;
}
#TODO
if(1==2 && "$varenv{praefix}-$ctt->{ct_name}" =~ /\d+/){
my $sharee_ticket = "";
my $subject = "";
$sharee_ticket = " [$varenv{praefix}-$ctt->{ct_name}]";
$subject .= $sharee_ticket if($sharee_ticket);
$varenv{cms} = $dbt->fetch_cms($dbh,{ lang => 'de' });
my @_valxx = ("");
if( -f "$varenv{basedir}/pdfinvoice/$praefix-$ctt->{ct_name}.pdf"){
print $q->div({-style=>'padding:0.5em;font-size:0.91em;width:98%;text-align:right;'}, "PDF download: ", $q->a({-href=>"$varenv{wwwhost}/FileOut?file=$praefix-$ctt->{ct_name}.pdf&sessionid=$coo", -target=>"_blank" , -type=>'application/octet-stream', -style=>'text-decoration:underline;'}, "$praefix-$ctt->{ct_name}.pdf")),"\n";
}
#copri-Ticket-mailing, eMail send by select cms_message_key
if("$varenv{praefix}-$ctt->{ct_name}" =~ /\d+/){
$varenv{cms} = $dbt->fetch_cms($dbh,{ lang => 'de', ct_name => 'email-invoice%' });
my @_valxx = ("email CMS-Text select");
foreach my $rid (sort { $varenv{cms}->{$a}->{ct_name} cmp $varenv{cms}->{$b}->{ct_name} } keys (%{$varenv{cms}})){
push (@_valxx, "$varenv{cms}->{$rid}->{ct_name}:$varenv{cms}->{$rid}->{ct_name}");
}
#print $q->start_form(-action=>'mailto:xxxx@sharee.bike', -method=>'GET'),"\n";
print $q->start_form(),"\n";
print $q->hidden(-name=>'c_id4trans', -override=>'1', -value=>"$ctt->{content_id}"),"\n";
print $q->hidden(-name=>'tpl_id4trans', -override=>'1', -value=>"$ctt->{template_id}"),"\n";
print $q->hidden(-name=>'offset', -override=>'1', -value=>"$R::offset"),"\n" if($R::offset);
print $q->hidden(-name=>'limit', -override=>'1', -value=>"$R::limit"),"\n" if($R::limit);
print $q->hidden(-name=>'mailto', -value=>"xxxx\@sharee.bike"),"\n";
print $q->hidden(-name=>'subject', -value=>"xxxx"),"\n";
print $q->div({-style=>"padding:0.5em;font-size:0.91em;width:98%;text-align:left;"}, $but->selector_class("email_select","eselect","width:250px;",$ctt->{txt31},@_valxx), $but->singlesubmit1("ct_trans","email_generate","")),"\n";
print $q->div({-style=>"padding:0.5em;font-size:0.81em;width:98%;text-align:right;"}, "Copri-Ticket-mailing: ", $but->selector_class("cms_message_key","eselect","width:250px;","",@_valxx), "mit PDF", $but->checkbox("1","print_pdf","1","mit PDF",""), $but->singlesubmit1("ct_trans","send_invoice_cms","")),"\n";
print $q->end_form;
}
if( -f "$varenv{basedir}/pdfinvoice/$praefix-$ctt->{ct_name}.pdf"){
print $q->div({-style=>'padding:0.5em;font-size:0.91em;width:98%;text-align:right;'}, "Download: ", $q->a({-href=>"$varenv{wwwhost}/FileOut?file=$praefix-$ctt->{ct_name}.pdf&sessionid=$coo", -target=>"_blank" , -type=>'application/octet-stream', -style=>'text-decoration:underline;'}, "$praefix-$ctt->{ct_name}.pdf")),"\n";
}
$db->updater("contenttrans","c_id","$ctt->{content_id}","txt20","$accounting_start - $accounting_end","","","","","no_time") if(!$int05 && $accounting_start && $accounting_end);
$db->updater("contenttrans","c_id","$ctt->{content_id}","int15","$sum_preauth","","","","","no_time") if($sum_preauth || $sum_preauth == 0);

View file

@ -7,6 +7,7 @@
#
#Example
#./src/scripts/mailTransportcms.pl 'shareedms-operator' 'send_alarm2hotline' '[user.c_id]' '[contenttxxxx.c_id]'
#./src/scripts/mailTransportcms.pl 'shareedms-operator' 'send_invoice_cms' '[user.c_id]' '[contenttxxxx.c_id]' '' '[cmstext_select]' '[with_pdf]'
#
#
#
@ -42,6 +43,8 @@ my $todo = $ARGV[1] || "";
my $adr_id = $ARGV[2] || "";
my $ct_id = $ARGV[3] || "";
my $temppw = $ARGV[4] || "";
my $cmstext_select = $ARGV[5] || "";
my $with_pdf = $ARGV[6] || "";
open(EMA, ">> $dbt->{copri_conf}->{logdir}/mailTransportcms.log");
print EMA "\n$now_dt, start mailTransportcms.pl syshost: $syshost, todo:$todo, adr_id:$adr_id, ct_id:$ct_id, temppw:$temppw\n";
@ -80,13 +83,13 @@ if(looks_like_number($adr_id)){
#send_invoice
if($todo eq "send_invoice" && looks_like_number($ct_id)){
$sendref->{mailxcfg} = "mailx_invoice";
$sendmail = send_invoice($todo,$sendref,$ctadr,$ct_id);
$sendmail = send_invoice($todo,$sendref,$ctadr,$ct_id,"email-invoice",$with_pdf);
}
#send_warninginvoice
if($todo eq "send_warninginvoice" && looks_like_number($ct_id)){
$sendref->{mailxcfg} = "mailx_invoice_bcc";
$sendmail = send_warninginvoice($todo,$sendref,$ctadr,$ct_id);
#send_invoice_cms
if($todo eq "send_invoice_cms" && looks_like_number($ct_id) && $cmstext_select){
$sendref->{mailxcfg} = "mailx_invoice_bcc";#with BCC
$sendmail = send_invoice($todo,$sendref,$ctadr,$ct_id,$cmstext_select,$with_pdf);
}
#send_emailack
@ -115,7 +118,7 @@ if($todo eq "send_occupied2hotline"){
$sendmail = send_occupied2hotline($sendref);
}
#send_invoice_onwork once a week as reminder
#send_invoice_onwork once a week as reminder [in Arbeit|eMail gesendet]
if($todo eq "send_invoice_onwork"){
#loop operators DB
while (my ($key, $op_name) = each %{ $dbt->{operator} }) {
@ -144,18 +147,21 @@ if($sendmail->{c_id}){
#send_invoice
sub send_invoice {
my $todo = shift;
my $sendref = shift;
my $ctadr = shift;
my $ct_id = shift;
my $project = $dbt->{operator}->{$varenv{dbname}}->{project} || "";
my $dbh_primary = $dbt->dbconnect_extern($dbt->{primary}->{sharee_primary}->{database}->{dbname},"iso-8859-1");
$varenv{cms} = $dbt->fetch_cms($dbh_primary,{ lang => $ctadr->{txt10} });
my $cms_message_key = "email-invoice";
my $todo = shift || "";
my $sendref = shift || {};
my $ctadr = shift || "";
my $ct_id = shift || "";
my $cms_message_key = shift || "email-invoice";
my $with_pdf = shift || "";
my $dbh = $dbt->dbconnect_extern($dbt->{operator}->{$varenv{dbname}}->{database}->{dbname},"iso-8859-1");
#ex. primary hotline c_id=1# changed to Kunden-Fakture c_is=100002, check tablefields
my $project = $dbt->{operator}->{$varenv{dbname}}->{project} || "";
$varenv{cms} = $dbt->fetch_cms($dbh,{ lang => $ctadr->{txt10} });
if(!$varenv{cms}->{$cms_message_key}->{txt}){
exit 1;
}
my $pref_ctu = {
table => "contentuser",
fetch => "one",
@ -178,52 +184,13 @@ sub send_invoice {
table => "contenttrans",
c_id => "$ct_id",
};
$dbt->update_one($dbh,$updatectt,"txt30='$now_dt, $ctt->{txt00} per eMail versandt'");
my $log_stamp = strftime "%d.%m.%Y %H:%M:%S", localtime;
my $mailing_log = $ctt->{txt30} . "\n- $log_stamp mailing: $cms_message_key";
$dbt->update_one($dbh,$updatectt,"txt30='$mailing_log'");
return $sendref;
}#end send_invoice
#TODO with CMS-Text selection
#send_warninginvoice
sub send_warninginvoice {
my $todo = shift;
my $sendref = shift;
my $ctadr = shift;
my $ct_id = shift;
my $project = $dbt->{operator}->{$varenv{dbname}}->{project} || "";
my $dbh_primary = $dbt->dbconnect_extern($dbt->{primary}->{sharee_primary}->{database}->{dbname},"iso-8859-1");
$varenv{cms} = $dbt->fetch_cms($dbh_primary,{ lang => $ctadr->{txt10} });
my $cms_message_key = "email-invoice";
my $dbh = $dbt->dbconnect_extern($dbt->{operator}->{$varenv{dbname}}->{database}->{dbname},"iso-8859-1");
my $pref_ctu = {
table => "contentuser",
fetch => "one",
c_id => "100002",
};
my $uadr = { c_id => 0 };
$uadr = $dbt->fetch_tablerecord($dbh,$pref_ctu);
my $fetchctt = {
table => "contenttrans",
fetch => "one",
c_id => "=::$ct_id",
};
my $ctt = { c_id => 0 };
$ctt = $dbt->fetch_tablerecord($dbh,$fetchctt);
$sendref = prepare_content($sendref,$ctadr,$uadr,$ctt,$varenv{cms}->{$cms_message_key}->{txt});
my $updatectt = {
table => "contenttrans",
c_id => "$ct_id",
};
#$dbt->update_one($dbh,$updatectt,"txt30='$now_dt, $ctt->{txt00} per eMail versandt'");
return $sendref;
}#end send_warninginvoice
#send_emailack
sub send_emailack {
@ -496,28 +463,22 @@ sub prepare_content {
my $ctt = shift || {};
my $cms_prim = shift;
my $globalconf_file = "/var/www/copri4/shareeconf/global.cfg";
my $conf = Config::General->new($globalconf_file);
my %globalconf = $conf->getall;
my $app_name = "Mietrad App";
#while (my ($key, $merchant) = each %{ $globalconf{merchant_ids} }) {
# $app_name =~ s/$app_name/$merchant->{app_name}/ if($merchant->{app_name} && $ctadr->{int15} && $ctadr->{int15} == $merchant->{id});
#}
$app_name = $dbt->{operator}->{$varenv{dbname}}->{app_name};
my $invoice_name = "";
my $invoice_nr = "";
my $sharee_ticket = "";
if(ref($ctt) eq "HASH" && $ctt->{ct_name}){
$invoice_name = "$ctt->{txt00}-$varenv{dbname}-$ctt->{ct_name}.pdf";
$sendref->{attachment} = "$invoice_name";
$sharee_ticket = "[$varenv{dbname}-$ctt->{ct_name}]";
$invoice_nr = "$varenv{dbname}-$ctt->{ct_name}";
$sharee_ticket = "[$invoice_nr]";
}
my $subject = "TeilRad Mietradsystem";#default
$subject = $1 if($cms_prim =~ /--subject--(.*)--subject--/);
$subject .= " $sharee_ticket" if($sharee_ticket);
$cms_prim =~ s/--subject--$subject--subject--//;
$cms_prim =~ s/\n//;
$subject .= " $sharee_ticket" if($sharee_ticket);
$cms_prim =~ s/\n//;
my $signature = <<EOF
@ -540,9 +501,10 @@ EOF
$sendref->{subject} =~ s/Mein // if($sendref->{subject} =~ /^Mein/);
$sendref->{message} = $cms_prim;
$sendref->{message} =~ s/::user_name::/$ctadr->{txt01}/;
$sendref->{message} =~ s/::user_name::/$ctadr->{txt01}/g;
$sendref->{message} =~ s/::app_name::/$app_name/g;
$sendref->{message} =~ s/::invoice_name::/$invoice_name/ if($invoice_name);
$sendref->{message} =~ s/::invoice_nr::/\<b\>$invoice_nr\<\/b\>/g if($invoice_nr);
$sendref->{message} =~ s/::invoice_name::/$invoice_name/g if($invoice_name);
$sendref->{message} =~ s/::txid::/$ctt->{txt16}/;
$sendref->{message} =~ s/::email_temppassword::/\<b\>$ctadr->{txt04}\<\/b\>/g;
$sendref->{message} =~ s/::email_ack_digest::/\<b\>$ctadr->{txt34}\<\/b\>/g;#send_emailack

View file

@ -231,7 +231,7 @@ sub tpl(){
foreach my $id2 (sort {$node2->{$a}->{n_sort} <=> $node2->{$b}->{n_sort}} keys (%$node2)){
my $parent_node4rel = $db->get_node4rel($node2->{$id2}->{parent_id},"","","null");
#because of don't view Service Attribut on Einste.
if($parent_node4rel->{template_id} =~ /205|225/){
if($parent_node4rel->{template_id} =~ /205|225|194/){
#if(1==1){
$mclass = "";
$mstyle = "";