\n" . str_replace("
\n", "\n", str_replace(";", "", $csv_txt)) . "\n\n"; $content .= str_replace(">#aa", " bgcolor=\"#DDDDDD\">", str_replace(">#ab", " bgcolor=\"#EEEEEE\">", str_replace(">#ba", " bgcolor=\"#BBBBFF\">", str_replace(">#bb", " bgcolor=\"#CCCCFF\">", str_replace(">#cc", " bgcolor=\"#DDBBBB\">", str_replace(">#cd", " bgcolor=\"#DDCCCC\">", str_replace(">#dc", " bgcolor=\"#FF9999\">", str_replace(">#dd", " bgcolor=\"#FFAAAA\">", $csv_txt)))))))); function get_payments($jbpc_id, $jb_export_time, $f_payment_select, $f_min_date, $f_max_date, /* $cs_ids_related, */ $csc_ids_related) { global $db, $f_datetype; $modeArr = array( 0 => "bar", 1 => "EC-PIN", 2 => "EC-Last", 10 => "Family", 11 => "Business", 15 => "Service", 16 => "LCD happy", 17 => "LCD sad", 18 => "OS happy", 19 => "OS sad", 20 => "Rechnung an IKEA" ); $cs_id_relatedArr = array( "3534" => "LuBu", "3540" => "SiFi", "38252" => "LuBu", "38253" => "SiFi", "1" => "Schnelsen", "2" => "Moorfleet", "17093" => "Altona", "72470" => "Schnelsen", "72471" => "Moorfleet", "72185" => "Altona" ); $csc_id_relatedArr = array( "3506" => "LuBu", "3512" => "SiFi", // "38172" => "LuBu/SiFi", "1" => "Schnelsen", "2" => "Moorfleet", "17051" => "Altona" ); $cC = "#dc"; $cC2 = "#dd"; // if ($colCnt % 2 == 0) : $cC = "#cc"; $cC2 = "#cd"; endif; // if ($colCnt++ % 2 == 1) : $cC = "#dc"; $cC2 = "#dd"; endif; $ret_val = $cC . ($f_payment_select == "1" || $jbpc_id != "" ? "Sammelnr." : "Bemerkung") . ";$cC2" . "Abrechnung" . ";$cC" . "Export" . ";$cC2" . "Zahlart" . ";$cC" . "Markt" . ";$cC2" . "Ordernummer" . ";$cC" . "Auftragsnr." . ";$cC2" . "Zusatz zu" . ";$cC" . "Dispo-Info" . ";$cC2" . "Preis" . ";$cC" . "Lagerk." . ";$cC2" . "Ausführung" . ";$cC" . "Erledigung" . ";$cC2" . "Status" . ";$cC" . "unfertig" . ";$cC2" . "Storno" . ";$cC" . "Fahrer" . ";$cC2" . "Fuhrlohn" . ";$cC" . "Export" . ";$cC2" . "BSG" . "
\n"; $where_clause2 = ""; $from_clause = ""; $field_clause = ""; // Parameter-Auswertung if ($jbpc_id != "") { // Sammelnummer: Alle unter dieser Sammelnummer abgerechneten Aufträge finden $where_clause = "jbpc_id = $jbpc_id"; } elseif ($jb_export_time != "") { // Exportzeitstempel gesetzt: Alle Aufträge mit diesem Fuhrlohnexport-Zeitstempel finden $jbpc_ids = ""; $sql_query = "SELECT DISTINCT jbpc_id FROM jobpayment, job WHERE jobpayment.jb_id = job.jb_id AND LEFT(jb_export_time, 10) = '" . substr($jb_export_time, 0, 10) . "' AND csc_id_related IN ($csc_ids_related)"; $res1 = mysql_query($sql_query) or die ($sql_query . ": " . mysql_error()); while ($row1 = mysql_fetch_array($res1, MYSQL_ASSOC)): $jbpc_ids .= "," . $row1["jbpc_id"]; endwhile; mysql_free_result($res1); if ($jbpc_ids != "") { $where_clause = "jbpc_id IN (" . substr($jbpc_ids, 1) . ")"; $where_clause2 = " AND LEFT(jb_export_time, 10) = '" . substr($jb_export_time, 0, 10) . "'"; } } elseif ($f_payment_select == "2" || $f_payment_select == "3" || $f_payment_select == "4" || $f_payment_select == "5") { $where_clause = "jbpc_id = 0"; $jbpc_id = "0"; // Sammelnummer "0": Alle noch abzurechnenden Aufträge finden $from_clause = ", genericdatacontainer AS gdc1"; $where_clause2 = " AND job.jb_id = gdc1.gdc_obj_id AND gdc1.gdc_gen_fieldname = 'acquisitiontime'" . " AND (jb_storno IS NULL OR jb_storno = 0) " . " AND (jobpayment.jbpc_id IS NULL OR jobpayment.jbpc_id = 0)" . " AND (jb_ordertime >= '" . $f_min_date . "' AND jb_ordertime <= '" . $f_max_date . "' AND NOT (job.jb_id IN (315462, 322139, 321777, 319985, 320185, 320946, 316291, 321335, 317036, 323325, 320208)))" . " AND csc_id_related IN ($csc_ids_related)"; $field_clause = ", jb_service, jbp_tan"; $serviceMont = pow(2, $db->getOne("SELECT mt_sort FROM metatype WHERE mt_type = 'service' AND mt_mapped_value = 'MO'")); $serviceAust = pow(2, $db->getOne("SELECT mt_sort FROM metatype WHERE mt_type = 'service' AND mt_mapped_value = 'AT'")); if ($f_datetype == "2") $f_datetype = "1"; } elseif ($f_payment_select == "1") { // Die Sammelnummern aller abgerechneten Aufträge ohne möglichen Fuhrlohnexport finden $jbpc_ids = ""; $sql_query = "SELECT DISTINCT jbpc_id FROM genericdatacontainer, jobpayment, job" . " WHERE gdc_gen_fieldname = 'acquisitiontime' AND gdc_obj_id = jobpayment.jb_id AND csc_id_related IN ($csc_ids_related)" . " AND jobpayment.jb_id = job.jb_id AND jbpc_id != 0 AND (jb_status != 2 OR jb_incomplete = 1) AND jb_cr_price > 0 AND jb_export_time IS NULL"; if ($f_datetype == "1") $sql_query .= " AND (jb_ordertime >= '" . $f_min_date . "' AND jb_ordertime <= '" . $f_max_date . "')"; $res1 = mysql_query($sql_query) or die ($sql_query . ": " . mysql_error()); while ($row1 = mysql_fetch_array($res1, MYSQL_ASSOC)): $jbpc_ids .= "," . $row1["jbpc_id"]; endwhile; mysql_free_result($res1); if ($jbpc_ids != "") { $where_clause = "jbpc_id IN (" . substr($jbpc_ids, 1) . ")"; if ($f_datetype == "2") $where_clause .= " AND jbpc_bookingdate >= '" . $f_min_date . "' AND jbpc_bookingdate <= '" . $f_max_date . "'"; $where_clause2 = " AND (jb_status != 2 OR jb_incomplete = 1) AND jb_cr_price > 0 AND jb_export_time IS NULL"; } } if ($where_clause != "") { // Die betreffenden jbpc_ids werden aus der jobpaymentcollection geholt (im Falle von jbpc_id = 0 nur Dummy) $sql_query = "SELECT jbpc_id, cs_id, jbpc_mode, jbpc_price, jbpc_bookingdate, jbpc_export_time FROM jobpaymentcollection" . " WHERE $where_clause"; $res = mysql_query($sql_query) or die ($sql_query . ": " . mysql_error()); while (($row = mysql_fetch_array($res, MYSQL_ASSOC)) || $jbpc_id == "0"): if ($jbpc_id == "0") { $row = array(); $row["jbpc_id"] = 0; } $jb_cr_price_sum = 0; $bsg_sum = 0; // $sql_query = "SELECT SUM(jb_cr_price) FROM jobpayment, job WHERE jbpc_id = '" . $row["jbpc_id"] . "' AND jobpayment.jb_id = job.jb_id AND NOT (jb_export_time IS NULL)"; $sql_query = "SELECT SUM(jb_cr_price) FROM (SELECT DISTINCT job.jb_id, jb_cr_price FROM jobpayment, job WHERE jbpc_id = '" . $row["jbpc_id"] . "' AND jobpayment.jb_id = job.jb_id AND NOT (jb_export_time IS NULL) AND jb_export_time != '9999-12-31 23:59:59') AS honk"; $res1 = mysql_query($sql_query) or die ($sql_query . ": " . mysql_error()); if ($row1 = mysql_fetch_row($res1)): $jb_cr_price_sum = $row1[0]; $bsg_sum = $row["jbpc_price"] - $jb_cr_price_sum; endif; mysql_free_result($res1); $cC = "#dc"; $cC2 = "#dd"; // if ($colCnt % 2 == 0) : $cC = "#cc"; $cC2 = "#cd"; endif; // if ($colCnt++ % 2 == 1) : $cC = "#dc"; $cC2 = "#dd"; endif; if ($ret_val != "") $ret_val .= "
\n"; if ($jbpc_id != "0") $ret_val .= $cC . $row["jbpc_id"] . ";$cC2" . formDate($row["jbpc_bookingdate"]) . ";$cC" . formDate($row["jbpc_export_time"]) . ";$cC2" . $modeArr[$row["jbpc_mode"]] . ";$cC" . $cs_id_relatedArr[$row["cs_id"]] . ";$cC2" . " " . ";$cC" . " " . ";$cC2" . " " . ";$cC" . " " . ";$cC2" . formCur($row["jbpc_price"]) . ";$cC" . "" . ";$cC2" . "" . ";$cC" . " " . ";$cC2" . " " . ";$cC" . " " . ";$cC2" . " " . ";$cC" . "" . ";$cC2" . formCur($jb_cr_price_sum) . ";$cC" . "" . ";$cC2" . formCur($bsg_sum) . "
\n"; // Die tatsächlich abgerechneten Preise ergeben sich aus jobcalculator (exkl. Lagerkosten), // die werden hier vorab schon mal geholt, da das schlecht in die Hauptabfrage passt $sql_query = "SELECT job.jb_id, SUM(ROUND(jbc_totalprice, 2)) AS jbc_totalprice_sum" . " FROM job, jobcalculator, jobpayment" . " WHERE jobcalculator.jb_id = job.jb_id AND job.jb_id = jobpayment.jb_id AND srvt_name != '0003:par_01' AND jobpayment.jbpc_id" . " IN (" . $row["jbpc_id"] . ") GROUP BY job.jb_id"; $res1 = mysql_query($sql_query) or die ($sql_query . ": " . mysql_error()); $jbc_totalprices = array(); while ($row1 = mysql_fetch_array($res1, MYSQL_ASSOC)): $jbc_totalprices[$row1["jb_id"]] = $row1["jbc_totalprice_sum"]; endwhile; mysql_free_result($res1); // Lagerkosten extra ausweisen $sql_query = "SELECT job.jb_id, ROUND(jbc_totalprice, 2) AS totalprice" . " FROM job, jobcalculator, jobpayment" . " WHERE jobcalculator.jb_id = job.jb_id AND job.jb_id = jobpayment.jb_id AND srvt_name = '0003:par_01' AND jobpayment.jbpc_id" . " IN (" . $row["jbpc_id"] . ")"; $res1 = mysql_query($sql_query) or die ($sql_query . ": " . mysql_error()); $jbc_lagerk = array(); while ($row1 = mysql_fetch_array($res1, MYSQL_ASSOC)): $jbc_lagerk[$row1["jb_id"]] = formCur($row1["totalprice"]); if ($jbc_lagerk[$row1["jb_id"]] == "0,00") $jbc_lagerk[$row1["jb_id"]] = ""; endwhile; mysql_free_result($res1); // Lfd. Meter für f_payment_select == "4" merken if ($f_payment_select == "4") { $sql_query = "SELECT job.jb_id, jbc_amount, ROUND(jbc_price, 2) AS price" . " FROM job, jobcalculator, jobpayment" . " WHERE jobcalculator.jb_id = job.jb_id AND jb_storno IS NULL AND job.jb_id = jobpayment.jb_id AND srvt_name = '0010:par_01' AND jobpayment.jbpc_id" . " IN (" . $row["jbpc_id"] . ")"; $res1 = mysql_query($sql_query) or die ($sql_query . ": " . mysql_error()); $jbc_lfm = array(); while ($row1 = mysql_fetch_array($res1, MYSQL_ASSOC)): $jbc_lfm[$row1["jb_id"]] = array(formCur($row1["price"] * 1.19), formCur($row1["jbc_amount"])); endwhile; mysql_free_result($res1); } $sql_query = // "SELECT jobpayment.jb_id, jbpc_id, jobpayment.csc_id, jbp_mode, jbp_price, jbp_bookingtime, jbp_counter, jbp_export_time, jb_cr_price, jb_ordertime, jb_export_time FROM jobpayment LEFT JOIN job ON jobpayment.jb_id = job.jb_id" . // " WHERE jobpayment.jb_id IN (SELECT jb_id FROM jobpayment WHERE jbpc_id = '" . $row["jbpc_id"] . "') AND jbp_price != 0 ORDER BY jobpayment.jb_id"; "SELECT job.jb_id, IFNULL(gdc3.gdc_obj_id, '') AS addmont_parent, ROUND(jb_totalprice, 2) AS totalprice, jbpc_id, cr_sid, ROUND(jb_cr_price, 2) AS cr_price," . " jb_export_time, (CASE jb_status WHEN 1 THEN 'angenommen' WHEN 2 THEN 'erledigt' WHEN 9 THEN 'Disposition' WHEN 0 THEN 'UN-Dispo' ELSE 'undefiniert' END) AS status," . " IF(jb_incomplete=1, 'unfertig', '') AS incomplete, IF(jb_storno=1 OR jb_storno=2, 'storniert', '') AS storno, jb_ordertime, jb_finishtime," . " csc_id_related, jbp_mode, jbp_export_time, gdc2.gdc_content AS info_0, tr_commission_no, jb_dispoinfo" . $field_clause . " FROM job, jobpayment, tour" . $from_clause . " LEFT JOIN genericdatacontainer AS gdc2 ON gdc2.gdc_obj_type = 'jb' AND gdc2.gdc_gen_fieldname = 'info_0' AND gdc2.gdc_obj_id = job.jb_id" . " LEFT JOIN genericdatacontainer AS gdc3 ON gdc3.gdc_obj_type = 'jb' AND gdc3.gdc_gen_fieldname = 'jb_id_addmont' AND gdc3.gdc_content = job.jb_id" . " WHERE job.jb_id = tour.jb_id AND tour.tr_sort = 2 AND job.jb_id = jobpayment.jb_id AND jobpayment.jbpc_id IN (" . $row["jbpc_id"] . ")" . $where_clause2 . " ORDER BY jbpc_id, LEFT(jb_ordertime, 10), tr_commission_no, jb_id"; echo $sql_query . "\n"; $res1 = mysql_query($sql_query) or die ($sql_query . ": " . mysql_error()); $prev_row = array(); $bsg = 0; $num_row = 0; $colCnt = 0; $cC = "#aa"; $cC2 = "#ab"; while (($row1 = mysql_fetch_array($res1, MYSQL_ASSOC)) || $num_row <= mysql_num_rows($res1)): if ($row1["addmont_parent"] == "") $row1["totalprice"] = $jbc_totalprices[$row1["jb_id"]]; if (++$num_row > 1): // $bsg += $prev_row["price"]; $bsg = $prev_row["totalprice"]; $prev_row_jb_cr_price = ""; $prev_row_jb_export_time = ""; $prev_row_bsg = ""; if (($prev_row["jb_id"] != $row1["jb_id"] || $num_row == (mysql_num_rows($res1)) + 1)): $order_no = $prev_row["info_0"]; if ($order_no == "") $order_no = str_replace(";", "", $prev_row["tr_commission_no"]); $prev_row_jb_cr_price = ($prev_row["jb_export_time"] == "9999-12-31 23:59:59" ? formCur("0") : formCur($prev_row["cr_price"])); // $prev_row_bsg = formCur($bsg - $prev_row["cr_price"]); $prev_row_jb_export_time = ($prev_row["jb_export_time"] == "9999-12-31 23:59:59" ? "Zu L. Sped." : formDate($prev_row["jb_export_time"])); $prev_row_bsg = ($prev_row["jb_export_time"] == "9999-12-31 23:59:59" ? formCur($bsg - 0) : formCur($bsg - $prev_row["cr_price"])); $bsg = 0; endif; $billing_error = ""; $export_error = ""; if ($jbpc_id == "0") { if (($prev_row["jb_service"] & $serviceMont) == $serviceMont && trim($prev_row["cr_sid"]) == "") { $export_error = "Fahrer fehlt in OS Auftrag"; } elseif ($prev_row["jbp_tan"] == "0" AND ($prev_row["incomplete"] != "" || $prev_row["status"] != "erledigt")) { $export_error = "Barzahlung mit nicht erledigtem/unfertigem Auftrag"; } elseif ( $db->getOne("SELECT gdc_gen_fieldname FROM genericdatacontainer WHERE gdc_obj_type = 'jb' AND gdc_obj_id = " . $prev_row["jb_id"] . " AND gdc_gen_fieldname = 'jb_addmont'") == "jb_addmont" && $db->getOne("SELECT gdc_content FROM genericdatacontainer WHERE gdc_obj_id = " . $prev_row["jb_id"] . " AND gdc_gen_fieldname = 'jb_addmont'") == "") { $export_error = "Montagestunden fehlen"; } elseif ($prev_row["jb_finishtime"] == "0000-00-00 00:00:00" AND ($prev_row["incomplete"] == "" && $prev_row["status"] == "erledigt")) { $export_error = "Erledigungszeit des exportierbaren Auftrages ist '0000-00-00 00:00:00'"; } elseif ($prev_row["cr_price"] > 0 && ($prev_row["incomplete"] != "" || $prev_row["status"] != "erledigt")) { $billing_error = "Kein Fuhrlohnexport (Auftrag nicht erledigt/unfertig)"; } $the_error = ""; if ($f_payment_select == "2" || $f_payment_select == "4" || $f_payment_select == "5") $the_error = $export_error; if ($f_payment_select == "3") $the_error = $billing_error; if ($f_payment_select == "4") { if ($the_error == "" && $jbc_lfm[$prev_row["jb_id"]] != "") { $the_error = $jbc_lfm[$prev_row["jb_id"]][1] . " lfd. Meter zu " . $jbc_lfm[$prev_row["jb_id"]][0] . " (brutto)"; } else { $the_error = ""; } } if ($f_payment_select == "5") { if ($the_error == "" && $prev_row["totalprice"] == 0 && ($prev_row["jb_service"] & $serviceAust) != $serviceAust && $db->getOne("SELECT gdc_content FROM genericdatacontainer WHERE gdc_obj_type = 'jb' AND gdc_obj_id = " . $prev_row["jb_id"] . " AND gdc_gen_fieldname = 'jb_service_job'") != '1') { $the_error = "Kein Preis verfügbar"; } else { $the_error = ""; } } } //echo $prev_row["jb_id"] . ", " . $jbc_lfm[$prev_row["jb_id"]] . "\n"; if ($jbpc_id != "0" || $the_error != "") { $ret_val .= $cC . ($prev_row["jbpc_id"] != "0" ? "" . $prev_row["jbpc_id"] . "" : $the_error) . ";$cC2" . formDate($row["jbpc_bookingdate"]) . ";$cC" . formDate($prev_row["jbp_export_time"]) . ";$cC2" . $modeArr[$prev_row["jbp_mode"]] . ";$cC" . $csc_id_relatedArr[$prev_row["csc_id_related"]] . ";$cC2" . $order_no . ";$cC" . "" . $prev_row["jb_id"] . "" . ";$cC2" . $prev_row["addmont_parent"] . ";$cC" . $prev_row["jb_dispoinfo"] . ";$cC2" . formCur($prev_row["totalprice"]) . ";$cC" . $jbc_lagerk[$prev_row["jb_id"]] . ";$cC2" . formDate($prev_row["jb_ordertime"]) . ";$cC" . formDate($prev_row["jb_finishtime"]) . ";$cC2" . $prev_row["status"] . ";$cC" . $prev_row["incomplete"] . ";$cC2" . $prev_row["storno"] . ";$cC" . $prev_row["cr_sid"] . ";$cC2" . $prev_row_jb_cr_price . ";$cC" . "" . $prev_row_jb_export_time . "" . ";$cC2" . $prev_row_bsg . "
\n"; if ($prev_row_jb_cr_price != ""): if ($colCnt % 2 == 0) : $cC = "#ba"; $cC2 = "#bb"; endif; if ($colCnt++ % 2 == 1) : $cC = "#aa"; $cC2 = "#ab"; endif; endif; } endif; $prev_row = $row1; endwhile; mysql_free_result($res1); if ($jbpc_id == "0") $jbpc_id = "-1"; endwhile; if ($jbpc_id != "-1") mysql_free_result($res); } return $ret_val; } function formCur($amount) { return str_replace(".", ",", sprintf("%01.2f", round($amount, 2))); // return str_replace(".", ",", sprintf("%01.2f", round($amount, 2))); } function formDate($sqlDate) { if (trim($sqlDate) == "" || trim($sqlDate) == "0000-00-00 00:00:00") return ""; return substr($sqlDate, 8, 2) . "." . substr($sqlDate, 5, 2) . "." . substr($sqlDate, 0, 4); } function sqlDate($germanDate) { if (trim($germanDate) == "") return ""; return substr($germanDate, 6, 4) . "-" . substr($germanDate, 3, 2) . "-" . substr($germanDate, 0, 2); } /**************************************************************************************************************************************************/ // HTML-Output ?> Abrechnungs-Übersicht
  \n"; ?>


>Ausführungs-/ >Abrechnungsdatum von:  ">  bis:  ">

>Ludwigsburg  >Sindelfingen  >Schnelsen  >Moorfleet  >Altona 

\n"; ?> Suche nach Sammelnummer: