accounting and statistik adjustments

This commit is contained in:
ragu 2022-11-28 18:28:06 +01:00
parent e6c7010f28
commit 4435999ac2
10 changed files with 122 additions and 87 deletions

View file

@ -60,7 +60,7 @@ sub tpl(){
my $dbh_primary = $dbt->dbconnect_extern($dbt->{primary}->{sharee_primary}->{database}->{dbname});
my $users_dms_primary = { u_id => 0 };
$users_dms_primary = $dbt->select_users($dbh_primary,$users_dms->{u_id},"and int03=2");
$users_dms_primary = $dbt->select_users($dbh_primary,$users_dms->{u_id},"");
my $table = "contenttrans";
my $u_name = $q->escapeHTML("$R::u_name");
@ -458,7 +458,7 @@ sub tpl(){
$comment_view = "→ $comment" if($comment);
my $kunde = "$cttpos->{$pid}->{txt08}";
if($users_dms_primary->{u_id} && $users_dms_primary->{int03} == 2){
if($users_dms_primary->{u_id} && $users_dms->{u_id} && $users_dms->{int02} >= 1){
$kunde = $q->a({-class=>"linknav3",-style=>"$part_style",-href=>"/DMS/Kunden/?detail_search=1&s_c_id=$cttpos->{$pid}->{ca_id}",-title=>"Kunde im Kundenstamm"},"$cttpos->{$pid}->{txt08} ($cttpos->{$pid}->{ca_id})");#2021-05-24 saves kd name
}
@ -470,7 +470,7 @@ sub tpl(){
print $q->div({-style=>"float:left;margin-left:$c_left"}, "$i) $edit_pos $pos_id &rarr; <span style='$time_style'>$start_time $end_time</span> &rarr; $kunde &rarr; Start Station $start_station &rarr; End Station $end_station &rarr; Bike $bikenr $status $lock_state &rarr; $u_name/$u_name_end<br />$track_info $charge $comment_view"),"\n";
}
if($users_dms_primary->{u_id} && $users_dms_primary->{int03} == 2){
if($users_dms_primary->{u_id} && $users_dms->{u_id} && $users_dms->{int03} >= 1){
print $q->div({-style=>'float:left;margin-left:1em;'}, "&rarr; Faktura", $q->a({-class=>"linknav3",-style=>"$trans_style",-href=>"/DMS/Faktura?ct_trans=open\&c_id4trans=$c_id4trans\&tpl_id4trans=$tpl_id4trans\&kind_of_trans=Faktura\&owner=$users_dms->{owner}",-title=>"Faktura Terminal öffnen"},"\#$ct_name")),"\n" if($c_id4trans && $tpl_id4trans);
print $q->div({-style=>'float:left;margin-left:1em;'}, "$user_device"),"\n";
}

View file

@ -399,7 +399,7 @@ sub tpl(){
my $ctrel = {};
#only if permission read
if(($node_meta->{ct_table} eq "content" && $users_dms->{int01} >= 1) || ($node_meta->{ct_table} eq "contentadr" && $users_dms_primary->{u_id} && $users_dms_primary->{int02} >= 1 && $users_dms->{u_id} && $users_dms->{int02} >= 1) || ($node_meta->{ct_table} eq "contenttrans" && $users_dms_primary->{u_id} && $users_dms_primary->{int03} >= 1 && $users_dms->{u_id} && $users_dms->{int03} >= 1)){
if(($node_meta->{ct_table} eq "content" && $users_dms->{int01} >= 1) || ($node_meta->{ct_table} eq "contentadr" && $users_dms_primary->{u_id} && $users_dms->{u_id} && $users_dms->{int02} >= 1) || ($node_meta->{ct_table} eq "contenttrans" && $users_dms_primary->{u_id} && $users_dms->{u_id} && $users_dms->{int03} >= 1)){
my $c_id4trans = $R::c_id4trans || "";

View file

@ -213,19 +213,12 @@ EOF
}
}
}
#trying to save hashref
#if($R::detail_search && ref($searchref) eq "HASH"){
# store $searchref, $hashfile;
#}elsif($keycount > 0 && !$R::detail_search && -f $hashfile && !$R::col_sort && !$R::sort_updown){
# $searchref = {};
# $searchref = retrieve($hashfile);
#}
#print Dumper($searchref);
my $export = "";
my $todo = "";
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->{int02} >= 1) || ($node_meta->{ct_table} eq "contentpos" && $users_dms->{int01} >= 1) || ($node_meta->{ct_table} eq "contentuser" && $users_dms->{int08} >= 1)){
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)){
$ct4rel = $db->search_content3($searchref,$table,$dbt->{shareedms_conf}->{parent_id},$node_meta,$users_dms->{u_id},$lang,"$main_ids","$tpl_ids","","",$time,"",$scol,$users_dms->{sort_updown},$offset,$limit,$export,$todo,$ck4ex,"");
}else{
$return = "failure::Abbruch. Keine Zugriffsberechtigung";

View file

@ -98,9 +98,9 @@ sub tpl(){
($cttpos,$rows) = $dbt->collect_contenttrans($dbh,$ctt->{content_id});
#int9x are not in db
if($varenv{dbname} eq "sharee_sx"){
@tpl_order = ("c_id=ID","int01=Netto Erlös","state=Zahlungsart","int94=payone Disagio","int02=Summe Gutschrift");
@tpl_order = ("c_id=ID","int01=Netto Erlös","state=Zahlungsart","int94=Disagio","int02=Summe Gutschrift");
}else{
@tpl_order = ("c_id=ID","int01=Netto Erlös","state=Zahlungsart","int94=payone Disagio","int95=payone Transaktion","int96=payone Zahlungsmeldung","int97=payone Kreditkarte Zuordnung","int02=Summe Gutschrift");
@tpl_order = ("c_id=ID","int01=Netto Erlös","state=Zahlungsart","int94=Disagio","int95=Transaktion","int96=Zahlungsmeldung","int97=Kreditkarte Zuordnung","int02=Summe Gutschrift");
}
}
my $tplf = $dbt->get_tpl($dbh,201);#Kunden-Faktura, ex Firma
@ -127,10 +127,9 @@ sub tpl(){
print $q->start_form(-name=>'transposform'),"\n";
my $sum_operatorcredit=0;
my $sum_payonecapture=0;
my $sum_parts19=0;
my $sum_netto=0;
my $sum_brutto=0;
my $sum_all=0;
my $diff19 = 100 + 19;
my $sum_umst19=0;
my $i=0;
my $accounting_start = "";
@ -140,7 +139,7 @@ sub tpl(){
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%)
$sum_netto += $oac->{int100};#Operator invoice (TeilRad Gebühren netto)
$sum_all += $oac->{int99};#capture brutto
$oac->{int01} = sprintf('%.2f', $oac->{int01});#capture netto
@ -192,26 +191,28 @@ sub tpl(){
}
}#foreach end
if($sum_parts19 && $sum_parts19 != 0){
$sum_umst19 = $sum_parts19 / $diff19 * 19;
$sum_umst19 = $pri->round($sum_umst19);
#sum int100 netto
if($sum_netto && $sum_netto != 0){
$sum_brutto = $sum_netto * 1.19;
$sum_netto = $pri->round($sum_netto);
$sum_brutto = $pri->round($sum_brutto);
$sum_umst19 = $sum_brutto - $sum_netto;
}
my $sum_netto19 = $sum_parts19 - $sum_umst19;
$sum_netto19 = sprintf('%.2f', $sum_netto19);
$sum_netto19 =~ s/\./,/;
$sum_operatorcredit = $pri->round($sum_operatorcredit);
my $total_operatorcredit = $sum_operatorcredit - $sum_brutto;
my $sum_paid = $sum_brutto;
my $sum_paid = $sum_parts19;
$sum_paid = $pri->round($sum_paid);
$sum_paid = sprintf('%.2f', $sum_paid);
$sum_paid =~ s/\./,/;
$sum_parts19 = sprintf('%.2f', $sum_parts19);
$sum_netto = sprintf('%.2f', $sum_netto);
$sum_netto =~ s/\./,/;
$sum_brutto = sprintf('%.2f', $sum_brutto);
$sum_brutto =~ s/\./,/;
$sum_umst19 = sprintf('%.2f', $sum_umst19);
$sum_umst19 =~ s/\./,/;
$sum_operatorcredit = $pri->round($sum_operatorcredit);
$sum_operatorcredit = sprintf('%.2f', $sum_operatorcredit);
$sum_operatorcredit =~ s/\./,/;
$total_operatorcredit = sprintf('%.2f', $total_operatorcredit);
$total_operatorcredit =~ s/\./,/;
$sum_all = sprintf('%.2f', $sum_all);
$sum_all =~ s/\./,/;
@ -225,48 +226,63 @@ sub tpl(){
$ctf->{$key} = $lb->newline($ctf->{$key},"","");
$ctt->{state} =~ s/\(payone.*//;
if($des =~ /$ctt->{state}/){
if($sum_parts19 < 0){
$payment_text = "$ctf->{txt58}";
$payment_text = "($key) " if($users_dms->{u_id} eq $varenv{superu_id});
if($sum_netto < 0){
$payment_text .= "$ctf->{txt58}";
}else{
$payment_text = "$ctf->{$key}";
$payment_text .= "$ctf->{$key}";
}
}
}
}
my $cs = $tc - 3;
my $sc = 2;
$sc = 1 if($ctt->{template_id} != 208);
my $pt = $tc - $sc;
print "<tr>\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='border:0px solid black;' colspan='$pt'><div style='font-size:0.81em;padding:0.3em 0em;'>$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 "<td style='border:0px solid black;max-width:200px;' colspan='$sc'>\n";
print $q->start_table({-class=>'list',-style=>'', -border=>'0', -width=>'100%',-align=>'right', -cellpadding=>'3', -cellspacing=>'0'}),"\n";
print $q->Tr("\n");
print $q->td("&nbsp;");
#Summe Betreiber Rechnung
#Sum operator invoice
if($ctt->{template_id} != 208){#not equal Abrechnung
print $q->Tr("\n"); $line_count2++;
print $q->td({-class=>'tdint',-colspan=>2},"Nettobetrag");
print $q->td({-class=>'tdint',-nowrap=>"1"},"$sum_netto19 €");
print $q->td({-class=>'tdint',-colspan=>1},"Nettobetrag");
print $q->td({-class=>'tdint',-nowrap=>"1"},"$sum_netto €");
if($sum_netto19 != 0){
if($sum_netto != 0){
print $q->Tr("\n");$line_count2++;
print $q->td({-class=>'tdint',-colspan=>2,-nowrap=>"1"},"19% UmSt auf $sum_netto19 €");
print $q->td({-class=>'tdint',-colspan=>1,-nowrap=>"1"},"19% UmSt auf $sum_netto €");
print $q->td({-class=>'tdint',-nowrap=>"1"},"$sum_umst19 €");
}
print $q->Tr("\n");$line_count2++;
print $q->td({-class=>'tdint',-colspan=>1,-style=>'color:silver;'},"(Einzüge brutto $sum_all)");
print $q->td({-class=>'tdsum',-colspan=>1},"Entgeld TeilRad GmbH");
print $q->td({-class=>'tdint',-nowrap=>"1"},"$sum_paid €");
print $q->td({-class=>'tdint',-nowrap=>"1"},"$sum_brutto €");
#print $q->Tr("\n");$line_count2++;
#print $q->td({-class=>'tdint',-colspan=>1,-style=>'color:silver;'},"(pay Einzüge brutto)");
#print $q->td({-class=>'tdint',-nowrap=>"1",-style=>'color:silver;'},"$sum_all €");
}
#Summe Betreiber Abrechnung (Gutschrift)
else{
print $q->Tr("\n");$line_count2++;
print $q->td({-class=>'tdint',-colspan=>1,-style=>'color:silver;'},"(Einzüge brutto $sum_all)");
#print $q->td({-class=>'tdint',-colspan=>1,-style=>'color:silver;'},"(Einzüge brutto $sum_all)");
print $q->td({-class=>'tdsum',-colspan=>1},"Summe");
print $q->td({-class=>'tdint',-nowrap=>"1"},"$sum_operatorcredit €");
print $q->Tr("\n");$line_count2++;
print $q->td({-class=>'tdsum',-colspan=>1},"Entgeld TeilRad GmbH");
print $q->td({-class=>'tdint',-nowrap=>"1"},"- $sum_brutto €");
print $q->Tr("\n");$line_count2++;
print $q->td({-class=>'tdsum',-colspan=>1},"Auszahlungsbetrag");
print $q->td({-class=>'tdint',-nowrap=>"1"},"$total_operatorcredit €");
}
print $q->end_table;
@ -297,8 +313,10 @@ sub tpl(){
if($users_dms_primary->{u_id} && $users_dms_primary->{int03} == 2){
my @_paymentstate = ("");
my $kind_of_payment = "";
#we need it for both
print $q->hidden(-name=>'sum_operatorcredit', -override=>'1',-value=>"$sum_operatorcredit");
print $q->hidden(-name=>'sum_paid', -override=>'1',-value=>"$sum_paid");
if($ctt->{template_id} != 208){#not equal Abrechnung
print $q->hidden(-name=>'sum_paid', -override=>'1',-value=>"$sum_paid");
push @_paymentstate, "Entgeld TeilRad GmbH";
if($ctt->{state} && $ctt->{int01}){
$kind_of_payment = "$ctt->{state}";
@ -310,8 +328,7 @@ sub tpl(){
}
}
else{
print $q->hidden(-name=>'sum_operatorcredit', -override=>'1',-value=>"$sum_operatorcredit");
push @_paymentstate, "Gutschrift";
push @_paymentstate, "Betreiber Abrechnung";
if($ctt->{state} && $ctt->{int02}){
$kind_of_payment = "$ctt->{state}";
$ctt->{int02} =~ s/\./,/;
@ -355,6 +372,6 @@ sub tpl(){
$db->updater("contenttrans","c_id","$ctt->{content_id}","txt20","$accounting_start - $accounting_end","","","","","no_time") if(!$int05 && $accounting_start && $accounting_end);
return "$line_count2";
return $line_count2;
}
1;