operator accounting disagio

This commit is contained in:
ragu 2022-10-31 08:11:53 +01:00
parent ae4ff98d9b
commit 7f4becd901
22 changed files with 920 additions and 478 deletions

View file

@ -44,19 +44,30 @@ sub tpl(){
my %ib = $but->ibuttons();
my $line_count1 = 0;
my $line_count2 = 0;
my $dbh = "";
#Kunden Faktura ex Firma
my $ctf = $db->get_content1("contentuser",$dbt->{shareedms_conf}->{parent_id});
#my $ctf = $db->get_content1("contentuser",$dbt->{shareedms_conf}->{parent_id});
my $ctf = { c_id => 0 };
my $pref_cu = {
table => "contentuser",
fetch => "one",
c_id => $dbt->{shareedms_conf}->{parent_id},
};
$ctf = $dbt->fetch_tablerecord($dbh,$pref_cu);
#my $rel4tpl = $db->get_rel4tpl("",$lang,$users_dms->{c_id4trans},$node_meta->{tpl_id});
my $rel4tpl = $db->get_rel4tpl("",$lang,$users_dms->{c_id4trans},$users_dms->{tpl_id4trans});
my @tpl_order = split /,/,$rel4tpl->{tpl_order};
#my $rel4tpl = $db->get_rel4tpl("",$lang,$users_dms->{c_id4trans},$users_dms->{tpl_id4trans});
my $ctt = { c_id => 0 };
my $pref = {
table => "contenttrans",
fetch => "one",
c_id => $users_dms->{c_id4trans},
};
$ctt = $dbt->fetch_record($dbh,$pref);
my $ctx = { c_id => 0 };
my $ctadr = { c_id => 0 };
my $rel_adr = { rel_id => 0 };
$ctx = $db->get_content1("contenttrans",$users_dms->{c_id4trans});
my $c_idadr = $ctx->{int10} || "";#c_id orig from contentadr
my $c_idadr = $ctt->{int10} || "";#c_id orig from contentadr
if($node_meta->{tpl_id} == 208){
$ctadr = $db->get_content1("contentuser","2");
@ -65,11 +76,9 @@ sub tpl(){
$rel_adr = $db->get_rel4tpl("","$lang","$c_idadr","202");
}
my $ctt = $ctx;
if(("$R::trans2edit" eq "client" && $R::c_idadr) || ($R::ct_trans eq "add_transadr")){
$ctadr = $db->get_content1("contentadr",$R::c_idadr);
$c_idadr = $ctadr->{c_id};
$ctt->{int03} = $ctadr->{int03};
$ctt->{txt01} = $ctadr->{txt01};
$ctt->{txt03} = $ctadr->{txt03};
$ctt->{txt06} = $ctadr->{txt06};
@ -103,12 +112,12 @@ print<<EOF
EOF
;
my $main_id = $rel4tpl->{main_id};
my $main_id = $ctt->{main_id};
my $set_main_id = $dbt->{shareedms_conf}->{invoice};
print "\n<div style='position:absolute;text-align:left;background-color:white;width:100%;'>\n";
if(!$ctx->{c_id}){
if(!$ctt->{c_id}){
$lb->failure3("Das Formular wurde gelöscht bzw. ist nicht vorhanden");
}
@ -133,28 +142,33 @@ EOF
$buchen_users = $db->get_content1("contentadr",$ctt->{owner});
}
$set_main_id=$main_id if($rel4tpl->{main_id} > "300000");
$set_main_id=$main_id if($ctt->{main_id} > "300000");
print $q->hidden(-name=>'set_main_id', -override=>'1', -value=>"$set_main_id");
print $q->span({-style=>'margin:0em 0.5em 0 0.5em;padding:0.5em 3em;background-color:white;border:solid thin gray;position:absolute;left:3px;'}, "$ctx->{txt00}");
print $q->span({-style=>'margin:0em 0.5em 0 0.5em;padding:0.5em 3em;background-color:white;border:solid thin gray;position:absolute;left:3px;'}, "$ctt->{txt00}");
print "<span style='margin:0 0.2em;position:absolute;left:180px;'>\n";
print $q->b({-style=>'padding:0 1em;'}, "\# $ctx->{ct_name}"), "\n";
if($ctx->{ct_name} =~ /\d+/ && $ctx->{txt00} eq "Storno"){
print $q->b({-style=>'padding:0 1em;'}, "\# $ctt->{ct_name}"), "\n";
if($ctt->{ct_name} =~ /\d+/ && $ctt->{txt00} eq "Storno"){
print $but->singlesubmit3("ct_trans","set_workflow2invoice","","",""),"\n";
print $q->hidden(-name=>'set_main_id4workflow', -override=>'1', -value=>"300008"), "\n";
}
if($ctx->{ct_name} =~ /\d+/ && $ctx->{txt00} eq "Rechnung"){
if($ctt->{ct_name} =~ /\d+/ && $ctt->{txt00} eq "Rechnung"){
print $but->singlesubmit3("ct_trans","set_workflow2storno","","",""), "\n";
print $q->hidden(-name=>'set_main_id4workflow', -override=>'1', -value=>"300009"), "\n";
}
if($ctt->{ct_name} =~ /\d+/ && $ctt->{txt00} eq "Abrechnung"){
print $but->singlesubmit3("ct_trans","set_accounting2invoice","","",""), "\n";
print $q->hidden(-name=>'set_main_id4workflow', -override=>'1', -value=>"300008"), "\n";
}
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";
print $q->hidden(-name=>'c_id', -override=>'1', -value=>"$rel4tpl->{content_id}");
print $q->hidden(-name=>'template_id', -override=>'1', -value=>"$rel4tpl->{template_id}");
print $q->hidden(-name=>'main_id', -override=>'1', -value=>"$rel4tpl->{main_id}");
print $q->hidden(-name=>'rel_id', -override=>'1', -value=>"$rel4tpl->{rel_id}");
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{
print $q->span({-style=>'margin:0 0.2em;position:absolute;right:3px;'}, $but->singlesubmit3("ct_trans","print_pdf","","","")," $buchen_users->{txt01} / $invoice_time "),"\n";
}
@ -165,13 +179,13 @@ EOF
print $q->hidden(-name=>'offset', -override=>'1', -value=>"$R::offset");
print $q->hidden(-name=>'limit', -override=>'1', -value=>"$R::limit");
print $q->hidden(-name=>'relids', -override=>'1', -value=>"$R::relids");
print $q->hidden(-name=>'ct_name4workflow', -override=>1, -value=>"$ctx->{ct_name}");
print $q->hidden(-name=>'c_id4trans', -override=>'1', -value=>"$ctx->{c_id}");
print $q->hidden(-name=>'tpl_id4trans', -override=>'1', -value=>"$rel4tpl->{template_id}");
print $q->hidden(-name=>'close_time', -override=>'1', -value=>"$ctx->{close_time}");
print $q->hidden(-name=>'ct_name4workflow', -override=>1, -value=>"$ctt->{ct_name}");
print $q->hidden(-name=>'c_id4trans', -override=>'1', -value=>"$ctt->{c_id}");
print $q->hidden(-name=>'tpl_id4trans', -override=>'1', -value=>"$ctt->{template_id}");
print $q->hidden(-name=>'close_time', -override=>'1', -value=>"$ctt->{close_time}");
print $q->end_form,"\n";
print $q->div({-style=>'position:fixed;bottom:2%;right:1%;z-index:10;font-size:13px;'}," (c_id: $ctx->{c_id} | rel_id: $rel4tpl->{rel_id} | tpl_id: $rel4tpl->{tpl_id})"),"\n" if($users_dms->{u_id} eq $varenv{superu_id});
print $q->div({-style=>'position:fixed;bottom:2%;right:1%;z-index:10;font-size:13px;'}," (c_id: $ctt->{c_id} | rel_id: $ctt->{rel_id} | tpl_id: $ctt->{tpl_id})"),"\n" if($users_dms->{u_id} eq $varenv{superu_id});
##########
@ -190,11 +204,10 @@ EOF
if($users_dms->{u_id} && ($R::trans2edit eq "client" || $R::ct_trans eq "add_transadr")){
#my @_anrede = ("","Frau","Herr","Firma");
print $q->hidden(-name=>'c_id4trans', -override=>'1', -value=>"$ctx->{c_id}"),"\n";
print $q->hidden(-name=>'c_id4trans', -override=>'1', -value=>"$ctt->{c_id}"),"\n";
print $q->hidden(-name=>'int10', -override=>'1', -value=>"$c_idadr"),"\n";
print $q->hidden(-name=>'c_idadr', -override=>'1', -value=>"$c_idadr"),"\n";
print $q->hidden(-name=>'int03', -override=>'1', -value=>"$ctt->{int03}"),"\n";
print $q->hidden(-name=>'rel_id', -override=>'1', -value=>"$rel4tpl->{rel_id}"),"\n";
print $q->hidden(-name=>'rel_id', -override=>'1', -value=>"$ctt->{rel_id}"),"\n";
print $q->Tr(),"\n";
print "<td class='tdtxt' nowrap>";
@ -227,10 +240,10 @@ EOF
}elsif($users_dms->{u_id}){
print $q->Tr(),"\n";
if(!$ctx->{close_time} && $node_meta->{template_id} == 218){
if(!$ctt->{close_time} && $node_meta->{template_id} == 218){
print "<td class='tdtxt' style='width:8em;' nowrap>";
print $but->singlesubmit2glyph("trans2edit","client","Kunden bearbeiten","background-color:white;"),"\n";
print $q->hidden(-name=>'c_id4trans', -override=>'1', -value=>"$ctx->{c_id}"),"\n";
print $q->hidden(-name=>'c_id4trans', -override=>'1', -value=>"$ctt->{c_id}"),"\n";
#from json_selectadr
print $q->hidden(-id=>'c_idadr', -name=>"c_idadr", -override=>'1'),"\n";
print $q->hidden(-id=>'vorname_name', -name=>"vorname_name", -override=>'1'),"\n";
@ -272,15 +285,23 @@ EOF
print "<td width='50%' style='font-size:1em;'>\n";
print $q->start_table({-class=>'list', -border=>'0', -width=>'100%',-align=>'left', -cellpadding=>'0', -cellspacing=>'0'}),"\n";
if($node_meta->{tpl_id} == 208){
my $tplop = $db->get_tpl("196");#Operator-Faktuar
my $tplop = $dbt->get_tpl($dbh,"196");#Operator-Faktura
my @tplop_order = split /,/,$tplop->{tpl_order};
foreach(@tplop_order){
my ($key,$val,$size,$unit) = split /=/,$_;
if($key =~ /int/){
$ctadr->{$key} =~ s/\./,/;
if($key =~ /int(\d+)/){
#take fee values used by creating operator accounting invoice
my $count_key = $1 + 20;#cu.int to ctt.int
my $ctt_key = "int" . $count_key;
$ctt->{$ctt_key} =~ s/\./,/;
print $q->Tr(),"\n";
print $q->td({-class=>'tdescr', -style=>'width:50%;'},"$val"),"\n";
print $q->td({-class=>'tdval'},"$ctadr->{$key} $unit"),"\n";
if($ctt->{$ctt_key}){
$ctt->{$ctt_key} =~ s/\./,/;
print $q->td({-class=>'tdval'},"$ctt->{$ctt_key} $unit"),"\n";
}else{
print $q->td({-class=>'tdval'},""),"\n";
}
}
}
}else{
@ -320,10 +341,10 @@ EOF
print "<tr><td colspan='5' style='font-size:1em;'>\n";
#operator invoices else position accounting
if($node_meta->{tpl_id} == 208){
$line_count2 = $trin->tpl($node_meta,$users_dms,$set_main_id,$rel4tpl,$return);
if($ctt->{template_id} == 208 || $ctt->{int10} == 2){
$line_count2 = $trin->tpl($node_meta,$users_dms,$set_main_id,$ctt,$return);
}else{
$line_count2 = $transp->tpl($node_meta,$users_dms,$set_main_id,$rel4tpl,$return);
$line_count2 = $transp->tpl($node_meta,$users_dms,$set_main_id,$ctt,$return);
}
print "</td></tr>\n";
@ -335,7 +356,7 @@ EOF
print $q->start_form(),"\n";
print $q->hidden(-name=>'c_id4trans', -override=>'1', -value=>"$ctx->{c_id}");
print $q->hidden(-name=>'c_id4trans', -override=>'1', -value=>"$ctt->{c_id}");
print $q->hidden(-name=>'set_main_id', -override=>'1', -value=>"$set_main_id"),"\n";
print "<tr><td colspan='5' style='font-size:1.1em;padding-top:1em;'>\n";
@ -355,9 +376,9 @@ EOF
print $q->td({-class=>'tdval4',-colspan=>'2'},$q->textarea(-class=>'etxt',-name=>'txt23', -default=>"$ctt->{txt23}", -rows=>6, -columns=>65)),"\n";
my $ebutton = "ebutton";
$ebutton = "ebutton4" if($ctx->{ct_name} && $ctx->{ct_name} =~ /\d+/ && !$R::trans2edit && !$ctt->{txt12} && $ctt->{txt21} && $ctt->{txt21} !~ /\,/);
$ebutton = "ebutton4" if($ctt->{ct_name} && $ctt->{ct_name} =~ /\d+/ && !$R::trans2edit && !$ctt->{txt12} && $ctt->{txt21} && $ctt->{txt21} !~ /\,/);
if($ctx->{close_time}){
if($ctt->{close_time}){
print $q->Tr(),"\n";
print $q->td({-class=>'tdval',-colspan=>2}, $but->singlesubmit7("ct_trans","save_text_internas","$ib{save_text}","","","$ebutton")),"\n";
@ -397,12 +418,12 @@ EOF
}
###
print $q->hidden(-name=>'c_id4trans', -override=>'1', -value=>"$ctx->{c_id}"),"\n";
print $q->hidden(-name=>'c_id4trans', -override=>'1', -value=>"$ctt->{c_id}"),"\n";
print $q->hidden(-name=>'set_main_id', -override=>'1', -value=>"$set_main_id"),"\n";
my $ebutton = "ebutton";
$ebutton = "ebutton4" if($ctx->{ct_name} && $ctx->{ct_name} =~ /\d+/ && !$R::trans2edit && !$ctt->{txt12} && $ctt->{txt21} !~ /\,/);
$ebutton = "ebutton4" if($ctt->{ct_name} && $ctt->{ct_name} =~ /\d+/ && !$R::trans2edit && !$ctt->{txt12} && $ctt->{txt21} !~ /\,/);
print $q->Tr(),"\n";
print $q->td({-style=>'font-size:0.81em;padding:0.3em 0em;border:0px;',-colspan=>2}, $but->singlesubmit7("ct_trans","save_text","$ib{save_text}","","","$ebutton"),"$formular_text"),"\n" if(!$ctx->{close_time});
print $q->td({-style=>'font-size:0.81em;padding:0.3em 0em;border:0px;',-colspan=>2}, $but->singlesubmit7("ct_trans","save_text","$ib{save_text}","","","$ebutton"),"$formular_text"),"\n" if(!$ctt->{close_time});
print $q->end_table,"\n";
print "</td></tr>\n";
@ -417,7 +438,7 @@ EOF
my $line_count = "$line_count1.$line_count2";
#print $q->div({style=>'font-size:0.81em;'},"line to print -> address+text: $line_count1 | table: $line_count2"),"\n";
print "</div>\n";
$db->update_content4change2("contenttrans",$ctx->{c_id},"$line_count","int04") if($ctx->{c_id});
$db->update_content4change2("contenttrans",$ctt->{c_id},"$line_count","int04") if($ctt->{c_id});
return $line_count;
}
1;

View file

@ -412,9 +412,9 @@ EOF
print $q->td({-class=>'left_italic_cms'},"$des"),"\n";
my $co2saving = "";
my $co2diff = $pri->co2calc($cttpos);
my $sprit_price = $pri->sprit2calc($cttpos);
#my $sprit_price = $pri->sprit2calc($cttpos);
$co2saving .= "$co2diff kg CO&sup2;<br />";
$co2saving .= "$sprit_price EUR<br />" if($sprit_price !~ /-/);
#$co2saving .= "$sprit_price EUR<br />" if($sprit_price !~ /-/);
$cttpos->{int26} =~ s/\./,/;
$co2saving .= "bei $cttpos->{int26} KM";
print $q->td({-class=>'content1_cms'},"$co2saving");

View file

@ -208,8 +208,6 @@ sub tpl(){
my $ct4rel_part = { c_id => 0 };
$ct4rel_part = $dbt->fetch_record($dbh,$pref_cc);
my $header_style = "";
$header_style = "border:2px solid #9f1f0e;" if($message);
print $q->div({-class=>"copri_header",-style=>"background-color:$node_meta->{bg_color};"},"$path", $q->span({-style=>"padding:4px 10px;color:white;"},
" $months[$mon -1] $year",
$q->a({-class=>"linknav",-style=>"padding:0 0.5em;",-title=>"Monat zurück",-href=>"?cal_delta_start=0:-1:0"}," &larr; "),

View file

@ -224,7 +224,7 @@ sub tpl(){
#Faktura actions
if($node_meta->{template_id} =~ /208|209|218/){
$main_id = $dbt->{shareedms_conf}->{faktura};
$tplids = "208,209,218";
$tplids = "218";
if($node_meta->{node_name} =~ /OPOS/){
$R::detail_search="suchen";
@ -269,12 +269,13 @@ sub tpl(){
$main_id = 300009;
$tplids = 218;
}
elsif($node_meta->{node_name} eq "Abrechnung"){
elsif($node_meta->{node_name} eq "Abrechnung" || $R::tpl_id4trans eq "208"){
$main_id = 300029;
$tplids = 208;
}
elsif($R::detail_search eq "suchen"){
#search at all
if($R::detail_search eq "suchen"){
$tplids = "208,209,218";
}
}
@ -301,7 +302,7 @@ sub tpl(){
$header_style = "border:2px solid #9f1f0e;" if($message);
if($node_meta->{tpl_id} == 205){
print $q->div({-class=>"copri_header",-style=>"background-color:$node_meta->{bg_color};"},"$path", $q->span({-style=>"padding:3px 10px;background-color:#86cbd7;color:white;"},
print $q->div({-class=>"copri_header",-style=>"background-color:$node_meta->{bg_color};"},"$path", $q->span({-style=>"padding:5px 10px;background-color:#86cbd7;color:white;"},
" $months[$mon -1] $year",
$q->a({-class=>"linknav",-style=>"padding:0 0.5em;",-title=>"Monat zurück",-href=>"?cal_delta_start=0:-1:0"}," &larr; "),
$q->a({-class=>"linknav",-style=>"padding:0 0.5em;",-title=>"Monat aktuell",-href=>"?cal_today=1"},"&bull;"),
@ -476,7 +477,7 @@ sub tpl(){
my $hstyle = "border-right: solid thin gray;border-bottom: solid thin gray;";
if($v_journal && $v_journal =~ /journal/){
print $q->div({-style=>"background-color:silver;$hstyle"},$but->singlesubmit1("detail_search","operator_accounting","","margin:0 0 2px 20px;",""),$but->radiobox2("accounting_type","$R::accounting_type","","Pauschal (sig)","Reale Gebühren")),"\n";
print $q->div({-style=>"background-color:silver;$hstyle"},$but->singlesubmit1("detail_search","operator_accounting","","margin:0 0 2px 20px;",""),"es dürfen nur Rechnungen mit erfolgreichem payone Einzug selektiert werden."),"\n";
}
print $q->hidden(-name=>'mandant_main_id', -value=>"$dbt->{shareedms_conf}->{parent_id}"),"\n";
print $q->hidden(-name=>'tpl_id4trans', -value=>"$node_meta->{tpl_id}"),"\n";
@ -509,7 +510,7 @@ sub tpl(){
$new_key="new_tver";
$delete_key="delete_tver";
}
if($node_meta->{parent_id} >= "200000" && !$v_journal){
if($node_meta->{parent_id} >= "200000" && $node_meta->{template_id} =~ /202|218/){
print $q->td({-style=>"width:25px;background-color:$a_color;$hstyle"}, $but->singlesubmit2glyph("$edit","$new_key","$ib{$new_key}","background-color:$a_color;"));
print $q->hidden(-name=>'open_set_main_id', -value=>"$node_meta->{main_id}") if($table =~ /contenttrans/);
}else{
@ -767,7 +768,7 @@ sub tpl(){
#permissions
if($users_dms_primary->{int03} == 2 && $users_dms->{int03} == 2){
my $checked = 0;
$checked = 1 if($ct4rel->{$id}->{template_id} == 209 && $ct4rel->{$id}->{int01} > 0 && $ct4rel->{$id}->{state} =~ /payone/i && !$ct4rel->{$id}->{int14});
#$checked = 1 if($node_meta->{template_id} == 209 && $ct4rel->{$id}->{int01} > 0 && $ct4rel->{$id}->{state} =~ /payone/i && !$ct4rel->{$id}->{int14});
print $q->td({-style=>"background-color:silver;"}, $q->checkbox(-name=>"ck4ex", -checked=>"$checked", -value=>"$ct4rel->{$id}->{c_id}", -label=>'')),"\n";
}else{
print $q->td({-style=>"background-color:silver;"},"&nbsp;"),"\n";

View file

@ -36,7 +36,7 @@ sub tpl(){
my $node_meta = shift;
my $users_dms = shift;
my $set_main_id = shift;
my $rel4tpl = shift;
my $ctt = shift;
my $return = shift || "";
my $q = new CGI;
@ -55,58 +55,80 @@ sub tpl(){
my $dbh = "";
my $line_count2 = 0;
my $k=0;
my $ctf = $db->get_content1("contentuser","2");#Operator-Faktura config
my $ctt = $db->get_content1("contenttrans",$rel4tpl->{content_id});
my $ctadr = $db->get_content1("contentadr",$ctt->{int10});
my $vibuchen_mtime = "";
$vibuchen_mtime = "payone post " . $lb->time4de($ctt->{pay_time},1) . " . " if($ctt->{pay_time});
#int9x are not in db
my @tpl_order = ("ct_name=Rechnung","int01=Summe payone Einzug","state=Zahlungsart","int91=TeilRad Gebühren","int92=Disagio","int93=Transaktion","int02=Summe Auszahlung");
my $tplf = $db->get_tpl("196");#Operator-Faktuar
my @tplf_order = split /,/,$tplf->{tpl_order};
my $tc=0;
my $vibuchen_mtime = $lb->time4de($ctt->{mtime},1);
my $txt20 = $R::txt20 || $ctt->{txt20} || "";#Leistungsdatum
my $int05 = $R::int05 || $ctt->{int05} || "";#manuell
my $cttpos = { c_id => 0 };
my $rows = 0;
my @tpl_order = ();
my $cttpos = { c_id => 0 };
#collects invoices
($cttpos,$rows) = $dbt->collect_contenttrans($dbh,$rel4tpl->{content_id});
my $ctf = { c_id => 0 };
my $pref_cu = {
table => "contentuser",
fetch => "one",
c_id => $dbt->{shareedms_conf}->{parent_id},
};
$ctf = $dbt->fetch_tablerecord($dbh,$pref_cu);
#maybe sum payment types
#foreach my $id (keys(%$cttpos)){
# if(ref($cttpos->{$id}) eq "HASH"){
# if($cttpos->{$id}->{int26}){
# }
# }
#}
my $ctf_operator = { c_id => 0 };
my $pref_cuop = {
table => "contentuser",
fetch => "one",
c_id => 2,
};
$ctf_operator = $dbt->fetch_tablerecord($dbh,$pref_cuop);
print $q->start_table({-class=>'list', -border=>'0', -width=>'100%',-align=>'left', -cellpadding=>'3', -cellspacing=>'0'});
#take original operator accounting c_id to collect related invoices
if($ctt->{template_id} != 208){#not equal Abrechnung
my $pref = {
table => "contenttrans",
fetch => "one",
barcode => $ctt->{barcode},
txt00 => "Abrechnung",
};
my $ctt_accounting = $dbt->fetch_record($dbh,$pref);
($cttpos,$rows) = $dbt->collect_contenttrans($dbh,$ctt_accounting->{content_id});
#int9x are not in db
@tpl_order = ("c_id=ID","int01=Summe Einzug","state=Zahlungsart","int93=TeilRad Gebühren","int98=TeilRad Gebühren 19%","int100=Summe");
if($varenv{dbname} eq "sharee_sx"){
@tpl_order = ("c_id=ID","int01=Summe Einzug","state=Zahlungsart","int93=TeilRad Gebühren","int98=TeilRad Gebühren 19%","int94=TeilRad Disagio","int99=TeilRad Disagio 19%","int100=Summe");
}
}
#default to Abrechnung
else{
($cttpos,$rows) = $dbt->collect_contenttrans($dbh,$ctt->{content_id});
#int9x are not in db
@tpl_order = ("c_id=ID","int01=Summe Einzug","state=Zahlungsart","int93=TeilRad Gebühren","int98=TeilRad Gebühren 19%","int94=payone Disagio","int95=payone Transaktion","int96=payone Zahlungsmeldung","int97=payone Kreditkarte Zuordnung","int02=Summe Gutschrift");
if($varenv{dbname} eq "sharee_sx"){
@tpl_order = ("c_id=ID","int01=Summe Einzug","state=Zahlungsart","int93=TeilRad Gebühren","int98=TeilRad Gebühren 19%","int94=TeilRad Disagio","int99=TeilRad Disagio 19%","int02=Summe Gutschrift");
}
}
my $tplf = $dbt->get_tpl($dbh,201);#Kunden-Faktura, ex Firma
my @tplf_order = split /,/,$tplf->{tpl_order};
print $q->hidden(-name=>'offset', -override=>'1', -value=>"$R::offset") if($R::offset);
print $q->hidden(-name=>'limit', -override=>'1', -value=>"$R::limit") if($R::limit);
print $q->hidden(-name=>'c_id4trans', -override=>'1', -value=>"$rel4tpl->{content_id}");
print $q->hidden(-name=>'tpl_id4trans', -override=>'1', -value=>"$node_meta->{tpl_id}");
print $q->start_table({-class=>'list', -border=>'0', -width=>'100%',-align=>'left', -cellpadding=>'3', -cellspacing=>'0'}),"\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=>'c_id4trans', -override=>'1', -value=>"$ctt->{content_id}"),"\n";
print $q->hidden(-name=>'tpl_id4trans', -override=>'1', -value=>"$ctt->{template_id}"),"\n";
$line_count2++;
print $q->Tr();
print $q->th("Pos."),"\n";
print $q->Tr(),"\n";
#print $q->th("Pos."),"\n";
foreach (@tpl_order){
my ($key,$val) = split /=/,$_;
$k++ if($val);
$tc++ if($val);
$val .= " ($key)" if($users_dms->{u_id} eq $varenv{superu_id});
print $q->th("$val");
print $q->th("$val"),"\n";
}
print $q->start_form(-name=>'transposform'),"\n";
my $scol = "c_id";
my $sum_operatorcredit=0;
my $sum_payonecapture=0;
my $sum_parts19=0;
my $diff19 = 100 + 19;
my $sum_umst19=0;
@ -114,36 +136,29 @@ sub tpl(){
my $accounting_start = "";
my $accounting_end = "";
foreach my $id (sort { $cttpos->{$b}->{$scol} <=> $cttpos->{$a}->{$scol} } keys(%$cttpos)){
my $oac = $pri->operator_accounting2calc(\%varenv,$cttpos->{$id},$ctf,$tplf);
#$sum_parts19 += $oac->{int01};#payone Einzug
$sum_parts19 += $oac->{int02};#Auszahlung
#$oac->{int01} = $pri->round($oac->{int01});
$oac->{int01} = sprintf('%.2f', $oac->{int01});
foreach my $id (sort { $cttpos->{$b}->{c_id} <=> $cttpos->{$a}->{c_id} } keys(%$cttpos)){
my $oac = $pri->operator_accounting2calc(\%varenv,$cttpos->{$id},$ctf_operator);
$sum_operatorcredit += $oac->{int02};#Abrechnung Gutschrift
$sum_parts19 += $oac->{int100};#Operator Rechnung (TeilRad Gebühren + Disagio incl. 19%)
$oac->{int01} = sprintf('%.2f', $oac->{int01});
if(1==1){
$i++;
$line_count2++;
#FIXME
if($i==1){
$accounting_end = "$3.$2.$1" if($cttpos->{$id}->{pay_time} =~ /(\d+)\-(\d+)\-(\d+)/);
$accounting_start = $accounting_end;
}else{
$accounting_start = "$3.$2.$1" if($cttpos->{$id}->{pay_time} =~ /(\d+)\-(\d+)\-(\d+)/);
}
#print "$accounting_start - $accounting_end<br>";
#print "$cttpos->{$id}->{pay_time} xxxx $accounting_start - $accounting_end<br>";
my @line_txt01 = split(/\n/,$cttpos->{$id}->{txt01});
if($cttpos->{$id}->{int02} != 0){
$line_count2++;
#$line_count2 += scalar(@line_txt01);
}
#1. Spalte
print $q->Tr(),"\n";
print $q->td({-class=>'tdint'},"$i"),"\n";
#print $q->td({-class=>'tdint'},"$i"),"\n";
#Tablecontent (parameter)
foreach (@tpl_order){
my ($key,$val) = split /=/,$_;
$cttpos->{$id}->{$key} = $q->unescapeHTML($cttpos->{$id}->{$key});
@ -154,7 +169,11 @@ sub tpl(){
if(1==1){
if($key =~ /ct_name/){
print $q->td({-class=>'tdtxt'},"\# $cttpos->{$id}->{ct_name} $cttpos->{$id}->{txt01}"),"\n";
#print $q->td({-class=>'tdtxt'},"\# $cttpos->{$id}->{$key} $cttpos->{$id}->{txt01}"),"\n";
print $q->td({-class=>'tdtxt'},"\# $cttpos->{$id}->{$key}"),"\n";
}
elsif($key =~ /c_id/){
print $q->td({-class=>'tdint'},"$cttpos->{$id}->{$key}"),"\n";
}
elsif($key =~ /int/){
$oac->{$key} =~ s/\./,/;
@ -182,7 +201,6 @@ sub tpl(){
my $sum_paid = $sum_parts19;
$sum_paid = $pri->round($sum_paid);
my $sum_preauth = $sum_paid || 0;
$sum_paid = sprintf('%.2f', $sum_paid);
$sum_paid =~ s/\./,/;
@ -190,6 +208,10 @@ sub tpl(){
$sum_umst19 = sprintf('%.2f', $sum_umst19);
$sum_umst19 =~ s/\./,/;
$sum_operatorcredit = $pri->round($sum_operatorcredit);
$sum_operatorcredit = sprintf('%.2f', $sum_operatorcredit);
$sum_operatorcredit =~ s/\./,/;
my $payment_text = "";
foreach(@tplf_order){
my ($key,$des,$size) = split /=/,$_;
@ -207,48 +229,54 @@ sub tpl(){
}
}
my $n="5";
my $m= 1 + $k - $n;
$m++;
my $cs = $tc - 3;
print "<tr>\n";
print "<td colspan='$m'><div style='font-size:0.81em;padding:0.3em 0em;border:0px;'>$payment_text</div></td>\n";
print "<td style='font-size:1em;' colspan='$n'>\n";
print $q->start_table({-class=>'list',-style=>'border-top:1px;border-style:solid;border-color:black;', -border=>'0', -width=>'100%',-align=>'center', -cellpadding=>'3', -cellspacing=>'0'}),"\n";
print "<td colspan='$cs'><div style='font-size:0.81em;padding:0.3em 0em;border:0px;'>$payment_text</div></td>\n";
###print sum
print "<td style='font-size:1em;' colspan='3'>\n";
print $q->start_table({-class=>'list',-style=>'border-top:0px;border-style:solid;border-color:black;', -border=>'0', -width=>'100%',-align=>'center', -cellpadding=>'3', -cellspacing=>'0'}),"\n";
print $q->Tr("\n");
print $q->td("&nbsp;");
if(1==1){
#Summe Betreiber Rechnung
if($ctt->{template_id} != 208){#not equal Abrechnung
print $q->Tr("\n"); $line_count2++;
print $q->td({-class=>'tdint'},"Nettobetrag:");
print $q->td({-class=>'tdint',-colspan=>2},"Nettobetrag");
print $q->td({-class=>'tdint',-nowrap=>"1"},"$sum_netto19 €");
if($sum_netto19 != 0){
print $q->Tr("\n");$line_count2++;
#print $q->td({-class=>'tdint',-nowrap=>"1"},"$umst1619% UmSt auf $sum_netto19 €:");
print $q->td({-class=>'tdint',-nowrap=>"1"},"19% UmSt auf $sum_netto19 €:");
print $q->td({-class=>'tdint',-colspan=>2,-nowrap=>"1"},"19% UmSt auf $sum_netto19 €");
print $q->td({-class=>'tdint',-nowrap=>"1"},"$sum_umst19 €");
}
print $q->Tr("\n");$line_count2++;
print $q->td({-class=>'tdsum',-colspan=>2},"Summe $ctt->{state}");
print $q->td({-class=>'tdint',-nowrap=>"1"},"$sum_paid €");
}
#Summe Betreiber Abrechnung (Gutschrift)
else{
print $q->Tr("\n");$line_count2++;
print $q->td({-class=>'tdsum',-colspan=>2},"Summe $ctt->{state}");
print $q->td({-class=>'tdint',-nowrap=>"1"},"$sum_operatorcredit €");
}
my $summe = "Summe";
print $q->Tr("\n");$line_count2++;
print $q->td({-class=>'tdsum'},"<b>$summe:</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->end_table;
print "</td><td>&nbsp;</td>";
###print sum end
print "</tr>";
print $q->end_table;
print $q->hidden(-name=>'owner', -override=>'1', -value=>"$users_dms->{u_id}");
print $q->hidden(-name=>'c_id4trans', -override=>'1', -value=>"$rel4tpl->{content_id}");
print $q->hidden(-name=>'tpl_id4trans', -override=>'1', -value=>"$node_meta->{tpl_id}");
print $q->hidden(-name=>'c_id4trans', -override=>'1', -value=>"$ctt->{content_id}");
print $q->hidden(-name=>'tpl_id4trans', -override=>'1', -value=>"$ctt->{template_id}");
print $q->hidden(-name=>'offset', -override=>'1', -value=>"$R::offset") if($R::offset);
print $q->hidden(-name=>'limit', -override=>'1', -value=>"$R::limit") if($R::limit);
print $q->hidden(-name=>'relids', -override=>'1', -value=>"$R::relids") if($R::relids);
$set_main_id=$rel4tpl->{main_id} if($rel4tpl->{main_id} && $rel4tpl->{main_id} > "300000");
$set_main_id=$ctt->{main_id} if($ctt->{main_id} && $ctt->{main_id} > "300000");
print $q->hidden(-name=>'set_main_id', -value=>"$set_main_id", -override=>'1');
@ -259,22 +287,46 @@ sub tpl(){
my $users_dms_primary = { u_id => 0 };
$users_dms_primary = $dbt->select_users($dbh_primary,$users_dms->{u_id},"and int03=2");
if($users_dms_primary->{u_id} && $users_dms_primary->{int03} == 2 && !$ctt->{close_time}){
my @_paymentstate = ("","Überweisung");
if($users_dms_primary->{u_id} && $users_dms_primary->{int03} == 2){
my @_paymentstate = ("");
my $kind_of_payment = "";
$kind_of_payment = "$ctt->{state}" if($ctt->{state} && $ctt->{int01});
if($ctt->{template_id} != 208){#not equal Abrechnung
print $q->hidden(-name=>'sum_paid', -override=>'1',-value=>"$sum_paid");
push @_paymentstate, "Disagio";
if($ctt->{state} && $ctt->{int01}){
$kind_of_payment = "$ctt->{state}";
$ctt->{int01} =~ s/\./,/;
my $style = "color:red;" if($ctt->{int01} ne $sum_paid);
my $opos = "";
$opos = "OPOS" if($ctt->{int14} && $ctt->{int14} > 0);
print $q->div({-style=>"padding:0.5em;font-size:0.81em;width:98%;text-align:right;"},"<span style='color:red;'>$opos</span> Buchung $vibuchen_mtime \"$ctt->{state}\" $ctt->{int01} €"),"\n";
}
}
else{
print $q->hidden(-name=>'sum_operatorcredit', -override=>'1',-value=>"$sum_operatorcredit");
push @_paymentstate, "Gutschrift";
if($ctt->{state} && $ctt->{int02}){
$kind_of_payment = "$ctt->{state}";
$ctt->{int02} =~ s/\./,/;
my $style = "color:red;" if($ctt->{int02} ne $sum_operatorcredit);
my $opos = "";
$opos = "OPOS" if($ctt->{int14} && $ctt->{int14} > 0);
print $q->div({-style=>"padding:0.5em;font-size:0.81em;width:98%;text-align:right;"},"<span style='color:red;'>$opos</span> Buchung $vibuchen_mtime \"$ctt->{state}\" $ctt->{int02} €"),"\n";
}
}
my $send_invoice_checkbox = 1;
$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 Rechnung",""),
$but->singlesubmit1("set_state","buchen"),
$but->selector("state","250px",$kind_of_payment,@_paymentstate)),"\n";
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->end_form;
my $praefix = "$ctt->{txt00}-$varenv{praefix}";
@ -286,23 +338,15 @@ sub tpl(){
print $q->hidden(-name=>'offset', -override=>'1', -value=>"$R::offset") if($R::offset);
print $q->hidden(-name=>'limit', -override=>'1', -value=>"$R::limit") if($R::limit);
print $q->hidden(-name=>'relids', -override=>'1', -value=>"$R::relids") if($R::relids);
print $q->div({-style=>"padding:0.5em;font-size:0.81em;width:98%;text-align:right;"}, "eMail wurde nicht versandt! Rechnung eMail ", $but->singlesubmit1("ct_trans","send_invoice_again","send_invoice_again")),"\n" if($users_dms->{u_id} == $dbt->{copri_conf}->{superu_id});
print $q->div({-style=>"padding:0.5em;font-size:0.81em;width:98%;text-align:right;"}, "eMail wurde nicht versandt! $ctt->{txt00} eMail ", $but->singlesubmit1("ct_trans","send_invoice_again","send_invoice_again")),"\n" if($users_dms->{u_id} == $dbt->{copri_conf}->{superu_id});
print $q->end_form;
}
if($ctt->{state} && $ctt->{int01}){
$ctt->{int01} =~ s/\./,/;
my $style = "color:red;" if($ctt->{int01} ne $sum_paid);
my $opos = "";
$opos = "OPOS" if($ctt->{int14} && $ctt->{int14} > 0);
print $q->div({-style=>"padding:0.5em;font-size:0.81em;width:98%;text-align:right;"},"<span style='color:red;'>$opos</span> $vibuchen_mtime Gebucht $ctt->{int01} € \"$ctt->{state}\"") if($ctt->{state});
}
if( -f "$varenv{basedir}/pdfinvoice/$praefix-$ctt->{ct_name}.pdf"){
print $q->div({-style=>'padding:0.5em;font-size:0.81em;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;'}), "Rechnung $ctt->{ct_name}.pdf"),"\n";
print $q->div({-style=>'padding:0.5em;font-size:0.81em;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","$rel4tpl->{content_id}","txt20","$accounting_start - $accounting_end","","","","","no_time") if(!$int05 && $accounting_start && $accounting_end);
$db->updater("contenttrans","c_id","$ctt->{content_id}","txt20","$accounting_start - $accounting_end","","","","","no_time") if(!$int05 && $accounting_start && $accounting_end);
return "$line_count2";
}

View file

@ -36,7 +36,7 @@ sub tpl(){
my $node_meta = shift;
my $users_dms = shift;
my $set_main_id = shift;
my $rel4tpl = shift;
my $ctt = shift;
my $return = shift || "";
my $q = new CGI;
@ -51,20 +51,28 @@ sub tpl(){
my %ib = $but->ibuttons();
my $today = strftime "%d.%m.%Y",localtime;
my $now_dt = strftime "%Y-%m-%d %H:%M:%S", localtime;
my $dbh = "";
my $channel_map = $dbt->channel_map();
my $coo = $q->cookie(-name=>'domcookie');
my $dbh = "";
my $mapref = {};
my $ct_users = $dbt->users_map($dbh,$mapref);#get serviceAPP and DMS users from contentadr
my $line_count2 = 0;
my $k=0;
my $tc=0;
my $txt20 = $R::txt20 || $ctt->{txt20} || "";#Leistungsdatum
my $int05 = $R::int05 || $ctt->{int05} || "";#manuell
my $rows = 0;
my $spart_ct_name = $R::spart_ct_name || "";
my $c_idpos = $R::c_idpos || $R::pos_id || "";
my $cttpos = { c_id => 0 };
my $ctf = $db->get_content1("contentuser",$dbt->{shareedms_conf}->{parent_id});
my $ctt = $db->get_content1("contenttrans",$rel4tpl->{content_id});
#my $umst1619 = $lb->umst_breaking($ctt,"");
my $ctf = { c_id => 0 };
my $pref_cu = {
table => "contentuser",
fetch => "one",
c_id => $dbt->{shareedms_conf}->{parent_id},
};
$ctf = $dbt->fetch_tablerecord($dbh,$pref_cu);
my $ctadr = $db->get_content1("contentadr",$ctt->{int10});
my $buchen_mtime = $lb->time4de($ctt->{mtime});
@ -75,12 +83,7 @@ sub tpl(){
my $tplf = $db->get_tpl("201");#Kunden-Faktura, ex Firma
my @tplf_order = split /,/,$tplf->{tpl_order};
my $txt20 = $R::txt20 || $ctt->{txt20} || "";#Leistungsdatum
my $int05 = $R::int05 || $ctt->{int05} || "";#manuell
my $cttpos = { c_id => 0 };
my $rows = 0;
($cttpos,$rows) = $dbt->collect_contentpos($dbh,"contenttrans",$rel4tpl->{content_id});
($cttpos,$rows) = $dbt->collect_contentpos($dbh,"contenttrans",$ctt->{content_id});
foreach my $id (keys(%$cttpos)){
if(ref($cttpos->{$id}) eq "HASH"){
@ -92,7 +95,7 @@ sub tpl(){
# @tpl_order = ("txt01=Beschreibung","ct_name=Nummer","date_time=timerange","int26=Einsparung","int35=Mietzeit Menge","int03=Artikel Menge","int02=Preis","int07=Rabatt","int04=Gesamt");
#}
}else{
$lb->failure3("Der selekt einer Verkaufsposition ist fehlgeschlagen, errocode ($rel4tpl->{content_id} | $users_dms->{c_id4trans} | $node_meta->{tpl_id}). Bitte admin kontaktieren");
$lb->failure3("Der selekt einer Verkaufsposition ist fehlgeschlagen, errocode ($ctt->{content_id} | $ctt->{template_id} | $users_dms->{c_id4trans}). Bitte admin kontaktieren");
exit;
}
}
@ -130,25 +133,24 @@ EOF
print $q->start_form(-name=>'spartform');
$c_idpos = $1 if($return && $return =~ /pos_id=(\d+)/);
print $q->hidden(-name=>'trans2edit', -value=>"transpos", -override=>'1');
print $q->hidden(-name=>'offset', -override=>'1', -value=>"$R::offset") if($R::offset);
print $q->hidden(-name=>'limit', -override=>'1', -value=>"$R::limit") if($R::limit);
print $q->hidden(-name=>'relids', -override=>'1', -value=>"$R::relids") if($R::relids);
print $q->hidden(-name=>'c_id4trans', -override=>'1', -value=>"$rel4tpl->{content_id}");
print $q->hidden(-name=>'tpl_id4trans', -override=>'1', -value=>"$node_meta->{tpl_id}");
print $q->hidden(-id=>'c_id', -name=>"c_id", -override=>'1');
print $q->hidden(-id=>'spart_ct_name', -name=>"spart_ct_name", -override=>'1');
print $q->hidden(-name=>'trans2edit', -value=>"transpos", -override=>'1'),"\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=>'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(-id=>'c_id', -name=>"c_id", -override=>'1'),"\n";
print $q->hidden(-id=>'spart_ct_name', -name=>"spart_ct_name", -override=>'1'),"\n";
$line_count2++;
print $q->Tr();
print $q->th($but->singlesubmit("select_part","*"),"\n");
print $q->th($but->singlesubmit("select_part","*")),"\n";
foreach (@tpl_order){
my ($key,$val) = split /=/,$_;
$k++ if($val);
$tc++ if($val);
if($key eq "ct_name"){
print $q->th($q->textfield(-class=>'etxt',-style=>'height:19px;width:140px;font-size:1.3em;text-align:right;',-id=>"json_select",-name=>"json_select",-value=>"", -override=>'1',-size=>"25",-maxlength=>50, -placeholder=>'Nummer'),"");
print $q->th($q->textfield(-class=>'etxt',-style=>'height:19px;width:140px;font-size:1.3em;text-align:right;',-id=>"json_select",-name=>"json_select",-value=>"", -override=>'1',-size=>"25",-maxlength=>50, -placeholder=>'Nummer'),""),"\n";
}elsif($key =~ /int|txt|time\d+/){
print $q->th("$val");
print $q->th("$val"),"\n";
}
}
@ -214,16 +216,16 @@ EOF
#1. Spalte
print $q->Tr(),"\n";
print "<td class='tdtxt' nowrap>";
print "<td class='tdtxt' nowrap>","\n";
if(($c_idpos == $cttpos->{$id}->{c_id}) && ($R::trans2edit && $R::trans2edit =~ /transpos/)){
print $q->hidden(-name=>'c_idpos', -value=>"$cttpos->{$id}->{c_id}", -override=>'1');
print $q->hidden(-name=>'cc_id', -value=>"$cttpos->{$id}->{cc_id}", -override=>'1');
print $q->hidden(-name=>'c_id4trans', -override=>'1', -value=>"$rel4tpl->{content_id}");
print $q->hidden(-name=>'tpl_id4trans', -override=>'1', -value=>"$node_meta->{tpl_id}");
print $q->hidden(-name=>'c_idpos', -value=>"$cttpos->{$id}->{c_id}", -override=>'1'),"\n";
print $q->hidden(-name=>'cc_id', -value=>"$cttpos->{$id}->{cc_id}", -override=>'1'),"\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 $but->singlesubmit2("ct_trans","save_pos","$ib{save_pos}","background-color:white;padding:20px;","")," ",
$but->singlesubmit2("ct_trans","delete_pos","$ib{delete_pos}","background-color:white;padding:20px;",""),"\n";
}elsif(!$ctt->{close_time}){
print $q->a({-class=>"editnav",-href=>"/DMS/Faktura?trans2edit=transpos\&c_idpos=$cttpos->{$id}->{c_id}\&c_id4trans=$rel4tpl->{content_id}\&tpl_id4trans=$node_meta->{tpl_id}\&owner=$users_dms->{u_id}",-title=>"Datensatz bearbeiten"}, $q->img({-src=>"$varenv{metahost}/glyphicons/glyphicons-151-edit.png"})),"\n";
print $q->a({-class=>"editnav",-href=>"/DMS/Faktura?trans2edit=transpos\&c_idpos=$cttpos->{$id}->{c_id}\&c_id4trans=$ctt->{content_id}\&tpl_id4trans=$ctt->{template_id}\&owner=$users_dms->{u_id}",-title=>"Datensatz bearbeiten"}, $q->img({-src=>"$varenv{metahost}/glyphicons/glyphicons-151-edit.png"})),"\n";
}
my $calpath = "Mietjournal";
print $q->a({-class=>"linknav3", -style=>"background-color:$varenv{calendar_active_color}",-href=>"/DMS/$calpath/?cttpos_id=$cttpos->{$id}->{c_id}",-title=>"Im $calpath öffnen"},"<br /><br />ID $cttpos->{$id}->{c_id}"),"\n";
@ -252,13 +254,13 @@ EOF
if($cttpos->{$id}->{int26}){
$co2saving = "Einsparung</br>";
my $co2diff = $pri->co2calc($cttpos->{$id});
my $sprit_price = $pri->sprit2calc($cttpos->{$id});
#my $sprit_price = $pri->sprit2calc($cttpos->{$id});
$co2saving .= "$co2diff kg CO&sup2;<br />";
$co2saving .= "$sprit_price EUR<br />" if($sprit_price !~ /-/);
#$co2saving .= "$sprit_price EUR<br />" if($sprit_price !~ /-/);
$cttpos->{$id}->{int26} =~ s/\./,/;
$co2saving .= "bei $cttpos->{$id}->{int26} KM";
}
print $q->td({-class=>'tdint'},"$co2saving");
print $q->td({-class=>'tdint'},"$co2saving"),"\n";
}elsif($key =~ /int03/){
if($cttpos->{$id}->{int35} && $cttpos->{$id}->{start_time} && $cttpos->{$id}->{end_time}){
@ -276,12 +278,12 @@ EOF
}
print "</td>\n";
}else{
print $q->td({-class=>'element',-style=>"$txtstyle $set_style"},$q->textfield(-class=>'etxt',-style=>"$txtstyle",-name=>"col_$key",-default=>"$cttpos->{$id}->{$key}", -override=>'1',-size=>"$isize",-maxlength=>100),"\n");
print $q->td({-class=>'element',-style=>"$txtstyle $set_style"},$q->textfield(-class=>'etxt',-style=>"$txtstyle",-name=>"col_$key",-default=>"$cttpos->{$id}->{$key}", -override=>'1',-size=>"$isize",-maxlength=>100)),"\n";
}
}elsif($key =~ /int07/){
print $q->td({-class=>'element',-style=>"$txtstyle $set_style",-nowrap=>'1'},$q->textfield(-class=>'etxt',-style=>"$txtstyle",-name=>"col_$key",-default=>"$cttpos->{$id}->{$key}", -override=>'1',-size=>"$isize",-maxlength=>100),$but->selector("int08","40px","$cttpos->{$id}->{int08}",("0.00:%","1.00:€"))),"\n";
}elsif($key =~ /int04/){
print $q->td({-class=>'tdint',-nowrap=>"1"},"$gesamt €");
print $q->td({-class=>'tdint',-nowrap=>"1"},"$gesamt €"),"\n";
}elsif($key =~ /txt01/){
if($cttpos->{$id}->{int09} && $cttpos->{$id}->{$key} !~ /Manuell/){
$cttpos->{$id}->{$key} .= "\nManuell bearbeitet\n";
@ -290,7 +292,7 @@ EOF
my ($s_yy,$s_mo,$s_dd,$s_hh,$s_mi) = $lb->split_date($cttpos->{$id}->{start_time});
my ($e_yy,$e_mo,$e_dd,$e_hh,$e_mi) = $lb->split_date($cttpos->{$id}->{end_time});
print "<td class='element' style='$txtstyle $set_style;background-color: #ededed;$occupied_style;'\n>";
print "<td class='element' style='$txtstyle $set_style;background-color: #ededed;$occupied_style;'>\n";
print $q->textarea(-class=>'autos',-style=>"border: 1px solid #ededed;background-color: #ededed;",-name=>"col_$key",-default=>"$cttpos->{$id}->{$key}", -override=>'1',-rows=>"1",-cols=>65, -autofocus=>1),"<br />\n";
#if Traiff Nr.
@ -314,9 +316,9 @@ EOF
print "</td>\n";
}elsif($key =~ /txt/){
print $q->td({-class=>'element',-style=>"$txtstyle $set_style"},$q->textfield(-class=>'etxt',-style=>"$txtstyle",-name=>"col_$key",-default=>"$cttpos->{$id}->{$key}", -override=>'1',-size=>"$isize",-maxlength=>100),"\n");
print $q->td({-class=>'element',-style=>"$txtstyle $set_style"},$q->textfield(-class=>'etxt',-style=>"$txtstyle",-name=>"col_$key",-default=>"$cttpos->{$id}->{$key}", -override=>'1',-size=>"$isize",-maxlength=>100)),"\n";
}elsif($key =~ /int/){
print $q->td({-class=>'tdint',-nowrap=>"1"},"&nbsp;\n");
print $q->td({-class=>'tdint',-nowrap=>"1"},"&nbsp;"),"\n";
}
}
#end edit position
@ -337,13 +339,13 @@ EOF
if($cttpos->{$id}->{int26}){
$co2saving = "Einsparung</br>";
my $co2diff = $pri->co2calc($cttpos->{$id});
my $sprit_price = $pri->sprit2calc($cttpos->{$id});
#my $sprit_price = $pri->sprit2calc($cttpos->{$id});
$co2saving .= "$co2diff kg CO&sup2;<br />";
$co2saving .= "$sprit_price EUR<br />";
#$co2saving .= "$sprit_price EUR<br />";
$cttpos->{$id}->{int26} =~ s/\./,/;
$co2saving .= "bei $cttpos->{$id}->{int26} KM";
}
print $q->td({-class=>'tdint'},"$co2saving");
print $q->td({-class=>'tdint'},"$co2saving"),"\n";
}
#yes, int03=Menge on parts, int35=unit_price1 on rental
@ -431,9 +433,9 @@ EOF
}
print "</td>\n";
}elsif($key =~ /txt/){
print $q->td({-class=>'tdtxt'},"$cttpos->{$id}->{$key}");
print $q->td({-class=>'tdtxt'},"$cttpos->{$id}->{$key}"),"\n";
}elsif($key =~ /int/){
print $q->td({-class=>'tdint',-nowrap=>"1"},"&nbsp;\n");
print $q->td({-class=>'tdint',-nowrap=>"1"},"&nbsp;"),"\n";
}
}#end view position
@ -476,13 +478,11 @@ EOF
}
}
my $n="5";
my $m= 1 + $k - $n;
$m++;
my $cs = $tc - 3;
print "<tr>\n";
print "<td colspan='$m'><div style='font-size:0.81em;padding:0.3em 0em;border:0px;'>$payment_text</div></td>\n";
print "<td style='font-size:1em;' colspan='$n'>\n";
print "<td colspan='$cs'><div style='font-size:0.81em;padding:0.3em 0em;border:0px;'>$payment_text</div></td>\n";
print "<td style='font-size:1em;' colspan='3'>\n";
print $q->start_table({-class=>'list',-style=>'border-top:1px;border-style:solid;border-color:black;', -border=>'0', -width=>'100%',-align=>'center', -cellpadding=>'3', -cellspacing=>'0'}),"\n";
print $q->Tr("\n");
print $q->td("&nbsp;");
@ -510,16 +510,15 @@ EOF
print "</tr>";
print $q->end_table;
print $q->hidden(-name=>'owner', -override=>'1', -value=>"$users_dms->{u_id}");
print $q->hidden(-name=>'offset', -override=>'1', -value=>"$R::offset") if($R::offset);
print $q->hidden(-name=>'c_id4trans', -override=>'1', -value=>"$rel4tpl->{content_id}");
print $q->hidden(-name=>'tpl_id4trans', -override=>'1', -value=>"$node_meta->{tpl_id}");
print $q->hidden(-name=>'offset', -override=>'1', -value=>"$R::offset") if($R::offset);
print $q->hidden(-name=>'limit', -override=>'1', -value=>"$R::limit") if($R::limit);
print $q->hidden(-name=>'relids', -override=>'1', -value=>"$R::relids") if($R::relids);
print $q->hidden(-name=>'owner', -override=>'1', -value=>"$users_dms->{u_id}"),"\n";
print $q->hidden(-name=>'offset', -override=>'1', -value=>"$R::offset"),"\n" if($R::offset);
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);
$set_main_id=$rel4tpl->{main_id} if($rel4tpl->{main_id} && $rel4tpl->{main_id} > "300000");
print $q->hidden(-name=>'set_main_id', -value=>"$set_main_id", -override=>'1');
$set_main_id=$ctt->{main_id} if($ctt->{main_id} && $ctt->{main_id} > "300000");
print $q->hidden(-name=>'set_main_id', -value=>"$set_main_id", -override=>'1'),"\n";
if($users_dms->{int03} == 2){
@ -529,7 +528,7 @@ EOF
my $users_dms_primary = { u_id => 0 };
$users_dms_primary = $dbt->select_users($dbh_primary,$users_dms->{u_id},"and int03=2");
if($users_dms_primary->{u_id} && $users_dms_primary->{int03} == 2 && !$ctt->{close_time}){
if($users_dms_primary->{u_id} && $users_dms_primary->{int03} == 2){
my @_paymentstate = split(/\|/,$dbt->{shareedms_conf}->{payment_state});
push @_paymentstate, "";
my $kind_of_payment = "";
@ -545,14 +544,23 @@ EOF
}
$kind_of_payment = "$ctt->{state}" if($ctt->{state} && $ctt->{int01});
if($ctt->{state} && $ctt->{int01}){
$ctt->{int01} =~ s/\./,/;
my $style = "color:red;" if($ctt->{int01} ne $sum_paid);
my $opos = "";
$opos = "OPOS" if($ctt->{int14} && $ctt->{int14} > 0);
print $q->div({-style=>"padding:0.5em;font-size:0.81em;width:98%;text-align:right;"},"<span style='color:red;'>$opos</span> Buchung $vibuchen_mtime \"$ctt->{state}\" $ctt->{int01} €"),"\n";
}
my $send_invoice_checkbox = 1;
$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 Rechnung",""),
$but->singlesubmit1("set_state","buchen"),
$but->selector("state","250px",$kind_of_payment,@_paymentstate)),"\n";
if(!$ctt->{close_time}){
my $send_invoice_checkbox = 1;
$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";
}
}
#further payone capture are only allowed if OPOS && sequence && TXID is set
if($ctt->{int14} && $ctt->{int18} && $ctt->{txt16}){
@ -572,23 +580,14 @@ EOF
print $q->div({-style=>"padding:0.5em;font-size:0.81em;width:98%;text-align:right;"}, "$ctt->{txt30}"),"\n";
}elsif( -f "$varenv{pdf}/$praefix-$ctt->{ct_name}.pdf" ){
print $q->start_form(),"\n";
print $q->hidden(-name=>'offset', -override=>'1', -value=>"$R::offset") if($R::offset);
print $q->hidden(-name=>'limit', -override=>'1', -value=>"$R::limit") if($R::limit);
print $q->hidden(-name=>'relids', -override=>'1', -value=>"$R::relids") if($R::relids);
print $q->div({-style=>"padding:0.5em;font-size:0.81em;width:98%;text-align:right;"}, "eMail wurde nicht versandt! Rechnung eMail ", $but->singlesubmit1("ct_trans","send_invoice_again","send_invoice_again")),"\n" if($users_dms->{u_id} == $dbt->{copri_conf}->{superu_id});
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->div({-style=>"padding:0.5em;font-size:0.81em;width:98%;text-align:right;"}, "eMail wurde nicht versandt! $ctt->{txt00} eMail ", $but->singlesubmit1("ct_trans","send_invoice_again","send_invoice_again")),"\n" if($users_dms->{u_id} == $dbt->{copri_conf}->{superu_id});
print $q->end_form;
}
if($ctt->{state} && $ctt->{int01}){
$ctt->{int01} =~ s/\./,/;
my $style = "color:red;" if($ctt->{int01} ne $sum_paid);
my $opos = "";
$opos = "OPOS" if($ctt->{int14} && $ctt->{int14} > 0);
print $q->div({-style=>"padding:0.5em;font-size:0.81em;width:98%;text-align:right;"},"<span style='color:red;'>$opos</span> $vibuchen_mtime Gebucht $ctt->{int01} € \"$ctt->{state}\"") if($ctt->{state});
}
if( -f "$varenv{basedir}/pdfinvoice/$praefix-$ctt->{ct_name}.pdf"){
#print $q->div({-style=>"padding:0.5em;font-size:0.81em;width:98%;text-align:right;"}, "Download: ", $q->a({-href=>"$varenv{metahost}/pdf/$praefix-$ctt->{ct_name}.pdf", -target=>'_blank'},"$praefix-$ctt->{ct_name}.pdf"));
print $q->div({-style=>'padding:0.5em;font-size:0.81em;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;'}), "Rechnung $ctt->{ct_name}.pdf"),"\n";
print $q->div({-style=>'padding:0.5em;font-size:0.81em;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";
}
@ -598,8 +597,9 @@ EOF
print $q->div({-style=>"clear:both;padding:0.5em;font-size:0.81em;width:98%;text-align:right;color:green;"}, "Payone SEPA-Lastschrifteinzug war erfolgreich"),"\n";
}
$db->updater("contenttrans","c_id","$rel4tpl->{content_id}","txt20","$accounting_start - $accounting_end","","","","","no_time") if(!$int05 && $accounting_start && $accounting_end);
$db->updater("contenttrans","c_id","$rel4tpl->{content_id}","int15","$sum_preauth","","","","","no_time") if($sum_preauth || $sum_preauth == 0);
$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);
return "$line_count2";
}
1;