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
+85
View File
@@ -0,0 +1,85 @@
<?php
/*******************************************************************
App. Name : Inventory Advanced Systems
Module : /apps/php/pdf/po.php
Desc. : PHP - Cetak PDF Purchase Order
Created By : Siau Pheng ([email protected]).
Created Date : April 12th, 2011.
Last Modified : January 19th, 2026.
(c) 2011 - 2026, 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\Web\Param;
function pdf_po($db, $nota="", $mode="view") {
if (trim($nota)=="") return;
$baris_faktur = 8;
$db->Query("SELECT B.*,DATE_FORMAT(B.Tgl_PO,'%d-%m-%Y') Tgl_PO2,S.Kode_Sup,S.Nama_Sup,S.Alamat_Sup FROM (SELECT * FROM inv_po WHERE No_PO='".$nota."') B LEFT JOIN para_supplier S ON (S.SupID=B.SupID)");
if ($db->Next()) $ainfo = $db->AllRow();
$ainfo['Alamat_Sup'] = str_replace("\n", "<br>", $ainfo['Alamat_Sup']);
$db->Query("SELECT D.*,P.Nama_Produk,P.Nama_Satuan FROM (SELECT InvID,SatuanID,Harga_Beli,SUM(Qty) Qty,SUM(Qty*Harga_Beli) Jumlah FROM inv_po_detail WHERE No_PO='".$nota."' AND Qty>0 GROUP BY InvID,SatuanID,Harga_Beli) D LEFT JOIN vi_inv_produk P ON (P.InvID=D.InvID AND P.SatuanID=D.SatuanID) ORDER BY P.Nama_Produk");
$html = '<table class="judul"><tbody><tr><td>PURCHASE ORDER</td><td class="r">'.$_SESSION['__WEB_APP']['REG_NAME'].'</td></tr></tbody></table><table><tbody><tr><td width="15%">Nomor PO</td><td>'.$ainfo['No_PO'].'</td></tr><tr><td>Tanggal PO</td><td>'.$ainfo['Tgl_PO2'].'</td></tr><tr><td>Supplier</td><td>'.$ainfo['Nama_Sup'].(($ainfo['Kode_Sup'])?" [".$ainfo['Kode_Sup']."]":"").'</td></tr><tr><td>Alamat</td><td>'.$ainfo['Alamat_Sup'].'</td></tr></tbody></table>';
$footer = '<htmlpagefooter name="RepFoot%s"><table class="footer"><tr><td width="33%%">INVESA - Robinson</td><td width="34%%" class="c">%s</td><td width="33%%" class="r i">{DATE d-m-Y H:i} / Halaman : {PAGENO} dari {nbpg}</td></tr></table></htmlpagefooter>';
$_setfoot = '<sethtmlpagefooter name="RepFoot%s" show-this-page="1" value="on" />';
$t_head = '<div><table autosize="1" class="garis"><thead><tr><th>No.</th><th>Nama Barang</th><th>Qty</th><th>Satuan</th></tr></thead><tbody>';
$t_foot = '</tbody></table></div>';
$_line = '<tr><td class="c">%s</td><td class="l">%s</td><td class="r">%s</td><td class="l">%s</td></tr>';
$html .= sprintf($footer, 10, "Purchase Order ".$ainfo['No_PO']);
$html .= sprintf($_setfoot, 10);
$body .= $t_head; $nomor = 1;
while ($db->Next()) {
$body .= sprintf($_line, $nomor++, $db->Row("Nama_Produk"), rupiah30($db->Row("Qty")), $db->Row("Nama_Satuan"));
}
if ($nomor <= $baris_faktur) {
$nomor--;
for ($x=$baris_faktur; $x>fmod($nomor, $baris_faktur); $x--) {
$body .= sprintf($_line, "&nbsp;", "&nbsp;", "&nbsp;", "&nbsp;");
}
}
$body .= sprintf($t_foot);
$body .= '<table class="akhir"><tr><td>Penerima,</td><td>Hormat Kami,</td></tr><tr><td><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p>Tanda Tangan & Cap Perusahaan</td><td class="r">&nbsp;</td></tr></table>';
$mpdf = new \Mpdf\Mpdf([
'mode' => 'c',
'format' => 'A4',
'margin_left' => 8,
'margin_right' => 8,
'margin_top' => 8,
'margin_header' => 5,
'margin_footer' => 5
]);
$mpdf->SetDisplayMode('fullpage');
$css = file_get_contents($_SESSION['__WEB_APP']['REAL_PATH'].'assets/css/pdf/po.css');
$mpdf->WriteHTML($css, \Mpdf\HTMLParserMode::HEADER_CSS);
$mpdf->WriteHTML($html . $body, \Mpdf\HTMLParserMode::HTML_BODY);
$mpdf->SetAuthor($_SESSION['__WEB_APP']['REG_NAME']);
$mpdf->SetCreator($_SESSION['__WEB_APP']['APP_NAME']." v".$_SESSION['__WEB_APP']['APP_VER']);
$mpdf->setTitle("Purchase Order ".$ainfo['No_PO']);
$mpdf->Output("Purchase Order ".$ainfo['No_PO'].".pdf", ($mode=="view" ? "I" : "D"));
unset($mpdf);
}
$db = $db ?? new MySQL();
$data = Param::Get("data");
$mode = Param::Get("mode", "view");
$nomor = Param::Get("Nomor_Cetak");
if ( $data == "pdf-po" ) {
pdf_po($db, $nomor, $mode);
} else if ( $data == "default") {}
?>