209 lines
11 KiB
PHP
209 lines
11 KiB
PHP
<?php
|
|
|
|
/*******************************************************************
|
|
|
|
App. Name : INVENTORY AND SALES SYSTEMS
|
|
Module : /apps/php/iss/beli_lunas_sup.php
|
|
Desc. : PHP - Transaksi Pelunasan Pembelian / Supplier
|
|
Created By : Siau Pheng ([email protected]).
|
|
Created Date : March 7th, 2011.
|
|
Last Modified : December 11th, 2025.
|
|
|
|
(c) 2011 - 2025, 3FONIA Software; WWW.3FONIA.COM.
|
|
|
|
*******************************************************************/
|
|
|
|
require_once(__DIR__."/../../../../../vendor/autoload.php");
|
|
require_once(__DIR__."/../func.iss.php");
|
|
|
|
use siaupheng\fonia3\DB\MySQL;
|
|
use siaupheng\fonia3\DB\SQL;
|
|
use siaupheng\fonia3\Web\Param;
|
|
use siaupheng\fonia3\Web\Table;
|
|
use siaupheng\fonia3\Web\Form;
|
|
|
|
$db = $db ?? new MySQL();
|
|
$ajson = [];
|
|
$data = Param::Get("data");
|
|
$mode = Param::Get("mode", "view");
|
|
$mode_detail = Param::Get("mode_detail");
|
|
$id_sup = Param::Get("SupID", 0);
|
|
|
|
if ( $data == "master" ) {
|
|
if ($mode == "cancel") {
|
|
$db->Query("DELETE FROM tmp_inv_beli_lunas WHERE UserID='".user_id()."'");
|
|
}
|
|
$ajson = ['error'=>"", 'html'=>""];
|
|
$form = new Form($db);
|
|
$tsup = $form->textauto("_", "Nama_Sup", ['value'=>0,'text'=>""], true, false, "ketik nama supplier");
|
|
$tsupal = $form->textbox("_", "Alamat_Sup", "", false, false, "text");
|
|
$ttglbyr = $form->datebox("_", "Tgl_Bayar", tgl_ymd(), true, false);
|
|
$tdisp = $form->textbox("_", "Disp_Bayar", 0, false, false, "double");
|
|
$ajson['html'] = '
|
|
<div class="row mb-1">
|
|
<label class="col-sm-4 col-lg-2 col-form-label" for="Nama_Sup">Nama Supplier</label>
|
|
<div class="col-sm-8 col-lg-4"><div class="input-group">'.$tsup.'<button id="butBrow" class="btn btn-info" type="button" onclick="BeliLunasSupJS.sup_brow();"><i class="bi-search"></i></button></div></div>
|
|
<label class="col-sm-4 col-lg-2 col-form-label" for="Tgl_Bayar">Tanggal Bayar</label>
|
|
<div class="col-sm-4 col-lg-2">'.$ttglbyr.'</div>
|
|
</div>
|
|
<div class="row mb-1">
|
|
<label class="col-sm-4 col-lg-2 col-form-label">Alamat Supplier</label>
|
|
<div class="col">'.$tsupal.'</div>
|
|
<label class="col-sm-4 col-lg-2 col-form-label">Total Pembayaran</label>
|
|
<div class="col">'.$tdisp.'</div>
|
|
</div>
|
|
<div class="row"><div class="col"><hr class="my-1"></div></div>
|
|
<input type="hidden" id="SupID" value="0" >';
|
|
|
|
} else if ( $data == "tabel-nota" ) {
|
|
if ($mode_detail == "update") {
|
|
$no_beli = Param::Get("No_Beli");
|
|
$bayar = Param::Get("Jumlah_Bayar", 0);
|
|
$potong = Param::Get("Jumlah_Potong", 0);
|
|
$abeli = ['CabID'=>0, 'SupID'=>$id_sup];
|
|
$db->Query("SELECT * FROM inv_beli WHERE No_Beli='".$no_beli."' LIMIT 1");
|
|
if ($db->Next()) $abeli = $db->AllRow();
|
|
|
|
$db->Query("REPLACE INTO tmp_inv_beli_lunas (No_Beli,CabID,SupID,Jumlah_Bayar,Jumlah_Potong,UserID,Unix) VALUES ('".$no_beli."','".$abeli['CabID']."','".$abeli['SupID']."','".$bayar."','".$potong."','".user_id()."','".user_unix()."')");
|
|
}
|
|
|
|
$obj = new Table($db);
|
|
$obj->set_query("SELECT B.*,L.Bayar,L.Potong,B.Sisa_Faktur-IF(ISNULL(L.Bayar2),0,L.Bayar2) Jumlah_Sisa FROM (SELECT *,Total_Bayar+Total_Potong Total_Bayar2,Total_Hutang-Total_Bayar-Total_Potong Sisa_Faktur FROM inv_beli WHERE SupID='".$id_sup."' AND Lunas=0) B LEFT JOIN (SELECT No_Beli,Jumlah_Potong Potong,Jumlah_Bayar Bayar,(Jumlah_Bayar+Jumlah_Potong) Bayar2 FROM tmp_inv_beli_lunas WHERE UserID='".user_id()."' AND Unix='".user_unix()."') L ON (B.No_Beli=L.No_Beli)");
|
|
$obj->set_query_footer("SELECT SUM(B.Sisa_Faktur) Sisa_Faktur,SUM(L.Bayar) Bayar,SUM(L.Potong) Potong,SUM(B.Sisa_Faktur-IF(ISNULL(L.Bayar2),0,L.Bayar2)) Jumlah_Sisa FROM (SELECT No_Beli,Total_Hutang-Total_Bayar-Total_Potong Sisa_Faktur FROM inv_beli WHERE SupID='".$id_sup."' AND Lunas=0) B LEFT JOIN (SELECT No_Beli,Jumlah_Bayar Bayar,Jumlah_Potong Potong,(Jumlah_Bayar+Jumlah_Potong) Bayar2 FROM tmp_inv_beli_lunas WHERE UserID='".user_id()."' AND Unix='".user_unix()."') L ON (B.No_Beli=L.No_Beli)");
|
|
$obj->add_field("No_Beli", "No. Trans", "c");
|
|
$obj->add_field("No_Faktur", "No. Faktur", "l");
|
|
$obj->add_field("Tgl_Faktur", "Tgl. Faktur", "c", "sqltgl", null, "val-tgl");
|
|
$obj->add_field("Total_Hutang", "Hutang", "hid", "rupiah");
|
|
$obj->add_field("Total_Bayar2", "Bayar", "hid", "rupiah");
|
|
$obj->add_field("Sisa_Faktur", "Sub. Total", "r", "rupiah", "rupiah");
|
|
$obj->add_field("Bayar", "Pembayaran", "r", "rupiah", "rupiah");
|
|
$obj->add_field("Potong", "Pemotongan", "r", "rupiah", "rupiah");
|
|
$obj->add_field("Jumlah_Sisa", "Sisa Hutang", "r", "rupiah", "rupiah");
|
|
$obj->set_field_order("No_Beli", "A");
|
|
$obj->add_row_btn("wallet", "Bayar", "BeliLunasSupJS.bayar_tampil");
|
|
$obj->set_func_navi("BeliLunasSupJS.data_query('tabel-nota')");
|
|
$ajson[] = $obj->json_table("divTXNota");
|
|
|
|
$tot_bayar = 0;
|
|
$db->Query("SELECT SUM(Jumlah_Bayar) Bayar FROM tmp_inv_beli_lunas WHERE UserID='".user_id()."' AND Unix='".user_unix()."' AND No_Beli IN (SELECT No_Beli FROM inv_beli WHERE SupID='".$id_sup."' AND Lunas=0)");
|
|
if ($db->Next()) $tot_bayar = $db->Row("Bayar", 0);
|
|
$ajson[] = ['type'=>"form", 'id'=>"Disp_Bayar", 'value'=>rupiah($tot_bayar)];
|
|
|
|
} else if ( $data == "brow-sup" ) {
|
|
$tcari = trim(Param::Get("Cari_Sup"));
|
|
$tsql = ($tcari=="") ? " LIMIT 100" : " AND CONCAT(Kode_Sup,Nama_Sup,Telp_Sup) LIKE '%".$tcari."%'";
|
|
|
|
$obj = new Table($db);
|
|
$obj->set_query("SELECT * FROM para_supplier WHERE Lunas>0".$tsql);
|
|
$obj->add_field("SupID", "ID", "hid");
|
|
$obj->add_field("Kode_Sup", "Kode", "l");
|
|
$obj->add_field("Nama_Sup", "Nama Supplier", "awr");
|
|
$obj->add_field("Telp_Sup", "Telp", "l");
|
|
$obj->add_field("Alamat_Sup", "Alamat", "hid");
|
|
$obj->set_field_order("Kode_Sup", "A");
|
|
$obj->add_row_btn("save", "Pilih", "BeliLunasSupJS.sup_select");
|
|
$obj->set_func_navi("BeliLunasSupJS.data_query('brow-sup')");
|
|
$ajson[] = $obj->json_table("divBrowSup");
|
|
|
|
} else if ( $data == "auto-sup" ) {
|
|
$tcari = Param::Get("Auto_Query");
|
|
$ajson['autodata'] = [];
|
|
if (is_string($tcari) && strlen($tcari) < 64) {
|
|
$db->Query("SELECT * FROM para_supplier WHERE Lunas>0 AND CONCAT(Kode_Sup,Nama_Sup,Telp_Sup) LIKE '%".$tcari."%' ORDER BY Kode_Sup LIMIT 50");
|
|
while ($db->Next()) {
|
|
$ajson['autodata'][] = ['value'=>$db->Row("SupID"), 'text'=>$db->Row("Nama_Sup"), 'data'=>$db->Row("Alamat_Sup")];
|
|
}
|
|
}
|
|
|
|
} else if ($data == "detail-bayar") {
|
|
$form = new Form($db);
|
|
$tnota = $form->textbox("_", "No_Beli", "", false, false, "text");
|
|
$tfaktur = $form->textbox("_", "No_Faktur", "", false, false, "text");
|
|
$ttglfaktur = $form->datebox("_", "Tgl_Faktur", "", false, false);
|
|
$tsbayar = $form->textbox("_", "SBayar", 0, false, false, "double");
|
|
$tjfaktur = $form->textbox("_", "Jumlah_Faktur", 0, false, false, "double");
|
|
$tjbayar = $form->textbox("_", "Jumlah_Bayar", 0, true, false, "double");
|
|
$tjpotong = $form->textbox("_", "Jumlah_Potong", 0, true, false, "double");
|
|
$tsisa = $form->textbox("_", "Sisa_Bayar", 0, false, false, "double");
|
|
$tsfaktur = $form->textbox("_", "Faktur", 0, false, false, "double");
|
|
$ajson['html'] = '
|
|
<div class="row mb-1">
|
|
<label class="col-sm-6 col-lg-4 col-form-label">No. Transaksi</label>
|
|
<div class="col">'.$tnota.'</div>
|
|
</div>
|
|
<div class="row mb-1">
|
|
<label class="col-sm-6 col-lg-4 col-form-label">No. Faktur</label>
|
|
<div class="col">'.$tfaktur.'</div>
|
|
</div>
|
|
<div class="row mb-1">
|
|
<label class="col-sm-6 col-lg-4 col-form-label">Tanggal Faktur</label>
|
|
<div class="col-sm-8 col-lg-6">'.$ttglfaktur.'</div>
|
|
</div>
|
|
<div class="row"><div class="col"><hr class="my-1"></div></div>
|
|
<div class="row mb-1">
|
|
<label class="col-sm-6 col-lg-4 col-form-label">Nilai Faktur</label>
|
|
<div class="col">'.$tsfaktur.'</div>
|
|
</div>
|
|
<div class="row mb-1">
|
|
<label class="col-sm-6 col-lg-4 col-form-label">Pembayaran Sebelumnya</label>
|
|
<div class="col">'.$tsbayar.'</div>
|
|
</div>
|
|
<div class="row mb-1">
|
|
<label class="col-sm-6 col-lg-4 col-form-label">Sub. Total</label>
|
|
<div class="col">'.$tjfaktur.'</div>
|
|
</div>
|
|
<div class="row"><div class="col"><hr class="my-1"></div></div>
|
|
<div class="row mb-1">
|
|
<label class="col-sm-6 col-lg-4 col-form-label" for="Jumlah_Bayar">Pembayaran Sekarang</label>
|
|
<div class="col">'.$tjbayar.'</div>
|
|
</div>
|
|
<div class="row mb-1">
|
|
<label class="col-sm-6 col-lg-4 col-form-label" for="Jumlah_Potong">Pemotongan Sekarang</label>
|
|
<div class="col">'.$tjpotong.'</div>
|
|
</div>
|
|
<div class="row mb-1">
|
|
<label class="col-sm-6 col-lg-4 col-form-label">Sisa Faktur</label>
|
|
<div class="col">'.$tsisa.'</div>
|
|
</div>
|
|
<input type="hidden" id="mode_detail" value="update" >';
|
|
|
|
} else if ( $data == "proses-bayar" ) {
|
|
$tgl_bayar = tgl_sql2str(Param::Get("Tgl_Bayar"));
|
|
|
|
$alist = [];
|
|
$db->Query("SELECT No_Beli,CabID,SupID,Jumlah_Bayar,Jumlah_Potong FROM tmp_inv_beli_lunas WHERE UserID='".user_id()."' AND Unix='".user_unix()."' AND No_Beli IN (SELECT No_Beli FROM inv_beli WHERE SupID='".$id_sup."' AND Lunas=0)");
|
|
while ($db->Next()) $alist[] = $db->AllRow();
|
|
|
|
foreach ($alist as $_key => $_val) {
|
|
$db->Query("INSERT INTO inv_beli_lunas SET No_Beli='".$_val['No_Beli']."',CabID='".$_val['CabID']."',SupID='".$_val['SupID']."',Tgl_Bayar='".$tgl_bayar."',Total_Bayar='".$_val['Jumlah_Bayar']."',Total_Potong='".$_val['Jumlah_Potong']."',UserID='".user_id()."'");
|
|
$db->Query("UPDATE inv_beli B,(SELECT No_Beli,MAX(Tgl_Bayar) Tgl_Lunas,SUM(Total_Bayar) Total_Bayar,SUM(Total_Potong) Total_Potong FROM inv_beli_lunas WHERE No_Beli='".$_val['No_Beli']."') L SET B.Total_Bayar=L.Total_Bayar,B.Total_Potong=L.Total_Potong,B.Lunas=IF(B.Total_Hutang-B.Total_Bayar-B.Total_Potong=0,1,0),B.Tgl_Lunas=IF(B.Lunas=1,L.Tgl_Lunas,'0000-00-00') WHERE B.No_Beli=L.No_Beli AND B.No_Beli='".$_val['No_Beli']."'");
|
|
$db->Query("DELETE FROM tmp_inv_beli_lunas WHERE No_Beli='".$_val['No_Beli']."'");
|
|
}
|
|
Update_Lunas_Sup($id_sup);
|
|
|
|
} else if ( $data == "default") {
|
|
echo '
|
|
<div class="fade-in">
|
|
<div class="card"><div class="card-body">
|
|
<ul class="nav nav-tabs" role="tablist">
|
|
<li class="nav-item" role="presentation">
|
|
<button class="nav-link active" id="tx-tab" data-bs-toggle="tab" data-bs-target="#tx" type="button" role="tab" aria-controls="tx" aria-selected="true"><i class="bi-database me-2"></i>Transaksi Pembayaran Hutang / Supplier</button>
|
|
</li>
|
|
<li class="nav-item ms-auto">
|
|
<button class="btn btn-danger mb-1 ms-2" id="butBatal" type="button"><i class="bi-x-lg me-2"></i>Batal</button>
|
|
<button class="btn btn-success mb-1 ms-2" id="butSimpan" type="button"><i class="bi-save me-2"></i>Simpan</button>
|
|
</li>
|
|
</ul>
|
|
<div class="tab-content border border-top-0 p-3">
|
|
<div class="tab-pane fade active show" id="tx" role="tabpanel" aria-labelledby="tx-tab">
|
|
<div id="divTXMaster"> </div>
|
|
<div id="divTXNota"> </div>
|
|
</div>
|
|
</div>
|
|
</div></div>
|
|
</div>';
|
|
}
|
|
|
|
send_json($ajson);
|
|
?>
|