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 fa43bc0..5206c05 100644
--- a/application/views/peralatan_teknisi/layout.php
+++ b/application/views/peralatan_teknisi/layout.php
@@ -621,7 +621,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']]
});
@@ -635,7 +635,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']]
});
@@ -659,7 +659,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,
@@ -694,7 +694,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']]
});
@@ -749,7 +749,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']]
});
@@ -797,7 +797,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: []
@@ -1037,14 +1037,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 = "= 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({
url: url,
@@ -1052,7 +1052,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 = [];
@@ -1127,7 +1127,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,
@@ -1163,7 +1163,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, []);
@@ -1202,7 +1202,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, []);
@@ -1223,7 +1223,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: "= base_url('teknisi/'); ?>" + endpoint,
@@ -1232,7 +1232,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) {