Merge pull request 'Add checkbox to configure token printing by booking type' (#282) from token_print_setup into main

Reviewed-on: Pozomind/pozo-retail-app#282
This commit is contained in:
mohan 2026-03-13 16:50:21 +05:30
commit 54857b7956
1 changed files with 326 additions and 271 deletions

View File

@ -66,7 +66,7 @@ const PrinterSelection = (props) => {
window.addEventListener("focus", onFocus); window.addEventListener("focus", onFocus);
return () => window.removeEventListener("focus", onFocus); return () => window.removeEventListener("focus", onFocus);
}, []); }, []);
const getPrinters = async () => { const getPrinters = async () => {
const data = { const data = {
AppId: AppId, AppId: AppId,
@ -108,6 +108,9 @@ const PrinterSelection = (props) => {
MappingPrintType: mappingPrintType, MappingPrintType: mappingPrintType,
UserId: printer.UserId || UserId, UserId: printer.UserId || UserId,
DeviceAddress: printer.DeviceAddress || null, DeviceAddress: printer.DeviceAddress || null,
TakeAwayTokenFlg: printer.TakeAwayTokenFlg || "N",
DineInTokenFlg: printer.DineInTokenFlg || "N"
}; };
}); });
@ -280,13 +283,36 @@ const PrinterSelection = (props) => {
if (p.ConnectionKey === selectedPrinter.ConnectionKey && if (p.ConnectionKey === selectedPrinter.ConnectionKey &&
p.MacAddress === selectedPrinter.MacAddress && p.MacAddress === selectedPrinter.MacAddress &&
p.UserId === UserId && p.UserId === UserId &&
p.MappingPrintType === 'U') { p.MappingPrintType === 'U'
) {
return { ...p, CustomerCopy: value }; return { ...p, CustomerCopy: value };
} }
return p; return p;
}) })
); );
}; };
const updateTokenAvailable = (printerId, type, checked) => {
const selectedPrinter = printers.find(p => p.id === printerId);
if (!selectedPrinter) return;
setPrinters((prev) =>
prev.map((p) => {
if (
p.ConnectionKey === selectedPrinter.ConnectionKey &&
p.MacAddress === selectedPrinter.MacAddress
) {
if (type === "Takeaway") {
return { ...p, TakeAwayTokenFlg: checked ? "Y" : "N" };
}
if (type === "Dine") {
return { ...p, DineInTokenFlg: checked ? "Y" : "N" };
}
}
return p;
})
);
};
const openKioskPrinter = () => { const openKioskPrinter = () => {
setMyKioskPrinter(true); setMyKioskPrinter(true);
setMyPrinter(false); setMyPrinter(false);
@ -487,6 +513,35 @@ const PrinterSelection = (props) => {
}} }}
/> />
</div> </div>
<div>
<label style={{ display: "block", fontSize: "0.85rem", fontWeight: 500 }}>
Token Printer setup
</label>
<label style={{ display: "inline-flex", alignItems: "center", marginRight: "12px" }}>
<input
style={{ marginRight: "6px" }}
type="checkbox"
checked={printer.TakeAwayTokenFlg == "Y"}
onChange={(e) =>
updateTokenAvailable(printer.id, "Takeaway", e.target.checked)
}
/>
Takeaway
</label>
<label style={{ display: "inline-flex", alignItems: "center" }}>
<input
style={{ marginRight: "6px" }}
type="checkbox"
checked={printer.DineInTokenFlg == "Y"}
onChange={(e) =>
updateTokenAvailable(printer.id, "Dine", e.target.checked)
}
/>
Dine
</label>
</div>
</div> </div>
<div <div