From a6be703b100bc76319ba4a6f5dca6a49add7d82c Mon Sep 17 00:00:00 2001 From: adityaalfarison Date: Tue, 14 Oct 2025 10:23:05 +0700 Subject: [PATCH] update barcode, kasir --- app/Http/Controllers/ItemController.php | 11 +++- resources/js/components/CreateItemModal.vue | 12 ++-- resources/js/components/ModalConfirm.vue | 20 ++++++ resources/js/pages/Kasir.vue | 68 ++++++++++----------- 4 files changed, 67 insertions(+), 44 deletions(-) create mode 100644 resources/js/components/ModalConfirm.vue diff --git a/app/Http/Controllers/ItemController.php b/app/Http/Controllers/ItemController.php index 7b51944..11f51cc 100644 --- a/app/Http/Controllers/ItemController.php +++ b/app/Http/Controllers/ItemController.php @@ -42,9 +42,16 @@ class ItemController extends Controller /** * Display the specified resource. */ - public function show(int $id) + public function show(string $kode_item) { - $item = Item::with('produk.foto','nampan')->findOrFail($id); + $item = Item::with(['produk.foto', 'nampan']) + ->where('kode_item', $kode_item) + ->first(); + + if (!$item) { + return response()->json(['message' => 'Item tidak ditemukan'], 404); + } + return response()->json($item); } diff --git a/resources/js/components/CreateItemModal.vue b/resources/js/components/CreateItemModal.vue index 88101f7..63551ff 100644 --- a/resources/js/components/CreateItemModal.vue +++ b/resources/js/components/CreateItemModal.vue @@ -102,14 +102,16 @@ const createdItem = ref(null); // QR Code generator - berdasarkan logika dari brankas list const qrCodeUrl = computed(() => { if (createdItem.value && props.product) { - const itemId = createdItem.value.id || createdItem.value.kode_item; - const productName = props.product.nama.replace(/\s/g, ""); - const data = `ITM-${itemId}-${productName}`; - return `https://api.qrserver.com/v1/create-qr-code/?size=150x150&data=${encodeURIComponent(data)}`; + const itemId = createdItem.value.kode_item || createdItem.value.id; + const data = `${itemId}`; + + // Barcode Code128 + return `https://barcode.tec-it.com/barcode.ashx?data=${encodeURIComponent(data)}&code=Code128&dpi=96`; } return ""; }); + // Methods const loadNampanList = async () => { try { @@ -204,7 +206,7 @@ const printItem = () => {
- QR Code + Barcode
${itemCode}
${props.product.nama}
diff --git a/resources/js/components/ModalConfirm.vue b/resources/js/components/ModalConfirm.vue new file mode 100644 index 0000000..4e4a267 --- /dev/null +++ b/resources/js/components/ModalConfirm.vue @@ -0,0 +1,20 @@ + + + diff --git a/resources/js/pages/Kasir.vue b/resources/js/pages/Kasir.vue index 5a41651..fb733c3 100644 --- a/resources/js/pages/Kasir.vue +++ b/resources/js/pages/Kasir.vue @@ -33,16 +33,26 @@
+ + +