update invoice barcode id

This commit is contained in:
Wian Drs
2026-07-24 00:01:55 +07:00
parent aa326838fc
commit f715a8d637
4 changed files with 31 additions and 20 deletions
+15 -4
View File
@@ -529,10 +529,11 @@ class Invoices extends CI_Controller {
// ========================= // =========================
public function get_items($id) 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->from('invoice_details');
$this->db->join('accounts', 'accounts.id = invoice_details.account_id', 'left'); $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('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->where('invoice_details.invoice_id', $id);
$this->db->order_by('tanggal','ASC'); $this->db->order_by('tanggal','ASC');
$this->db->order_by('id','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]); $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 // END - Item Movement & item barcodes update status
$total_hpp = $qty * $item->harga_beli; $total_hpp = $qty * $item->harga_beli;
@@ -916,11 +922,13 @@ class Invoices extends CI_Controller {
->select(' ->select('
invoice_details.*, invoice_details.*,
customers.nama, customers.nama,
invoices.no_invoice invoices.no_invoice,
item_barcodes.barcode
') ')
->from('invoice_details') ->from('invoice_details')
->join('invoices', 'invoices.id = invoice_details.invoice_id') ->join('invoices', 'invoices.id = invoice_details.invoice_id')
->join('customers', 'customers.id = invoices.customer_id') ->join('customers', 'customers.id = invoices.customer_id')
->join('item_barcodes', 'item_barcodes.id = invoice_details.barcode_id', 'left')
->where('invoice_details.id', $id) ->where('invoice_details.id', $id)
->get() ->get()
->row(); ->row();
@@ -928,6 +936,7 @@ class Invoices extends CI_Controller {
if(!$d) return; if(!$d) return;
$total_hpp = 0; $total_hpp = 0;
$barcode = '';
// ========================= // =========================
// 🔥 TENTUKAN NILAI JURNAL // 🔥 TENTUKAN NILAI JURNAL
@@ -957,9 +966,11 @@ class Invoices extends CI_Controller {
'ref_type' => 'invoice_details', 'ref_type' => 'invoice_details',
'ref_id' => $id, 'ref_id' => $id,
'warehouse_id' => $d->warehouse_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); $this->update_item_stok($d->items_id);
} }
@@ -975,7 +986,7 @@ class Invoices extends CI_Controller {
$this->db->insert('journals', [ $this->db->insert('journals', [
'tanggal' => $d->tanggal, 'tanggal' => $d->tanggal,
'no_ref' => $no_ref, 'no_ref' => $no_ref,
'keterangan' => 'Penjualan '.$nama_item_jr, 'keterangan' => 'Penjualan '.$nama_item_jr . $barcode . ' - Kepada: ' . $d->nama,
'ref_type' => 'invoice_details', 'ref_type' => 'invoice_details',
'ref_id' => $id, 'ref_id' => $id,
'created_by' => $this->session->userdata('user_id') 'created_by' => $this->session->userdata('user_id')
+1 -1
View File
@@ -74,7 +74,7 @@ class PDF_BarangBawaan extends FPDF
$no = 1; $no = 1;
$colsMultiCell = [false, false, true, true, false, true]; $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) { foreach ($items as $item) {
$keterangan = isset($item->keterangan) ? $item->keterangan : ''; $keterangan = isset($item->keterangan) ? $item->keterangan : '';
+1 -1
View File
@@ -605,7 +605,7 @@ $(function(){
</td> </td>
<td>${no++}</td> <td>${no++}</td>
<td>${formatTglIndo(v.tanggal)}</td> <td>${formatTglIndo(v.tanggal)}</td>
<td>${v.nama_item || '-'}</td> <td>${v.nama_item || '-'}<br><small class="text-secondary"><small></small><i>${v.barcode || ''}</i></small></td>
<td>${v.qty || 0}</td> <td>${v.qty || 0}</td>
<td>${formatNumber(v.harga)}</td> <td>${formatNumber(v.harga)}</td>
<td>${formatNumber(subtotal)}</td> <td>${formatNumber(subtotal)}</td>
+14 -14
View File
@@ -612,7 +612,7 @@ $(function(){
{ data: 'teknisi' }, { data: 'teknisi' },
{ data: 'aksi', orderable: false } { 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, pageLength: 5,
lengthMenu: [[5, 10, 25, -1], [5, 10, 25, 'All']] lengthMenu: [[5, 10, 25, -1], [5, 10, 25, 'All']]
}); });
@@ -626,7 +626,7 @@ $(function(){
{ data: 'serial_number' }, { data: 'serial_number' },
{ data: 'aksi', orderable: false } { 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, pageLength: 5,
lengthMenu: [[5, 10, 25, -1], [5, 10, 25, 'All']] lengthMenu: [[5, 10, 25, -1], [5, 10, 25, 'All']]
}); });
@@ -650,7 +650,7 @@ $(function(){
} }
], ],
language: { 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' emptyTable: 'Pilih teknisi asal terlebih dahulu'
}, },
pageLength: 5, pageLength: 5,
@@ -685,7 +685,7 @@ $(function(){
{ data: 5, className: 'text-center', orderable: false } { data: 5, className: 'text-center', orderable: false }
], ],
order: [[1, 'asc']], 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, pageLength: 10,
lengthMenu: [[10, 25, 50, -1], [10, 25, 50, 'All']] lengthMenu: [[10, 25, 50, -1], [10, 25, 50, 'All']]
}); });
@@ -740,7 +740,7 @@ $(function(){
{ data: 5, className: 'text-center' } { data: 5, className: 'text-center' }
], ],
order: [[1, 'asc']], 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, pageLength: 10,
lengthMenu: [[10, 25, 50, -1], [10, 25, 50, 'All']] lengthMenu: [[10, 25, 50, -1], [10, 25, 50, 'All']]
}); });
@@ -788,7 +788,7 @@ $(function(){
{ data: 'serial_number' }, { data: 'serial_number' },
{ data: 'jumlah', className: 'text-center' } { 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, pageLength: 10,
lengthMenu: [[10, 25, 50, -1], [10, 25, 50, 'All']], lengthMenu: [[10, 25, 50, -1], [10, 25, 50, 'All']],
order: [] order: []
@@ -1028,14 +1028,14 @@ $(function(){
function loadTransferItems() { function loadTransferItems() {
let userId = $('#teknisiFrom').val(); let userId = $('#teknisiFrom').val();
console.log('[loadTransferItems] userId:', userId); // console.log('[loadTransferItems] userId:', userId);
if (!userId) { if (!userId) {
dtTransferItems.clear().draw(); dtTransferItems.clear().draw();
return; return;
} }
let url = "<?= base_url('teknisi/get_data'); ?>"; let url = "<?= base_url('teknisi/get_data'); ?>";
console.log('[loadTransferItems] GET', url, {user_id: userId, status: 'active'}); // console.log('[loadTransferItems] GET', url, {user_id: userId, status: 'active'});
$.ajax({ $.ajax({
url: url, url: url,
@@ -1043,7 +1043,7 @@ $(function(){
dataType: 'json', dataType: 'json',
data: {user_id: userId, status: 'active'}, data: {user_id: userId, status: 'active'},
success: function(r){ success: function(r){
console.log('[loadTransferItems] response:', r); // console.log('[loadTransferItems] response:', r);
let rows = r.data || []; let rows = r.data || [];
window._checkedBarcodes = []; window._checkedBarcodes = [];
@@ -1118,7 +1118,7 @@ $(function(){
}).then(result => { }).then(result => {
if (!result.isConfirmed) return; 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', { submitBatch('batch_transfer', {
barcodes: barcodes, barcodes: barcodes,
from_user_id: fromUserId, from_user_id: fromUserId,
@@ -1154,7 +1154,7 @@ $(function(){
if (!result.isConfirmed) return; if (!result.isConfirmed) return;
let barcodes = kembalikanData.map(d => d.barcode); 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(){ submitBatch('batch_kembalikan', {barcodes: barcodes}, function(){
kembalikanData = []; kembalikanData = [];
refreshTable(dtKembalikan, []); refreshTable(dtKembalikan, []);
@@ -1193,7 +1193,7 @@ $(function(){
if (!result.isConfirmed) return; if (!result.isConfirmed) return;
let barcodes = dibawaData.map(d => d.barcode); 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(){ submitBatch('batch_dibawa', {barcodes: barcodes, user_id: userId}, function(){
dibawaData = []; dibawaData = [];
refreshTable(dtDibawa, []); refreshTable(dtDibawa, []);
@@ -1214,7 +1214,7 @@ $(function(){
let originalText = btn.data('original-text') || btn.html(); let originalText = btn.data('original-text') || btn.html();
btn.prop('disabled', true).html('<span class="spinner-border spinner-border-sm me-1"></span> Memproses...'); btn.prop('disabled', true).html('<span class="spinner-border spinner-border-sm me-1"></span> Memproses...');
console.log('[submitBatch] endpoint:', endpoint, 'payload:', JSON.stringify(data)); // console.log('[submitBatch] endpoint:', endpoint, 'payload:', JSON.stringify(data));
$.ajax({ $.ajax({
url: "<?= base_url('teknisi/'); ?>" + endpoint, url: "<?= base_url('teknisi/'); ?>" + endpoint,
@@ -1223,7 +1223,7 @@ $(function(){
data: data, data: data,
traditional: false, traditional: false,
success: function(r) { success: function(r) {
console.log('[submitBatch] response:', endpoint, r); // console.log('[submitBatch] response:', endpoint, r);
btn.prop('disabled', false).html(originalText); btn.prop('disabled', false).html(originalText);
if (r.status) { if (r.status) {