86 lines
4.2 KiB
PHP
86 lines
4.2 KiB
PHP
<?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, " ", " ", " ", " ");
|
|
}
|
|
}
|
|
$body .= sprintf($t_foot);
|
|
$body .= '<table class="akhir"><tr><td>Penerima,</td><td>Hormat Kami,</td></tr><tr><td><p> </p><p> </p><p> </p><p> </p>Tanda Tangan & Cap Perusahaan</td><td class="r"> </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") {}
|
|
|
|
?>
|