diff --git a/copri4/main/src/Mod/APIjsonclient.pm b/copri4/main/src/Mod/APIjsonclient.pm index cef4d0b..ae26790 100755 --- a/copri4/main/src/Mod/APIjsonclient.pm +++ b/copri4/main/src/Mod/APIjsonclient.pm @@ -79,7 +79,7 @@ sub loop_sharees { #every sharee client must have a merchant_id which associate a project #if($op_name->{operatorApp} && ($users_serviceapp->{u_id} || ($return_merchant->{project_id} eq $op_name->{project}))){ - #TODO, to reduce request time by ($return_merchant->{project_id} eq "Freiburg") do it only for shareeweb-sharee.copri.eu + #to reduce request time by ($return_merchant->{project_id} eq "Freiburg") we do it only for shareeweb-sharee.copri.eu if($op_name->{operatorApp} && ($users_serviceapp->{u_id} || $return_merchant->{project_id} eq "Freiburg" || ($return_merchant->{project_id} eq $op_name->{project}))){ #$bw->log("--> LOOP-start ($return_merchant->{merchant_id}) jsonclient loop_sharees $key by operatorApp: $op_name->{operatorApp}, netloc: $netloc if($return_merchant->{project_id} eq $op_name->{project} || $users_serviceapp->{u_id} > 0)\n","",""); @@ -105,6 +105,11 @@ sub loop_sharees { if($q->param('request') && $q->param('request') =~ /stations_all|stations_available/){ foreach my $result (keys (%{ $response_in->{shareejson}->{stations} })) { $fetch_hash->{$result} = $response_in->{shareejson}->{stations}->{$result}; + #workaround, delete contributor test stations on global sharee project Freiburg + if($return_merchant->{project_id} eq "Freiburg" && $return_merchant->{project_id} ne $op_name->{project} && $fetch_hash->{$result}->{description} =~ /Contributor/i){ + #$bw->log("delete contributor-station $result: $fetch_hash->{$result}->{description}","",""); + delete $fetch_hash->{$result}; + } } } if($q->param('request') && $q->param('request') =~ /bikes_all|bikes_available/){ diff --git a/copri4/main/src/Mod/Printpreview.pm b/copri4/main/src/Mod/Printpreview.pm index 4994fcc..044b8d7 100755 --- a/copri4/main/src/Mod/Printpreview.pm +++ b/copri4/main/src/Mod/Printpreview.pm @@ -407,12 +407,12 @@ td { $mandat_nr = " Mandatsreferenz: $ctt->{txt26}" if($ctt->{txt26} =~ /\w{2}-/); my $invoice_time = $ctt->{invoice_time} || $ctt->{mtime}; - my $update_ctt = { - table => "contenttrans", - pay_time => "$invoice_time", - }; + #my $update_ctt = { + # table => "contenttrans", + # pay_time => "$invoice_time", + # }; #necersarry for non payone capture - $dbt->update_record($dbh,$update_ctt,$ctt) if(!$ctt->{pay_time}); + #$dbt->update_record($dbh,$update_ctt,$ctt) if(!$ctt->{pay_time}); my $mtime = $lb->time4de("$invoice_time",""); my $position = ""; diff --git a/copri4/main/src/Mod/ajax_json.pm b/copri4/main/src/Mod/ajax_json.pm index 533f41e..9e3c318 100755 --- a/copri4/main/src/Mod/ajax_json.pm +++ b/copri4/main/src/Mod/ajax_json.pm @@ -58,9 +58,16 @@ sub handler { } print FILE "$_: $valxx\n" if($debug); } - - - if($table eq "content"){ + if($table eq "users" && $R::faksum){ + my $update_users = { + table => "users", + u_id => $users_dms->{u_id}, + change => "no_time", + }; + my $toggle = 1; + $toggle = 0 if($users_dms->{faksum}); + $dbt->update_one($dbh,$update_users,"faksum=$toggle"); + }elsif($table eq "content"){ my $sth = $db->search_json("$table","$lang","$search","$main_id"); while ( my $row = $sth->fetchrow_hashref ){ push @query_output, $row; diff --git a/copri4/main/src/Tpl/Address3.pm b/copri4/main/src/Tpl/Address3.pm index 478e88f..947f161 100755 --- a/copri4/main/src/Tpl/Address3.pm +++ b/copri4/main/src/Tpl/Address3.pm @@ -9,6 +9,7 @@ use warnings; use CGI; use CGI::Carp qw(fatalsToBrowser); use CGI ':standard'; +use Scalar::Util qw(looks_like_number); use Lib::Config; use Mod::Buttons; use Mod::Libenz; @@ -164,13 +165,13 @@ EOF print "\n"; - if(!$ctt->{int01} || $ctt->{ct_name} =~ /-/){ - print $q->span({-style=>'margin:0 0.2em;position:absolute;right:3px;'}, $but->singlesubmit3("ct_trans","print_pdf","","","")," $buchen_users->{txt01} / $invoice_time ", $but->singlesubmit7("ct_trans","remove_chk4rel","$ib{remove_chk4rel}","")),"\n"; + if(!looks_like_number($ctt->{int01}) || $ctt->{ct_name} =~ /-/){ + print $q->span({-style=>'margin:0 0.2em;position:absolute;right:3px;'}, " $buchen_users->{txt01} / $invoice_time ", $but->singlesubmit7("ct_trans","remove_chk4rel","$ib{remove_chk4rel}","")),"\n"; print $q->hidden(-name=>'c_id', -override=>'1', -value=>"$ctt->{content_id}"); print $q->hidden(-name=>'template_id', -override=>'1', -value=>"$ctt->{template_id}"); print $q->hidden(-name=>'main_id', -override=>'1', -value=>"$ctt->{main_id}"); print $q->hidden(-name=>'rel_id', -override=>'1', -value=>"$ctt->{rel_id}"); - }else{ + }elsif(looks_like_number($ctt->{int01})){ print $q->span({-style=>'margin:0 0.2em;position:absolute;right:3px;'}, $but->singlesubmit3("ct_trans","print_pdf","","","")," $buchen_users->{txt01} / $invoice_time "),"\n"; } print "\n"; diff --git a/copri4/main/src/Tpl/Liste3.pm b/copri4/main/src/Tpl/Liste3.pm index 13ec6ec..8e2f604 100755 --- a/copri4/main/src/Tpl/Liste3.pm +++ b/copri4/main/src/Tpl/Liste3.pm @@ -331,6 +331,23 @@ sub tpl(){ $q->a({-class=>"linknav",-style=>"padding:0 0.5em;",-title=>"Monat vorwärts",-href=>"?cal_delta_start=0:1:0"}," → "), "$message" )),"\n"; + }elsif($node_meta->{template_id} =~ /209|218/){ +print< + function postave(val) { + jQuery.ajax({ + url: "/ajax_json", + data: { 'table':'users','faksum':val }, + type: 'POST', + }); + //console.log('faksum '+ val); + } + +EOF +; + my $checked = 0; + $checked = 1 if($users_dms->{faksum}); + print $q->div({-class=>"copri_header",-style=>"background-color:$node_meta->{bg_color};"},"$path $redirect | ",$q->checkbox(-name=>" ∑ sum ", -title=>'Faktura Positionen summieren ∑ — kostet Zeit', -onclick=>"postave(1)", -checked=>"$checked"),$q->span({-style=>"$header_style"},"$message")); }else{ print $q->div({-class=>"copri_header",-style=>"background-color:$node_meta->{bg_color};"},"$path $redirect",$q->span({-style=>"$header_style"},"$message")); } @@ -423,10 +440,10 @@ sub tpl(){ } #it will takes only one dataset - if($node_meta->{ct_table} eq "contenttrans" && $c_id4trans && $c_id4trans =~ /^\d+$/){ - $ct4rel = $db->collect_cid($table,$lang,$tplids,$R::rel_id,$R::barcode,"c_id",$c_id4trans); - } - elsif(!$start_chck && !$end_chck){ + #if($node_meta->{ct_table} eq "contenttrans" && $c_id4trans && $c_id4trans =~ /^\d+$/){ + # $ct4rel = $db->collect_cid($table,$lang,$tplids,$R::rel_id,$R::barcode,"c_id",$c_id4trans); + #}els + if(!$start_chck && !$end_chck){ #collect search keys foreach my $postkey (@keywords){ @@ -523,7 +540,8 @@ sub tpl(){ }else{ print $q->a({-class=>'elinkbutton',-style=>'margin:0 0 2px 20px;', -href=>'?accounting_select=1'},"1. Einzüge selektieren"),"\n"; } - print "$months[$mon -1] $year\n"; + print "$months[$mon -1] $year\n"; + print " (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 "\n"; } print $q->hidden(-name=>'mandant_main_id', -value=>"$dbt->{shareedms_conf}->{parent_id}"),"\n"; @@ -695,7 +713,7 @@ sub tpl(){ $val = "$val" if($key eq $users_dms->{col_sort}); if($key =~ /byte|txt|time|node|int|time\d+|save|state|owner|c_id|ct_name|barcode|sort|public/){ $i++; - print $q->th($q->a({-class=>"sortnav",-href=>"?col_sort=$key\&offset=$searchref->{offset}\&limit=$searchref->{limit}",-title=>"$sort_title"},"$val")),"\n"; + print $q->th({-nowrap=>1},$q->a({-class=>"sortnav",-href=>"?col_sort=$key\&offset=$searchref->{offset}\&limit=$searchref->{limit}",-title=>"$sort_title"},"$val")),"\n"; } } @@ -739,7 +757,7 @@ sub tpl(){ my $pricing = {}; my $counting = {}; #pre-sum only if client invoice - if($ct4rel->{$id}->{template_id} == 218 && $ct4rel->{$id}->{int10} != 2){ + if($ct4rel->{$id}->{template_id} == 218 && $ct4rel->{$id}->{int10} != 2 && $users_dms->{faksum} == 1){ foreach my $cpid (keys (%$ct4rel_parts)){ if($ct4rel->{$id}->{c_id} == $ct4rel_parts->{$cpid}->{ct_id}){ @@ -972,10 +990,15 @@ sub tpl(){ if($ct4rel->{$id}->{state} eq "Kassenbestand"){ print $q->td({-class=>'tdint',-style=>"$txtstyle $set_style"},""),"\n"; }else{ - my $betrag = $ct4rel->{$id}->{$key} || "∑ $sum_pos";# pre counting + my $betrag = ""; + if($ct4rel->{$id}->{$key}){ + $betrag = $ct4rel->{$id}->{$key}; + }elsif($users_dms->{faksum}){ + $betrag = "∑ $sum_pos"; + } $betrag = $ct4rel->{$id}->{$key} if($v_journal); $betrag =~ s/\./,/; - print $q->td({-class=>'tdint',-style=>"$txtstyle $set_style"},"$betrag"),"\n"; + print $q->td({-class=>'tdint',-style=>"$txtstyle $set_style",-nowrap=>1},"$betrag"),"\n"; } }elsif($key =~ /int02/ && $ct4rel->{$id}->{state} eq "Tagesabschluss"){ print $q->td({-class=>'tdint',-style=>"$txtstyle $set_style"},""),"\n"; diff --git a/copri4/main/src/Tpl/TransInvoices.pm b/copri4/main/src/Tpl/TransInvoices.pm index f78e5fc..cd46dea 100755 --- a/copri4/main/src/Tpl/TransInvoices.pm +++ b/copri4/main/src/Tpl/TransInvoices.pm @@ -147,7 +147,9 @@ sub tpl(){ $i++; $line_count2++; if($i==1){ - if($cttpos->{$id}->{pay_time} =~ /(\d+)\-(\d+)\-(\d+)/){ + #pay_time only if payone capture, else invoice_time + my $pitime = $cttpos->{$id}->{pay_time} || $cttpos->{$id}->{invoice_time}; + if($pitime && $pitime =~ /(\d+)\-(\d+)\-(\d+)/){ my $year = $1; my $month = $2; my $days4month = Days_in_Month($year,$month); @@ -342,11 +344,13 @@ sub tpl(){ if(!$ctt->{close_time}){ my $send_invoice_checkbox = 0; #$send_invoice_checkbox = 0 if($ctt->{txt30}); - print $q->div({-class=>'element6',-style=>'float:right;'}, - "buchen incl. drucken ",$but->checkbox("print_pdf","ct_trans","1","PDF drucken",""), - " eMail Versand ",$but->checkbox("1","send_invoice","$send_invoice_checkbox","eMail $ctt->{txt00}",""), - $but->singlesubmit1("set_state","buchen"), - $but->selector("state","250px",$kind_of_payment,@_paymentstate)),"\n"; + print $q->div({-class=>'element6',-style=>'float:right;'}, $q->b("$ctt->{txt00}"), + " PDF drucken ",$but->checkbox("print_pdf","ct_trans","1","PDF drucken",""), + " eMail senden ",$but->checkbox("1","send_invoice","$send_invoice_checkbox","eMail $ctt->{txt00}",""), + " Zahlungsart ", + $but->selector("state","250px",$kind_of_payment,@_paymentstate), + $but->singlesubmit1("set_state","buchen")), + "\n"; } } } diff --git a/copri4/main/src/Tpl/TransPositionen.pm b/copri4/main/src/Tpl/TransPositionen.pm index 6e2033f..3915a37 100755 --- a/copri4/main/src/Tpl/TransPositionen.pm +++ b/copri4/main/src/Tpl/TransPositionen.pm @@ -547,7 +547,7 @@ EOF if($ctt->{state} && $ctt->{int01}){ $kind_of_payment = "$ctt->{state}"; - }elsif($ctt->{int06} && $ctt->{int06} >= 3){ + }elsif($ctt->{int06} && $ctt->{int06} >= 3 || $ctt->{ct_name} =~ /\d-\d/){ #default to Überw. $kind_of_payment = "$_paymentstate[2]"; } @@ -563,11 +563,13 @@ EOF if(!$ctt->{close_time}){ 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;'}, - "buchen incl. drucken ",$but->checkbox("print_pdf","ct_trans","1","PDF drucken",""), - " eMail Versand ",$but->checkbox("1","send_invoice","$send_invoice_checkbox","eMail $ctt->{txt00}",""), - $but->singlesubmit1("set_state","buchen"), - $but->selector("state","250px",$kind_of_payment,@_paymentstate)),"\n"; + print $q->div({-class=>'element6',-style=>'float:right;'}, $q->b("$ctt->{txt00}"), + " PDF drucken ",$but->checkbox("print_pdf","ct_trans","1","PDF drucken",""), + " eMail senden ",$but->checkbox("1","send_invoice","$send_invoice_checkbox","eMail $ctt->{txt00}",""), + " Zahlungart ", + $but->selector("state","250px",$kind_of_payment,@_paymentstate), + $but->singlesubmit1("set_state","buchen")), + "\n"; } } #disabled 2022-11-23, needs more testing. Add +10.- on preauth diff --git a/copri4/shareedms-operator/src/Lib/Mlogic.pm b/copri4/shareedms-operator/src/Lib/Mlogic.pm index 0a919fa..25275cc 100755 --- a/copri4/shareedms-operator/src/Lib/Mlogic.pm +++ b/copri4/shareedms-operator/src/Lib/Mlogic.pm @@ -72,11 +72,6 @@ sub tpl(){ print "
\n"; print "
\n"; - #cleanup - #if(!$mandant->{node_name} || "$mandant->{node_name}" ne "$users_dms->{fullurl}"){ - # $db->cleanup_users($users_dms->{owner}) if($users_dms->{owner}); - #} - if($users_dms->{c_id4trans} && $users_dms->{tpl_id4trans}){ my $table = "contenttrans";