';} $step=$this->input->get('step')?:'request';$allowedSteps=array('request','order','payment','receipt','invoice');if(!in_array($step,$allowedSteps,true))$step='request';$departments=$this->db->where('is_active',1)->order_by('department_name')->get('k_departments')->result();$paymentAccounts=$this->db->where(array('is_active'=>1,'allow_posting'=>1))->group_start()->like('nama_akun','kas')->or_like('nama_akun','bank')->group_end()->order_by('kode_akun')->get('accounts')->result();$returnBarcodes=array();$isMasterAdmin=$this->session->userdata('role')==='Admin';$canPrView=$isMasterAdmin||check_permission('purchases','can_view');$canPrCreate=$isMasterAdmin||check_permission('purchases','can_create');$canPrApprove=$isMasterAdmin||check_permission('purchases','can_approve');$canPrExport=$isMasterAdmin||check_permission('purchases','can_export'); ?>

Purchase Workflow

Kelola proses normal permintaan, pemesanan, pembayaran awal, penerimaan, dan Invoice Supplier.

Retur & Refund
'success','error'=>'error')as$key=>$icon)if($this->session->flashdata($key)):?>
array('bi-file-earmark-plus','Permintaan','Kebutuhan barang'),'order'=>array('bi-cart-check','Purchase Order','Pesanan disetujui'),'payment'=>array('bi-wallet2','Pembayaran Awal/DP','Jika disyaratkan'),'receipt'=>array('bi-box-arrow-in-down','Penerimaan','Pemeriksaan gudang'),'invoice'=>array('bi-receipt','Invoice Supplier','Final matching'));?>
Buat Purchase Request
Diisi manual dan akan ditampilkan pada detail serta tanda tangan PDF.
UNIT: satu barang satu barcode. QTY: satu barcode dapat memuat beberapa barang.
Wajib untuk tracking QTY.
Daftar BarangSatu PR dapat berisi beberapa barang.
Daftar Purchase Request
requested_by===(int)$this->session->userdata('user_id');if($r->status==='draft'&&!$isOwner)continue;?>
Nomor/TanggalDepartemenKebutuhanStatusAksi
request_no?>request_date?>department?:'-')?>purpose)?>status?> PDF status==='draft'&&$isOwner)echo purchase_action_form('submit_request',$r->id,'Ajukan',$this,'request');elseif($canPrApprove&&$r->status==='submitted')echo purchase_action_form('approve_request',$r->id,'Approve',$this,'request');?> status==='draft'&&$isOwner):?>
Buat Purchase Order dari PR Disetujui
Pembayaran dicatat setelah tagihan supplier diposting.
Daftar Purchase Order
db->where('purchase_order_id',$o->id)->get('purchase_order_lines')->row();?>
POSupplierTujuanTotalStatusAksi
po_no?>name)?>destination_type==='asset'?'Aset Tetap':'Gudang'?>total,2,',','.')?>status?>status==='draft')echo purchase_action_form('submit_order',$o->id,'Ajukan',$this,'order');elseif($o->status==='submitted'&&$this->session->userdata('role')==='Admin')echo purchase_action_form('approve_order',$o->id,'Approve',$this,'order');?>
Penerimaan Barang/AsetPosting penerimaan adalah satu-satunya proses yang mengaktifkan stok atau register aset.
status,array('approved','partially_received')))continue;$lines=$this->db->where('purchase_order_id',$o->id)->get('purchase_order_lines')->result();?>
PO/SupplierTujuanItem dan SisaPenerimaan
po_no?>name)?>destination_type==='asset'?'Aset Tetap':'Gudang'?>description)?> · sisa qty-$l->received_qty,2,',','.')?>
Riwayat Penerimaan
NomorPOSupplierTanggalSurat Jalan
receipt_no?>po_no?>name)?>receipt_date?>supplier_delivery_no?:'-')?>
Bayar Tagihan Langsung / Cicilan
status!=='approved'||!in_array($b->payment_plan,array('cash','installment')))continue;?>
payment_plan==='cash'?'Pembayaran Langsung':'Cicilan Pertama'?> — internal_no)?>
payment_plan==='installment'):?>
Tagihan Supplier / Three-way Matching
Daftar Tagihan
TagihanSupplierRencana BayarJatuh TempoSaldoStatusAksi
internal_no?>supplier_invoice_no)?>name)?>'Langsung','installment'=>'Cicilan','credit'=>'Kredit')[$b->payment_plan]??'Kredit'?>due_date?>balance,0,',','.')?>'Perlu Finalisasi','partial'=>'Parsial','paid'=>'Lunas')[$b->status]??$b->status)?>status==='verified'):?>Finalisasi
Retur Pembelian
Debit Note Supplier