1232 lines
72 KiB
PHP
1232 lines
72 KiB
PHP
<?php
|
|
|
|
class Dsfinvk {
|
|
public static function export ($pdo,$dohtml) {
|
|
$tmpdir = CommonUtils::getConfigValue($pdo, 'tmpdir', '');
|
|
if (is_null($tmpdir) || ($tmpdir == '') ) {
|
|
$tmpdir = sys_get_temp_dir();
|
|
}
|
|
|
|
$csvtables = array(
|
|
array("header" => "Bonpos", "fileprefix" => "bonpos_", "csvfilename" => "lines.csv", "fct" => "bonpos"),
|
|
array("header" => "Bonpos_Ust", "fileprefix" => "bonposust_", "csvfilename" => "lines_vat.csv", "fct" => "bonposust"),
|
|
array("header" => "Bonpos_Preisfindung", "fileprefix" => "bonpospreis_", "csvfilename" => "itemamounts.csv", "fct" => "bonpospreisfindung"),
|
|
array("header" => "Bonkopf", "fileprefix" => "bonkopf_", "csvfilename" => "transactions.csv", "fct" => "bonkopf"),
|
|
array("header" => "Bonkop_Ust", "fileprefix" => "bonkopfust_", "csvfilename" => "transactions_vat.csv", "fct" => "bonkopfust"),
|
|
array("header" => "Bonkopf_AbrKreis", "fileprefix" => "bonkopfabrkreis_", "csvfilename" => "allocation_groups.csv", "fct" => "bonkopfabrkreis"),
|
|
array("header" => "Bonkopf_Zahlarten", "fileprefix" => "bonkopfzahlarten_", "csvfilename" => "datapayment.csv", "fct" => "bonkopfzahlarten"),
|
|
array("header" => "Bon_Referenzen", "fileprefix" => "bonrefs_", "csvfilename" => "references.csv", "fct" => "bonreferenzen"),
|
|
array("header" => "TSE_Transaktionen", "fileprefix" => "tsetrans_", "csvfilename" => "transactions_tse.csv", "fct" => "tsetransactions"),
|
|
array("header" => "Stamm_Abschluss", "fileprefix" => "stammabschluss_", "csvfilename" => "cashpointclosing.csv", "fct" => "stammabschluss"),
|
|
array("header" => "Stamm_Orte", "fileprefix" => "stammorte_", "csvfilename" => "location.csv", "fct" => "stammorte"),
|
|
array("header" => "Stamm_Kassen", "fileprefix" => "stammkassen_", "csvfilename" => "cashregister.csv", "fct" => "stammkassen"),
|
|
array("header" => "Stamm_Terminals", "fileprefix" => "stammterminals_", "csvfilename" => "slaves.csv", "fct" => "stammterminals"),
|
|
array("header" => "Stamm_Agenturen", "fileprefix" => "stammagenturen_", "csvfilename" => "ps.csv", "fct" => "stammagenturen"),
|
|
array("header" => "Stamm_USt", "fileprefix" => "stammust_", "csvfilename" => "vat.csv", "fct" => "stammust"),
|
|
array("header" => "Stamm_TSE", "fileprefix" => "stammtse_", "csvfilename" => "tse.csv", "fct" => "stammtse"),
|
|
array("header" => "Z_GV_Typ", "fileprefix" => "zgvtyp_", "csvfilename" => "businesscases.csv", "fct" => "zgvtyp"),
|
|
array("header" => "Z_Zahlart", "fileprefix" => "zzahlart_", "csvfilename" => "payment.csv", "fct" => "zzahlart"),
|
|
array("header" => "Z_WAEHRUNGEN", "fileprefix" => "zcurrencies_", "csvfilename" => "cash_per_currency.csv", "fct" => "zwaehrungen")
|
|
);
|
|
$arrayToZip = array();
|
|
if (!$dohtml) {
|
|
foreach($csvtables as $aCsvtable) {
|
|
$tempFileName = tempnam($tmpdir,$aCsvtable["fileprefix"]);
|
|
$arrayToZip[] = array("tmpfilename" => $tempFileName,"csvfilename" => $aCsvtable["csvfilename"]);
|
|
$fct = $aCsvtable["fct"];
|
|
$params = [$pdo, $tempFileName];
|
|
call_user_func_array(["Dsfinvk", $fct], $params);
|
|
}
|
|
$zipfile = tempnam($tmpdir,"zip");
|
|
$zip = new ZipArchive();
|
|
if ($zip->open($zipfile, ZipArchive::CREATE)!==TRUE) {
|
|
exit("cannot open <$zipfile>\n");
|
|
}
|
|
foreach($arrayToZip as $aCsvtable) {
|
|
$zip->addFile($aCsvtable["tmpfilename"],$aCsvtable["csvfilename"]);
|
|
}
|
|
$zip->close();
|
|
foreach($arrayToZip as $aCsvtable) {
|
|
unlink($aCsvtable["tmpfilename"]);
|
|
}
|
|
|
|
header('Content-Description: File Transfer');
|
|
header('Content-Type: application/zip');
|
|
header('Content-Disposition: attachment; filename="dsfinvk-export.zip"');
|
|
header('Expires: 0');
|
|
header('Cache-Control: must-revalidate');
|
|
header('Pragma: public');
|
|
header('Content-Length: ' . filesize($zipfile));
|
|
|
|
readfile($zipfile);
|
|
unlink($zipfile);
|
|
} else {
|
|
echo self::getPage();
|
|
//echo "<h1>DSFinv-k Export</h1>";
|
|
foreach($csvtables as $aCsvtable) {
|
|
$fct = $aCsvtable["fct"];
|
|
$params = [$pdo, null];
|
|
$tablecontent = call_user_func_array(["Dsfinvk", $fct], $params);
|
|
//echo self::getPage(); // self::getStyle() . self::getScript();
|
|
echo "<h2>" . $aCsvtable["header"] . " (" . $aCsvtable["csvfilename"] . ")</h2><p />"; // <pre>" . $tablecontent . "</pre>";
|
|
echo "<table class='viewtable'>" . $tablecontent . "</table>";
|
|
}
|
|
echo "</body>\n</html>";
|
|
}
|
|
}
|
|
|
|
private static function combineSqlSelectQueries($cols) {
|
|
$sqltxt = [];
|
|
foreach($cols as $c) {
|
|
$sqltxt[] = $c["select"] . " as " . $c["colname"];
|
|
}
|
|
return implode(",",$sqltxt);
|
|
}
|
|
|
|
|
|
private static function bonpos($pdo,$fileToSave) {
|
|
$paydeskid = CommonUtils::getConfigValue($pdo, 'paydeskid', 1);
|
|
$ztime = "IF(C.closingdate is not null,CONCAT(DATE(C.closingdate),'T',TIME(C.closingdate)),'')";
|
|
$bonid = "CONCAT(CASE WHEN O.typerange='" . RANGE_ORDER . "' THEN 'BESTL-' WHEN O.typerange='" . RANGE_BILL . "' THEN 'BELEG-' WHEN O.typerange='" . RANGE_CLOSING . "' THEN 'SONST-' ELSE 'X' END,bonid)";
|
|
|
|
$unitSelect = "(CASE ";
|
|
$unitSelect .= " WHEN unit is null OR unit='0' OR unit='1' THEN 'Stück' ";
|
|
$unitSelect .= " WHEN unit='2' THEN 'kg' ";
|
|
$unitSelect .= " WHEN unit='3' THEN 'gr' ";
|
|
$unitSelect .= " WHEN unit='4' THEN 'mg' ";
|
|
$unitSelect .= " WHEN unit='5' THEN 'l' ";
|
|
$unitSelect .= " WHEN unit='6' THEN 'ml' ";
|
|
$unitSelect .= " WHEN unit='7' THEN 'm' ";
|
|
$unitSelect .= " ELSE 'Stück' ";
|
|
$unitSelect .= "END)";
|
|
|
|
$gvtyp = "(CASE ";
|
|
$gvtyp .= " WHEN unit='8' THEN 'EinzweckgutscheinKauf' ";
|
|
$gvtyp .= " WHEN unit='9' THEN 'EinzweckgutscheinEinloesung' ";
|
|
$gvtyp .= " ELSE 'Umsatz' ";
|
|
$gvtyp .= "END)";
|
|
|
|
|
|
$colsPaidUnpaid = array(
|
|
"SIGN" => array("select" => "O.signtxt","colname" => "signtxt","quote" => true,"suspect" => 1),
|
|
"MARKER" => array("select" => "'paid.unpaid'","colname" => "marker","quote" => true,"suspect" => 1),
|
|
"Z_KASSE_ID" => array("select" => "'$paydeskid'","colname" => "paydeskid","quote" => true),
|
|
"Z_ERSTELLUNG" => array("select" => "$ztime","colname" => "closingdate","quote" => false),
|
|
"Z_NR" => array("select" => "COALESCE(C.id,'')","colname" => "clsid","quote" => false),
|
|
"BON_ID" => array("select" => $bonid,"colname" => "oid","quote" => false),
|
|
"POS_ZEILE" => array("select" => "Q.poszeile","colname" => "position","quote" => false),
|
|
"GUTSCHEIN_NR" => array("select" => "COALESCE(V.id,'')","colname" => "voucherid","quote" => false),
|
|
"ARTIKELTEXT" => array("select" => "Q.productname","colname" => "productname","quote" => true),
|
|
"POS_TERMINAL_ID" => array("select" => "O.terminalid","colname" => "terminalid","quote" => false),
|
|
"GV_TYP" => array("select" => "$gvtyp","colname" => "gvtyp","quote" => true),
|
|
"GV_NAME" => array("select" => "'Rechnungsartikel'","colname" => "gvname","quote" => true),
|
|
"INHAUS" => array("select" => "CASE WHEN Q.tablenr is null THEN 0 ELSE (CASE WHEN Q.togo is null THEN 1 ELSE (1-Q.togo) END) END","colname" => "inhaus","quote" => false),
|
|
"P_STORNO" => array("select" => "'0'","colname" => "pstorno","quote" => false),
|
|
"AGENTUR_ID" => array("select" => "'0'","colname" => "agenturid","quote" => false),
|
|
"ART_NR" => array("select" => "Q.productid","colname" => "productid","quote" => false),
|
|
"GTIN" => array("select" => "''","colname" => "gtin","quote" => true),
|
|
"WARENGR_ID" => array("select" => "''","colname" => "warengrid","quote" => true),
|
|
"WARENGR" => array("select" => "''","colname" => "warengr","quote" => true),
|
|
"MENGE" => array("select" => "ROUND(IF(B.status='s',-1,1) * Q.unitamount,3)","colname" => "unitamount","quote" => false),
|
|
"FAKTOR" => array("select" => "'1.000'","colname" => "faktor","quote" => false),
|
|
"EINHEIT" => array("select" => "$unitSelect","colname" => "einheit","quote" => true),
|
|
"STK_BR" => array("select" => "ROUND(price / unitamount,2)","colname" => "stkbr","quote" => false)
|
|
);
|
|
|
|
$sqltxt = self::createSqlSelects($colsPaidUnpaid, $fileToSave);
|
|
|
|
$sql = "SELECT " . implode(",",$sqltxt) . " FROM %operations% O ";
|
|
$sql .= " INNER JOIN %queue% Q ON Q.opidok = O.id ";
|
|
$sql .= " LEFT JOIN %billproducts% BP ON BP.queueid=Q.id ";
|
|
$sql .= " LEFT JOIN %bill% B ON BP.billid=B.id ";
|
|
$sql .= " LEFT JOIN %closing% C ON B.closingid=C.id ";
|
|
$sql .= " LEFT JOIN %vouchers% V ON Q.voucherid=V.id ";
|
|
$sql .= " WHERE B.status is null OR B.status='x' ";
|
|
|
|
|
|
$colsProdCancelled = array(
|
|
"SIGN" => array("select" => "O.signtxt","colname" => "signtxt","quote" => true,"suspect" => 1),
|
|
"MARKER" => array("select" => "'prodcancelled'","colname" => "marker","quote" => true,"suspect" => 1),
|
|
"Z_KASSE_ID" => array("select" => "'$paydeskid'","colname" => "paydeskid","quote" => true),
|
|
"Z_ERSTELLUNG" => array("select" => "$ztime","colname" => "closingdate","quote" => false),
|
|
"Z_NR" => array("select" => "COALESCE(C.id,'')","colname" => "clsid","quote" => false),
|
|
"BON_ID" => array("select" => $bonid,"colname" => "oid","quote" => false),
|
|
"POS_ZEILE" => array("select" => "'1'","colname" => "position","quote" => false),
|
|
"GUTSCHEIN_NR" => array("select" => "COALESCE(V.id,'')","colname" => "voucherid","quote" => false),
|
|
"ARTIKELTEXT" => array("select" => "Q.productname","colname" => "productname","quote" => true),
|
|
"POS_TERMINAL_ID" => array("select" => "O.terminalid","colname" => "terminalid","quote" => false),
|
|
"GV_TYP" => array("select" => "$gvtyp","colname" => "gvtyp","quote" => true),
|
|
"GV_NAME" => array("select" => "'Artikelstorno'","colname" => "gvname","quote" => true),
|
|
"INHAUS" => array("select" => "CASE WHEN Q.tablenr is null THEN 0 ELSE (CASE WHEN Q.togo is null THEN 1 ELSE (1-Q.togo) END) END","colname" => "inhaus","quote" => false),
|
|
"P_STORNO" => array("select" => "'0'","colname" => "pstorno","quote" => false),
|
|
"AGENTUR_ID" => array("select" => "'0'","colname" => "agenturid","quote" => false),
|
|
"ART_NR" => array("select" => "Q.productid","colname" => "productid","quote" => false),
|
|
"GTIN" => array("select" => "''","colname" => "gtin","quote" => true),
|
|
"WARENGR_ID" => array("select" => "''","colname" => "warengrid","quote" => true),
|
|
"WARENGR" => array("select" => "''","colname" => "warengr","quote" => true),
|
|
"MENGE" => array("select" => "ROUND(((-1) * Q.unitamount),3)","colname" => "unitamount","quote" => false),
|
|
"FAKTOR" => array("select" => "'1.000'","colname" => "faktor","quote" => false),
|
|
"EINHEIT" => array("select" => "$unitSelect","colname" => "einheit","quote" => true),
|
|
"STK_BR" => array("select" => "ROUND(price / unitamount,2)","colname" => "stkbr","quote" => false)
|
|
);
|
|
|
|
$sqltxt = self::createSqlSelects($colsProdCancelled, $fileToSave);
|
|
|
|
$sql .= " UNION ALL ";
|
|
$sql .= " SELECT " . implode(",",$sqltxt) . " FROM %operations% O ";
|
|
$sql .= " INNER JOIN %queue% Q ON Q.opidcancel = O.id ";
|
|
$sql .= " LEFT JOIN %closing% C ON Q.clsid=C.id ";
|
|
$sql .= " LEFT JOIN %vouchers% V ON Q.voucherid=V.id ";
|
|
|
|
|
|
|
|
$sql = "SELECT * FROM ($sql) a ORDER BY CAST(SUBSTRING_INDEX(a.oid,'-',-1) AS UNSIGNED),a.clsid";
|
|
|
|
$dataPart = self::createCsvDataPartByCursor($pdo, $sql, $colsPaidUnpaid, $fileToSave, 'bonpos');
|
|
return $dataPart;
|
|
}
|
|
|
|
private static function bonposust($pdo,$fileToSave) {
|
|
|
|
$paydeskid = CommonUtils::getConfigValue($pdo, 'paydeskid', 1);
|
|
$ztime = "IF(C.closingdate is not null,CONCAT(DATE(C.closingdate),'T',TIME(C.closingdate)),'')";
|
|
$bonid = "CONCAT(CASE WHEN O.typerange='" . RANGE_ORDER . "' THEN 'BESTL-' WHEN O.typerange='" . RANGE_BILL . "' THEN 'BELEG-' WHEN O.typerange='" . RANGE_CLOSING . "' THEN 'SONST-' ELSE 'X' END,bonid)";
|
|
|
|
$cols = array(
|
|
"MARKER" => array("select" => "'paid.unpaid'","colname" => "marker","quote" => true,"suspect" => 1),
|
|
"Z_KASSE_ID" => array("select" => "'$paydeskid'","colname" => "paydeskid","quote" => true),
|
|
"Z_ERSTELLUNG" => array("select" => "$ztime","colname" => "closingdate","quote" => false),
|
|
"Z_NR" => array("select" => "COALESCE(C.id,'')","colname" => "clsid","quote" => false),
|
|
"BON_ID" => array("select" => $bonid,"colname" => "oid","quote" => false),
|
|
"POS_ZEILE" => array("select" => "Q.poszeile","colname" => "position","quote" => false),
|
|
"UST_SCHLUESSEL" => array("select" => "Q.taxkey","colname" => "ustid","quote" => false),
|
|
"POS_BRUTTO" => array("select" => "ROUND(Q.price,5)","colname" => "brutto","quote" => false),
|
|
"POS_NETTO" => array("select" => "''","colname" => "netto","quote" => false),
|
|
"POS_UST" => array("select" => "''","colname" => "tax","quote" => false)
|
|
);
|
|
|
|
$sqltxt = self::createSqlSelects($cols, $fileToSave);
|
|
|
|
$sql = "SELECT " . implode(",",$sqltxt) . " FROM %operations% O ";
|
|
$sql .= " INNER JOIN %queue% Q ON Q.opidok = O.id ";
|
|
$sql .= " LEFT JOIN %billproducts% BP ON BP.queueid=Q.id ";
|
|
$sql .= " LEFT JOIN %bill% B ON BP.billid=B.id ";
|
|
$sql .= " LEFT JOIN %closing% C ON B.closingid=C.id ";
|
|
$sql .= " WHERE B.status is null OR B.status='x' ";
|
|
$cols = array(
|
|
"MARKER" => array("select" => "'prodcancelled'","colname" => "marker","quote" => true,"suspect" => 1),
|
|
"Z_KASSE_ID" => array("select" => "'$paydeskid'","colname" => "paydeskid","quote" => true),
|
|
"Z_ERSTELLUNG" => array("select" => "$ztime","colname" => "closingdate","quote" => false),
|
|
"Z_NR" => array("select" => "COALESCE(C.id,'')","colname" => "clsid","quote" => false),
|
|
"BON_ID" => array("select" => $bonid,"colname" => "oid","quote" => false),
|
|
"POS_ZEILE" => array("select" => "'1'","colname" => "position","quote" => false),
|
|
"UST_SCHLUESSEL" => array("select" => "Q.taxkey","colname" => "ustid","quote" => false),
|
|
"POS_BRUTTO" => array("select" => "ROUND(0-Q.price,5)","colname" => "brutto","quote" => false),
|
|
"POS_NETTO" => array("select" => "''","colname" => "netto","quote" => false),
|
|
"POS_UST" => array("select" => "''","colname" => "tax","quote" => false)
|
|
);
|
|
$sqltxt = self::createSqlSelects($cols, $fileToSave);
|
|
|
|
$sql .= " UNION ALL ";
|
|
$sql .= " SELECT " . implode(",",$sqltxt) . " FROM %operations% O ";
|
|
$sql .= " INNER JOIN %queue% Q ON Q.opidcancel = O.id ";
|
|
$sql .= " LEFT JOIN %closing% C ON Q.clsid=C.id ";
|
|
|
|
$sql = "SELECT * FROM ($sql) a ORDER BY CAST(SUBSTRING_INDEX(a.oid,'-',-1) AS UNSIGNED),a.clsid,a.position";
|
|
$dataPart = self::createCsvDataPartByCursor($pdo, $sql, $cols, $fileToSave, 'bonposust');
|
|
return $dataPart;
|
|
}
|
|
|
|
private static function bonpospreisfindung($pdo,$fileToSave) {
|
|
$paydeskid = CommonUtils::getConfigValue($pdo, 'paydeskid', 1);
|
|
$ztime = "IF(C.closingdate is not null,CONCAT(DATE(C.closingdate),'T',TIME(C.closingdate)),'')";
|
|
$bonid = "CONCAT(CASE WHEN O.typerange='" . RANGE_ORDER . "' THEN 'BESTL-' WHEN O.typerange='" . RANGE_BILL . "' THEN 'BELEG-' WHEN O.typerange='" . RANGE_CLOSING . "' THEN 'SONST-' ELSE 'X' END,bonid)";
|
|
$priceTypeSelect = "(CASE ";
|
|
$priceTypeSelect .= " WHEN Q.pricetype is null OR Q.pricetype='0' THEN 'base_amount' ";
|
|
$priceTypeSelect .= " WHEN Q.pricetype='1' THEN 'discount' ";
|
|
$priceTypeSelect .= " WHEN Q.pricetype='2' THEN 'extra_amount' ";
|
|
$priceTypeSelect .= " ELSE 'base_amount' ";
|
|
$priceTypeSelect .= "END)";
|
|
|
|
$cols = array(
|
|
"MARKER" => array("select" => "'paid.unpaid'","colname" => "marker","quote" => true,"suspect" => 1),
|
|
"Z_KASSE_ID" => array("select" => "'$paydeskid'","colname" => "paydeskid","quote" => true),
|
|
"Z_ERSTELLUNG" => array("select" => "$ztime","colname" => "closingdate","quote" => false),
|
|
"Z_NR" => array("select" => "COALESCE(C.id,'')","colname" => "clsid","quote" => false),
|
|
"BON_ID" => array("select" => $bonid,"colname" => "oid","quote" => false),
|
|
"POS_ZEILE" => array("select" => "Q.poszeile","colname" => "position","quote" => false),
|
|
"TYP" => array("select" => "$priceTypeSelect","colname" => "pricetype","quote" => false),
|
|
"UST_SCHLUESSEL" => array("select" => "Q.taxkey","colname" => "ustid","quote" => false),
|
|
"POS_BRUTTO" => array("select" => "ROUND(Q.price,5)","colname" => "brutto","quote" => false),
|
|
"PF_NETTO" => array("select" => "round(price / (1.0 + Q.tax/100.0),5)","colname" => "netto","quote" => false),
|
|
"PF_UST" => array("select" => "ROUND(Q.price-price / (1.0 + Q.tax/100.0),5)","colname" => "tax","quote" => false)
|
|
);
|
|
|
|
$sqltxt = self::createSqlSelects($cols, $fileToSave);
|
|
|
|
$sql = "SELECT " . implode(",",$sqltxt) . " FROM %operations% O ";
|
|
$sql .= " INNER JOIN %queue% Q ON Q.opidok = O.id ";
|
|
$sql .= " LEFT JOIN %billproducts% BP ON BP.queueid=Q.id ";
|
|
$sql .= " LEFT JOIN %bill% B ON BP.billid=B.id ";
|
|
$sql .= " LEFT JOIN %closing% C ON B.closingid=C.id ";
|
|
$sql .= " WHERE B.status is null OR B.status='x' ";
|
|
$cols = array(
|
|
"MARKER" => array("select" => "'prodcancelled'","colname" => "marker","quote" => true,"suspect" => 1),
|
|
"Z_KASSE_ID" => array("select" => "'$paydeskid'","colname" => "paydeskid","quote" => true),
|
|
"Z_ERSTELLUNG" => array("select" => "$ztime","colname" => "closingdate","quote" => false),
|
|
"Z_NR" => array("select" => "COALESCE(C.id,'')","colname" => "clsid","quote" => false),
|
|
"BON_ID" => array("select" => $bonid,"colname" => "oid","quote" => false),
|
|
"POS_ZEILE" => array("select" => "'1'","colname" => "position","quote" => false),
|
|
"TYP" => array("select" => "$priceTypeSelect","colname" => "pricetype","quote" => false),
|
|
"UST_SCHLUESSEL" => array("select" => "Q.taxkey","colname" => "ustid","quote" => false),
|
|
"POS_BRUTTO" => array("select" => "ROUND(0-Q.price,5)","colname" => "brutto","quote" => false),
|
|
"PF_NETTO" => array("select" => "round(price / (1.0 + Q.tax/100.0),5)","colname" => "netto","quote" => false),
|
|
"PF_UST" => array("select" => "ROUND(Q.price-price / (1.0 + Q.tax/100.0),5)","colname" => "tax","quote" => false)
|
|
);
|
|
$sqltxt = self::createSqlSelects($cols, $fileToSave);
|
|
|
|
$sql .= " UNION ALL ";
|
|
$sql .= " SELECT " . implode(",",$sqltxt) . " FROM %operations% O ";
|
|
$sql .= " INNER JOIN %queue% Q ON Q.opidcancel = O.id ";
|
|
$sql .= " LEFT JOIN %closing% C ON Q.clsid=C.id ";
|
|
|
|
$sql = "SELECT * FROM ($sql) a ORDER BY CAST(SUBSTRING_INDEX(a.oid,'-',-1) AS UNSIGNED),a.clsid,a.position";
|
|
$dataPart = self::createCsvDataPartByCursor($pdo, $sql, $cols, $fileToSave, 'bonpospreisfindung');
|
|
return $dataPart;
|
|
}
|
|
|
|
private static function bonkopf($pdo,$fileToSave) {
|
|
$paydeskid = CommonUtils::getConfigValue($pdo, 'paydeskid', 1);
|
|
$ztime = "IF(C.closingdate is not null,CONCAT(DATE(C.closingdate),'T',TIME(C.closingdate)),'')";
|
|
$bonid = "CONCAT(CASE WHEN O.typerange='" . RANGE_ORDER . "' THEN 'BESTL-' WHEN O.typerange='" . RANGE_BILL . "' THEN 'BELEG-' WHEN O.typerange='" . RANGE_CLOSING . "' THEN 'SONST-' ELSE 'X' END,bonid)";
|
|
|
|
$minTime = "CASE WHEN Qsub.logtime='0' THEN NULL ELSE Qsub.logtime END";
|
|
$minlogTime = "(SELECT MIN($minTime) as starttime FROM %queue% Qsub,%billproducts% BPsub WHERE BPsub.billid=B.id AND BPsub.queueid=Qsub.id)";
|
|
$dsfinDateTimeFormat = "CONCAT(DATE(from_unixtime($minlogTime)),'T',TIME(from_unixtime($minlogTime)))";
|
|
$startLogTime = "COALESCE($dsfinDateTimeFormat,'')";
|
|
|
|
$bonEnde = "(IF(B.logtime is not null AND (B.logtime <> '0'),CONCAT(DATE(from_unixtime(B.logtime)),'T',TIME(from_unixtime(B.logtime))),''))";
|
|
|
|
$billuid = "CASE WHEN B.status='c' THEN CONCAT('V-',B.billuid) ELSE B.billuid END";
|
|
$cols = array(
|
|
"SIGN" => array("select" => "O.signtxt","colname" => "signtxt","quote" => true,"suspect" => 1),
|
|
"MARKER" => array("select" => "'bills'","colname" => "marker","quote" => true,"suspect" => 1),
|
|
"Z_KASSE_ID" => array("select" => "'$paydeskid'","colname" => "paydeskid","quote" => true),
|
|
"Z_ERSTELLUNG" => array("select" => "$ztime","colname" => "closingdate","quote" => false),
|
|
"Z_NR" => array("select" => "COALESCE(C.id,'')","colname" => "clsid","quote" => false),
|
|
"BON_ID" => array("select" => $bonid,"colname" => "oid","quote" => false),
|
|
"BON_NR" => array("select" => "$billuid","colname" => "billuid","quote" => false),
|
|
"BON_TYP" => array("select" => "'Beleg'","colname" => "billtype","quote" => false),
|
|
"BON_NAME" => array("select" => "''","colname" => "billname","quote" => false),
|
|
"TERMINAL_ID" => array("select" => "'1'","colname" => "terminalid","quote" => false),
|
|
"BON_STORNO" => array("select" => "''","colname" => "billstorno","quote" => false),
|
|
"BON_START" => array("select" => "$startLogTime","colname" => "billstart","quote" => false),
|
|
"BON_ENDE" => array("select" => "$bonEnde","colname" => "billend","quote" => false),
|
|
"BEDIENER_ID" => array("select" => "B.userid","colname" => "userid","quote" => false),
|
|
"BEDIENER_NAME" => array("select" => "U.username","colname" => "username","quote" => true),
|
|
"UMS_BRUTTO" => array("select" => "B.brutto","colname" => "brutto","quote" => false),
|
|
"KUNDE_NAME" => array("select" => "''","colname" => "customername","quote" => true),
|
|
"KUNDE_ID" => array("select" => "''","colname" => "customerid","quote" => false),
|
|
"KUNDE_TYP" => array("select" => "''","colname" => "customertype","quote" => false),
|
|
"KUNDE_STRASSE" => array("select" => "''","colname" => "customerstreet","quote" => true),
|
|
"KUNDE_PLZ" => array("select" => "''","colname" => "customerplz","quote" => true),
|
|
"KUNDE_ORT" => array("select" => "''","colname" => "customerort","quote" => true),
|
|
"KUNDE_LAND" => array("select" => "''","colname" => "customerland","quote" => true),
|
|
"KUNDE_USTID" => array("select" => "''","colname" => "customerustid","quote" => true),
|
|
"BON_NOTIZ" => array("select" => "''","colname" => "bonnotiz","quote" => true)
|
|
);
|
|
|
|
$sqltxt = self::createSqlSelects($cols, $fileToSave);
|
|
|
|
$sql = " SELECT " . implode(",",$sqltxt) . " FROM %operations% O ";
|
|
$sql .= " INNER JOIN %bill% B ON B.opid = O.id ";
|
|
$sql .= " LEFT JOIN %user% U ON B.userid = U.id ";
|
|
$sql .= " LEFT JOIN %closing% C ON B.closingid=C.id ";
|
|
|
|
$sql = "SELECT * FROM ($sql) a ORDER BY CAST(SUBSTRING_INDEX(a.oid,'-',-1) AS UNSIGNED),a.clsid";
|
|
$dataPart = self::createCsvDataPartByCursor($pdo, $sql, $cols, $fileToSave, 'bonkopf');
|
|
return $dataPart;
|
|
}
|
|
|
|
private static function bonkopfust($pdo,$fileToSave) {
|
|
$paydeskid = CommonUtils::getConfigValue($pdo, 'paydeskid', 1);
|
|
$ztime = "IF(C.closingdate is not null,CONCAT(DATE(C.closingdate),'T',TIME(C.closingdate)),'')";
|
|
$bonid = "CONCAT(CASE WHEN O.typerange='" . RANGE_ORDER . "' THEN 'BESTL-' WHEN O.typerange='" . RANGE_BILL . "' THEN 'BELEG-' WHEN O.typerange='" . RANGE_CLOSING . "' THEN 'SONST-' ELSE 'X' END,bonid)";
|
|
|
|
$cols = array(
|
|
"Z_KASSE_ID" => array("select" => "'$paydeskid'","colname" => "paydeskid","quote" => true),
|
|
"Z_ERSTELLUNG" => array("select" => "$ztime","colname" => "closingdate","quote" => false),
|
|
"Z_NR" => array("select" => "COALESCE(C.id,'')","colname" => "clsid","quote" => false),
|
|
"BON_ID" => array("select" => $bonid,"colname" => "oid","quote" => false),
|
|
"ARTIKEL" => array("select" => "GROUP_CONCAT(Q.productname)","colname" => "prodname","quote" => false, "suspect" => 1),
|
|
"STATUS" => array("select" => "B.status","colname" => "bstatus","quote" => true, "suspect" => 1),
|
|
"TAXVAL" => array("select" => "Q.tax","colname" => "taxval","quote" => false, "suspect" => 1),
|
|
"UST_SCHLUESSEL" => array("select" => "taxkey","colname" => "ustid","quote" => false),
|
|
"BON_BRUTTO" => array("select" => "ROUND(SUM(Q.price),2)","colname" => "billbrutto","quote" => false),
|
|
"BON_NETTO" => array("select" => "ROUND(SUM(Q.price / (1.0 + Q.tax/100.0)),2)","colname" => "billnetto","quote" => false),
|
|
"BON_UST" => array("select" => "ROUND(SUM(Q.price - Q.price / (1.0 + Q.tax/100.0)),2)","colname" => "billust","quote" => false)
|
|
);
|
|
$sqltxt = self::createSqlSelects($cols, $fileToSave);
|
|
|
|
$sql = " SELECT " . implode(",",$sqltxt) . " FROM %operations% O ";
|
|
$sql .= " INNER JOIN %bill% B ON B.opid = O.id ";
|
|
$sql .= " LEFT JOIN %billproducts% BP ON B.id=BP.billid ";
|
|
$sql .= " INNER JOIN %queue% Q ON BP.queueid=Q.id ";
|
|
$sql .= " LEFT JOIN %closing% C ON B.closingid=C.id ";
|
|
$sql .= " WHERE B.status is null OR B.status <> 'c' ";
|
|
$sql .= " GROUP BY Q.taxkey,O.id ";
|
|
|
|
$cols = array(
|
|
"Z_KASSE_ID" => array("select" => "'$paydeskid'","colname" => "paydeskid","quote" => true),
|
|
"Z_ERSTELLUNG" => array("select" => "$ztime","colname" => "closingdate","quote" => false),
|
|
"Z_NR" => array("select" => "COALESCE(C.id,'')","colname" => "clsid","quote" => false),
|
|
"BON_ID" => array("select" => $bonid,"colname" => "oid","quote" => false),
|
|
"ARTIKEL" => array("select" => "'Bareinlage'","colname" => "prodname","quote" => false, "suspect" => 1),
|
|
"STATUS" => array("select" => "B.status","colname" => "bstatus","quote" => true, "suspect" => 1),
|
|
"TAXVAL" => array("select" => "'0.00'","colname" => "taxval","quote" => false, "suspect" => 1),
|
|
"UST_SCHLUESSEL" => array("select" => "'5'","colname" => "ustid","quote" => false),
|
|
"BON_BRUTTO" => array("select" => "ROUND(B.brutto,2)","colname" => "billbrutto","quote" => false),
|
|
"BON_NETTO" => array("select" => "'0.00'","colname" => "billnetto","quote" => false),
|
|
"BON_UST" => array("select" => "'0.00'","colname" => "billust","quote" => false)
|
|
);
|
|
$sqltxt = self::createSqlSelects($cols, $fileToSave);
|
|
|
|
$sql .= " UNION ALL ";
|
|
$sql .= " SELECT " . implode(",",$sqltxt) . " FROM %operations% O ";
|
|
$sql .= " INNER JOIN %bill% B ON B.opid = O.id ";
|
|
$sql .= " LEFT JOIN %closing% C ON B.closingid=C.id ";
|
|
$sql .= " WHERE B.status is not null AND B.status = 'c' ";
|
|
|
|
$sql = "SELECT * FROM ($sql) a ORDER BY CAST(SUBSTRING_INDEX(a.oid,'-',-1) AS UNSIGNED),a.clsid";
|
|
|
|
$dataPart = self::createCsvDataPartByCursor($pdo, $sql, $cols, $fileToSave, 'bonkopfust');
|
|
return $dataPart;
|
|
}
|
|
|
|
private static function bonkopfabrkreis($pdo,$fileToSave) {
|
|
$paydeskid = CommonUtils::getConfigValue($pdo, 'paydeskid', 1);
|
|
$ztime = "IF(C.closingdate is not null,CONCAT(DATE(C.closingdate),'T',TIME(C.closingdate)),'')";
|
|
$bonid = "CONCAT(CASE WHEN O.typerange='" . RANGE_ORDER . "' THEN 'BESTL-' WHEN O.typerange='" . RANGE_BILL . "' THEN 'BELEG-' WHEN O.typerange='" . RANGE_CLOSING . "' THEN 'SONST-' ELSE 'X' END,bonid)";
|
|
|
|
$cols = array(
|
|
"Z_KASSE_ID" => array("select" => "'$paydeskid'","colname" => "paydeskid","quote" => true),
|
|
"Z_ERSTELLUNG" => array("select" => "$ztime","colname" => "closingdate","quote" => false),
|
|
"Z_NR" => array("select" => "COALESCE(C.id,'')","colname" => "clsid","quote" => false),
|
|
"BON_ID" => array("select" => $bonid,"colname" => "oid","quote" => false),
|
|
"ABRECHNUNGSKREIS" => array("select" => "COALESCE(R.name,CASE WHEN status='c' THEN '' ELSE 'Ausser-Haus' END)","colname" => "resttablename","quote" => true),
|
|
);
|
|
|
|
$sqltxt = self::createSqlSelects($cols, $fileToSave);
|
|
|
|
$sql = " SELECT " . implode(",",$sqltxt) . " FROM %operations% O ";
|
|
$sql .= " INNER JOIN %bill% B ON B.opid = O.id ";
|
|
$sql .= " LEFT JOIN %closing% C ON B.closingid=C.id ";
|
|
$sql .= " LEFT JOIN %resttables% R ON B.tableid=R.id ";
|
|
$sql = "SELECT * FROM ($sql) a ORDER BY CAST(SUBSTRING_INDEX(a.oid,'-',-1) AS UNSIGNED),a.clsid";
|
|
|
|
$dataPart = self::createCsvDataPartByCursor($pdo, $sql, $cols, $fileToSave, 'bonkopfabrkreis');
|
|
return $dataPart;
|
|
|
|
}
|
|
|
|
private static function bonkopfzahlarten($pdo,$fileToSave) {
|
|
$paydeskid = CommonUtils::getConfigValue($pdo, 'paydeskid', 1);
|
|
$ztime = "IF(C.closingdate is not null,CONCAT(DATE(C.closingdate),'T',TIME(C.closingdate)),'')";
|
|
$bonid = "CONCAT(CASE WHEN O.typerange='" . RANGE_ORDER . "' THEN 'BESTL-' WHEN O.typerange='" . RANGE_BILL . "' THEN 'BELEG-' WHEN O.typerange='" . RANGE_CLOSING . "' THEN 'SONST-' ELSE 'X' END,bonid)";
|
|
$paymenttype = "(CASE ";
|
|
$paymenttype .= " WHEN paymentid is null OR paymentid='1' THEN 'Bar' ";
|
|
$paymenttype .= " WHEN paymentid='2' THEN 'ECKarte' ";
|
|
$paymenttype .= " WHEN paymentid='3' THEN 'Kreditkarte' ";
|
|
$paymenttype .= " ELSE 'Unbar' ";
|
|
$paymenttype .= "END)";
|
|
|
|
$cols = array(
|
|
"Z_KASSE_ID" => array("select" => "'$paydeskid'","colname" => "paydeskid","quote" => true),
|
|
"Z_ERSTELLUNG" => array("select" => "$ztime","colname" => "closingdate","quote" => false),
|
|
"Z_NR" => array("select" => "COALESCE(C.id,'')","colname" => "clsid","quote" => false),
|
|
"BON_ID" => array("select" => $bonid,"colname" => "oid","quote" => false),
|
|
"ZAHLART_TYP" => array("select" => "$paymenttype","colname" => "paymenttype","quote" => true),
|
|
"ZAHLART_NAME" => array("select" => "PA.name","colname" => "paymentname","quote" => true),
|
|
"ZAHLWAEH_CODE" => array("select" => "''","colname" => "curcode","quote" => true),
|
|
"ZAHLWAEH_BETRAG" => array("select" => "''","colname" => "zaehbetrag","quote" => false),
|
|
"BASISWAEH_BETRAG" => array("select" => "B.brutto","colname" => "basvalue","quote" => false)
|
|
);
|
|
|
|
$sqltxt = self::createSqlSelects($cols, $fileToSave);
|
|
|
|
$sql = " SELECT " . implode(",",$sqltxt) . " FROM %operations% O ";
|
|
$sql .= " INNER JOIN %bill% B ON B.opid = O.id ";
|
|
$sql .= " INNER JOIN %payment% PA ON PA.id=B.paymentid ";
|
|
$sql .= " LEFT JOIN %closing% C ON B.closingid=C.id ";
|
|
$sql .= " LEFT JOIN %resttables% R ON B.tableid=R.id ";
|
|
$sql = "SELECT * FROM ($sql) a ORDER BY CAST(SUBSTRING_INDEX(a.oid,'-',-1) AS UNSIGNED),a.clsid";
|
|
|
|
$dataPart = self::createCsvDataPartByCursor($pdo, $sql, $cols, $fileToSave, 'bonkopfzahlarten');
|
|
return $dataPart;
|
|
}
|
|
|
|
private static function bonreferenzen($pdo,$fileToSave) {
|
|
$paydeskid = CommonUtils::getConfigValue($pdo, 'paydeskid', 1);
|
|
$ztime = "IF(C.closingdate is not null,CONCAT(DATE(C.closingdate),'T',TIME(C.closingdate)),'')";
|
|
$bonid = "CONCAT(CASE WHEN O.typerange='" . RANGE_ORDER . "' THEN 'BESTL-' WHEN O.typerange='" . RANGE_BILL . "' THEN 'BELEG-' WHEN O.typerange='" . RANGE_CLOSING . "' THEN 'SONST-' ELSE 'X' END,O.bonid)";
|
|
$refTimeFilter = "CASE WHEN OREF.logtime='0' THEN NULL ELSE OREF.logtime END";
|
|
$reftime = "CONCAT(DATE(from_unixtime($refTimeFilter)),'T',TIME(from_unixtime($refTimeFilter)))";
|
|
$refbonid = "CONCAT(CASE WHEN OREF.typerange='" . RANGE_ORDER . "' THEN 'BESTL-' WHEN OREF.typerange='" . RANGE_BILL . "' THEN 'BELEG-' ELSE 'X' END,OREF.bonid)";
|
|
|
|
$unitSelect = "(CASE ";
|
|
$unitSelect .= " WHEN unit is null OR unit='0' OR unit='1' THEN 'Stück' ";
|
|
$unitSelect .= " WHEN unit='2' THEN 'kg' ";
|
|
$unitSelect .= " WHEN unit='3' THEN 'gr' ";
|
|
$unitSelect .= " WHEN unit='4' THEN 'mg' ";
|
|
$unitSelect .= " WHEN unit='5' THEN 'l' ";
|
|
$unitSelect .= " WHEN unit='6' THEN 'ml' ";
|
|
$unitSelect .= " WHEN unit='7' THEN 'm' ";
|
|
$unitSelect .= " ELSE 'Stück' ";
|
|
$unitSelect .= "END)";
|
|
|
|
$colsPaidUnpaid = array(
|
|
"SIGN" => array("select" => "O.signtxt","colname" => "signtxt","quote" => true,"suspect" => 1),
|
|
"MARKER" => array("select" => "'paid.unpaid'","colname" => "marker","quote" => true,"suspect" => 1),
|
|
"Z_KASSE_ID" => array("select" => "'$paydeskid'","colname" => "paydeskid","quote" => true),
|
|
"Z_ERSTELLUNG" => array("select" => "$ztime","colname" => "closingdate","quote" => false),
|
|
"Z_NR" => array("select" => "COALESCE(C.id,'')","colname" => "clsid","quote" => false),
|
|
"BON_ID" => array("select" => $bonid,"colname" => "oid","quote" => false),
|
|
"POS_ZEILE" => array("select" => "Q.poszeile","colname" => "position","quote" => false),
|
|
"REF_TYP" => array("select" => "'Transaktion'","colname" => "reftyp","quote" => true),
|
|
"REF_NAME" => array("select" => "''","colname" => "refname","quote" => true),
|
|
"REF_DATUM" => array("select" => "$reftime","colname" => "refdatum","quote" => false),
|
|
"REF_Z_KASSE_ID" => array("select" => "'$paydeskid'","colname" => "refzkasseid","quote" => true),
|
|
"REF_Z_NR" => array("select" => "COALESCE(C.id,'')","colname" => "refznr","quote" => false),
|
|
"REF_BON_ID" => array("select" => $refbonid,"colname" => "refbonid","quote" => false)
|
|
);
|
|
|
|
$sqltxt = self::createSqlSelects($colsPaidUnpaid, $fileToSave);
|
|
|
|
$sql = "SELECT " . implode(",",$sqltxt) . " FROM %operations% O ";
|
|
$sql .= " INNER JOIN %queue% Q ON Q.opidok = O.id ";
|
|
$sql .= " LEFT JOIN %billproducts% BP ON BP.queueid=Q.id ";
|
|
$sql .= " LEFT JOIN %bill% B ON BP.billid=B.id ";
|
|
$sql .= " LEFT JOIN %closing% C ON B.closingid=C.id ";
|
|
$sql .= " LEFT JOIN %operations% OREF ON B.opid=OREF.id ";
|
|
$sql .= " WHERE B.status is null OR B.status='x' ";
|
|
|
|
|
|
|
|
$sql = "SELECT * FROM ($sql) a ORDER BY CAST(SUBSTRING_INDEX(a.oid,'-',-1) AS UNSIGNED),a.clsid";
|
|
|
|
$dataPart = self::createCsvDataPartByCursor($pdo, $sql, $colsPaidUnpaid, $fileToSave, 'bonreferences');
|
|
return $dataPart;
|
|
|
|
}
|
|
|
|
private static function tsetransactions($pdo,$fileToSave) {
|
|
$bonid = "CONCAT(CASE WHEN O.typerange='" . RANGE_ORDER . "' THEN 'BESTL-' WHEN O.typerange='" . RANGE_BILL . "' THEN 'BELEG-' WHEN O.typerange='" . RANGE_CLOSING . "' THEN 'SONST-' ELSE 'X' END,bonid)";
|
|
|
|
$paydeskid = CommonUtils::getConfigValue($pdo, 'paydeskid', 1);
|
|
$ztime = "IF(C.closingdate is not null,CONCAT(DATE(C.closingdate),'T',TIME(C.closingdate)),'')";
|
|
$logTimeFilter = "CASE WHEN O.logtime='0' THEN NULL ELSE O.logtime END";
|
|
$taLogTime = "CONCAT(DATE(from_unixtime($logTimeFilter)),'T',TIME(from_unixtime($logTimeFilter)))";
|
|
$billvorgang = "(CASE WHEN B.status is null OR status='x' THEN 'Kassenbon' WHEN B.status='s' THEN 'Bonstorno' WHEN B.status='c' THEN 'Barein-/auslage' ELSE '' END)";
|
|
|
|
$belegtype = DbUtils::$PROCESSTYPE_BELEG;
|
|
$vorgangtype = DbUtils::$PROCESSTYPE_VORGANG;
|
|
$sonstigtype = DbUtils::$PROCESSTYPE_SONSTIGER_VORGANG;
|
|
|
|
$processType = "(CASE ";
|
|
$processType .= " WHEN O.processtype='$belegtype' THEN 'Kassenbeleg-V1' ";
|
|
$processType .= " WHEN O.processtype='$vorgangtype' THEN 'Bestellung-V1' ";
|
|
$processType .= " WHEN O.processtype='$sonstigtype' THEN 'SonstigerVorgang' ";
|
|
$processType .= " ELSE 'Kassenbeleg-V1' ";
|
|
$processType .= "END)";
|
|
|
|
$noTse = DbUtils::$NO_TSE;
|
|
$tseOk = DbUtils::$TSE_OK;
|
|
$tseKnownError = DbUtils::$TSE_KNOWN_ERROR;
|
|
$tseRuntimeError = DbUtils::$TSE_RUNTIME_ERROR;
|
|
$tseMisconfig = DbUtils::$TSE_MISCONFIG;
|
|
$tseerror = "(CASE WHEN O.tseerror is null OR O.tseerror='$tseOk' THEN '' ";
|
|
$tseerror .= " WHEN O.tseerror='$noTse' THEN 'Keine TSE angeschlossen' ";
|
|
$tseerror .= " WHEN O.tseerror='$tseKnownError' THEN 'Bekannter TSE-Fehler' ";
|
|
$tseerror .= " WHEN O.tseerror='$tseRuntimeError' THEN 'Unbekannter TSE-Fehler' ";
|
|
$tseerror .= " WHEN O.tseerror='$tseMisconfig' THEN 'TSE falsch konfiguriert' ";
|
|
$tseerror .= " WHEN O.tseerror='$noTse' THEN 'keine TSE' WHEN O.tseerror='$tseKnownError' THEN 'TSE-Fehler' ";
|
|
$tseerror .= " ELSE '' END)";
|
|
|
|
$sql = "SELECT * FROM (";
|
|
$colsBills = array(
|
|
"MARKER" => array("select" => "'bills'","colname" => "marker","quote" => true,"suspect" => 1),
|
|
"Z_KASSE_ID" => array("select" => "'$paydeskid'","colname" => "paydeskid","quote" => true),
|
|
"Z_ERSTELLUNG" => array("select" => "$ztime","colname" => "closingdate","quote" => false),
|
|
"Z_NR" => array("select" => "COALESCE(C.id,'')","colname" => "clsid","quote" => false),
|
|
"BON_ID" => array("select" => $bonid,"colname" => "opid","quote" => false),
|
|
"TSE_TANR" => array("select" => "O.trans","colname" => "trans","quote" => false),
|
|
"TSE_TA_START" => array("select" => "$taLogTime","colname" => "tastart","quote" => false),
|
|
"TSE_TA_ENDE" => array("select" => "$taLogTime","colname" => "taende","quote" => false),
|
|
"TSE_TA_VORGANGSART" => array("select" => "$processType","colname" => "vorgangsart","quote" => true),
|
|
"TSE_TA_SIGZ" => array("select" => "O.sigcounter","colname" => "sigcounter","quote" => false),
|
|
"TSE_TA_SIG" => array("select" => "O.tsesignature","colname" => "tsesignature","quote" => false),
|
|
"TSE_TA_VORGANGSDATEN" => array("select" => "$billvorgang","colname" => "vorgang","quote" => true),
|
|
"TSE_TA_FEHLER" => array("select" => "$tseerror","colname" => "tseerror","quote" => true)
|
|
);
|
|
|
|
$billTableStore = DbUtils::$OPERATION_IN_BILL_TABLE;
|
|
$sqlBilltxt = self::createSqlSelects($colsBills, $fileToSave);
|
|
|
|
$sql .= "SELECT " . implode(",",$sqlBilltxt) . " from %operations% O ";
|
|
$sql .= " LEFT JOIN %bill% B ON B.opid=O.id ";
|
|
$sql .= " LEFT JOIN %closing% C ON B.closingid=C.id ";
|
|
$sql .= " WHERE O.handledintable='$billTableStore' AND O.tseerror <> $noTse ";
|
|
|
|
|
|
$colsClosings = array(
|
|
"MARKER" => array("select" => "'closings'","colname" => "marker","quote" => true,"suspect" => 1),
|
|
"Z_KASSE_ID" => array("select" => "'$paydeskid'","colname" => "paydeskid","quote" => true),
|
|
"Z_ERSTELLUNG" => array("select" => "$ztime","colname" => "closingdate","quote" => false),
|
|
"Z_NR" => array("select" => "COALESCE(C.id,'')","colname" => "clsid","quote" => false),
|
|
"BON_ID" => array("select" => $bonid,"colname" => "opid","quote" => false),
|
|
"TSE_TANR" => array("select" => "O.trans","colname" => "trans","quote" => false),
|
|
"TSE_TA_START" => array("select" => "$taLogTime","colname" => "tastart","quote" => false),
|
|
"TSE_TA_ENDE" => array("select" => "$taLogTime","colname" => "taende","quote" => false),
|
|
"TSE_TA_VORGANGSART" => array("select" => "$processType","colname" => "vorgangsart","quote" => true),
|
|
"TSE_TA_SIGZ" => array("select" => "O.sigcounter","colname" => "sigcounter","quote" => false),
|
|
"TSE_TA_SIG" => array("select" => "O.tsesignature","colname" => "tsesignature","quote" => false),
|
|
"TSE_TA_VORGANGSDATEN" => array("select" => "'Kassenabschluss'","colname" => "vorgang","quote" => true),
|
|
"TSE_TA_FEHLER" => array("select" => "$tseerror","colname" => "tseerror","quote" => true)
|
|
);
|
|
|
|
$closingTableStore = DbUtils::$OPERATION_IN_CLOSING_TABLE;
|
|
$sqlClosingtxt = self::createSqlSelects($colsClosings, $fileToSave);
|
|
|
|
$sql .= " UNION ALL ";
|
|
$sql .= "SELECT " . implode(",",$sqlClosingtxt) . " from %operations% O ";
|
|
$sql .= " INNER JOIN %closing% C ON O.id=C.opid ";
|
|
$sql .= " WHERE O.handledintable='$closingTableStore' AND O.tseerror <> $noTse ";
|
|
|
|
|
|
$queueVorgang = "IF(Q.toremove='0',CONCAT('Bestellung: ',Q.productname),CONCAT('Bestellstorno: ',Q.productname))";
|
|
|
|
$colsQueue = array(
|
|
"MARKER" => array("select" => "'queue'","colname" => "marker","quote" => true,"suspect" => 1),
|
|
"Z_KASSE_ID" => array("select" => "'$paydeskid'","colname" => "paydeskid","quote" => true),
|
|
"Z_ERSTELLUNG" => array("select" => "$ztime","colname" => "closingdate","quote" => false),
|
|
"Z_NR" => array("select" => "COALESCE(C.id,'')","colname" => "clsid","quote" => false),
|
|
"BON_ID" => array("select" => "$bonid","colname" => "opid","quote" => false),
|
|
"TSE_TANR" => array("select" => "O.trans","colname" => "trans","quote" => false),
|
|
"TSE_TA_START" => array("select" => "$taLogTime","colname" => "tastart","quote" => true),
|
|
"TSE_TA_ENDE" => array("select" => "$taLogTime","colname" => "taende","quote" => true),
|
|
"TSE_TA_VORGANGSART" => array("select" => "$processType","colname" => "vorgangsart","quote" => true),
|
|
"TSE_TA_SIGZ" => array("select" => "O.sigcounter","colname" => "sigcounter","quote" => false),
|
|
"TSE_TA_SIG" => array("select" => "O.tsesignature","colname" => "tsesignature","quote" => false),
|
|
"TSE_TA_VORGANGSDATEN" => array("select" => "$queueVorgang","colname" => "vorgang","quote" => true),
|
|
"TSE_TA_FEHLER" => array("select" => "$tseerror","colname" => "tseerror","quote" => true)
|
|
);
|
|
$queueTableStore = DbUtils::$OPERATION_IN_QUEUE_TABLE;
|
|
$sqlQueuetxt = self::createSqlSelects($colsQueue, $fileToSave);
|
|
|
|
$sql .= " UNION ALL ";
|
|
$sql .= "SELECT " . implode(",",$sqlQueuetxt) . " from %operations% O ";
|
|
$sql .= " INNER JOIN %queue% Q ON Q.opidok=O.id ";
|
|
$sql .= " LEFT JOIN %billproducts% BP ON BP.queueid=Q.id ";
|
|
$sql .= " INNER JOIN %bill% B ON BP.billid=B.id ";
|
|
$sql .= " LEFT JOIN %closing% C ON B.closingid=C.id ";
|
|
$sql .= " WHERE O.handledintable='$queueTableStore' AND O.tseerror <> $noTse ";
|
|
$sql .= " AND Q.toremove='0' ";
|
|
|
|
$sql .= " UNION ";
|
|
$sql .= "SELECT " . implode(",",$sqlQueuetxt) . " from %operations% O ";
|
|
$sql .= " INNER JOIN %queue% Q ON Q.opidcancel=O.id ";
|
|
$sql .= " LEFT JOIN %billproducts% BP ON BP.queueid=Q.id ";
|
|
$sql .= " INNER JOIN %bill% B ON BP.billid=B.id ";
|
|
$sql .= " LEFT JOIN %closing% C ON B.closingid=C.id ";
|
|
$sql .= " WHERE O.handledintable='$queueTableStore' AND O.tseerror <> $noTse ";
|
|
$sql .= " AND Q.toremove='1' ";
|
|
|
|
$sql .= " ) AS i ";
|
|
$sql .= " ORDER BY SUBSTRING_INDEX(i.opid,'-',1),CAST(SUBSTRING_INDEX(i.opid,'-',-1) AS UNSIGNED)";
|
|
|
|
$dataPart = self::createCsvDataPartByCursor($pdo, $sql, $colsBills, $fileToSave, 'tsetransactions');
|
|
return $dataPart;
|
|
}
|
|
|
|
private static function stammabschluss($pdo,$fileToSave) {
|
|
$paydeskid = CommonUtils::getConfigValue($pdo, 'paydeskid', 1);
|
|
$ztime = "IF(C.closingdate is not null,CONCAT(DATE(C.closingdate),'T',TIME(C.closingdate)),'')";
|
|
|
|
$zstartid = "(SELECT MIN(O.bonid) from %operations% O INNER JOIN %bill% B ON B.opid=O.id WHERE B.closingid=C.id)";
|
|
$zendid = "(SELECT MAX(O.bonid) from %operations% O INNER JOIN %bill% B ON B.opid=O.id WHERE B.closingid=C.id)";
|
|
|
|
$billsum = "ROUND(SUM(B.brutto),2)";
|
|
$billcashsum = "ROUND(SUM(CASE WHEN B.paymentid='1' THEN B.brutto ELSE '0.00' END),2)";
|
|
|
|
$cols = array(
|
|
"Z_KASSE_ID" => array("select" => "'$paydeskid'","colname" => "paydeskid","quote" => true),
|
|
"Z_ERSTELLUNG" => array("select" => "$ztime","colname" => "zerstellung","quote" => false),
|
|
"Z_NR" => array("select" => "COALESCE(C.id,'')","colname" => "clsid","quote" => false),
|
|
"Z_BUCHUNGSTAG" => array("select" => "DATE(C.closingdate)","colname" => "buchungstag","quote" => false),
|
|
"TAXONOMIE_VERSION" => array("select" => "COALESCE(C.dsfinvkversion,'')","colname" => "dsfinvkversion","quote" => false),
|
|
"Z_START_ID" => array("select" => "$zstartid","colname" => "zstartid","quote" => false),
|
|
"Z_ENDE_ID" => array("select" => "$zendid","colname" => "zendid","quote" => false),
|
|
"NAME" => array("select" => "C.dsfinvk_name","colname" => "name","quote" => true),
|
|
"STRASSE" => array("select" => "C.dsfinvk_street","colname" => "street","quote" => true),
|
|
"PLZ" => array("select" => "C.dsfinvk_postalcode","colname" => "plz","quote" => true),
|
|
"ORT" => array("select" => "C.dsfinvk_city","colname" => "city","quote" => true),
|
|
"LAND" => array("select" => "C.dsfinvk_country","colname" => "country","quote" => true),
|
|
"STRN" => array("select" => "C.dsfinvk_stnr","colname" => "strn","quote" => true),
|
|
"USTID" => array("select" => "C.dsfinvk_ustid","colname" => "ustid","quote" => true),
|
|
"Z_SE_ZAHLUNGEN" => array("select" => "$billsum","colname" => "billsum","quote" => false),
|
|
"Z_SE_BARZAHLUNGEN" => array("select" => "$billcashsum","colname" => "billcashsum","quote" => false)
|
|
);
|
|
$sqltxt = self::createSqlSelects($cols, $fileToSave);
|
|
$sql = "SELECT " . implode(",",$sqltxt) . " FROM %closing% C";
|
|
$sql .= " LEFT JOIN %bill% B ON B.closingid=C.id ";
|
|
$sql .= " GROUP BY C.id ";
|
|
$sql .= " ORDER BY clsid";
|
|
|
|
$dataPart = self::createCsvDataPartByCursor($pdo, $sql, $cols, $fileToSave, 'stammabschluss');
|
|
return $dataPart;
|
|
}
|
|
|
|
private static function stammorte($pdo,$fileToSave) {
|
|
$paydeskid = CommonUtils::getConfigValue($pdo, 'paydeskid', 1);
|
|
$ztime = "IF(C.closingdate is not null,CONCAT(DATE(C.closingdate),'T',TIME(C.closingdate)),'')";
|
|
|
|
$cols = array(
|
|
"Z_KASSE_ID" => array("select" => "'$paydeskid'","colname" => "paydeskid","quote" => true),
|
|
"Z_ERSTELLUNG" => array("select" => "$ztime","colname" => "zerstellung","quote" => false),
|
|
"Z_NR" => array("select" => "COALESCE(C.id,'')","colname" => "clsid","quote" => false),
|
|
"LOC_NAME" => array("select" => "C.dsfinvk_name","colname" => "name","quote" => true),
|
|
"LOC_STRASSE" => array("select" => "C.dsfinvk_street","colname" => "street","quote" => true),
|
|
"LOC_PLZ" => array("select" => "C.dsfinvk_postalcode","colname" => "plz","quote" => true),
|
|
"LOC_ORT" => array("select" => "C.dsfinvk_city","colname" => "city","quote" => true),
|
|
"LOC_LAND" => array("select" => "C.dsfinvk_country","colname" => "country","quote" => true),
|
|
"LOC_USTID" => array("select" => "C.dsfinvk_ustid","colname" => "ustid","quote" => true)
|
|
);
|
|
$sqltxt = self::createSqlSelects($cols, $fileToSave);
|
|
$sql = "SELECT " . implode(",",$sqltxt) . " FROM %closing% C";
|
|
$sql .= " LEFT JOIN %bill% B ON B.closingid=C.id ";
|
|
$sql .= " GROUP BY C.id ";
|
|
$sql .= " ORDER BY clsid";
|
|
|
|
$dataPart = self::createCsvDataPartByCursor($pdo, $sql, $cols, $fileToSave, 'stammorte');
|
|
return $dataPart;
|
|
}
|
|
|
|
private static function stammkassen($pdo,$fileToSave) {
|
|
$paydeskid = CommonUtils::getConfigValue($pdo, 'paydeskid', 1);
|
|
$ztime = "IF(C.closingdate is not null,CONCAT(DATE(C.closingdate),'T',TIME(C.closingdate)),'')";
|
|
$sn = CommonUtils::getConfigValue($pdo, 'sn', '');
|
|
$currency = CommonUtils::getCurrencyAsIsoVal($pdo);
|
|
|
|
$cols = array(
|
|
"Z_KASSE_ID" => array("select" => "'$paydeskid'","colname" => "paydeskid","quote" => true),
|
|
"Z_ERSTELLUNG" => array("select" => "$ztime","colname" => "zerstellung","quote" => false),
|
|
"Z_NR" => array("select" => "COALESCE(C.id,'')","colname" => "clsid","quote" => false),
|
|
"KASSE_BRAND" => array("select" => "'OrderSprinter'","colname" => "brand","quote" => true),
|
|
"KASSE_MODELL" => array("select" => "'OrderSprinter'","colname" => "modell","quote" => true),
|
|
"KASSE_SERIENNR" => array("select" => "'$sn'","colname" => "sn","quote" => true),
|
|
"KASSE_SW_BRAND" => array("select" => "'OrderSprinter'","colname" => "swbrand","quote" => true),
|
|
"KASSE_SW_VERSION" => array("select" => "C.version","colname" => "swversion","quote" => true),
|
|
"KASSE_BASISWAEH_CODE" => array("select" => "'$currency'","colname" => "basiswae","quote" => false),
|
|
"KEINE_UST_ZUORDNUNG" => array("select" => "''","colname" => "ustassign","quote" => false)
|
|
);
|
|
$sqltxt = self::createSqlSelects($cols, $fileToSave);
|
|
$sql = "SELECT " . implode(",",$sqltxt) . " FROM %closing% C";
|
|
|
|
$dataPart = self::createCsvDataPartByCursor($pdo, $sql, $cols, $fileToSave, 'stammkassen');
|
|
return $dataPart;
|
|
}
|
|
|
|
private static function stammterminals($pdo,$fileToSave) {
|
|
$paydeskid = CommonUtils::getConfigValue($pdo, 'paydeskid', 1);
|
|
$ztime = "IF(C.closingdate is not null,CONCAT(DATE(C.closingdate),'T',TIME(C.closingdate)),'')";
|
|
|
|
$cols = array(
|
|
"Z_KASSE_ID" => array("select" => "'$paydeskid'","colname" => "paydeskid","quote" => true),
|
|
"Z_ERSTELLUNG" => array("select" => "$ztime","colname" => "zerstellung","quote" => false),
|
|
"Z_NR" => array("select" => "COALESCE(C.id,'')","colname" => "clsid","quote" => false),
|
|
"TERMINAL_ID" => array("select" => "COALESCE(C.terminalid,'')","colname" => "terminalid","quote" => false),
|
|
"TERMINAL_BRAND" => array("select" => "'Browser'","colname" => "terminalbrand","quote" => true),
|
|
"TERMINAL_MODELL" => array("select" => "CONCAT(T.browser,'-',T.platform)","colname" => "terminalmodell","quote" => true),
|
|
"TERMINAL_SERIENNR" => array("select" => "T.useragent","colname" => "terminalsn","quote" => true),
|
|
"TERMINAL_SW_BRAND" => array("select" => "''","colname" => "terminalswbrand","quote" => true),
|
|
"TERMINAL_SW_VERSION" => array("select" => "T.version","colname" => "terminalswversion","quote" => true)
|
|
);
|
|
$sqltxt = self::createSqlSelects($cols, $fileToSave);
|
|
$sql = "SELECT " . implode(",",$sqltxt) . " FROM %closing% C";
|
|
$sql .= " LEFT JOIN %terminals% T ON C.terminalid=T.id ";
|
|
$sql .= " ORDER BY T.id ";
|
|
|
|
$dataPart = self::createCsvDataPartByCursor($pdo, $sql, $cols, $fileToSave, 'stammterminals');
|
|
return $dataPart;
|
|
}
|
|
|
|
private static function stammagenturen($pdo,$fileToSave) {
|
|
$paydeskid = CommonUtils::getConfigValue($pdo, 'paydeskid', 1);
|
|
$ztime = "IF(C.closingdate is not null,CONCAT(DATE(C.closingdate),'T',TIME(C.closingdate)),'')";
|
|
|
|
$cols = array(
|
|
"Z_KASSE_ID" => array("select" => "'$paydeskid'","colname" => "paydeskid","quote" => true),
|
|
"Z_ERSTELLUNG" => array("select" => "$ztime","colname" => "zerstellung","quote" => false),
|
|
"Z_NR" => array("select" => "COALESCE(C.id,'')","colname" => "clsid","quote" => false),
|
|
"AGENTUR_ID" => array("select" => "''","colname" => "agenturid","quote" => false),
|
|
"AGENTUR_NAME" => array("select" => "''","colname" => "agenturname","quote" => true),
|
|
"AGENTUR_STRASSE" => array("select" => "''","colname" => "agenturstreet","quote" => true),
|
|
"AGENTUR_PLZ" => array("select" => "''","colname" => "agenturplz","quote" => true),
|
|
"AGENTUR_ORT" => array("select" => "''","colname" => "agenturcity","quote" => true),
|
|
"AGENTUR_LAND" => array("select" => "''","colname" => "agenturciuntry","quote" => true),
|
|
"AGENTUR_STNR" => array("select" => "''","colname" => "agenturstnr","quote" => true),
|
|
"AGENTUR_USTID" => array("select" => "''","colname" => "agenturustid","quote" => true)
|
|
);
|
|
$sqltxt = self::createSqlSelects($cols, $fileToSave);
|
|
$sql = "SELECT " . implode(",",$sqltxt) . " FROM %closing% C";
|
|
$sql .= " LEFT JOIN %terminals% T ON C.terminalid=T.id ";
|
|
$sql .= " ORDER BY T.id,clsid ";
|
|
|
|
$dataPart = self::createCsvDataPartByCursor($pdo, $sql, $cols, $fileToSave, 'stammagenturen');
|
|
return $dataPart;
|
|
}
|
|
|
|
private static function _stammust_helper_getTaxPart($pdo,$taxkey,$fileToSave,$paydeskid,$ztime) {
|
|
$taxVal = CommonUtils::getTaxFromKey($pdo, $taxkey);
|
|
$taxDesc = CommonUtils::getTaxDescriptionFromKey($pdo, $taxkey);
|
|
$colsTaxSet5 = array(
|
|
"Z_KASSE_ID" => array("select" => "'$paydeskid'","colname" => "paydeskid","quote" => true),
|
|
"Z_ERSTELLUNG" => array("select" => "$ztime","colname" => "zerstellung","quote" => false),
|
|
"Z_NR" => array("select" => "COALESCE(C.id,'')","colname" => "clsid","quote" => false),
|
|
"UST_SCHLUESSEL" => array("select" => "'$taxkey'","colname" => "akey","quote" => false),
|
|
"UST_SATZ" => array("select" => "ROUND('$taxVal',2)","colname" => "avalue","quote" => false),
|
|
"UST_BESCHR" => array("select" => "'$taxDesc'","colname" => "aname","quote" => false),
|
|
);
|
|
return "SELECT " . implode(',',self::createSqlSelects($colsTaxSet5, $fileToSave)) . " FROM %closing% C ";
|
|
}
|
|
|
|
private static function stammust($pdo,$fileToSave) {
|
|
$paydeskid = CommonUtils::getConfigValue($pdo, 'paydeskid', 1);
|
|
$ztime = "IF(C.closingdate is not null,CONCAT(DATE(C.closingdate),'T',TIME(C.closingdate)),'')";
|
|
|
|
$taxKey1Descr = CommonUtils::getTaxDescriptionFromKey($pdo, 1);
|
|
$taxKey2Descr = CommonUtils::getTaxDescriptionFromKey($pdo, 2);
|
|
|
|
$colsTaxSet1 = array(
|
|
"Z_KASSE_ID" => array("select" => "'$paydeskid'","colname" => "paydeskid","quote" => true),
|
|
"Z_ERSTELLUNG" => array("select" => "$ztime","colname" => "zerstellung","quote" => false),
|
|
"Z_NR" => array("select" => "COALESCE(C.id,'')","colname" => "clsid","quote" => false),
|
|
"UST_SCHLUESSEL" => array("select" => "'1'","colname" => "akey","quote" => false),
|
|
"UST_SATZ" => array("select" => "ROUND(C.taxset1,2)","colname" => "avalue","quote" => false),
|
|
"UST_BESCHR" => array("select" => "'$taxKey1Descr'","colname" => "aname","quote" => false),
|
|
);
|
|
$sqlParts1 = "SELECT " . implode(',',self::createSqlSelects($colsTaxSet1, $fileToSave)) . " FROM %closing% C ";
|
|
$colsTaxSet2 = array(
|
|
"Z_KASSE_ID" => array("select" => "'$paydeskid'","colname" => "paydeskid","quote" => true),
|
|
"Z_ERSTELLUNG" => array("select" => "$ztime","colname" => "zerstellung","quote" => false),
|
|
"Z_NR" => array("select" => "COALESCE(C.id,'')","colname" => "clsid","quote" => false),
|
|
"UST_SCHLUESSEL" => array("select" => "'2'","colname" => "akey","quote" => false),
|
|
"UST_SATZ" => array("select" => "ROUND(C.taxset2,2)","colname" => "avalue","quote" => false),
|
|
"UST_BESCHR" => array("select" => "'$taxKey2Descr'","colname" => "aname","quote" => false),
|
|
);
|
|
$sqlParts2 = "SELECT " . implode(',',self::createSqlSelects($colsTaxSet2, $fileToSave)) . " FROM %closing% C ";
|
|
|
|
$sqlParts5 = self::_stammust_helper_getTaxPart($pdo, 5, $fileToSave, $paydeskid, $ztime);
|
|
$sqlParts11 = self::_stammust_helper_getTaxPart($pdo, 11, $fileToSave, $paydeskid, $ztime);
|
|
$sqlParts12 = self::_stammust_helper_getTaxPart($pdo, 12, $fileToSave, $paydeskid, $ztime);
|
|
$sqlParts21 = self::_stammust_helper_getTaxPart($pdo, 21, $fileToSave, $paydeskid, $ztime);
|
|
$sqlParts22 = self::_stammust_helper_getTaxPart($pdo, 22, $fileToSave, $paydeskid, $ztime);
|
|
|
|
$ustkeys = implode(" UNION ALL ",array($sqlParts1,$sqlParts2,$sqlParts5,$sqlParts11,$sqlParts12,$sqlParts21,$sqlParts22));
|
|
|
|
$sql = "SELECT * FROM (";
|
|
$sql .= $ustkeys;
|
|
$sql .= " ) AS i ";
|
|
$sql .= " ORDER BY (CAST(i.clsid AS UNSIGNED)),(CAST(i.akey AS UNSIGNED))";
|
|
$dataPart = self::createCsvDataPartByCursor($pdo, $sql, $colsTaxSet1, $fileToSave, 'stammust');
|
|
return $dataPart;
|
|
}
|
|
|
|
private static function stammtse($pdo,$fileToSave) {
|
|
$paydeskid = CommonUtils::getConfigValue($pdo, 'paydeskid', 1);
|
|
$ztime = "IF(C.closingdate is not null,CONCAT(DATE(C.closingdate),'T',TIME(C.closingdate)),'')";
|
|
|
|
$sigalg = "(SELECT textvalue as sigalg FROM %tsevalues% TSE WHERE TSE.id=O.sigalg)";
|
|
$serialno = "(SELECT textvalue as serialno FROM %tsevalues% TSE WHERE TSE.id=O.serialno)";
|
|
$pubkey = "(SELECT textvalue as publickey FROM %tsevalues% TSE WHERE TSE.id=O.pubkey)";
|
|
$certificate1 = "(SELECT SUBSTRING(textvalue,1,1000) as certificate FROM %tsevalues% TSE WHERE TSE.id=O.certificate)";
|
|
$certificate2 = "(SELECT SUBSTRING(textvalue,1001) as certificate FROM %tsevalues% TSE WHERE TSE.id=O.certificate)";
|
|
$cols = array(
|
|
"Z_KASSE_ID" => array("select" => "'$paydeskid'","colname" => "paydeskid","quote" => true),
|
|
"Z_ERSTELLUNG" => array("select" => "$ztime","colname" => "zerstellung","quote" => false),
|
|
"Z_NR" => array("select" => "COALESCE(C.id,'')","colname" => "clsid","quote" => false),
|
|
"TSE_ID" => array("select" => "'1'","colname" => "tseid","quote" => false),
|
|
"TSE_SERIAL" => array("select" => "$serialno","colname" => "tseseial","quote" => true, "suspect" => 1),
|
|
"TSE_SIG_ALGO" => array("select" => "$sigalg","colname" => "sigalgo","quote" => true),
|
|
"TSE_ZEITFORMAT" => array("select" => "'unixTime'","colname" => "tsezeitformat","quote" => true, "suspect" => 1),
|
|
"TSE_PD_ENCODING" => array("select" => "'UTF-8'","colname" => "encoding","quote" => true),
|
|
"TSE_PUBLIC_KEY" => array("select" => $pubkey,"colname" => "pubkey","quote" => true),
|
|
"TSE_ZERTIFIKAT_I" => array("select" => $certificate1,"colname" => "cert1","quote" => true),
|
|
"TSE_ZERTIFIKAT_II" => array("select" => $certificate2,"colname" => "cert2","quote" => true)
|
|
);
|
|
$sqltxt = self::createSqlSelects($cols, $fileToSave);
|
|
$sql = "SELECT " . implode(",",$sqltxt) . " FROM %closing% C ";
|
|
$sql .= " LEFT JOIN %operations% O ON O.id=C.opid ";
|
|
$sql .= " ORDER BY clsid";
|
|
|
|
$dataPart = self::createCsvDataPartByCursor($pdo, $sql, $cols, $fileToSave, 'stammtse');
|
|
return $dataPart;
|
|
}
|
|
|
|
private static function _zgvtyp_helper_getonlycols() {
|
|
$cols = array(
|
|
"Z_KASSE_ID" => array("select" => "''","colname" => "paydeskid","quote" => true),
|
|
"Z_ERSTELLUNG" => array("select" => "''","colname" => "zerstellung","quote" => false),
|
|
"Z_NR" => array("select" => "COALESCE(C.id,'')","colname" => "clsid","quote" => false),
|
|
"GV_TYP" => array("select" => "''","colname" => "gvtyp","quote" => true),
|
|
"GV_NAME" => array("select" => "''","colname" => "gvname","quote" => true),
|
|
"AGENTUR_ID" => array("select" => "'0'","colname" => "agenturid","quote" => true),
|
|
"UST_SCHLUESSEL" => array("select" => "'5'","colname" => "ustkey","quote" => false),
|
|
"Z_UMS_BRUTTO" => array("select" => "ROUND(SUM(B.brutto),5)","colname" => "brutto","quote" => false),
|
|
"Z_UMS_NETTO" => array("select" => "ROUND(SUM(B.brutto),5)","colname" => "netto","quote" => false),
|
|
"Z_UST" => array("select" => "ROUND('0.00',5)","colname" => "zust","quote" => false)
|
|
);
|
|
return $cols;
|
|
}
|
|
private static function _zgvtyp_helper_billsSums($fileToSave,$paydeskid,$ztime,$gvtyp) {
|
|
$gvtypelabel = $gvtyp['label'];
|
|
$cashtype = $gvtyp['cashtype'];
|
|
$cols = array(
|
|
"Z_KASSE_ID" => array("select" => "'$paydeskid'","colname" => "paydeskid","quote" => true),
|
|
"Z_ERSTELLUNG" => array("select" => "$ztime","colname" => "zerstellung","quote" => false),
|
|
"Z_NR" => array("select" => "COALESCE(C.id,'')","colname" => "clsid","quote" => false),
|
|
"GV_TYP" => array("select" => "'$gvtypelabel'","colname" => "gvtyp","quote" => true),
|
|
"GV_NAME" => array("select" => "''","colname" => "gvname","quote" => true),
|
|
"AGENTUR_ID" => array("select" => "'0'","colname" => "agenturid","quote" => true),
|
|
"UST_SCHLUESSEL" => array("select" => "'5'","colname" => "ustkey","quote" => false),
|
|
"Z_UMS_BRUTTO" => array("select" => "ROUND(SUM(B.brutto),5)","colname" => "brutto","quote" => false),
|
|
"Z_UMS_NETTO" => array("select" => "ROUND(SUM(B.brutto),5)","colname" => "netto","quote" => false),
|
|
"Z_UST" => array("select" => "'0.00000'","colname" => "zust","quote" => false)
|
|
);
|
|
$sqltxt = self::createSqlSelects($cols, $fileToSave);
|
|
$sql = "SELECT " . implode(",",$sqltxt) . " FROM %closing% C ";
|
|
$sql .= " INNER JOIN %bill% B ON B.closingid=C.id ";
|
|
$sql .= " WHERE B.status='c' AND B.cashtype='$cashtype' ";
|
|
$sql .= " GROUP BY C.id ";
|
|
return $sql;
|
|
}
|
|
private static function _zgvtyp_helper_diffsollist($fileToSave,$paydeskid,$ztime) {
|
|
$cols = array(
|
|
"Z_KASSE_ID" => array("select" => "'$paydeskid'","colname" => "paydeskid","quote" => true),
|
|
"Z_ERSTELLUNG" => array("select" => "$ztime","colname" => "zerstellung","quote" => false),
|
|
"Z_NR" => array("select" => "COALESCE(C.id,'')","colname" => "clsid","quote" => false),
|
|
"GV_TYP" => array("select" => "'DifferenzSollIst'","colname" => "gvtyp","quote" => true),
|
|
"GV_NAME" => array("select" => "''","colname" => "gvname","quote" => true),
|
|
"AGENTUR_ID" => array("select" => "'0'","colname" => "agenturid","quote" => true),
|
|
"UST_SCHLUESSEL" => array("select" => "'5'","colname" => "ustkey","quote" => false),
|
|
"Z_UMS_BRUTTO" => array("select" => "ROUND(C.cashsum - C.counted,5)","colname" => "brutto","quote" => false),
|
|
"Z_UMS_NETTO" => array("select" => "ROUND(C.cashsum - C.counted,5)","colname" => "netto","quote" => false),
|
|
"Z_UST" => array("select" => "'0.00000'","colname" => "zust","quote" => false)
|
|
);
|
|
$sqltxt = self::createSqlSelects($cols, $fileToSave);
|
|
$sql = "SELECT " . implode(",",$sqltxt) . " FROM %closing% C ";
|
|
$sql .= " WHERE C.counting='1' ";
|
|
$sql .= " GROUP BY C.id ";
|
|
return $sql;
|
|
}
|
|
private static function _zgvtyp_helper_prodSums($fileToSave,$paydeskid,$ztime,$gvtyp) {
|
|
$gvtypelabel = $gvtyp['label'];
|
|
$taxkey = $gvtyp['taxkey'];
|
|
$ordertype = $gvtyp['ordertype'];
|
|
$cols = array(
|
|
"Z_KASSE_ID" => array("select" => "'$paydeskid'","colname" => "paydeskid","quote" => true),
|
|
"Z_ERSTELLUNG" => array("select" => "$ztime","colname" => "zerstellung","quote" => false),
|
|
"Z_NR" => array("select" => "COALESCE(C.id,'')","colname" => "clsid","quote" => false),
|
|
"GV_TYP" => array("select" => "'$gvtypelabel'","colname" => "gvtyp","quote" => true),
|
|
"GV_NAME" => array("select" => "''","colname" => "gvname","quote" => true),
|
|
"AGENTUR_ID" => array("select" => "'0'","colname" => "agenturid","quote" => true),
|
|
"UST_SCHLUESSEL" => array("select" => "'$taxkey'","colname" => "ustkey","quote" => false),
|
|
"Z_UMS_BRUTTO" => array("select" => "ROUND(SUM(Q.price),5)","colname" => "brutto","quote" => false),
|
|
"Z_UMS_NETTO" => array("select" => "round(SUM(price / (1.0 + Q.tax/100.0)),5)","colname" => "netto","quote" => false),
|
|
"Z_UST" => array("select" => "ROUND(SUM(Q.price - price / (1.0 + Q.tax/100.0)),5)","colname" => "zust","quote" => false)
|
|
);
|
|
$sqltxt = self::createSqlSelects($cols, $fileToSave);
|
|
$sql = "SELECT " . implode(",",$sqltxt) . " FROM %closing% C ";
|
|
$sql .= " INNER JOIN %bill% B ON B.closingid=C.id ";
|
|
$sql .= " INNER JOIN %billproducts% BP ON BP.billid=B.id ";
|
|
$sql .= " INNER JOIN %queue% Q ON Q.id=BP.queueid ";
|
|
$sql .= " WHERE (B.status is null OR B.status <> 'c') AND Q.taxkey='$taxkey' AND Q.ordertype='$ordertype'";
|
|
$sql .= " GROUP BY C.id ";
|
|
return $sql;
|
|
}
|
|
private static function zgvtyp($pdo,$fileToSave) {
|
|
$paydeskid = CommonUtils::getConfigValue($pdo, 'paydeskid', 1);
|
|
$ztime = "IF(C.closingdate is not null,CONCAT(DATE(C.closingdate),'T',TIME(C.closingdate)),'')";
|
|
|
|
$colsPrivateinlage = self::_zgvtyp_helper_billsSums($fileToSave, $paydeskid, $ztime, array("label" => "Privateinlage", "cashtype" => 2));
|
|
$colsPrivatentnahme = self::_zgvtyp_helper_billsSums($fileToSave, $paydeskid, $ztime, array("label" => "Privatentnahme", "cashtype" => 1));
|
|
$colsEinzahlung = self::_zgvtyp_helper_billsSums($fileToSave, $paydeskid, $ztime, array("label" => "Einzahlung", "cashtype" => 5));
|
|
$colsAuszahlung = self::_zgvtyp_helper_billsSums($fileToSave, $paydeskid, $ztime, array("label" => "Auszahlung", "cashtype" => 6));
|
|
$colsTrinkgeldAN= self::_zgvtyp_helper_billsSums($fileToSave, $paydeskid, $ztime, array("label" => "TrinkgeldAN", "cashtype" => 7));
|
|
$colsTrinkgeldAG= self::_zgvtyp_helper_billsSums($fileToSave, $paydeskid, $ztime, array("label" => "TrinkgeldAG", "cashtype" => 8));
|
|
$colsDiffSollIst = self::_zgvtyp_helper_diffsollist($fileToSave, $paydeskid, $ztime);
|
|
|
|
$colsProdSumsUmsatzKey1 = self::_zgvtyp_helper_prodSums($fileToSave, $paydeskid, $ztime, array("label" => "Umsatz","taxkey" => 1, "ordertype" => DbUtils::$ORDERTYPE_PRODUCT));
|
|
$colsProdSumsUmsatzKey2 = self::_zgvtyp_helper_prodSums($fileToSave, $paydeskid, $ztime, array("label" => "Umsatz","taxkey" => 2, "ordertype" => DbUtils::$ORDERTYPE_PRODUCT));
|
|
$colsProdSumsUmsatzKey5 = self::_zgvtyp_helper_prodSums($fileToSave, $paydeskid, $ztime, array("label" => "Umsatz","taxkey" => 5, "ordertype" => DbUtils::$ORDERTYPE_PRODUCT));
|
|
$colsProdSumsUmsatzKey11 = self::_zgvtyp_helper_prodSums($fileToSave, $paydeskid, $ztime, array("label" => "Umsatz","taxkey" => 11, "ordertype" => DbUtils::$ORDERTYPE_PRODUCT));
|
|
$colsProdSumsUmsatzKey12 = self::_zgvtyp_helper_prodSums($fileToSave, $paydeskid, $ztime, array("label" => "Umsatz","taxkey" => 12, "ordertype" => DbUtils::$ORDERTYPE_PRODUCT));
|
|
$colsProdSumsUmsatzKey21 = self::_zgvtyp_helper_prodSums($fileToSave, $paydeskid, $ztime, array("label" => "Umsatz","taxkey" => 21, "ordertype" => DbUtils::$ORDERTYPE_PRODUCT));
|
|
$colsProdSumsUmsatzKey22 = self::_zgvtyp_helper_prodSums($fileToSave, $paydeskid, $ztime, array("label" => "Umsatz","taxkey" => 22, "ordertype" => DbUtils::$ORDERTYPE_PRODUCT));
|
|
|
|
$colsVoucherSumsUmsatzKey1 = self::_zgvtyp_helper_prodSums($fileToSave, $paydeskid, $ztime, array("label" => "EinzweckgutscheinKauf","taxkey" => 1, "ordertype" => DbUtils::$ORDERTYPE_1ZweckKauf));
|
|
$colsVoucherSumsUmsatzKey2 = self::_zgvtyp_helper_prodSums($fileToSave, $paydeskid, $ztime, array("label" => "EinzweckgutscheinKauf","taxkey" => 2, "ordertype" => DbUtils::$ORDERTYPE_1ZweckKauf));
|
|
$colsVoucherSumsUmsatzKey5 = self::_zgvtyp_helper_prodSums($fileToSave, $paydeskid, $ztime, array("label" => "EinzweckgutscheinKauf","taxkey" => 5, "ordertype" => DbUtils::$ORDERTYPE_1ZweckKauf));
|
|
$colsVoucherSumsUmsatzKey11 = self::_zgvtyp_helper_prodSums($fileToSave, $paydeskid, $ztime, array("label" => "EinzweckgutscheinKauf","taxkey" => 11, "ordertype" => DbUtils::$ORDERTYPE_1ZweckKauf));
|
|
$colsVoucherSumsUmsatzKey12 = self::_zgvtyp_helper_prodSums($fileToSave, $paydeskid, $ztime, array("label" => "EinzweckgutscheinKauf","taxkey" => 12, "ordertype" => DbUtils::$ORDERTYPE_1ZweckKauf));
|
|
$colsVoucherSumsUmsatzKey21 = self::_zgvtyp_helper_prodSums($fileToSave, $paydeskid, $ztime, array("label" => "EinzweckgutscheinKauf","taxkey" => 21, "ordertype" => DbUtils::$ORDERTYPE_1ZweckKauf));
|
|
$colsVoucherSumsUmsatzKey22 = self::_zgvtyp_helper_prodSums($fileToSave, $paydeskid, $ztime, array("label" => "EinzweckgutscheinKauf","taxkey" => 22, "ordertype" => DbUtils::$ORDERTYPE_1ZweckKauf));
|
|
|
|
$colsVoucherEinlSumsUmsatzKey5 = self::_zgvtyp_helper_prodSums($fileToSave, $paydeskid, $ztime, array("label" => "EinzweckgutscheinEinloesung","taxkey" => 5, "ordertype" => DbUtils::$ORDERTYPE_1ZweckEinl));
|
|
|
|
|
|
$allCols = implode(" UNION ALL ",array(
|
|
$colsPrivateinlage,$colsPrivatentnahme,
|
|
$colsEinzahlung,$colsAuszahlung,
|
|
$colsTrinkgeldAN,$colsTrinkgeldAG,
|
|
$colsDiffSollIst,
|
|
$colsProdSumsUmsatzKey1,$colsProdSumsUmsatzKey2,$colsProdSumsUmsatzKey5,$colsProdSumsUmsatzKey11,$colsProdSumsUmsatzKey12,$colsProdSumsUmsatzKey21,$colsProdSumsUmsatzKey22,
|
|
$colsVoucherSumsUmsatzKey1,$colsVoucherSumsUmsatzKey2,$colsVoucherSumsUmsatzKey5,$colsVoucherSumsUmsatzKey11,$colsVoucherSumsUmsatzKey12,$colsVoucherSumsUmsatzKey21,$colsVoucherSumsUmsatzKey22,
|
|
$colsVoucherEinlSumsUmsatzKey5
|
|
));
|
|
|
|
$sql = "SELECT * FROM (";
|
|
$sql .= $allCols;
|
|
$sql .= " ) AS i ";
|
|
$sql .= " ORDER BY (CAST(i.clsid AS UNSIGNED)),(CAST(i.gvtyp AS UNSIGNED)),(CAST(i.ustkey AS UNSIGNED))";
|
|
|
|
$dataPart = self::createCsvDataPartByCursor($pdo, $sql, self::_zgvtyp_helper_getonlycols(), $fileToSave, 'zgvtyp');
|
|
return $dataPart;
|
|
}
|
|
|
|
private static function zzahlart($pdo,$fileToSave) {
|
|
$paydeskid = CommonUtils::getConfigValue($pdo, 'paydeskid', 1);
|
|
$ztime = "IF(C.closingdate is not null,CONCAT(DATE(C.closingdate),'T',TIME(C.closingdate)),'')";
|
|
|
|
$zahlarttyp = "(CASE WHEN B.paymentid='1' THEN 'Bar' WHEN B.paymentid='2' THEN 'ECKarte' WHEN B.paymentid='3' THEN 'Kreditkarte' ELSE 'Keine' END)";
|
|
$cols = array(
|
|
"Z_KASSE_ID" => array("select" => "'$paydeskid'","colname" => "paydeskid","quote" => true),
|
|
"Z_ERSTELLUNG" => array("select" => "$ztime","colname" => "zerstellung","quote" => false),
|
|
"Z_NR" => array("select" => "COALESCE(C.id,'')","colname" => "clsid","quote" => false),
|
|
"ZAHLART_TYP" => array("select" => "$zahlarttyp","colname" => "paymenttype","quote" => true),
|
|
"ZAHLART_NAME" => array("select" => "''","colname" => "paymentname","quote" => true),
|
|
"Z_ZAHLART_BETRAG" => array("select" => "ROUND(SUM(B.brutto),2)","colname" => "paymentsum","quote" => false)
|
|
);
|
|
$sqltxt = self::createSqlSelects($cols, $fileToSave);
|
|
$allCols = "SELECT " . implode(",",$sqltxt) . " FROM %closing% C ";
|
|
$allCols .= " INNER JOIN %bill% B ON B.closingid=C.id ";
|
|
$allCols .= " WHERE B.paymentid='1' OR B.paymentid='2' OR B.paymentid='3'";
|
|
$allCols .= " GROUP BY C.id,B.paymentid ";
|
|
|
|
$sql = "SELECT * FROM (";
|
|
$sql .= $allCols;
|
|
$sql .= " ) AS i ";
|
|
$sql .= " ORDER BY (CAST(i.clsid AS UNSIGNED)),paymenttype";
|
|
|
|
$dataPart = self::createCsvDataPartByCursor($pdo, $sql, $cols, $fileToSave, 'zzahlart');
|
|
return $dataPart;
|
|
}
|
|
|
|
private static function zwaehrungen($pdo,$fileToSave) {
|
|
$paydeskid = CommonUtils::getConfigValue($pdo, 'paydeskid', 1);
|
|
$ztime = "IF(C.closingdate is not null,CONCAT(DATE(C.closingdate),'T',TIME(C.closingdate)),'')";
|
|
$currency = CommonUtils::getConfigValue($pdo, 'currency', '');
|
|
if (in_array(strtoupper($currency), array("EURO","EUR","E","€"))) {
|
|
$currency = "EUR";
|
|
}
|
|
|
|
$cols = array(
|
|
"Z_KASSE_ID" => array("select" => "'$paydeskid'","colname" => "paydeskid","quote" => true),
|
|
"Z_ERSTELLUNG" => array("select" => "$ztime","colname" => "zerstellung","quote" => false),
|
|
"Z_NR" => array("select" => "COALESCE(C.id,'')","colname" => "clsid","quote" => false),
|
|
"ZAHLART_WAEH" => array("select" => "'$currency'","colname" => "paymentcurrency","quote" => true),
|
|
);
|
|
$sqltxt = self::createSqlSelects($cols, $fileToSave);
|
|
$allCols = "SELECT " . implode(",",$sqltxt) . " FROM %closing% C ";
|
|
$allCols .= " GROUP BY C.id ";
|
|
|
|
$sql = "SELECT * FROM (";
|
|
$sql .= $allCols;
|
|
$sql .= " ) AS i ";
|
|
$sql .= " ORDER BY (CAST(i.clsid AS UNSIGNED)),paymentcurrency";
|
|
|
|
$dataPart = self::createCsvDataPartByCursor($pdo, $sql, $cols, $fileToSave, 'zwaehrungen');
|
|
return $dataPart;
|
|
}
|
|
|
|
private static function createCsvHeader($cols,$doHtml,$tablename) {
|
|
$startOfRow = "";
|
|
$endOfRow = "";
|
|
$sep = ";";
|
|
if ($doHtml) {
|
|
$startOfRow = '<tr style="display:\"\";" onclick="javascript:showsection(\'' . $tablename . '\'); return false"><th>';
|
|
$endOfRow = "</tr>";
|
|
$sep = "";
|
|
}
|
|
$colArray = array();
|
|
$keys = array_keys($cols);
|
|
foreach($keys as $k) {
|
|
if ($doHtml) {
|
|
$colArray[] = "<th>" . $k;
|
|
} else {
|
|
if (!isset($cols[$k]["suspect"]) || $cols[$k]["suspect"] == 0) {
|
|
$colArray[] = $k;
|
|
}
|
|
}
|
|
}
|
|
|
|
return $startOfRow . implode($sep,$colArray) . $endOfRow;
|
|
}
|
|
private static function createCsvDataRow($cols,$entry, $doHtml,$tablename,$linenumber) {
|
|
$startOfRow = "";
|
|
$endOfRow = "";
|
|
$sep = ";";
|
|
if ($doHtml) {
|
|
$startOfRow = "<tr class='" . $tablename . "'><td>" . $linenumber;
|
|
$endOfRow = "</tr>";
|
|
$sep = "";
|
|
}
|
|
$colArray = array();
|
|
$keys = array_keys($cols);
|
|
|
|
foreach($keys as $k) {
|
|
$dataEntry = $entry[$cols[$k]["colname"]];
|
|
if ($cols[$k]["quote"]) {
|
|
$dataEntry = "\"" . str_replace("\"", "\"\"", $dataEntry) . "\"";
|
|
}
|
|
if ($doHtml) {
|
|
if (isset($cols[$k]["suspect"]) && ($cols[$k]["suspect"] == 1)) {
|
|
$colArray[] = "<td class='suspect'>" . $dataEntry;
|
|
} else {
|
|
$colArray[] = "<td>" . $dataEntry;
|
|
}
|
|
} else {
|
|
if (!isset($cols[$k]["suspect"]) || ($cols[$k]["suspect"] == 0)) {
|
|
$colArray[] = $dataEntry;
|
|
}
|
|
}
|
|
}
|
|
return $startOfRow . implode($sep,$colArray) . $endOfRow;
|
|
}
|
|
|
|
private static function createCsvDataPartByCursor($pdo,$sql,$cols,$fileToSave,$tablename) {
|
|
$stmt = $pdo->prepare(DbUtils::substTableAlias($sql),array(PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL));
|
|
$stmt->execute();
|
|
$doHtml = (is_null($fileToSave) ? true : false);
|
|
$header = self::createCsvHeader($cols,$doHtml,$tablename);
|
|
if (is_null($fileToSave)) {
|
|
$dataRows = array();
|
|
$linenumber = 1;
|
|
while ($row = $stmt->fetch(PDO::FETCH_ASSOC, PDO::FETCH_ORI_NEXT)) {
|
|
$data = self::createCsvDataRow($cols, $row, $doHtml,$tablename,$linenumber);
|
|
$dataRows[] = $data;
|
|
$linenumber++;
|
|
}
|
|
$stmt->closeCursor();
|
|
$stmt = null;
|
|
return $header . "\n" . implode("\n",$dataRows);
|
|
} else {
|
|
if (file_exists($fileToSave)) {
|
|
try {
|
|
unlink($fileToSave);
|
|
} catch (Exception $ex) {
|
|
exit("File " . $fileToSave . " could not be deleted");
|
|
}
|
|
}
|
|
file_put_contents($fileToSave, $header . "\n", FILE_APPEND | LOCK_EX);
|
|
while ($row = $stmt->fetch(PDO::FETCH_ASSOC, PDO::FETCH_ORI_NEXT)) {
|
|
$data = self::createCsvDataRow($cols, $row, $doHtml,$tablename,0) . "\n";
|
|
try {
|
|
file_put_contents($fileToSave, $data, FILE_APPEND | LOCK_EX);
|
|
} catch (Exception $ex) {
|
|
exit ("In csv File " . $fileToSave . " kann nicht geschrieben werden: " . $ex->getMessage());
|
|
}
|
|
}
|
|
$stmt->closeCursor();
|
|
$stmt = null;
|
|
return '';
|
|
}
|
|
}
|
|
|
|
private static function getPage() {
|
|
$txt = "<!doctype html>\n";
|
|
$txt .= "<html><head><meta charset=\"utf-8\">\n";
|
|
$txt .= "<title>DSFinv-k Export</title>\n";
|
|
$txt .= self::getScript();
|
|
$txt .= self::getStyle();
|
|
$txt .= "</head>\n";
|
|
$txt .= "<body>\n";
|
|
return $txt;
|
|
}
|
|
private static function getStyle() {
|
|
$txt = "<style>
|
|
td.suspect {
|
|
color:black !important;
|
|
background-color:#f5b8ad !important;
|
|
}\n
|
|
table.viewtable {
|
|
width: 100%;
|
|
display: block;
|
|
table-layout: fixed;
|
|
}
|
|
table.viewtable th {
|
|
background:#7abe5f;
|
|
font-size:10pt;
|
|
border-bottom:1px solid rgba(255,255,255,.7);
|
|
-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.2);
|
|
-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.2);
|
|
-o-box-shadow:inset 0 1px 0 rgba(255,255,255,.2);
|
|
box-shadow:inset 0 1px 0 rgba(255,255,255,.2);
|
|
padding:6px 10px;}
|
|
|
|
table.viewtable td {
|
|
background:#eed33f;
|
|
font-size:8pt;
|
|
border-bottom:1px solid #fafafa;
|
|
border-bottom:1px solid rgba(255,255,255,.5);
|
|
padding:6px 10px;
|
|
color:rgba(0,0,0,255);}</style>\n";
|
|
return $txt;
|
|
}
|
|
|
|
private static function getScript() {
|
|
$txt = "<script>
|
|
function showsection(tablename) {
|
|
var elems = document.getElementsByClassName(tablename);
|
|
//elems.item(0).style.display='none';
|
|
|
|
if (elems.length > 1) {
|
|
var status = elems.item(0).style.display;
|
|
for (var i=0;i<elems.length;i++) {
|
|
elems.item(i).style.display = (status==''?'none':'');
|
|
}
|
|
}
|
|
};
|
|
|
|
</script>\n
|
|
<noscript>
|
|
Sie haben JavaScript deaktiviert.
|
|
</noscript>";
|
|
return $txt;
|
|
}
|
|
|
|
private static function createSqlSelects($cols,$fileToSave) {
|
|
$sqltxt = array();
|
|
foreach($cols as $c) {
|
|
if (!is_null($fileToSave)) {
|
|
if (!isset($c["suspect"]) || $c["suspect"] == 0) {
|
|
$sqltxt[] = $c["select"] . " as " . $c["colname"];
|
|
}
|
|
} else {
|
|
$sqltxt[] = $c["select"] . " as " . $c["colname"];
|
|
}
|
|
}
|
|
return $sqltxt;
|
|
}
|
|
}
|