diff --git a/backend/src/routes/workstations.ts b/backend/src/routes/workstations.ts index 0824a65..b4f8df5 100644 --- a/backend/src/routes/workstations.ts +++ b/backend/src/routes/workstations.ts @@ -302,6 +302,7 @@ const workstationRoutes: FastifyPluginAsync = async (fastify) => { dto_port: device.dto_port, dto_user: device.config?.dto_user, dto_pass: device.config?.dto_pass, + dto_device_id: device.config?.dto_device_id, }, }) as { ok: boolean; error?: string; message?: string } return result diff --git a/src/lib/api.ts b/src/lib/api.ts index e58cf63..86f56be 100644 --- a/src/lib/api.ts +++ b/src/lib/api.ts @@ -1006,7 +1006,7 @@ export interface WorkstationDevice { networkPort?: number comPort?: string purpose: 'fiscal' | 'kitchen' | 'bar' | 'receipt' | 'other' - config: Record + config: Record & { dto_user?: string; dto_pass?: string; dto_device_id?: string } fiscalMode?: boolean dtoPort?: number } diff --git a/src/pages/EquipmentPage.tsx b/src/pages/EquipmentPage.tsx index 4ead7c5..d10e148 100644 --- a/src/pages/EquipmentPage.tsx +++ b/src/pages/EquipmentPage.tsx @@ -203,6 +203,7 @@ function DeviceForm({ const [dtoPort, setDtoPort] = useState(String(initial?.dtoPort ?? 16732)) const [dtoUser, setDtoUser] = useState(String(initial?.config?.dto_user ?? '30')) const [dtoPass, setDtoPass] = useState(String(initial?.config?.dto_pass ?? '30')) + const [dtoDeviceId, setDtoDeviceId] = useState(String(initial?.config?.dto_device_id ?? '')) const [saving, setSaving] = useState(false) const [availablePorts, setAvailablePorts] = useState<{ port: string; description?: string }[] | null>(null) const [portsLoading, setPortsLoading] = useState(false) @@ -230,7 +231,7 @@ function DeviceForm({ purpose: purpose as WorkstationDevice['purpose'], fiscalMode: type === 'kkt' ? fiscalMode : undefined, dtoPort: type === 'kkt' && fiscalMode ? Number(dtoPort) : undefined, - config: type === 'kkt' && fiscalMode ? { dto_user: dtoUser, dto_pass: dtoPass } : undefined, + config: type === 'kkt' && fiscalMode ? { dto_user: dtoUser, dto_pass: dtoPass, dto_device_id: dtoDeviceId.trim() || undefined } : undefined, }) setSaving(false) } @@ -295,15 +296,27 @@ function DeviceForm({ {fiscalMode && (
-
- - setDtoPort(e.target.value)} - className="w-32 input text-sm font-mono" - placeholder="16732" - /> -

По умолчанию 16732. Для нескольких касс — разные порты.

+
+
+ + setDtoPort(e.target.value)} + className="w-full input text-sm font-mono" + placeholder="16732" + /> +

По умолчанию 16732

+
+
+ + setDtoDeviceId(e.target.value)} + className="w-full input text-sm font-mono" + placeholder="1" + /> +

Из /api/v2/devices

+
@@ -694,6 +707,9 @@ function WorkstationCard({ {device.type === 'kkt' && device.fiscalMode !== false && device.dtoPort && device.dtoPort !== 16732 && ( DTO:{device.dtoPort} )} + {device.type === 'kkt' && device.fiscalMode !== false && device.config?.dto_device_id && ( + #{device.config.dto_device_id} + )}