Poprawki w API rachunków i kds
This commit is contained in:
+38
-12
@@ -22,6 +22,8 @@ if (!$conn) {
|
||||
]));
|
||||
}
|
||||
|
||||
$tableParam = isset($_GET['table']) ? strtolower(trim($_GET['table'])) : '';
|
||||
|
||||
// Zapytanie SQL wyciągające aktywne pozycje (StatusRealizacji < 4)
|
||||
// Łączymy NGastroDTRachunekPozycja z NGastroDTRachunek (żeby mieć stolik) i z NGastroTowar (żeby mieć nazwę)
|
||||
$tsql = "
|
||||
@@ -29,6 +31,7 @@ $tsql = "
|
||||
r.StolikID,
|
||||
s.Nazwa AS NazwaStolika,
|
||||
r.Numer AS NumerRachunku,
|
||||
r.Opis,
|
||||
r.NumerReczny AS NumerRecznyRachunku,
|
||||
rp.ID AS PozycjaID,
|
||||
rp.StatusRealizacji,
|
||||
@@ -47,10 +50,12 @@ $tsql = "
|
||||
LEFT JOIN dbo.NGastroTowar t ON t.ID = rp.TowarID
|
||||
LEFT JOIN dbo.NGastroTowar tz ON tz.ID = rp.ZestawID
|
||||
LEFT JOIN dbo.NGastroStolik s ON s.ID = r.StolikID
|
||||
WHERE rp.StatusRealizacji = 1
|
||||
LEFT JOIN dbo.NGastroKonfiguracjaDrukowaniaZamowien kdz ON kdz.ID = ISNULL(rp.KonfiguracjaDrukowaniaZamowienID, t.KonfiguracjaDrukowaniaZamowienID)
|
||||
WHERE r.Status = 0
|
||||
AND rp.StatusRealizacji > 0
|
||||
AND rp.StatusRealizacji < 4
|
||||
AND kdz.ID IS NOT NULL
|
||||
AND CAST(rp.DataDodania AS DATE) = CAST(GETDATE() AS DATE)
|
||||
-- Opcjonalnie: pominięcie usuniętych pozycji, zazwyczaj posiadają DataUsuniecia różną od domyślnej,
|
||||
-- lub oznaczane są poprzez inny mechanizm, ale na razie trzymajmy się StatusRealizacji
|
||||
AND rp.DataUsuniecia = '1900-01-01'
|
||||
ORDER BY rp.DataDodania ASC
|
||||
";
|
||||
@@ -67,17 +72,38 @@ if ($stmt === false) {
|
||||
|
||||
$pozycje = [];
|
||||
while ($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {
|
||||
// Formatowanie daty dla JSON (obiekt DateTime w PHP do ISO 8601)
|
||||
if ($row['DataDodania'] instanceof DateTime) {
|
||||
$row['DataDodania'] = $row['DataDodania']->format('Y-m-d H:i:s');
|
||||
$stolikNazwa = strtolower($row['NazwaStolika'] ?? '');
|
||||
$opis = strtolower($row['Opis'] ?? '');
|
||||
|
||||
$normalizedTableParam = str_replace('o', '0', $tableParam);
|
||||
$normalizedStolikNazwa = str_replace('o', '0', $stolikNazwa);
|
||||
$normalizedOpis = str_replace('o', '0', $opis);
|
||||
|
||||
$isMatched = false;
|
||||
if (!$tableParam) {
|
||||
$isMatched = true;
|
||||
} else {
|
||||
$pattern = '/\b' . preg_quote($normalizedTableParam, '/') . '\b/i';
|
||||
if (
|
||||
$normalizedStolikNazwa === $normalizedTableParam ||
|
||||
$normalizedOpis === $normalizedTableParam ||
|
||||
preg_match($pattern, $normalizedStolikNazwa) ||
|
||||
preg_match($pattern, $normalizedOpis)
|
||||
) {
|
||||
$isMatched = true;
|
||||
}
|
||||
}
|
||||
|
||||
// Rzutowanie wartości, aby uniknąć problemów w JSON
|
||||
$row['StolikID'] = $row['StolikID'] ? strtoupper($row['StolikID']) : null;
|
||||
$row['PozycjaID'] = strtoupper($row['PozycjaID']);
|
||||
$row['TowarID'] = strtoupper($row['TowarID']);
|
||||
|
||||
$pozycje[] = $row;
|
||||
if ($isMatched) {
|
||||
if ($row['DataDodania'] instanceof DateTime) {
|
||||
$row['DataDodania'] = $row['DataDodania']->format('Y-m-d H:i:s');
|
||||
}
|
||||
$row['StolikID'] = $row['StolikID'] ? strtoupper($row['StolikID']) : null;
|
||||
$row['PozycjaID'] = strtoupper($row['PozycjaID']);
|
||||
$row['TowarID'] = strtoupper($row['TowarID']);
|
||||
|
||||
$pozycje[] = $row;
|
||||
}
|
||||
}
|
||||
|
||||
// Zwracamy czysty JSON
|
||||
|
||||
Reference in New Issue
Block a user