last Verkaufsjournal fix

This commit is contained in:
ragu 2022-08-11 11:42:24 +02:00
parent b81e12c873
commit 2d822e3a83
5 changed files with 52 additions and 59 deletions

View file

@ -1907,6 +1907,7 @@ sub bikes_available(){
my $varenv = shift; my $varenv = shift;
my $auth = shift; my $auth = shift;
my $authed = 0; my $authed = 0;
my $lang = "de";
my $station = $q->escapeHTML($q->param('station')) || ""; my $station = $q->escapeHTML($q->param('station')) || "";
my $station_id = ""; my $station_id = "";
@ -2047,27 +2048,27 @@ sub bikes_available(){
$return->{$id}->{rental_description}->{reserve_timerange} = "30" if($record->{$id}->{int11} == 3);#sig timeout time $return->{$id}->{rental_description}->{reserve_timerange} = "30" if($record->{$id}->{int11} == 3);#sig timeout time
$return->{$id}->{rental_description}->{rental_info}->{1} = ["Tracking","Ich stimme der Speicherung (Tracking) meiner Fahrstrecke zwecks wissenschaftlicher Auswertung und Berechnung der CO2-Einsparung zu!"] if($record->{$id}->{int25}); $return->{$id}->{rental_description}->{rental_info}->{1} = ["Tracking","Ich stimme der Speicherung (Tracking) meiner Fahrstrecke zwecks wissenschaftlicher Auswertung und Berechnung der CO2-Einsparung zu!"] if($record->{$id}->{int25});
$return->{$id}->{rental_description}->{rental_info}->{2} = ["AAFahrten","Dieses E-Lastenrad darf nur an der Station zurück gegeben werden an der es ausgeliehen wurde!"] if($record_st->{$record->{$id}->{int04}}->{int42}); $return->{$id}->{rental_description}->{rental_info}->{2} = ["AAFahrten","Dieses E-Lastenrad darf nur an der Station zurück gegeben werden an der es ausgeliehen wurde!"] if($record_st->{$record->{$id}->{int04}}->{int42});
$return->{$id}->{rental_description}->{rental_info}->{3} = ["Lowcharge","Die Fahrrad Akkukapazität war zuletzt niedrig. Bitte überprüfen sie vor der Fahrt die Ladung am Fahrraddisplay. Die Miete kann innerhalb 5 Minuten kostenlos abgebrochen werden."] if($record->{$id}->{energy_id} && (!$record->{$id}->{int19} || $record->{$id}->{int19} < 20)); #$return->{$id}->{rental_description}->{rental_info}->{3} = ["Lowcharge","Die Akkukapazität war zuletzt niedrig. Bitte überprüfen sie vor der Fahrt die Ladung am Fahrraddisplay. Die Miete kann innerhalb 5 Minuten kostenlos abgebrochen werden."] if($record->{$id}->{energy_id} && (!$record->{$id}->{int19} || $record->{$id}->{int19} < 20));
my $i = 0; my $i = 0;
foreach my $td (sort keys (%$td_template)){ foreach my $td (sort keys (%$td_template)){
my $time_unit = ""; my $time_unit = "";
if($td_template->{$td}->{int35} && $tariff_content->{$tid}->{int35} && $tariff_content->{$tid}->{int35} > 0){ if($td_template->{$td}->{int35} && $tariff_content->{$tid}->{int35} && $tariff_content->{$tid}->{int35} > 0){
$tariff_content->{$tid}->{int35} =~ s/\./,/; $tariff_content->{$tid}->{int35} =~ s/\./,/ if($lang eq "de");
$time_unit = $dbt->time_format($tariff_content->{$tid}->{time01}); $time_unit = $dbt->time_format($tariff_content->{$tid}->{time01});
$return->{$id}->{rental_description}->{tarif_elements}->{$td} = ["$td_template->{$td}->{int35}","$tariff_content->{$tid}->{int35} € / $time_unit"]; $return->{$id}->{rental_description}->{tarif_elements}->{$td} = ["$td_template->{$td}->{int35}","$tariff_content->{$tid}->{int35} € / $time_unit"];
}elsif($td_template->{$td}->{int36} && $tariff_content->{$tid}->{int36} && $tariff_content->{$tid}->{int36} > 0){ }elsif($td_template->{$td}->{int36} && $tariff_content->{$tid}->{int36} && $tariff_content->{$tid}->{int36} > 0){
$tariff_content->{$tid}->{int36} =~ s/\./,/; $tariff_content->{$tid}->{int36} =~ s/\./,/ if($lang eq "de");
$time_unit = $dbt->time_format($tariff_content->{$tid}->{time01}); $time_unit = $dbt->time_format($tariff_content->{$tid}->{time01});
$return->{$id}->{rental_description}->{tarif_elements}->{$td} = ["$td_template->{$td}->{int36}", "$tariff_content->{$tid}->{int36} € / $time_unit"]; $return->{$id}->{rental_description}->{tarif_elements}->{$td} = ["$td_template->{$td}->{int36}", "$tariff_content->{$tid}->{int36} € / $time_unit"];
}elsif($td_template->{$td}->{int17} && $tariff_content->{$tid}->{int17} && $tariff_content->{$tid}->{int17} > 0){ }elsif($td_template->{$td}->{int17} && $tariff_content->{$tid}->{int17} && $tariff_content->{$tid}->{int17} > 0){
#$tariff_content->{$tid}->{int17} =~ s/\./,/; $tariff_content->{$tid}->{int17} =~ s/\./,/ if($lang eq "de");
$return->{$id}->{rental_description}->{tarif_elements}->{$td} = ["$td_template->{$td}->{int17}","$tariff_content->{$tid}->{int17} € / Tag"]; $return->{$id}->{rental_description}->{tarif_elements}->{$td} = ["$td_template->{$td}->{int17}","$tariff_content->{$tid}->{int17} € / Tag"];
}elsif($td_template->{$td}->{time02} && $tariff_content->{$tid}->{time02} =~ /[1-9]/){ }elsif($td_template->{$td}->{time02} && $tariff_content->{$tid}->{time02} =~ /[1-9]/){
$time_unit = $dbt->time_format($tariff_content->{$tid}->{time02}); $time_unit = $dbt->time_format($tariff_content->{$tid}->{time02});
$return->{$id}->{rental_description}->{tarif_elements}->{$td} = ["$td_template->{$td}->{time02}","$time_unit / Tag"]; $return->{$id}->{rental_description}->{tarif_elements}->{$td} = ["$td_template->{$td}->{time02}","$time_unit / Tag"];
} }
}#end new rental_description }#end new rental_description
} }

View file

@ -65,6 +65,7 @@ sub sig_available {
my $response_in = {}; my $response_in = {};
my $dbh = ""; my $dbh = "";
my $owner = 169; my $owner = 169;
my $lang = "de";
my $authed = 0; my $authed = 0;
my $ctpos = { c_id => 0 }; my $ctpos = { c_id => 0 };
@ -264,15 +265,15 @@ sub sig_available {
foreach my $td (sort keys (%$td_template)){ foreach my $td (sort keys (%$td_template)){
my $time_unit = ""; my $time_unit = "";
if($td_template->{$td}->{int35} && $tariff_content->{$tid}->{int35} && $tariff_content->{$tid}->{int35} > 0){ if($td_template->{$td}->{int35} && $tariff_content->{$tid}->{int35} && $tariff_content->{$tid}->{int35} > 0){
$tariff_content->{$tid}->{int35} =~ s/\./,/; $tariff_content->{$tid}->{int35} =~ s/\./,/ if($lang eq "de");
$time_unit = $dbt->time_format($tariff_content->{$tid}->{time01}); $time_unit = $dbt->time_format($tariff_content->{$tid}->{time01});
$response_out->{$bike}->{rental_description}->{tarif_elements}->{$td} = ["$td_template->{$td}->{int35}","$tariff_content->{$tid}->{int35} € / $time_unit"]; $response_out->{$bike}->{rental_description}->{tarif_elements}->{$td} = ["$td_template->{$td}->{int35}","$tariff_content->{$tid}->{int35} € / $time_unit"];
}elsif($td_template->{$td}->{int36} && $tariff_content->{$tid}->{int36} && $tariff_content->{$tid}->{int36} > 0){ }elsif($td_template->{$td}->{int36} && $tariff_content->{$tid}->{int36} && $tariff_content->{$tid}->{int36} > 0){
$tariff_content->{$tid}->{int36} =~ s/\./,/; $tariff_content->{$tid}->{int36} =~ s/\./,/ if($lang eq "de");
$time_unit = $dbt->time_format($tariff_content->{$tid}->{time01}); $time_unit = $dbt->time_format($tariff_content->{$tid}->{time01});
$response_out->{$bike}->{rental_description}->{tarif_elements}->{$td} = ["$td_template->{$td}->{int36}", "$tariff_content->{$tid}->{int36} € / $time_unit"]; $response_out->{$bike}->{rental_description}->{tarif_elements}->{$td} = ["$td_template->{$td}->{int36}", "$tariff_content->{$tid}->{int36} € / $time_unit"];
}elsif($td_template->{$td}->{int17} && $tariff_content->{$tid}->{int17} && $tariff_content->{$tid}->{int17} > 0){ }elsif($td_template->{$td}->{int17} && $tariff_content->{$tid}->{int17} && $tariff_content->{$tid}->{int17} > 0){
$tariff_content->{$tid}->{int17} =~ s/\./,/; $tariff_content->{$tid}->{int17} =~ s/\./,/ if($lang eq "de");
$response_out->{$bike}->{rental_description}->{tarif_elements}->{$td} = ["$td_template->{$td}->{int17}","$tariff_content->{$tid}->{int17} € / Tag"]; $response_out->{$bike}->{rental_description}->{tarif_elements}->{$td} = ["$td_template->{$td}->{int17}","$tariff_content->{$tid}->{int17} € / Tag"];
}elsif($td_template->{$td}->{time02} && $tariff_content->{$tid}->{time02} =~ /[1-9]/){ }elsif($td_template->{$td}->{time02} && $tariff_content->{$tid}->{time02} =~ /[1-9]/){
$time_unit = $dbt->time_format($tariff_content->{$tid}->{time02}); $time_unit = $dbt->time_format($tariff_content->{$tid}->{time02});

View file

@ -789,7 +789,10 @@ sub fetch_tablerecord(){
} }
} }
$where .= " order by end_time DESC" if($fetch->{table} eq "contenttranspos");#prio data with newest end_time #prio data with newest end_time
$where .= " order by end_time DESC" if($fetch->{table} eq "contenttranspos");
$where .= " order by $fetch->{order} DESC" if($fetch->{order});
my $sql = "SELECT * FROM $fetch->{table} $where"; my $sql = "SELECT * FROM $fetch->{table} $where";
my $sth = $dbh->prepare($sql); my $sth = $dbh->prepare($sql);
my $rc = $sth->execute(); my $rc = $sth->execute();

View file

@ -283,6 +283,7 @@ sub fetch_rentalfeed {
my $varenv = shift; my $varenv = shift;
my $ctpos = shift; my $ctpos = shift;
my $returned_counting = shift || {}; my $returned_counting = shift || {};
my $lang = "de";
my $td_template = $dbt->rental_description_template(); my $td_template = $dbt->rental_description_template();
my $bike_group = "$dbt->{operator}->{$varenv->{dbname}}->{oprefix}$ctpos->{int29}" || ""; my $bike_group = "$dbt->{operator}->{$varenv->{dbname}}->{oprefix}$ctpos->{int29}" || "";
@ -353,15 +354,15 @@ sub fetch_rentalfeed {
foreach my $td (sort keys (%$td_template)){ foreach my $td (sort keys (%$td_template)){
my $time_unit = ""; my $time_unit = "";
if($td_template->{$td}->{int35} && $ctpos->{int35} && $ctpos->{int35} > 0){ if($td_template->{$td}->{int35} && $ctpos->{int35} && $ctpos->{int35} > 0){
$ctpos->{int35} =~ s/\./,/; $ctpos->{int35} =~ s/\./,/ if($lang eq "de");
$time_unit = $dbt->time_format($ctpos->{time01}); $time_unit = $dbt->time_format($ctpos->{time01});
$return->{rental_description}->{tarif_elements}->{$td} = ["$td_template->{$td}->{int35}","$ctpos->{int35} € / $time_unit"]; $return->{rental_description}->{tarif_elements}->{$td} = ["$td_template->{$td}->{int35}","$ctpos->{int35} € / $time_unit"];
}elsif($td_template->{$td}->{int36} && $ctpos->{int36} && $ctpos->{int36} > 0){ }elsif($td_template->{$td}->{int36} && $ctpos->{int36} && $ctpos->{int36} > 0){
$ctpos->{int36} =~ s/\./,/; $ctpos->{int36} =~ s/\./,/ if($lang eq "de");
$time_unit = $dbt->time_format($ctpos->{time01}); $time_unit = $dbt->time_format($ctpos->{time01});
$return->{rental_description}->{tarif_elements}->{$td} = ["$td_template->{$td}->{int36}", "$ctpos->{int36} € / $time_unit"]; $return->{rental_description}->{tarif_elements}->{$td} = ["$td_template->{$td}->{int36}", "$ctpos->{int36} € / $time_unit"];
}elsif($td_template->{$td}->{int17} && $ctpos->{int17} && $ctpos->{int17} > 0){ }elsif($td_template->{$td}->{int17} && $ctpos->{int17} && $ctpos->{int17} > 0){
$ctpos->{int17} =~ s/\./,/; $ctpos->{int17} =~ s/\./,/ if($lang eq "de");
$return->{rental_description}->{tarif_elements}->{$td} = ["$td_template->{$td}->{int17}","$ctpos->{int17} € / Tag"]; $return->{rental_description}->{tarif_elements}->{$td} = ["$td_template->{$td}->{int17}","$ctpos->{int17} € / Tag"];
}elsif($td_template->{$td}->{time02} && $ctpos->{time02} =~ /[1-9]/){ }elsif($td_template->{$td}->{time02} && $ctpos->{time02} =~ /[1-9]/){
$time_unit = $dbt->time_format($ctpos->{time02}); $time_unit = $dbt->time_format($ctpos->{time02});
@ -370,7 +371,7 @@ sub fetch_rentalfeed {
$time_unit = $dbt->time_format($returned_counting->{real_clock}); $time_unit = $dbt->time_format($returned_counting->{real_clock});
$return->{rental_description}->{tarif_elements}->{$td} = ["$td_template->{$td}->{xduration}","$time_unit"]; $return->{rental_description}->{tarif_elements}->{$td} = ["$td_template->{$td}->{xduration}","$time_unit"];
}elsif($td_template->{$td}->{xprice} && $returned_counting->{total_price} && $returned_counting->{total_price} > 0){ }elsif($td_template->{$td}->{xprice} && $returned_counting->{total_price} && $returned_counting->{total_price} > 0){
$returned_counting->{total_price} =~ s/\./,/; $returned_counting->{total_price} =~ s/\./,/ if($lang eq "de");
$return->{rental_description}->{tarif_elements}->{$td} = ["$td_template->{$td}->{xprice}","$returned_counting->{total_price} €"]; $return->{rental_description}->{tarif_elements}->{$td} = ["$td_template->{$td}->{xprice}","$returned_counting->{total_price} €"];
} }
}#end new rental_description }#end new rental_description

View file

@ -198,9 +198,6 @@ sub tpl(){
#get Firma #get Firma
my $ctf = $db->get_content1("contentuser","$dbt->{sharedms_conf}->{parent_id}"); my $ctf = $db->get_content1("contentuser","$dbt->{sharedms_conf}->{parent_id}");
#get Benutzer
my $ctb = $db->get_content1("contentuser","$users_dms->{owner}");
my ($edit,$new_key,$copy_key,$save_key,$delete_key,$c_id4csv); my ($edit,$new_key,$copy_key,$save_key,$delete_key,$c_id4csv);
my $ct4rel = {}; my $ct4rel = {};
@ -253,7 +250,7 @@ sub tpl(){
$limit=10000; $limit=10000;
} }
if(!$v_journal && !$R::detail_search && -f $hashfile && ($path =~ /letzte Suche/ || ($limit > $varenv{limit} && !$ctb->{int04}))){ if(!$v_journal && !$R::detail_search && -f $hashfile && ($path =~ /letzte Suche/ || ($limit > $varenv{limit}))){
$R::todo="Filter"; $R::todo="Filter";
$message .= ">>> es wurden die letzten Suchparameter oder Filter geladen <<<"; $message .= ">>> es wurden die letzten Suchparameter oder Filter geladen <<<";
$offset=0; $offset=0;
@ -332,7 +329,7 @@ sub tpl(){
#mandanten-modul abhängige rekursive suche #mandanten-modul abhängige rekursive suche
my $main_ids = ""; my $main_ids = "";
if($v_journal && $v_journal =~ /Verleihjournal|Verkaufsjournal/){ if($v_journal && $v_journal =~ /Verkaufsjournal/){
$main_ids = $dbt->{shareedms_conf}->{invoicejournal}; $main_ids = $dbt->{shareedms_conf}->{invoicejournal};
$tplids = 209; $tplids = 209;
}else{ }else{
@ -366,11 +363,8 @@ sub tpl(){
}else{ }else{
$lb->failure("Fehler! Es fehlen wichtige Einstellungen. ....journal-ID!"); $lb->failure("Fehler! Es fehlen wichtige Einstellungen. ....journal-ID!");
} }
my $kt_sum=0; my $ct_ids = "";
my $ct_name_set1; my $last_ab = {};
my $ct_name_set2;
my $ct_ids;
my $last_ab;
if($R::detail_search && $R::detail_search eq "suchen"){ if($R::detail_search && $R::detail_search eq "suchen"){
$offset = 0; $offset = 0;
@ -451,30 +445,27 @@ sub tpl(){
#trying to save hashref #trying to save hashref
if(!$v_journal && $R::detail_search && ref($searchref) eq "HASH"){ if(!$v_journal && $R::detail_search && ref($searchref) eq "HASH"){
store $searchref, $hashfile; store $searchref, $hashfile;
}elsif(!$v_journal && !$R::detail_search && !$ctb->{int04} && -f $hashfile && ($path =~ /letzte Suche/ || $limit > $varenv{limit})){ }elsif(!$v_journal && !$R::detail_search && -f $hashfile && ($path =~ /letzte Suche/ || $limit > $varenv{limit})){
$searchref = {}; $searchref = {};
$searchref = retrieve($hashfile); $searchref = retrieve($hashfile);
} }
#print Dumper($searchref);
#Because of pre counting sum_pos #counting sum_pos
if($node_meta->{node_name} eq "Faktura"){ #Verkaufsjournal
if($v_journal && (!$R::detail_search || $R::s_start_mtime && $R::s_start_mtime =~ /letzt/)){ if($node_meta->{tpl_id} == 209 && $v_journal && !$R::detail_search){
my $xtime = "date \'$today\' + integer \'7\'";#just time my $pref_209 = {
#$last_ab = $db->get_content6("contenttrans","state","Kassenbestand","int09","$dbt->{shareedms_conf}->{parent_id}","int12","$j_exist->{main_id}","close_time","$xtime",""); table => "contenttrans",
$last_ab = $db->get_content6("contenttrans","state","Kassenbestand","","","","","close_time","$xtime",""); fetch => "one",
} order => "int11",
# state => "Tagesabschluss",
my $v_journalparts = $v_journal . "_parts"; };
$ct4rel_parts = $db->search_content3($searchref,$table,$dbt->{shareedms_conf}->{parent_id},$node_meta,$users_dms->{u_id},$lang,"$main_ids","$tplids","$ct_ids",$v_journalparts,$time,$R::s_kontext,$scol,$users_dms->{sort_updown},$offset,$limit,$export,$R::todo,$ck4ex,$opos); $last_ab = $dbt->fetch_tablerecord($dbh,$pref_209);
$searchref->{int11} = $last_ab->{int11} if($last_ab->{int11});
#collect invoice ids in kontext of parts
foreach my $cp_id (keys (%$ct4rel_parts)){
$ct_ids .= "$ct4rel_parts->{$cp_id}->{ct_id}," if($R::detail_search && ($R::s_kontext && $R::s_kontext eq "Waren" || $export eq "FiBu"));
}
} }
#print Dumper($last_ab->{int11});
#reload sig bikes and stations states #reload sig bikes and stations states
#$bw->log("Liste3 condition",$node_meta,""); #$bw->log("Liste3 condition",$node_meta,"");
@ -512,16 +503,12 @@ sub tpl(){
} }
print $q->div({-style=>'background-color:silver;height:10px;'},"&nbsp;"),"\n"; print $q->div({-style=>'background-color:silver;height:10px;'},"&nbsp;"),"\n";
my $hstyle = "border-right: solid thin gray;border-bottom: solid thin gray;"; my $hstyle = "border-right: solid thin gray;border-bottom: solid thin gray;";
if($v_journal && $v_journal =~ /journal/){ if($v_journal && $v_journal =~ /journal/){
my ($a_check,$b_check,$c_check,$d_check,$f_check,$g_check); print $q->hidden(-name=>'s_kontext', -value=>"Beleg"),"\n";
$a_check = "1" if($R::s_kontext && $R::s_kontext eq "Waren"); #my ($a_check,$b_check,$c_check,$d_check,$f_check,$g_check);
$b_check = "1" if($R::s_kontext && $R::s_kontext eq "Beleg" || !$R::s_kontext); #$a_check = "1" if($R::s_kontext && $R::s_kontext eq "Waren");
my @_s_time_defaults = ("0,manuelle Eingabe in \"bearbeitet\"","7,1 Woche","14,2 Wochen","28,4 Wochen","365,1 Jahr"); #$b_check = "1" if($R::s_kontext && $R::s_kontext eq "Beleg" || !$R::s_kontext);
#print $q->div({-style=>'float:left;background-color:silver;'},"&nbsp;<b>Suchzeitraum:</b> ",$but->selector("selected_start_mtime","130px","$R::selected_start_mtime",@_s_time_defaults));
print "<div style='background-color:silver;padding:0 0.5em;$hstyle'>\n";
print $q->span("<b>Suchkontext:</b> ",$but->radiobox("Beleg","s_kontext","$b_check"),"$node_meta->{node_name}/Kunde");
print $q->span($but->radiobox("Waren","s_kontext","$a_check"),"Waren/FiBu");
print "</div>\n";
} }
print $q->hidden(-name=>'mandant_main_id', -value=>"$dbt->{shareedms_conf}->{parent_id}"),"\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"; print $q->hidden(-name=>'tpl_id4trans', -value=>"$node_meta->{tpl_id}"),"\n";