From f715a8d637e05aabd4d28d0e3040f290b1a3922c Mon Sep 17 00:00:00 2001 From: Wian Drs Date: Fri, 24 Jul 2026 00:01:55 +0700 Subject: [PATCH] update invoice barcode id --- application/controllers/Invoices.php | 19 ++++++++++--- application/libraries/PDF_BarangBawaan.php | 2 +- application/views/invoices/detail.php | 2 +- .../views/peralatan_teknisi/layout.php | 28 +++++++++---------- 4 files changed, 31 insertions(+), 20 deletions(-) diff --git a/application/controllers/Invoices.php b/application/controllers/Invoices.php index 159c4ff..37fff31 100644 --- a/application/controllers/Invoices.php +++ b/application/controllers/Invoices.php @@ -529,10 +529,11 @@ class Invoices extends CI_Controller { // ========================= public function get_items($id) { - $this->db->select('invoice_details.*, accounts.kode_akun, accounts.nama_akun, invoices.status'); + $this->db->select('invoice_details.*, accounts.kode_akun, accounts.nama_akun, invoices.status, item_barcodes.barcode'); $this->db->from('invoice_details'); $this->db->join('accounts', 'accounts.id = invoice_details.account_id', 'left'); $this->db->join('invoices', 'invoices.id = invoice_details.invoice_id', 'left'); + $this->db->join('item_barcodes', 'item_barcodes.id = invoice_details.barcode_id', 'left'); $this->db->where('invoice_details.invoice_id', $id); $this->db->order_by('tanggal','ASC'); $this->db->order_by('id','ASC'); @@ -619,6 +620,11 @@ class Invoices extends CI_Controller { ]); $this->db->where('id', $barcode_id)->update('item_barcodes', ['status' => $status_bar, 'qty_sisa' => $total_sisa]); + + if ($status_bar == 'sold_out') { + $this->db->where('barcode', $itemBar->barcode)->where('status', 'active')->update('item_technician', ['status' => 'inactive', 'deleted_at' => date('Y-m-d H:i:s')]); + } + // END - Item Movement & item barcodes update status $total_hpp = $qty * $item->harga_beli; @@ -916,11 +922,13 @@ class Invoices extends CI_Controller { ->select(' invoice_details.*, customers.nama, - invoices.no_invoice + invoices.no_invoice, + item_barcodes.barcode ') ->from('invoice_details') ->join('invoices', 'invoices.id = invoice_details.invoice_id') ->join('customers', 'customers.id = invoices.customer_id') + ->join('item_barcodes', 'item_barcodes.id = invoice_details.barcode_id', 'left') ->where('invoice_details.id', $id) ->get() ->row(); @@ -928,6 +936,7 @@ class Invoices extends CI_Controller { if(!$d) return; $total_hpp = 0; + $barcode = ''; // ========================= // 🔥 TENTUKAN NILAI JURNAL @@ -957,8 +966,10 @@ class Invoices extends CI_Controller { 'ref_type' => 'invoice_details', 'ref_id' => $id, 'warehouse_id' => $d->warehouse_id, - 'keterangan' => 'Penjualan ' . $item->nama_barang . ' kepada ' . $d->nama . ' - Invoice ' . $d->no_invoice . ' - Tgl ' . $d->tanggal + 'keterangan' => 'Penjualan ' . $item->nama_barang . ' kepada ' . $d->nama . ' - Invoice ' . $d->no_invoice . ' - Tgl ' . $d->tanggal . ' - Kode ' . $d->barcode ]); + + $barcode = ' - Kode: ' . $d->barcode; $this->update_item_stok($d->items_id); } @@ -975,7 +986,7 @@ class Invoices extends CI_Controller { $this->db->insert('journals', [ 'tanggal' => $d->tanggal, 'no_ref' => $no_ref, - 'keterangan' => 'Penjualan '.$nama_item_jr, + 'keterangan' => 'Penjualan '.$nama_item_jr . $barcode . ' - Kepada: ' . $d->nama, 'ref_type' => 'invoice_details', 'ref_id' => $id, 'created_by' => $this->session->userdata('user_id') diff --git a/application/libraries/PDF_BarangBawaan.php b/application/libraries/PDF_BarangBawaan.php index 3296e0a..c0b54b4 100644 --- a/application/libraries/PDF_BarangBawaan.php +++ b/application/libraries/PDF_BarangBawaan.php @@ -74,7 +74,7 @@ class PDF_BarangBawaan extends FPDF $no = 1; $colsMultiCell = [false, false, true, true, false, true]; - $cellAligns = ['C', 'C', 'L', 'L', 'C', 'L']; + $cellAligns = ['C', 'L', 'L', 'L', 'C', 'L']; foreach ($items as $item) { $keterangan = isset($item->keterangan) ? $item->keterangan : ''; diff --git a/application/views/invoices/detail.php b/application/views/invoices/detail.php index 7f28554..0613307 100644 --- a/application/views/invoices/detail.php +++ b/application/views/invoices/detail.php @@ -605,7 +605,7 @@ $(function(){ ${no++} ${formatTglIndo(v.tanggal)} - ${v.nama_item || '-'} + ${v.nama_item || '-'}
${v.barcode || ''} ${v.qty || 0} ${formatNumber(v.harga)} ${formatNumber(subtotal)} diff --git a/application/views/peralatan_teknisi/layout.php b/application/views/peralatan_teknisi/layout.php index ae67352..c6703c7 100644 --- a/application/views/peralatan_teknisi/layout.php +++ b/application/views/peralatan_teknisi/layout.php @@ -612,7 +612,7 @@ $(function(){ { data: 'teknisi' }, { data: 'aksi', orderable: false } ], - language: { url: "//cdn.datatables.net/plug-ins/1.13.6/i18n/id.json" }, + // language: { url: "//cdn.datatables.net/plug-ins/1.13.6/i18n/id.json" }, pageLength: 5, lengthMenu: [[5, 10, 25, -1], [5, 10, 25, 'All']] }); @@ -626,7 +626,7 @@ $(function(){ { data: 'serial_number' }, { data: 'aksi', orderable: false } ], - language: { url: "//cdn.datatables.net/plug-ins/1.13.6/i18n/id.json" }, + // language: { url: "//cdn.datatables.net/plug-ins/1.13.6/i18n/id.json" }, pageLength: 5, lengthMenu: [[5, 10, 25, -1], [5, 10, 25, 'All']] }); @@ -650,7 +650,7 @@ $(function(){ } ], language: { - url: "//cdn.datatables.net/plug-ins/1.13.6/i18n/id.json", + // url: "//cdn.datatables.net/plug-ins/1.13.6/i18n/id.json", emptyTable: 'Pilih teknisi asal terlebih dahulu' }, pageLength: 5, @@ -685,7 +685,7 @@ $(function(){ { data: 5, className: 'text-center', orderable: false } ], order: [[1, 'asc']], - language: { url: "//cdn.datatables.net/plug-ins/1.13.6/i18n/id.json" }, + // language: { url: "//cdn.datatables.net/plug-ins/1.13.6/i18n/id.json" }, pageLength: 10, lengthMenu: [[10, 25, 50, -1], [10, 25, 50, 'All']] }); @@ -740,7 +740,7 @@ $(function(){ { data: 5, className: 'text-center' } ], order: [[1, 'asc']], - language: { url: "//cdn.datatables.net/plug-ins/1.13.6/i18n/id.json" }, + // language: { url: "//cdn.datatables.net/plug-ins/1.13.6/i18n/id.json" }, pageLength: 10, lengthMenu: [[10, 25, 50, -1], [10, 25, 50, 'All']] }); @@ -788,7 +788,7 @@ $(function(){ { data: 'serial_number' }, { data: 'jumlah', className: 'text-center' } ], - language: { url: "//cdn.datatables.net/plug-ins/1.13.6/i18n/id.json" }, + // language: { url: "//cdn.datatables.net/plug-ins/1.13.6/i18n/id.json" }, pageLength: 10, lengthMenu: [[10, 25, 50, -1], [10, 25, 50, 'All']], order: [] @@ -1028,14 +1028,14 @@ $(function(){ function loadTransferItems() { let userId = $('#teknisiFrom').val(); - console.log('[loadTransferItems] userId:', userId); + // console.log('[loadTransferItems] userId:', userId); if (!userId) { dtTransferItems.clear().draw(); return; } let url = ""; - console.log('[loadTransferItems] GET', url, {user_id: userId, status: 'active'}); + // console.log('[loadTransferItems] GET', url, {user_id: userId, status: 'active'}); $.ajax({ url: url, @@ -1043,7 +1043,7 @@ $(function(){ dataType: 'json', data: {user_id: userId, status: 'active'}, success: function(r){ - console.log('[loadTransferItems] response:', r); + // console.log('[loadTransferItems] response:', r); let rows = r.data || []; window._checkedBarcodes = []; @@ -1118,7 +1118,7 @@ $(function(){ }).then(result => { if (!result.isConfirmed) return; - console.log('[Transfer] submitting', barcodes.length, 'items, from_user:', fromUserId, 'to_user:', toUserId); + // console.log('[Transfer] submitting', barcodes.length, 'items, from_user:', fromUserId, 'to_user:', toUserId); submitBatch('batch_transfer', { barcodes: barcodes, from_user_id: fromUserId, @@ -1154,7 +1154,7 @@ $(function(){ if (!result.isConfirmed) return; let barcodes = kembalikanData.map(d => d.barcode); - console.log('[Kembalikan] submitting', barcodes.length, 'items:', barcodes); + // console.log('[Kembalikan] submitting', barcodes.length, 'items:', barcodes); submitBatch('batch_kembalikan', {barcodes: barcodes}, function(){ kembalikanData = []; refreshTable(dtKembalikan, []); @@ -1193,7 +1193,7 @@ $(function(){ if (!result.isConfirmed) return; let barcodes = dibawaData.map(d => d.barcode); - console.log('[Dibawa] submitting', barcodes.length, 'items to user_id:', userId, 'barcodes:', barcodes); + // console.log('[Dibawa] submitting', barcodes.length, 'items to user_id:', userId, 'barcodes:', barcodes); submitBatch('batch_dibawa', {barcodes: barcodes, user_id: userId}, function(){ dibawaData = []; refreshTable(dtDibawa, []); @@ -1214,7 +1214,7 @@ $(function(){ let originalText = btn.data('original-text') || btn.html(); btn.prop('disabled', true).html(' Memproses...'); - console.log('[submitBatch] endpoint:', endpoint, 'payload:', JSON.stringify(data)); + // console.log('[submitBatch] endpoint:', endpoint, 'payload:', JSON.stringify(data)); $.ajax({ url: "" + endpoint, @@ -1223,7 +1223,7 @@ $(function(){ data: data, traditional: false, success: function(r) { - console.log('[submitBatch] response:', endpoint, r); + // console.log('[submitBatch] response:', endpoint, r); btn.prop('disabled', false).html(originalText); if (r.status) {