feat: add stolik2_api.js for real-time table order tracking and remove obsolete test files.

This commit is contained in:
2026-05-24 22:25:24 +02:00
parent f95f578bab
commit a925246df1
8 changed files with 2 additions and 273 deletions

View File

@@ -1,16 +0,0 @@
<?php
$serverName = '192.168.20.20';
$connectionOptions = ['Database' => 'Gastro', 'Uid' => 'sa', 'PWD' => 'karczma!@#26', 'CharacterSet' => 'UTF-8'];
$conn = sqlsrv_connect($serverName, $connectionOptions);
$tsql = "
SELECT
r.ID, r.Numer, r.Opis, s.Nazwa as NazwaStolika, r.Status, r.FlgRozliczony, r.DataOtwarcia, r.DataZamkniecia
FROM dbo.NGastroDTRachunek r
LEFT JOIN dbo.NGastroStolik s ON s.ID = r.StolikID
WHERE (r.Opis LIKE '%61%' OR s.Nazwa LIKE '%61%')
";
$stmt = sqlsrv_query($conn, $tsql);
while($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {
echo "Num: {$row['Numer']} | Opis: {$row['Opis']} | Stolik: {$row['NazwaStolika']} | Stat: {$row['Status']} | Rozl: {$row['FlgRozliczony']} | Otw: {$row['DataOtwarcia']->format('Y-m-d H:i')} | Zamkn: {$row['DataZamkniecia']->format('Y-m-d H:i')}\n";
}

View File

@@ -427,6 +427,7 @@ const params = new URLSearchParams(location.search);
window.openBillDialog = async function() {
billState = { payment: '', doc: '', nip: '', company: null, selectedBillId: null };
document.getElementById("billModal").classList.add("active");
document.body.style.overflow = 'hidden'; // Zablokuj scroll tła
document.getElementById("billLoading").classList.remove("hidden");
document.getElementById("billListContainer").classList.add("hidden");
@@ -515,6 +516,7 @@ const params = new URLSearchParams(location.search);
window.closeBillDialog = function() {
document.getElementById("billModal").classList.remove("active");
document.body.style.overflow = ''; // Odblokuj scroll tła
};
window.goToStep = function(stepId) {

View File

@@ -1,25 +0,0 @@
<?php
$serverName = '192.168.20.20';
$connectionOptions = ['Database' => 'Gastro', 'Uid' => 'sa', 'PWD' => 'karczma!@#26', 'CharacterSet' => 'UTF-8'];
$conn = sqlsrv_connect($serverName, $connectionOptions);
$tsql = "
SELECT
r.ID as RachunekID,
r.Numer as RachunekNumer,
r.Opis,
s.Nazwa as NazwaStolika,
r.DataOtwarcia
FROM dbo.NGastroDTRachunek r
LEFT JOIN dbo.NGastroStolik s ON s.ID = r.StolikID
WHERE r.Status = 0
";
$stmt = sqlsrv_query($conn, $tsql);
$count = 0;
while($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {
$count++;
if ($count <= 20) {
echo "Rachunek: " . $row['RachunekNumer'] . " | Opis: " . $row['Opis'] . " | Stolik: " . $row['NazwaStolika'] . " | Otwarcia: " . $row['DataOtwarcia']->format('Y-m-d') . "\n";
}
}
echo "Total open bills: $count\n";

View File

@@ -1,134 +0,0 @@
<?php
$_GET['table'] = 'O-47';
header('Content-Type: application/json; charset=utf-8');
$serverName = '192.168.20.20';
$connectionOptions = [
'Database' => 'Gastro',
'Uid' => 'sa',
'PWD' => 'karczma!@#26',
'CharacterSet' => 'UTF-8',
];
$conn = sqlsrv_connect($serverName, $connectionOptions);
if (!$conn) {
die(json_encode(['status' => 'error', 'message' => 'Błąd połączenia.']));
}
$tableParam = isset($_GET['table']) ? strtolower(trim($_GET['table'])) : '';
if (!$tableParam) {
die(json_encode(['status' => 'success', 'data' => []]));
}
// 1. & 2. & 3. Pobranie dzisiejszych rachunków ze statusem 0
$tsqlBills = "
SELECT
r.ID,
r.Numer,
r.Opis,
s.Nazwa as NazwaStolika
FROM dbo.NGastroDTRachunek r
LEFT JOIN dbo.NGastroStolik s ON s.ID = r.StolikID
WHERE CAST(r.DataOtwarcia as DATE) = CAST(GETDATE() as DATE)
AND r.Status = 0
";
$stmtBills = sqlsrv_query($conn, $tsqlBills);
if ($stmtBills === false) {
die(json_encode(['status' => 'error', 'message' => 'Błąd pobierania rachunków.', 'errors' => sqlsrv_errors()]));
}
$matchedBillIds = [];
$bills = [];
// 4. Filtrujemy rachunki po nazwie stolika (tak jak w JS)
while ($row = sqlsrv_fetch_array($stmtBills, SQLSRV_FETCH_ASSOC)) {
$stolikNazwa = strtolower($row['NazwaStolika'] ?? '');
$opis = strtolower($row['Opis'] ?? '');
// Elastyczne dopasowanie, uwzględnia literówkę 0 zamiast O
$normalizedTableParam = str_replace('o', '0', $tableParam);
$normalizedStolikNazwa = str_replace('o', '0', $stolikNazwa);
$normalizedOpis = str_replace('o', '0', $opis);
if (
$stolikNazwa === $tableParam ||
strpos($stolikNazwa, $tableParam) !== false ||
$opis === $tableParam ||
strpos($opis, $tableParam) !== false ||
$normalizedStolikNazwa === $normalizedTableParam ||
strpos($normalizedStolikNazwa, $normalizedTableParam) !== false ||
strpos($normalizedOpis, $normalizedTableParam) !== false
) {
$billId = $row['ID'];
$matchedBillIds[] = $billId;
$bills[$billId] = [
'id' => $billId,
'numer' => $row['Numer'],
'opis' => $row['Opis'],
'suma' => 0,
'pozycje' => []
];
}
}
if (empty($matchedBillIds)) {
die(json_encode(['status' => 'success', 'data' => []]));
}
// 5. Pobranie pozycji dla dopasowanych rachunków
$inClause = implode("','", $matchedBillIds);
$tsqlItems = "
SELECT
rp.DTRachunekID,
rp.ID as PozycjaID,
ISNULL(NULLIF(t.NazwaNaZamowieniu, ''), t.NazwaTowaru) as NazwaTowaru,
rp.Ilosc,
rp.Cena,
rp._c_Wartosc
FROM dbo.NGastroDTRachunekPozycja rp
LEFT JOIN dbo.NGastroTowar t ON t.ID = rp.TowarID
WHERE rp.DTRachunekID IN ('$inClause')
";
$stmtItems = sqlsrv_query($conn, $tsqlItems);
if ($stmtItems === false) {
die(json_encode(['status' => 'error', 'message' => 'Błąd pobierania pozycji.', 'errors' => sqlsrv_errors()]));
}
while ($row = sqlsrv_fetch_array($stmtItems, SQLSRV_FETCH_ASSOC)) {
$billId = $row['DTRachunekID'];
$nazwa = trim($row['NazwaTowaru'] ?? 'Brak nazwy');
$ilosc = floatval($row['Ilosc']);
$wartosc = floatval($row['_c_Wartosc']);
$cena = floatval($row['Cena']);
// Grouping
$key = $nazwa . "_" . $cena;
if (!isset($bills[$billId]['pozycje'][$key])) {
$bills[$billId]['pozycje'][$key] = [
'nazwa' => $nazwa,
'ilosc' => 0,
'cena' => $cena,
'wartosc' => 0
];
}
$bills[$billId]['pozycje'][$key]['ilosc'] += $ilosc;
$bills[$billId]['pozycje'][$key]['wartosc'] += $wartosc;
$bills[$billId]['suma'] += $wartosc;
}
$finalData = [];
foreach ($bills as $bill) {
$bill['pozycje'] = array_values($bill['pozycje']);
$finalData[] = $bill;
}
echo json_encode([
'status' => 'success',
'data' => $finalData
], JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);

View File

@@ -1,33 +0,0 @@
<?php
$serverName = '192.168.20.20';
$connectionOptions = ['Database' => 'Gastro', 'Uid' => 'sa', 'PWD' => 'karczma!@#26', 'CharacterSet' => 'UTF-8'];
$conn = sqlsrv_connect($serverName, $connectionOptions);
$tsql = "
SELECT
r.ID as RachunekID,
r.Numer as RachunekNumer,
r.Opis,
r.DataZamkniecia,
r.Status,
r.FlgRozliczony,
COUNT(rp.ID) as PozycjeCount,
SUM(rp._c_Wartosc) as SumaWartosc
FROM dbo.NGastroDTRachunek r
LEFT JOIN dbo.NGastroDTRachunekPozycja rp ON rp.DTRachunekID = r.ID
WHERE CAST(r.DataOtwarcia as DATE) = CAST(GETDATE() as DATE)
GROUP BY r.ID, r.Numer, r.Opis, r.DataZamkniecia, r.Status, r.FlgRozliczony
ORDER BY r.Numer DESC
";
$stmt = sqlsrv_query($conn, $tsql);
if (!$stmt) die(print_r(sqlsrv_errors(), true));
$bills = [];
$count = 0;
while($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {
if ($count++ < 10) {
print_r($row);
}
}
echo "\nTotal active items: $count\n";

View File

@@ -1,23 +0,0 @@
<?php
$serverName = '192.168.20.20';
$connectionOptions = ['Database' => 'Gastro', 'Uid' => 'sa', 'PWD' => 'karczma!@#26', 'CharacterSet' => 'UTF-8'];
$conn = sqlsrv_connect($serverName, $connectionOptions);
$tsql = "
SELECT TOP 20
ISNULL(NULLIF(t.NazwaNaZamowieniu, ''), t.NazwaTowaru) as NazwaTowaru,
rp.KonfiguracjaDrukowaniaZamowienID as RP_Konf,
t.KonfiguracjaDrukowaniaZamowienID as T_Konf,
kdz.SposobDrukowaniaZamowienID,
kdz.DrukarkaZamowienID,
kdz.DrukarkaFiskalnaID
FROM dbo.NGastroDTRachunekPozycja rp
LEFT JOIN dbo.NGastroTowar t ON t.ID = rp.TowarID
LEFT JOIN dbo.NGastroKonfiguracjaDrukowaniaZamowien kdz ON kdz.ID = ISNULL(rp.KonfiguracjaDrukowaniaZamowienID, t.KonfiguracjaDrukowaniaZamowienID)
WHERE CAST(rp.DataDodania AS DATE) = CAST(GETDATE() AS DATE)
AND rp.StatusRealizacji = 1
";
$stmt = sqlsrv_query($conn, $tsql);
while($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {
print_r($row);
}

View File

@@ -1,22 +0,0 @@
<?php
$serverName = '192.168.20.20';
$connectionOptions = ['Database' => 'Gastro', 'Uid' => 'sa', 'PWD' => 'karczma!@#26', 'CharacterSet' => 'UTF-8'];
$conn = sqlsrv_connect($serverName, $connectionOptions);
$tableParam = 'O-61';
$tsql = "
SELECT
r.ID as RachunekID,
r.Numer as RachunekNumer,
r.Opis,
s.Nazwa as NazwaStolika
FROM dbo.NGastroDTRachunek r
LEFT JOIN dbo.NGastroStolik s ON s.ID = r.StolikID
WHERE CAST(r.DataOtwarcia as DATE) = CAST(GETDATE() as DATE)
AND r.Status = 0
";
$stmt = sqlsrv_query($conn, $tsql);
while($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {
echo "Rachunek: " . $row['RachunekNumer'] . " | Opis: " . $row['Opis'] . " | Stolik: " . $row['NazwaStolika'] . "\n";
}

View File

@@ -1,20 +0,0 @@
<?php
$serverName = '192.168.20.20';
$connectionOptions = ['Database' => 'Gastro', 'Uid' => 'sa', 'PWD' => 'karczma!@#26', 'CharacterSet' => 'UTF-8'];
$conn = sqlsrv_connect($serverName, $connectionOptions);
$tsql = "
SELECT
r.ID as RachunekID,
r.Numer as RachunekNumer,
r.Opis,
s.Nazwa as NazwaStolika,
r.DataOtwarcia
FROM dbo.NGastroDTRachunek r
LEFT JOIN dbo.NGastroStolik s ON s.ID = r.StolikID
WHERE CAST(r.DataOtwarcia as DATE) = CAST(GETDATE() as DATE)
";
$stmt = sqlsrv_query($conn, $tsql);
while($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {
echo "Rachunek: " . $row['RachunekNumer'] . " | Opis: " . $row['Opis'] . " | Stolik: " . $row['NazwaStolika'] . " | Otwarcia: " . $row['DataOtwarcia']->format('Y-m-d H:i:s') . "\n";
}