Faktura table-sum option. pdf print only after book payment

This commit is contained in:
ragu 2023-01-30 20:59:19 +01:00
parent 7ce6cb6230
commit eac5a10050
8 changed files with 75 additions and 38 deletions

View file

@ -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/){

View file

@ -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 = "";

View file

@ -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;

View file

@ -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 "</span>\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 "</div>\n";

View file

@ -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"}," &rarr; "),
"$message"
)),"\n";
}elsif($node_meta->{template_id} =~ /209|218/){
print<<EOF
<script>
function postave(val) {
jQuery.ajax({
url: "/ajax_json",
data: { 'table':'users','faksum':val },
type: 'POST',
});
//console.log('faksum '+ val);
}
</script>
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 "<b>$months[$mon -1] $year</b>\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 "</div>\n";
}
print $q->hidden(-name=>'mandant_main_id', -value=>"$dbt->{shareedms_conf}->{parent_id}"),"\n";
@ -695,7 +713,7 @@ sub tpl(){
$val = "<b>$val</b>" 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; $sum_pos";# pre counting
my $betrag = "";
if($ct4rel->{$id}->{$key}){
$betrag = $ct4rel->{$id}->{$key};
}elsif($users_dms->{faksum}){
$betrag = "&sum; $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";

View file

@ -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";
}
}
}

View file

@ -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

View file

@ -72,11 +72,6 @@ sub tpl(){
print "<div style='position:fixed;z-index:10;left:0px;width:100%;height:24px;background-color:#5c5c5c;'>\n";
print "<div style='position:fixed;z-index:10;right:0px;'>\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";