first commit

This commit is contained in:
2026-01-22 11:06:19 +07:00
commit c877faf5a0
168 changed files with 19843 additions and 0 deletions
+102
View File
@@ -0,0 +1,102 @@
<?php
/*******************************************************************
Module : /apps/php/sys/printer.php
Desc. : PHP - Konfigurasi Printer POS
Created By : Siau Pheng ([email protected]).
Created Date : August 4th, 2013.
Last Modified : December 7th, 2025.
(c) 2013 - 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");
$id_reg = Param::Get("REG_ID", $_SESSION['__WEB_APP']['REG_ID']);
if ( $data == "form-printer" ) {
if ( $mode == "save" ) {
$sql = new SQL($db);
$sql->set_table("inv_config");
$sql->add_param("PRINT_AUTO");
$sql->add_param("PRINT_OPENCD");
$sql->add_param("PRINT_AUTOCUT");
$sql->add_param("PRINT_ROW");
$sql->add_param("TITLE_END");
$sql->add_where("REG_ID");
$sql->UpdateDB();
$_SESSION['__APP_INV']['PRINT_AUTO'] = Param::Get("PRINT_AUTO", 1);
$_SESSION['__APP_INV']['PRINT_OPENCD'] = Param::Get("PRINT_OPENCD", 1);
$_SESSION['__APP_INV']['PRINT_AUTOCUT'] = Param::Get("PRINT_AUTOCUT", 1);
$_SESSION['__APP_INV']['PRINT_ROW'] = Param::Get("PRINT_ROW", 0);
$_SESSION['__APP_INV']['TITLE_END'] = Param::Get("TITLE_END", "");
$ajson['sukses'] = true;
$mode = "view";
}
$para = [];
if ($id_reg > 0) {
$db->Query("SELECT * FROM inv_config WHERE REG_ID='".$id_reg."' LIMIT 1");
if ($db->Next()) $para = $db->AllRow();
$db->Query("SELECT Nama_Cab FROM para_cabang WHERE CabID='".$para['CABANGID']."' LIMIT 1");
if ($db->Next()) $para = array_merge($para, $db->AllRow());
}
$benable = ($mode=="edit") ? true : false;
$form = new Form($db);
$fautoprint = $form->checkbox("_", "PRINT_AUTO", $para['PRINT_AUTO'], $benable, false, [1,0]);
$fopencd = $form->checkbox("_", "PRINT_OPENCD", $para['PRINT_OPENCD'], $benable, false, [1,0]);
$fautocut = $form->checkbox("_", "PRINT_AUTOCUT", $para['PRINT_AUTOCUT'], $benable, false, [1,0]);
$ftitleend = $form->textbox("_", "TITLE_END", $para['TITLE_END'], $benable, false, "text", "catatan bawah struk");
$fprintrow = $form->textbox("_", "PRINT_ROW", $para['PRINT_ROW'], $benable, false, "number");
$ajson['html'] = '
<div class="row mb-1">
<div class="col">
<div class="input-group mb-1"><div class="input-group-text">'.$fautoprint.'</div><span class="input-group-text col">Otomatis Cetak Struk ?</span></div>
<div class="input-group mb-1"><div class="input-group-text">'.$fopencd.'</div><span class="input-group-text col">Otomatis Buka Laci Kasir ?</span></div>
<div class="input-group mb-1"><div class="input-group-text">'.$fautocut.'</div><span class="input-group-text col">Otomatis Potong Struk ?</span></div>
</div>
</div>
<div class="row mb-1"><hr class="my-1"></div>
<div class="row mb-1">
<div class="col"><div class="input-group"><span class="input-group-text" style="width:180px;">Footer Struk</span>'.$ftitleend.Form_Info("Gunakan [br] untuk footer yang terdiri dari beberapa baris.").'</div></div>
</div>
<div class="row mb-1">
<div class="col-6"><div class="input-group"><span class="input-group-text" style="width:180px;">Baris Cetak Kosong</span>'.$fprintrow.Form_Info("Jumlah baris kosong dibawah struk/nota sebelum potong.").'</div></div>
</div>
<input type="hidden" id="mode" value="'.$mode.'" >';
$ajson['Nama_Cabang'] = $para['Nama_Cab'];
} else if ( $data == "brow-cabang" ) {
$obj = new Table($db);
$obj->set_query("SELECT C.*,G.REG_ID FROM (SELECT * FROM para_cabang WHERE Aktif=1) C LEFT JOIN inv_config G ON (G.CABANGID=C.CabID)");
$obj->add_field("REG_ID", "ID", "hid");
$obj->add_field("Kode_Cab", "Kode", "c");
$obj->add_field("Nama_Cab", "Nama Cabang", "awr");
$obj->set_field_order("Kode_Cab", "A");
$obj->add_row_btn("save", "Pilih", "PrinterJS.cab_select");
$obj->set_func_navi("PrinterJS.data_query('brow-cabang')");
$ajson[] = $obj->json_table("divBrowCab");
} else if ( $data == "default") {
echo '<div class="row mb-1"><div class="col"><div class="input-group"><input class="form-control" id="Nama_Cabang" type="text" disabled readonly><button id="butBrow" class="btn btn-info" type="button" onclick="PrinterJS.cabang_brow();"><i class="bi-search"></i></button></div></div></div><div class="card"><div class="card-body"><div id="divPrinter">&nbsp;</div><input type="hidden" id="REG_ID" value="'.$id_reg.'"></div></div>';
}
send_json($ajson);
?>