first commit
This commit is contained in:
@@ -0,0 +1,253 @@
|
||||
<?php
|
||||
|
||||
/*******************************************************************
|
||||
|
||||
App. Name : INVENTORY AND SALES SYSTEMS
|
||||
Module : /apps/php/iss/beli_lunas.php
|
||||
Desc. : PHP - Transaksi Pembayaran Pembelian
|
||||
Created By : Siau Pheng ([email protected]).
|
||||
Created Date : March 7th, 2011.
|
||||
Last Modified : October 8th, 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);
|
||||
$nomor = Param::Get("No_Beli", "");
|
||||
|
||||
if ( $data == "master" ) {
|
||||
$ajson = ['error'=>"", 'html'=>""];
|
||||
$atabel = ['SupID'=>0, 'Nama_Sup'=>"", 'Alamat_Sup'=>""];
|
||||
|
||||
$form = new Form($db);
|
||||
$tsup = $form->textauto("_", "Nama_Sup", ['value'=>$atabel['SupID'],'text'=>$atabel['Nama_Sup']], true, false, "ketik nama supplier");
|
||||
$tsupal = $form->textbox("_", "Alamat_Sup", $atabel['Alamat_Sup'], false, false, "text");
|
||||
$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"><div class="input-group">'.$tsup.'<button id="butBrow" class="btn btn-info" type="button" onclick="BeliLunasJS.sup_brow();"><i class="bi-search"></i></button></div></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>
|
||||
</div>
|
||||
<div class="row"><div class="col"><hr class="my-1"></div></div>
|
||||
<input type="hidden" id="SupID" value="0" >
|
||||
<input type="hidden" id="Mode_Tampil" value="0" >
|
||||
';
|
||||
|
||||
} else if ( $data == "tabel-nota" ) {
|
||||
$tsql = (Param::Get("Mode_Tampil", 0)==1) ? "" : " AND Lunas=0";
|
||||
|
||||
$obj = new Table($db);
|
||||
$obj->set_query("SELECT *,Total_Hutang-Total_Bayar-Total_Potong Sisa_Bayar,IF(Data_Beli=1,'B','R') Tipe FROM inv_beli WHERE SupID='".$id_sup."'".$tsql);
|
||||
$obj->set_query_footer("SELECT SUM(Total_Hutang) Total_Hutang FROM inv_beli WHERE SupID='".$id_sup."'".$tsql);
|
||||
$obj->add_field("Tipe", "Tipe", "hid");
|
||||
$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", "Jumlah Faktur", "r", "rupiah", "rupiah");
|
||||
$obj->add_field("Total_Bayar", "Bayar", "r", "rupiah");
|
||||
$obj->add_field("Sisa_Bayar", "Sisa", "r", "rupiah", "rupiah");
|
||||
if (Param::Get("Mode_Tampil", 0)==1) $obj->add_field("Lunas", "Lunas", "c", "checkbox");
|
||||
$obj->set_field_order("No_Beli", "A");
|
||||
$obj->add_row_btn("save", "Pilih", "BeliLunasJS.nota_select");
|
||||
$obj->set_func_navi("BeliLunasJS.data_query('tabel-nota')");
|
||||
$ajson[] = $obj->json_table("divTXNota");
|
||||
|
||||
} else if ( $data == "tabel-bayar" ) {
|
||||
$lunas = Param::Get("Lunas", 0);
|
||||
|
||||
if (in_array($mode_detail, ["insert","delete"])) {
|
||||
$sql = new SQL($db);
|
||||
$sql->set_table("inv_beli_lunas");
|
||||
$sql->add_param("No_Beli");
|
||||
$sql->add_param_date("Tgl_Bayar");
|
||||
$sql->add_param("Total_Bayar");
|
||||
$sql->add_param("Total_Potong");
|
||||
$sql->add_param_userid();
|
||||
$sql->add_where("ID");
|
||||
$sql->add_where("No_Beli", $nomor);
|
||||
|
||||
if ($mode_detail == "insert") {
|
||||
$abeli = ['CabID'=>0, 'SupID'=>0];
|
||||
$db->Query("SELECT CabID,SupID FROM inv_beli WHERE No_Beli='".$nomor."' LIMIT 1");
|
||||
if ($db->Next()) $abeli = $db->AllRow();
|
||||
$sql->add_param("CabID", $abeli['CabID']);
|
||||
$sql->add_param("SupID", $abeli['SupID']);
|
||||
$sql->InsertDB();
|
||||
} else if ($mode_detail == "delete") {
|
||||
$sql->DeleteDB();
|
||||
}
|
||||
|
||||
$anota = ['Bayar'=>0, 'Potong'=>0, 'Total_Sisa'=>0, 'Lunas'=>0];
|
||||
$db->Query("SELECT SUM(Total_Bayar) Bayar,SUM(Total_Potong) Potong FROM inv_beli_lunas WHERE No_Beli='".$nomor."'");
|
||||
if ($db->Next()) $anota = $db->AllRow();
|
||||
$db->Query("UPDATE inv_beli SET Total_Bayar='".$anota['Bayar']."',Total_Potong='".$anota['Potong']."',Lunas=IF(Total_Hutang-Total_Bayar-Total_Potong=0,1,0),Tgl_Lunas=IF(Lunas=1,'".tgl_sql2str(Param::Get("Tgl_Bayar"))."','0000-00-00') WHERE No_Beli='".$nomor."'");
|
||||
|
||||
$db->Query("SELECT Lunas,Total_Hutang-Total_Bayar-Total_Potong Total_Sisa FROM inv_beli WHERE No_Beli='".$nomor."'");
|
||||
if ($db->Next()) $anota = $db->AllRow();
|
||||
$lunas = $anota['Lunas'];
|
||||
$ajson[] = array('type'=>"form", 'id'=>"Total_Sisa", 'value'=>$anota['Total_Sisa']);
|
||||
$ajson[] = array('type'=>"form", 'id'=>"Lunas", 'value'=>$anota['Lunas']);
|
||||
}
|
||||
|
||||
$obj = new Table($db);
|
||||
$obj->set_query("SELECT * FROM inv_beli_lunas WHERE No_Beli='".$nomor."' ORDER BY ID");
|
||||
$obj->add_field("ID", "ID", "hid");
|
||||
$obj->add_field("Tgl_Bayar", "Tgl. Bayar", "c", "sqltgl", null, "val-tgl");
|
||||
$obj->add_field("Total_Bayar", "Jumlah Bayar", "r", "rupiah");
|
||||
$obj->add_field("Total_Potong", "Pemotongan", "r", "rupiah");
|
||||
$obj->set_field_order("Tgl_Bayar", "A");
|
||||
if ($_SESSION['__WEB_USER']['Level']==0 && ($lunas==0 || ($lunas==1 && Param::Get('Mode_Tampil',0)==1))) {
|
||||
$obj->add_row_btn("trash", "Hapus", "BeliLunasJS.bayar_hapus", "No_Beli", $nomor);
|
||||
}
|
||||
if ($lunas == 0) {
|
||||
$obj->set_func_btn("BeliLunasJS.bayar_show", '<i class="bi-wallet me-1"></i> Pembayaran');
|
||||
}
|
||||
$obj->set_func_navi("BeliLunasJS.data_query('tabel-bayar')");
|
||||
$ajson[] = $obj->json_table("divDetailBayar");
|
||||
|
||||
} 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 Aktif=1".$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", "BeliLunasJS.sup_select");
|
||||
$obj->set_func_navi("BeliLunasJS.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 Aktif=1 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-nota") {
|
||||
$atabel = ['No_Beli'=>$nomor]; $tipe = Param::Get("Tipe_Nota", "B");
|
||||
$db->Query("SELECT *,Total_Hutang-Total_Bayar-Total_Potong Sisa_Bayar FROM inv_beli WHERE No_Beli='".$nomor."'");
|
||||
if ($db->Next()) $atabel = $db->AllRow();
|
||||
|
||||
$form = new Form($db);
|
||||
$tnota = $form->textbox("_", "No_Beli", $atabel['No_Beli'], false, false, "text");
|
||||
$tfaktur = $form->textbox("_", "No_Faktur", $atabel['No_Faktur'], false, false, "text");
|
||||
$ttglnota = $form->datebox("_", "Tgl_Beli", $atabel['Tgl_Beli'], false, false);
|
||||
$ttglfaktur = $form->datebox("_", "Tgl_Faktur", $atabel['Tgl_Faktur'], false, false);
|
||||
$tjumlah = $form->textbox("_", "Total_Hutang", $atabel['Total_Hutang'], false, false, "double");
|
||||
$tbayar = $form->textbox("_", "Total_Bayar2", $atabel['Total_Bayar'], false, false, "double");
|
||||
$tsisa = $form->textbox("_", "Total_Sisa", $atabel['Sisa_Bayar'], false, false, "double");
|
||||
$ajson['html'] = '
|
||||
<div class="row mb-1">
|
||||
<div class="col text-center fs-5 pb-1">Informasi Faktur / Retur</div>
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
<label class="col-sm-4 col-lg-2 col-form-label">No. '.(($tipe=="B")?"Transaksi":"Retur").'</label>
|
||||
<div class="col-sm-8 col-lg-4">'.$tnota.'</div>
|
||||
<label class="col-sm-4 col-lg-2 col-form-label">Jumlah '.(($tipe=="B")?"Faktur":"Retur").'</label>
|
||||
<div class="col-sm-8 col-lg-4">'.$tjumlah.'</div>
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
<label class="col-sm-4 col-lg-2 col-form-label">'.(($tipe=="B")?"No. Faktur":"Catatan").'</label>
|
||||
<div class="col-sm-8 col-lg-4">'.$tfaktur.'</div>
|
||||
<label class="col-sm-4 col-lg-2 col-form-label">Jumlah Bayar</label>
|
||||
<div class="col-sm-8 col-lg-4">'.$tbayar.'</div>
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
<label class="col-sm-4 col-lg-2 col-form-label">Tgl. '.(($tipe=="B")?"Transaksi":"Retur").'</label>
|
||||
<div class="col-sm-8 col-lg-4">'.$ttglnota.'</div>
|
||||
<label class="col-sm-4 col-lg-2 col-form-label">Sisa Hutang</label>
|
||||
<div class="col-sm-8 col-lg-4">'.$tsisa.'</div>
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
<label class="col-sm-4 col-lg-2 col-form-label">Tgl. Faktur</label>
|
||||
<div class="col-sm-8 col-lg-4">'.$ttglfaktur.'</div>
|
||||
</div>
|
||||
<div class="row"><div class="col"><hr class="my-1"></div></div>
|
||||
<input type="hidden" id="Total_Sisa" value="'.$atabel['Sisa_Bayar'].'" >
|
||||
<input type="hidden" id="Lunas" value="'.$atabel['Lunas'].'" >
|
||||
<input type="hidden" id="Tipe_Nota" value="'.$tipe.'" >
|
||||
';
|
||||
|
||||
} else if ($data == "detail-bayar") {
|
||||
$form = new Form($db);
|
||||
$ttglbyr = $form->datebox("_", "Tgl_Bayar", tgl_ymd(), true, false);
|
||||
$ttotal = $form->textbox("_", "Temp_Total", Param::Get("Total_Sisa",0), false, false, "double");
|
||||
$tsisa = $form->textbox("_", "Temp_Sisa", 0, false, false, "double");
|
||||
$tbayar = $form->textbox("_", "Total_Bayar", Param::Get("Total_Sisa",0), true, false, "double", null, null, null, "BeliLunasJS.Hitung_Detail();");
|
||||
$tpotong = $form->textbox("_", "Total_Potong", 0, true, false, "double", null, null, null, "BeliLunasJS.Hitung_Detail();");
|
||||
$ajson['html'] = '
|
||||
<div class="row mb-1">
|
||||
<label class="col-sm-6 col-lg-4 col-form-label" for="Tgl_Bayar">Tanggal Bayar</label>
|
||||
<div class="col-sm-8 col-lg-6">'.$ttglbyr.'</div>
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
<label class="col-sm-6 col-lg-4 col-form-label">Total Faktur</label>
|
||||
<div class="col">'.$ttotal.'</div>
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
<label class="col-sm-6 col-lg-4 col-form-label" for="Total_Bayar">Jumlah Bayar</label>
|
||||
<div class="col">'.$tbayar.'</div>
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
<label class="col-sm-6 col-lg-4 col-form-label" for="Total_Potong">Potongan</label>
|
||||
<div class="col">'.$tpotong.'</div>
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
<label class="col-sm-6 col-lg-4 col-form-label">Sisa Tagihan</label>
|
||||
<div class="col">'.$tsisa.'</div>
|
||||
</div>
|
||||
';
|
||||
|
||||
} 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</button>
|
||||
</li>
|
||||
<li class="nav-item ms-auto">
|
||||
<button class="btn btn-secondary mb-1 ms-2" id="butMode" type="button"><i class="bi-list me-2"></i>Normal</button>
|
||||
<button class="btn btn-danger mb-1 ms-2" id="butBatal" type="button"><i class="bi-x-lg me-2"></i>Batal</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 id="divDetailNota" class="d-none"> </div>
|
||||
<div id="divDetailBayar" class="d-none"> </div>
|
||||
</div>
|
||||
</div>
|
||||
</div></div>
|
||||
</div>';
|
||||
}
|
||||
|
||||
send_json($ajson);
|
||||
?>
|
||||
Reference in New Issue
Block a user