Files

468 lines
33 KiB
PHP

<?php
/*******************************************************************
App. Name : Inventory Advanced Systems
Module : /apps/php/repo/nota.php
Desc. : PHP - Cetak Nota
Created By : Siau Pheng ([email protected]).
Created Date : April 12th, 2011.
Last Modified : January 25th, 2026.
(c) 2011 - 2026, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
require_once(__DIR__."/../../../../../vendor/autoload.php");
require_once(__DIR__."/../func/ias.php");
require_once(__DIR__."/../func/report.php");
use siaupheng\fonia3\DB\MySQL;
use siaupheng\fonia3\Web\Param;
function nota_beli($db, $nota="") {
if (trim($nota)=="") return;
$baris_faktur = 8;
$ainfo = [];
$db->Query("SELECT B.*,DATE_FORMAT(B.Tgl_Beli,'%d-%m-%Y') Tgl_Beli2,DATE_FORMAT(B.Tgl_JT,'%d-%m-%Y') Tgl_JT2,S.Nama_Sup,S.Alamat_Sup,S.No_NPWP,B.Total_Beli-B.Total_Diskon Jumlah FROM (SELECT * FROM inv_beli WHERE No_Beli='".$nota."' LIMIT 1) B LEFT JOIN para_supplier S ON (S.SupID=B.SupID)");
if ($db->Next()) $ainfo = $db->AllRow();
$ainfo['Alamat_Sup'] = str_replace("\n", " ", $ainfo['Alamat_Sup']);
$db->Query("SELECT D.*,P.Nama_Produk,S.Nama_Satuan,R.Nama_Rasa FROM (SELECT InvID,RasaID,SatuanID,Harga_Pokok,SUM(Qty) Qty,SUM(Qty*Harga_Pokok) Jumlah,SUM(Total_Diskon) Total_Diskon FROM inv_detail WHERE No_Ref='".$nota."' GROUP BY InvID,RasaID,SatuanID,Harga_Pokok) D LEFT JOIN inv_produk P ON (P.InvID=D.InvID) LEFT JOIN para_satuan S ON (S.SatuanID=D.SatuanID) LEFT JOIN para_rasa R ON (R.RasaID=D.RasaID) ORDER BY P.Nama_Produk");
//if ($db->RecordCount()==0) return;
// menampilkan judul dibagian atas laporan
$kop = '<div class="notaTitle">FAKTUR PEMBELIAN</div>';
$kop .= '<table class="notaAddress"><tbody>';
$kop .= '<tr><td class="w50">'.$_SESSION['__WEB_APP']['REG_NAME'].'</td><td class="w50">Terima Dari Yth. :</td></tr>';
$kop .= '<tr><td class="w50">Telp. '.$_SESSION['__WEB_APP']['REG_PHONE'].'</td><td class="w50">'.$ainfo['Nama_Sup'].'</td></tr>';
$kop .= '<tr><td class="w50">Fax. '.$_SESSION['__WEB_APP']['REG_FAX'].'</td><td class="w50">'.$ainfo['Alamat_Sup'].'</td></tr>';
$kop .= '<tr><td>&nbsp;</td><td>'.$ainfo['No_NPWP'].'</td></tr>';
$kop .= '</tbody></table>';
$kop .= '<table class="notaDesc"><tbody>';
$kop .= '<tr><td width="15%">No. Nota</td><td width="35%" class="ttkdua">'.$ainfo['No_Beli'].'</td><td width="15%">Tanggal</td><td width="35%" class="ttkdua">'.$ainfo['Tgl_Beli2'].'</td></tr>';
$kop .= '<tr><td>No. Faktur</td><td class="ttkdua">'.$ainfo['No_Faktur'].'</td><td>Jatuh Tempo</td><td class="ttkdua">'.$ainfo['Tgl_JT2'].'</td></tr>';
$kop .= '</tbody></table>';
$header = '<table class="notaTable"><thead><tr><th style="width:1cm">No.</th><th>Nama Produk</th><th style="width:1.8cm">Qty</th><th style="width:2cm">Satuan</th><th style="width:2.6cm">Harga @</th><th style="width:2.8cm">Total</th></tr></thead><tbody>';
$_line = '<tr><td class="c">%s</td><td>%s</td><td class="r">%s</td><td>%s</td><td class="r">%s</td><td class="r">%s</td></tr>';
$_bline = '<tr><td class="b">&nbsp;</td><td class="b r" colspan="3">%s</td><td class="b r" colspan="2">%s</td></tr>';
$body = ""; $no_urut = 1;
while ($db->Next()) {
$body .= sprintf($_line, $no_urut++, $db->Row("Nama_Produk").(($db->Row("Nama_Rasa"))?" (".$db->Row("Nama_Rasa").")":""), rupiah2($db->Row("Qty")), $db->Row("Nama_Satuan"), rupiah($db->Row("Harga_Pokok")), rupiah($db->Row("Jumlah")));
}
if ($no_urut <= $baris_faktur) {
$no_urut--;
for ($x=$baris_faktur; $x>fmod($no_urut, $baris_faktur); $x--) {
$body .= sprintf($_line, "&nbsp;", "&nbsp;", "&nbsp;","&nbsp;", "&nbsp;", "&nbsp;");
}
}
$body .= sprintf($_bline, "Sub. Total Rp.", rupiah($ainfo['Total_Beli']));
$body .= sprintf($_bline, "Diskon Rp.", rupiah($ainfo['Total_Diskon']));
$body .= sprintf($_bline, "Total Rp.", rupiah($ainfo['Jumlah']));
$body .= '</tbody></table>';
$body .= '<table class="notaFooter"><tr height="80"><td>Penerima,</td><td>Hormat Kami,</td></tr><tr><td>Tanda Tangan & Cap Perusahaan</td><td class="r stamp">'.Report_Stamp(1,true).'</td></tr></table>';
echo '<div class="printNota">' . $kop . $header . $body . '</div>';
}
function nota_jual($db, $nota="") {
if (trim($nota)=="") return;
$baris_faktur = 8;
$ainfo = [];
$db->Query("SELECT J.*,DATE_FORMAT(J.Tgl_Jual,'%d-%m-%Y') Tgl_Jual2,DATE_FORMAT(J.Tgl_JT,'%d-%m-%Y') Tgl_JT2,O.Nama_Outlet,O.Alamat_Outlet,O.No_NPWP,O.No_NIK,O.Nama_NPWP,O.Alamat_NPWP,S.Kode_Pegawai Kode_Sales,S.Nama_Pegawai Nama_Sales,J.Total_Jual-J.Total_Diskon Jumlah FROM (SELECT * FROM inv_jual WHERE No_Jual='".$nota."' LIMIT 1) J LEFT JOIN para_outlet O ON (O.OutletID=J.OutletID) LEFT JOIN para_pegawai S ON (J.SalesID=S.PegID)");
if ($db->Next()) $ainfo = $db->AllRow();
$ainfo['Alamat_Outlet'] = str_replace("\n", " ", $ainfo['Alamat_Outlet']);
$ainfo['Alamat_NPWP'] = str_replace("\n", " ", $ainfo['Alamat_NPWP']);
$ainfo['No_NPWP'] = ($ainfo['No_NPWP']==0) ? "NIK : ".$ainfo['No_NIK'] : "NPWP : ".$ainfo['No_NPWP'];
$db->Query("SELECT SUM(-Qty*Harga_Jual) Total_Jual,SUM(Total_Diskon) Total_Diskon,SUM((-Qty*Harga_Jual)-Total_Diskon) Jumlah FROM inv_detail WHERE No_Ref='".$nota."' AND Qty<>0 AND InvID IN (".$_SESSION['__APP_IAS']['PRODUK_EX'].")");
if ($db->Next()) {
$ainfo['Total_Jual'] -= $db->RowFloat("Total_Jual", 0);
$ainfo['Total_Diskon'] -= $db->RowFloat("Total_Diskon", 0);
$ainfo['Jumlah'] -= $db->RowFloat("Jumlah", 0);
}
$db->Query("SELECT D.*,P.Nama_Produk,S.Nama_Satuan,R.Nama_Rasa FROM (SELECT InvID,RasaID,SatuanID,Harga_Jual,SUM(Total_Diskon) Total_Diskon,SUM(-Qty) Qty,SUM((-Qty*Harga_Jual)-Total_Diskon) Jumlah FROM inv_detail WHERE No_Ref='".$nota."' AND Qty<>0 AND InvID NOT IN(".$_SESSION['__APP_IAS']['PRODUK_EX'].") GROUP BY InvID,RasaID,SatuanID,Harga_Jual) D LEFT JOIN inv_produk P ON (P.InvID=D.InvID) LEFT JOIN para_satuan S ON (D.SatuanID=S.SatuanID) LEFT JOIN para_rasa R ON (R.RasaID=D.RasaID) ORDER BY P.Nama_Produk");
// menampilkan judul dibagian atas laporan
$kop = '<div class="notaTitle">FAKTUR PENJUALAN</div>';
$kop .= '<table class="notaAddress"><tbody>';
if ($ainfo['Nama_Outlet']==$ainfo['Nama_NPWP'] && $ainfo['Alamat_Outlet']==$ainfo['Alamat_NPWP']) {
$kop .= '<tr><td class="w50">'.$_SESSION['__WEB_APP']['REG_NAME'].'</td><td class="w50">Kepada Yth. :</td></tr>';
$kop .= '<tr><td class="w50">Telp. '.$_SESSION['__WEB_APP']['REG_PHONE'].'</td><td class="w50">'.$ainfo['Nama_Outlet'].'</td></tr>';
$kop .= '<tr><td class="w50">Fax. '.$_SESSION['__WEB_APP']['REG_FAX'].'</td><td class="w50">'.$ainfo['Alamat_Outlet'].'</td></tr>';
} else {
$kop .= '<tr><td>'.$_SESSION['__WEB_APP']['REG_NAME'].'</td><td>Kepada Yth. :</td><td>Dikirim Ke :</td></tr>';
$kop .= '<tr><td>Telp. '.$_SESSION['__WEB_APP']['REG_PHONE'].'</td><td>'.$ainfo['Nama_NPWP'].'</td><td>'.$ainfo['Nama_Outlet'].'</td></tr>';
$kop .= '<tr><td>Fax. '.$_SESSION['__WEB_APP']['REG_FAX'].'</td><td>'.$ainfo['Alamat_NPWP'].'</td><td rowspan="2">'.$ainfo['Alamat_Outlet'].' '.$ainfo['Kota_Outlet'].'</td></tr>';
}
$kop .= '<tr><td>&nbsp;</td><td>'.$ainfo['No_NPWP'].'</td></tr>';
$kop .= '</tbody></table>';
$kop .= '<table class="notaDesc"><tbody>';
$kop .= '<tr><td width="15%">No. Faktur</td><td width="35%" class="ttkdua">'.$ainfo['No_Jual'].'</td><td width="15%">Tanggal</td><td width="35%" class="ttkdua">'.$ainfo['Tgl_Jual2'].'</td></tr>';
$kop .= '<tr><td>Sales</td><td class="ttkdua">'.$ainfo['Nama_Sales'].($ainfo['Kode_Sales']==""?"":" (".$ainfo['Kode_Sales'].")").'</td><td>Jatuh Tempo</td><td class="ttkdua">'.$ainfo['Tgl_JT2'].'</td></tr>';
$kop .= '</tbody></table>';
$header = '<table class="notaTable"><thead><tr><th style="width:1cm">No.</th><th>Nama Produk</th><th style="width:1.8cm">Qty</th><th style="width:2cm">Satuan</th><th style="width:2.6cm">Harga @</th><th style="width:2.3cm">Diskon</th><th style="width:2.8cm">Total</th></tr></thead><tbody>';
$_line = '<tr><td class="c">%s</td><td>%s</td><td class="r">%s</td><td>%s</td><td class="r">%s</td><td class="r">%s</td><td class="r">%s</td></tr>';
$_bline = '<tr><td class="b">&nbsp;</td><td class="b r" colspan="4">%s</td><td class="b r" colspan="2">%s</td></tr>';
$body = ""; $no_urut = 1;
while ($db->Next()) {
if ($db->Row("Qty", 0)==0) continue;
$body .= sprintf($_line, $no_urut++, $db->Row("Nama_Produk").(($db->Row("Nama_Rasa"))?" (".$db->Row("Nama_Rasa").")":""), rupiah2($db->Row("Qty")), $db->Row("Nama_Satuan"), rupiah($db->Row("Harga_Jual")), rupiah($db->Row("Total_Diskon")), rupiah($db->Row("Jumlah")));
}
if ($no_urut <= $baris_faktur) {
$no_urut--;
for ($x=$baris_faktur; $x>fmod($no_urut, $baris_faktur); $x--) {
$body .= sprintf($_line, "&nbsp;", "&nbsp;", "&nbsp;","&nbsp;", "&nbsp;", "&nbsp;", "&nbsp;");
}
}
$body .= sprintf($_bline, "Sub. Total Rp.", rupiah($ainfo['Total_Jual']));
$body .= sprintf($_bline, "Diskon Rp.", rupiah($ainfo['Total_Diskon']));
$body .= sprintf($_bline, "Total Rp.", rupiah($ainfo['Jumlah']));
$body .= '</tbody></table>';
$body .= '<table class="notaFooter"><tr height="80"><td>Penerima,</td><td>Hormat Kami,</td></tr><tr><td>Tanda Tangan & Cap Perusahaan</td><td class="r stamp">'.Report_Stamp(1,true).'</td></tr></table>';
echo '<div class="printNota">' . $kop . $header . $body . '</div>';
}
function nota_retur_beli($db, $nota="") {//
if (trim($nota)=="") return;
$baris_faktur = 8;
$ainfo = [];
$db->Query("SELECT R.*,DATE_FORMAT(R.Tgl_Beli,'%d-%m-%Y') Tgl_Beli2,S.Nama_Sup,S.Alamat_Sup,R.Total_Beli Jumlah FROM (SELECT * FROM inv_beli WHERE No_Beli='".$nota."' LIMIT 1) R LEFT JOIN para_supplier S ON (S.SupID=R.SupID)");
if ($db->Next()) $ainfo = $db->AllRow();
$ainfo['Alamat_Sup'] = str_replace("\n", "<br>", $ainfo['Alamat_Sup']);
$db->Query("SELECT D.*,P.Nama_Produk,S.Nama_Satuan,R.Nama_Rasa FROM (SELECT InvID,RasaID,SatuanID,Harga_Pokok,SUM(-Qty) Qty,SUM(-Qty*Harga_Pokok) Jumlah FROM inv_detail WHERE No_Ref='".$nota."' GROUP BY InvID,RasaID,SatuanID,Harga_Pokok) D LEFT JOIN inv_produk P ON (P.InvID=D.InvID) LEFT JOIN para_satuan S ON (S.SatuanID=D.SatuanID) LEFT JOIN para_rasa R ON (R.RasaID=D.RasaID) ORDER BY P.Nama_Produk");
//if ($db->RecordCount()==0) return;
// menampilkan judul dibagian atas laporan
$kop = '<h5 class="text-center">RETUR PEMBELIAN</h5>';
$kop .= '<table class="notaHeader"><tbody>';
$kop .= '<tr><td colspan="2">'.$_SESSION['__WEB_APP']['REG_NAME'].'</td><td colspan="2">Kepada Yth. :</td></tr>';
$kop .= '<tr><td colspan="2">Telp. '.$_SESSION['__WEB_APP']['REG_PHONE'].'</td><td colspan="2">'.$ainfo['Nama_Sup'].'</td></tr>';
$kop .= '<tr><td colspan="2">Fax. '.$_SESSION['__WEB_APP']['REG_FAX'].'</td><td colspan="2">'.$ainfo['Alamat_Sup'].'</td></tr>';
$kop .= '<tr><td colspan="4">&nbsp;</td></tr>';
$kop .= '<tr><td width="20%">No. Retur</td><td width="30%">'.$ainfo['No_Beli'].'</td><td width="20%">Tanggal</td><td width="30%">'.$ainfo['Tgl_Beli2'].'</td></tr>';
$kop .= '</tbody></table>';
$header = '<table class="garis"><thead><tr><th style="width:1cm">No.</th><th>Nama Produk</th><th style="width:1.8cm">Qty</th><th style="width:1.8cm">Satuan</th><th style="width:2.8cm">Harga @</th><th style="width:2.8cm">Total</th></tr></thead><tbody>';
$_line = '<tr><td class="c">%s</td><td>%s</td><td class="r">%s</td><td>%s</td><td class="r">%s</td><td class="r">%s</td></tr>';
$_bline = '<tr><td class="b">&nbsp;</td><td class="b r" colspan="3">%s</td><td class="b r" colspan="2">%s</td></tr>';
$body = ""; $no_urut = 1;
while ($db->Next()) {
$body .= sprintf($_line, $no_urut++, $db->Row("Nama_Produk").(($db->Row("Nama_Rasa"))?" (".$db->Row("Nama_Rasa").")":""), rupiah2($db->Row("Qty")), $db->Row("Nama_Satuan"), rupiah($db->Row("Harga_Pokok")), rupiah($db->Row("Jumlah")));
}
if ($no_urut <= $baris_faktur) {
$no_urut--;
for ($x=$baris_faktur; $x>fmod($no_urut, $baris_faktur); $x--) {
$body .= sprintf($_line, "&nbsp;", "&nbsp;", "&nbsp;","&nbsp;", "&nbsp;", "&nbsp;");
}
}
$body .= sprintf($_bline, "Total Rp.", rupiah($ainfo['Jumlah']));
$body .= '<table class="notaFooter">';
if ($ainfo['No_Faktur']<>"") $body .= '<tr><td colspan="2">Catatan : <i>'.$ainfo['No_Faktur'].'</i>.</td></tr>';
$body .= '<tr height="80"><td width="50%">Penerima,</td><td>Hormat Kami,</td></tr><tr><td>Tanda Tangan & Cap Perusahaan</td><td class="r stamp">'.Report_Stamp(1,true).'</td></tr></table>';
echo '<div class="printNota">' . $kop . $header . $body . '</tbody></table></div>';
}
function nota_retur_jual($db, $nota="") {//
if (trim($nota)=="") return;
$baris_faktur = 8;
$ainfo = [];
$db->Query("SELECT R.*,DATE_FORMAT(R.Tgl_Jual,'%d-%m-%Y') Tgl_Jual2,O.Nama_Outlet,O.Alamat_Outlet,-R.Total_Jual Jumlah FROM (SELECT * FROM inv_jual WHERE No_Jual='".$nota."' LIMIT 1) R LEFT JOIN para_outlet O ON (O.OutletID=R.OutletID)");
if ($db->Next()) $ainfo = $db->AllRow();
$ainfo['Alamat_Outlet'] = str_replace("\n", "<br>", $ainfo['Alamat_Outlet']);
$db->Query("SELECT D.*,P.Nama_Produk,S.Nama_Satuan,R.Nama_Rasa FROM (SELECT InvID,RasaID,SatuanID,Harga_Jual,SUM(Qty) Qty,SUM(Qty*Harga_Jual) Jumlah FROM inv_detail WHERE No_Ref='".$nota."' GROUP BY InvID,RasaID,SatuanID,Harga_Jual) D LEFT JOIN inv_produk P ON (P.InvID=D.InvID) LEFT JOIN para_satuan S ON (S.SatuanID=D.SatuanID) LEFT JOIN para_rasa R ON (R.RasaID=D.RasaID) ORDER BY P.Nama_Produk");
//if ($db->RecordCount()==0) return;
// menampilkan judul dibagian atas laporan
$kop = '<h5 class="text-center">RETUR PENJUALAN</h5>';
$kop .= '<table class="notaHeader"><tbody>';
$kop .= '<tr><td colspan="2">'.$_SESSION['__WEB_APP']['REG_NAME'].'</td><td colspan="2">Kepada Yth. :</td></tr>';
$kop .= '<tr><td colspan="2">Telp. '.$_SESSION['__WEB_APP']['REG_PHONE'].'</td><td colspan="2">'.$ainfo['Nama_Outlet'].'</td></tr>';
$kop .= '<tr><td colspan="2">Fax. '.$_SESSION['__WEB_APP']['REG_FAX'].'</td><td colspan="2">'.$ainfo['Alamat_Outlet'].'</td></tr>';
$kop .= '<tr><td colspan="4">&nbsp;</td></tr>';
$kop .= '<tr><td width="20%">Nomor Retur / Tanggal Retur</td><td width="30%">: '.$ainfo['No_Jual'].' / '.$ainfo['Tgl_Jual2'].'</td></tr>';
$kop .= '</tbody></table>';
$header = '<table class="garis"><thead><tr><th style="width:1cm">No.</th><th>Nama Produk</th><th style="width:1.8cm">Qty</th><th style="width:1.8cm">Satuan</th><th style="width:2.8cm">Harga @</th><th style="width:2.8cm">Total</th></tr></thead><tbody>';
$_line = '<tr><td class="c">%s</td><td>%s</td><td class="r">%s</td><td>%s</td><td class="r">%s</td><td class="r">%s</td></tr>';
$_bline = '<tr><td class="b">&nbsp;</td><td class="b r" colspan="3">%s</td><td class="b r" colspan="2">%s</td></tr>';
$body = ""; $no_urut = 1;
while ($db->Next()) {
$body .= sprintf($_line, $no_urut++, $db->Row("Nama_Produk").(($db->Row("Nama_Rasa"))?" (".$db->Row("Nama_Rasa").")":""), rupiah2($db->Row("Qty")), $db->Row("Nama_Satuan"), rupiah($db->Row("Harga_Jual")), rupiah($db->Row("Jumlah")));
}
if ($no_urut <= $baris_faktur) {
$no_urut--;
for ($x=$baris_faktur; $x>fmod($no_urut, $baris_faktur); $x--) {
$body .= sprintf($_line, "&nbsp;", "&nbsp;", "&nbsp;","&nbsp;", "&nbsp;", "&nbsp;");
}
}
$body .= sprintf($_bline, "Total Rp.", rupiah($ainfo['Jumlah']));
$body .= '<table class="notaFooter">';
if ($ainfo['Catatan']<>"") $body .= '<tr><td colspan="2">Catatan : <i>'.$ainfo['Catatan'].'</i>.</td></tr>';
$body .= '<tr height="80"><td width="50%">Penerima,</td><td>Hormat Kami,</td></tr><tr><td>Tanda Tangan & Cap Perusahaan</td><td class="r stamp">'.Report_Stamp(1,true).'</td></tr></table>';
echo '<div class="printNota">' . $kop . $header . $body . '</tbody></table></div>';
}
function nota_do_produk($db, $nota="", $w_catat=0) {
if (trim($nota)=="") return;
$asatuan = []; $ainfo = [];
$db->Query("SELECT Kode_Satuan FROM para_satuan ORDER BY Urut");//todo: hilangkan nomor urut
while ($db->Next()) $asatuan[$db->Row("Kode_Satuan")] = 0;
$db->Query("SELECT DO.No_DO,DO.Catatan,DATE_FORMAT(DO.Tgl_DO,'%d-%m-%Y') Tgl_DO2,M.Nama_Mobil,S.Nama_Pegawai Nama_Supir,Nama_Picker(DO.A_Picker) Nama_Picker FROM (SELECT * FROM inv_jual_do WHERE No_DO='".$nota."') DO LEFT JOIN para_mobil M ON (DO.MobilID=M.MobilID) LEFT JOIN para_pegawai S ON (DO.SupirID=S.PegID)");
if ($db->Next()) $ainfo = $db->AllRow();
$db->Query("SELECT P.Kode_Produk,R.Kode_Rasa,S.Kode_Satuan,D.Qty,P.Grup_InvID Grup FROM (SELECT InvID,RasaID,SatuanID,SUM(-Qty) Qty FROM inv_detail WHERE No_Ref IN (SELECT No_Jual FROM inv_jual WHERE No_DO='".$nota."') GROUP BY InvID,RasaID,SatuanID) D LEFT JOIN inv_produk P ON (D.InvID=P.InvID) LEFT JOIN para_rasa R ON (D.RasaID=R.RasaID) LEFT JOIN para_satuan S ON (D.SatuanID=S.SatuanID) ORDER BY P.Pajak DESC,P.Grup_InvID,D.InvID");
// menampilkan judul dibagian atas laporan
$kop = '<div class="text-center"><span class="fs-6 fw-bold">'.$_SESSION['__WEB_APP']['REG_NAME'].'</span><br>DELIVERY ORDER (DO)</div>';
$kop .= '<table class="notaHeader"><tbody>';
$kop .= '<tr><td width="15%">No. DO</td><td width="35%" class="ttkdua">'.$ainfo['No_DO'].'</td><td width="15%">Driver</td><td width="35%" class="ttkdua">'.$ainfo['Nama_Supir'].'</td></tr>';
$kop .= '<tr><td>Tanggal</td><td class="ttkdua">'.$ainfo['Tgl_DO2'].'</td><td>Helper</td><td class="ttkdua">'.$ainfo['Nama_Picker'].'</td></tr>';
$kop .= '<tr><td>Kendaraan</td><td colspan="3" class="ttkdua">'.$ainfo['Nama_Mobil'].'</td></tr>';
$kop .= '</tbody></table>';
$header = '<table class="garis"><thead><tr><th style="width:1cm">No.</th><th>Produk</th><th style="width:2.2cm">Jumlah</th><th style="width:2cm">Satuan</th><th style="width:2.2cm">Kembali</th><th style="width:2.2cm">Total</th></tr></thead><tbody>';
$_line = '<tr><td class="c">%s</td><td>%s</td><td class="r">%s</td><td>%s</td><td class="r">%s</td><td class="r">%s</td></tr>';
$_bline = '<tr><td class="b c" colspan="4">%s</td><td class="b r">%s</td><td class="b r">%s</td></tr>';
$body = $kop.$header; $no_urut = 1; $sub_jenis = 0;
while ($db->Next()) {
$mark = "";
if ($db->Row("Grup")==$_SESSION['__APP_IAS']['GRUP_PRODUK_KEMASAN']) $mark = " *)";
if ($db->Row("Grup")==$_SESSION['__APP_IAS']['GRUP_PRODUK_HADIAH']) $mark = " ***";
if ($db->Row("Grup")<>$_SESSION['__APP_IAS']['GRUP_PRODUK_KEMASAN'] && $db->Row("Grup")<>$_SESSION['__APP_IAS']['GRUP_PRODUK_HADIAH']) {
$asatuan[$db->Row("Kode_Satuan")] += $db->Row("Qty");
$sub_jenis++;
}
$body .= sprintf($_line, $no_urut++, $db->Row("Kode_Produk").(($db->Row("Kode_Rasa"))?" (".$db->Row("Kode_Rasa").")":"").$mark, rupiah2($db->Row("Qty")), $db->Row("Kode_Satuan"), "", "");
}
$ket_produk = "";
foreach ($asatuan as $key => $val) {
if ($val > 0) $ket_produk .= " / ".rupiah2($val)." ".strtoupper($key);
}
$ket_produk = substr($ket_produk, 3);
$body .= sprintf($_bline, $sub_jenis." ITEM PRODUK (".$ket_produk.")", "", "");
$t_catat = ($w_catat==1 && $ainfo['Catatan']<>"") ? '<i>'.nl2br($ainfo['Catatan']).'</i>.' : '&nbsp;';
$body .= '</tbody></table><table class="notaFooter"><tr height="80"><td colspan="2">'.$t_catat.'</td></tr><tr><td width="50%" class="stamp">&nbsp;</td><td class="r stamp">'.Report_Stamp(1,true).'</td></tr></table>';
echo '<div>' . $body . '</div>';
}
function nota_do_faktur($db, $nota = "", $w_catat=0) {
if (trim($nota)=="") return;
$ainfo = [];
$db->Query("SELECT DO.No_DO,DO.Catatan,DATE_FORMAT(DO.Tgl_DO,'%d-%m-%Y') Tgl_DO2,M.Nama_Mobil,S.Nama_Pegawai Nama_Supir,Nama_Picker(DO.A_Picker) Nama_Picker FROM (SELECT * FROM inv_jual_do WHERE No_DO='".$nota."') DO LEFT JOIN para_mobil M ON (DO.MobilID=M.MobilID) LEFT JOIN para_pegawai S ON (DO.SupirID=S.PegID)");
if ($db->Next()) $ainfo = $db->AllRow();
$db->Query("SELECT J.*,DATE_FORMAT(J.Tgl_Jual,'%d-%m-%Y') Tgl_Jual2,J.Total_Jual-J.Total_Diskon Total_Nota,O.Nama_Outlet,S.Nama_Pegawai FROM (SELECT * FROM inv_jual WHERE No_DO='".$nota."') J LEFT JOIN para_outlet O ON (J.OutletID=O.OutletID) LEFT JOIN para_pegawai S ON (J.SalesID=S.PegID) ORDER BY J.No_Jual");
// menampilkan judul dibagian atas laporan
$kop = '<div class="text-center"><span class="fs-6 fw-bold">'.$_SESSION['__WEB_APP']['REG_NAME'].'</span><br>DELIVERY ORDER (DO)</div>';
$kop .= '<table class="notaHeader"><tbody>';
$kop .= '<tr><td width="15%">No. DO</td><td width="35%" class="ttkdua">'.$ainfo['No_DO'].'</td><td width="15%">Driver</td><td width="35%" class="ttkdua">'.$ainfo['Nama_Supir'].'</td></tr>';
$kop .= '<tr><td>Tanggal</td><td class="ttkdua">'.$ainfo['Tgl_DO2'].'</td><td>Helper</td><td class="ttkdua">'.$ainfo['Nama_Picker'].'</td></tr>';
$kop .= '<tr><td>Kendaraan</td><td colspan="3" class="ttkdua">'.$ainfo['Nama_Mobil'].'</td></tr>';
$kop .= '</tbody></table>';
$header = '<table class="garis"><thead><tr><th style="width:1cm">No.</th><th style="width:2cm">No. Faktur</th><th style="width:2.5cm">Tgl. Faktur</th><th>Nama Outlet</th><th style="width:2.2cm">Jumlah</th><th>Sales</th></tr></thead><tbody>';
$_line = '<tr><td class="c">%s</td><td class="c">%s</td><td class="c">%s</td><td>%s</td><td class="r">%s</td><td>%s</td></tr>';
$_bline = '<tr><td class="b c" colspan="4">%s</td><td class="b r">%s</td><td class="b r">%s</td></tr>';
$body = $kop.$header; $no_urut = 1; $tot_nota = 0;
while ($db->Next()) {
$body .= sprintf($_line, $no_urut++, $db->Row("No_Jual"), $db->Row("Tgl_Jual2"), $db->Row("Nama_Outlet"), rupiah2($db->Row("Total_Nota")), $db->Row("Nama_Pegawai"));
$tot_nota += $db->Row("Total_Nota");
}
$body .= sprintf($_bline, "Total Delivery Order", rupiah2($tot_nota), "");
//$t_catat = ($w_catat==1 && $ainfo['Catatan']<>"") ? 'Catatan : <i>'.$ainfo['Catatan'].'</i>.' : '&nbsp;';
$t_catat = '&nbsp;';
$body .= '</tbody></table><table class="notaFooter"><tr height="80"><td colspan="2">'.$t_catat.'</td></tr><tr><td width="50%" class="stamp">&nbsp;</td><td class="r stamp">'.Report_Stamp(1,true).'</td></tr></table>';
echo '<div>' . $body . '</div>';
}
function nota_dt($db, $nota = "", $w_lunas = 0) {
if (trim($nota)=="") return;
$ainfo = [];
$db->Query("SELECT T.*,DATE_FORMAT(T.Tgl_Tagih,'%d-%m-%Y') Tgl_Tagih2,S.Kode_Pegawai Kode_Sales,S.Nama_Pegawai Nama_Sales FROM (SELECT * FROM inv_jual_tagih WHERE No_Tagih='".$nota."' LIMIT 1) T LEFT JOIN para_pegawai S ON (T.SalesID=S.PegID)");
if ($db->Next()) $ainfo = $db->AllRow();
$tsql = ($w_lunas == 0) ? " AND Lunas=0" : "";
$db->Query("SELECT J.*,DATE_FORMAT(J.Tgl_Jual,'%d-%m-%Y') Tgl_Jual2,DATE_FORMAT(J.Tgl_JT,'%d-%m-%Y') Tgl_JT2,O.Nama_Outlet,J.Total_Jual-J.Total_Diskon Total_Faktur,IFNULL(B.Bayar_Lalu,0) Bayar_Lalu,IFNULL(B.Bayar_Ini,0) Bayar_Ini,J.Total_Jual-J.Total_Diskon-IFNULL(B.Bayar_Lalu,0)-IFNULL(B.Bayar_Ini,0) Total_Sisa FROM (SELECT * FROM inv_jual WHERE No_Jual IN (SELECT No_Jual FROM inv_jual_tagih_detail WHERE No_Tagih='".$ainfo['No_Tagih']."')".$tsql.") J LEFT JOIN (SELECT No_Jual,SUM(IF(Tgl_Bayar<'".$ainfo['Tgl_Tagih']."',Total_Bayar+Total_Potong,0)) Bayar_Lalu,SUM(IF(Tgl_Bayar='".$ainfo['Tgl_Tagih']."',Total_Bayar+Total_Potong,0)) Bayar_Ini FROM inv_jual_lunas WHERE No_Jual IN (SELECT No_Jual FROM inv_jual_tagih_detail WHERE No_Tagih='".$ainfo['No_Tagih']."') GROUP BY No_Jual) B ON (B.No_Jual=J.No_Jual) LEFT JOIN para_outlet O ON (O.OutletID=J.OutletID) ORDER BY O.Nama_Outlet, J.Tgl_Jual");
//if ($db->RecordCount()==0) return;
// menampilkan judul dibagian atas laporan
$kop = '<div class="text-center"><span class="fs-6 fw-bold">'.$_SESSION['__WEB_APP']['REG_NAME'].'</span><br>DAFTAR TAGIHAN OUTLET</div>';
$kop .= '<table class="notaHeader"><tbody>';
$kop .= '<tr><td width="15%">No. Tagihan</td><td width="35%" class="ttkdua">'.$ainfo['No_Tagih'].'</td><td width="15%">Sales</td><td width="35%" class="ttkdua">'.$ainfo['Nama_Sales'].($ainfo['Kode_Sales']==""?"":" (".$ainfo['Kode_Sales'].")").'</td></tr>';
$kop .= '<tr><td>Tanggal</td><td class="ttkdua">'.$ainfo['Tgl_Tagih2'].'</td></tr>';
$kop .= '</tbody></table>';
$header = '<table class="garis"><thead><tr><th style="width:1cm">No.</th><th>Nama Outlet</th><th style="width:2cm">No. Nota</th><th style="width:2.6cm">Tgl. Nota</th><th style="width:2.2cm">Total Nota</th><th style="width:2.2cm">Setoran</th><th style="width:2.2cm">Pembayaran</th><th style="width:2.2cm">Sisa Nota</th></tr></thead><tbody>';
$_line = '<tr><td class="c">%s</td><td>%s</td><td class="c">%s</td><td class="c nwr">%s</td><td class="r">%s</td><td class="r">%s</td><td class="r">%s</td><td class="r">%s</td></tr>';
$_bline = '<tr><td class="b c" colspan="6">%s</td><td class="b r" colspan="2">%s</td></tr>';
$body = ""; $no_urut = 1; $tot_tag = 0;
while ($db->Next()) {
$body .= sprintf($_line, $no_urut++, $db->Row("Nama_Outlet"), $db->Row("No_Jual"), $db->Row("Tgl_Jual2"), rupiah($db->Row("Total_Faktur")), rupiah($db->Row("Bayar_Lalu")), rupiah($db->Row("Bayar_Ini")), rupiah($db->Row("Total_Sisa")));
$tot_tag += $db->RowFloat("Total_Sisa", 0);
}
$body .= sprintf($_bline, "Total Tagihan Rp.", rupiah($tot_tag), "");
$body .= '</tbody></table><table class="notaFooter"><tr height="80"><td width="50%">&nbsp;</td></tr><tr><td class="r stamp">'.Report_Stamp(1,true).'</td></tr></table>';
echo '<div>' . $kop . $header . $body . '</div>';
}
function nota_biaya($db, $nota = "") {
if (trim($nota)=="") return;
$baris_faktur = 6;
$ainfo = [];
$db->Query("SELECT B.*,DATE_FORMAT(B.Tgl_Biaya,'%d-%m-%Y') Tgl_Biaya2,(B.Jumlah_DPP+B.Jumlah_PPN) Jumlah,S.Nama_Sup,S.Alamat_Sup,S.Kota_Sup FROM (SELECT * FROM biaya_pajak WHERE No_Biaya='".$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 *,(Qty*Harga_Jual) Jumlah FROM biaya_pajak_detail WHERE No_Biaya='".$nota."' ORDER BY ID");
//if ($db->RecordCount()==0) return;
// menampilkan judul dibagian atas laporan
$kop = '<div class="text-center"><span class="fs-6 fw-bold">INVOICE</span><br>Nomor : '.$ainfo['No_Biaya'].'</div>';
$kop .= '<table class="notaHeader"><tbody>';
$kop .= '<tr><td colspan="2">'.$_SESSION['__WEB_APP']['REG_NAME'].'</td><td colspan="2">Kepada Yth. :</td></tr>';
$kop .= '<tr><td colspan="2" class="align-top">Telp. '.$_SESSION['__WEB_APP']['REG_PHONE'].'</td><td colspan="2">'.$ainfo['Nama_Sup'].'</td></tr>';
$kop .= '<tr><td colspan="2" class="align-top">Fax. '.$_SESSION['__WEB_APP']['REG_FAX'].'</td><td colspan="2">'.$ainfo['Alamat_Sup'].'</td></tr>';
$kop .= '<tr><td colspan="2" width="50%">&nbsp;</td><td width="50%">'.$ainfo['Kota_Sup'].'</td></tr>';
$kop .= '</tbody></table>';
$header = '<table class="garis"><thead><tr><th style="width:1cm">No.</th><th>Uraian</th><th style="width:1.8cm">Qty</th><th style="width:2.8cm">Harga @</th><th style="width:2.8cm">Jumlah</th></tr></thead><tbody>';
$_line = '<tr><td class="c">%s</td><td>%s</td><td class="r">%s</td><td class="r">%s</td><td class="r">%s</td></tr>';
$_bline = '<tr><td class="b">&nbsp;</td><td class="b r" colspan="2">%s</td><td class="b r" colspan="2">%s</td></tr>';
$body = ""; $no_urut = 1;
while ($db->Next()) {
$body .= sprintf($_line, $no_urut++, $db->Row("Uraian_Biaya"), rupiah2($db->Row("Qty")), rupiah($db->Row("Harga_Jual")), rupiah($db->Row("Jumlah")));
}
if ($no_urut <= $baris_faktur) {
$no_urut--;
for ($x=$baris_faktur; $x>fmod($no_urut, $baris_faktur); $x--) {
$body .= sprintf($_line, "&nbsp;", "&nbsp;", "&nbsp;","&nbsp;", "&nbsp;");
}
}
$body .= sprintf($_bline, "Total (Dasar Pengenaan Pajak) Rp.", rupiah($ainfo['Jumlah_DPP']));
$body .= sprintf($_bline, "PPN (11% x Dasar Pengenaan Pajak) Rp.", rupiah($ainfo['Jumlah_PPN']));
//$body .= sprintf($_bline, "PPN (".(($ainfo['Tgl_Biaya'] >= $_SESSION['__APP_IAS']['PPN_TGL']) ? $_SESSION['__APP_IAS']['PPN_STRING'] : "11")."% x Dasar Pengenaan Pajak) Rp.", rupiah($ainfo['Jumlah_PPN']));
$body .= sprintf($_bline, "Grand Total Rp.", rupiah($ainfo['Jumlah']));
$body .= '<table class="notaFooter">';
$body .= '<tr><td width="50%">&nbsp;</td><td>Pontianak, '.tgl_panjang($ainfo['Tgl_Biaya2']).'</td></tr><tr height="80"><td><table class="nostyle"><tr><td style="width:30%;" class="py-0">A/C</td><td class="py-0 ttkdua">029 052 7899</td></tr><tr><td class="py-0">A/N</td><td class="py-0 ttkdua">PT. Ponti Mitra Sejati</td></tr><tr><td class="py-0">Bank</td><td class="py-0 ttkdua">BCA KCU Pontianak</td></tr></table></td><td style="vertical-align:bottom;">Budiyanto Halim Krisno<br>Manager</td></tr><tr><td>&nbsp;</td><td class="r stamp">'.Report_Stamp(1,true).'</td></tr></table>';
echo '<div class="printNota">' . $kop . $header . $body . '</tbody></table></div>';
}
function nota_mdo($db, $nota="") {
if (trim($nota)=="") return;
$asatuan = []; $ainfo = [];
$db->Query("SELECT Kode_Satuan FROM para_satuan ORDER BY Urut");//todo: hilangkan nomor urut
while ($db->Next()) $asatuan[$db->Row("Kode_Satuan")] = 0;
$db->Query("SELECT DO.No_MDO,DO.Catatan,DATE_FORMAT(DO.Tgl_MDO,'%d-%m-%Y') Tgl_MDO2,S.Nama_Pegawai Nama_Supir FROM (SELECT * FROM manual_do WHERE No_MDO='".$nota."') DO LEFT JOIN para_pegawai S ON (DO.SupirID=S.PegID)");
if ($db->Next()) $ainfo = $db->AllRow();
$db->Query("SELECT P.Kode_Produk,R.Kode_Rasa,S.Kode_Satuan,D.Muat,D.Kembali,D.Terantar FROM (SELECT *,(Muat-Kembali) Terantar FROM manual_do_detail WHERE No_MDO='".$nota."') D LEFT JOIN inv_produk P ON (D.InvID=P.InvID) LEFT JOIN para_rasa R ON (D.RasaID=R.RasaID) LEFT JOIN para_satuan S ON (D.SatuanID=S.SatuanID) ORDER BY D.ID");
// menampilkan judul dibagian atas laporan
$kop = '<div class="text-center"><span class="fs-6 fw-bold">'.$_SESSION['__WEB_APP']['REG_NAME'].'</span><br>DELIVERY ORDER (DO)</div>';
$kop .= '<table class="notaHeader"><tbody>';
$kop .= '<tr><td width="15%">No. DO</td><td width="35%" class="ttkdua">'.$ainfo['No_MDO'].'</td><td width="15%">Driver</td><td width="35%" class="ttkdua">'.$ainfo['Nama_Supir'].'</td></tr>';
$kop .= '<tr><td>Tanggal</td><td class="ttkdua">'.$ainfo['Tgl_MDO2'].'</td></tr>';
$kop .= '<tr><td>Catatan</td><td colspan="3" class="ttkdua">'.$ainfo['Catatan'].'</td></tr>';
$kop .= '</tbody></table>';
$header = '<table class="garis"><thead><tr><th style="width:1cm">No.</th><th>Produk</th><th style="width:2cm">Satuan</th><th style="width:2.2cm">Muat</th><th style="width:2.2cm">Kembali</th><th style="width:2.2cm">Terantar</th></tr></thead><tbody>';
$_line = '<tr><td class="c">%s</td><td>%s</td><td>%s</td><td class="r">%s</td><td class="r">%s</td><td class="r">%s</td></tr>';
$_bline = '<tr><td class="b c" colspan="4">%s</td><td class="b r">%s</td><td class="b r">%s</td></tr>';
$body = $kop.$header; $no_urut = 1; $sub_jenis = 0;
while ($db->Next()) {
//if ($db->Row("Grup")<>$_SESSION['__APP_IAS']['GRUP_PRODUK_KEMASAN'] && $db->Row("Grup")<>$_SESSION['__APP_IAS']['GRUP_PRODUK_HADIAH']) {
$asatuan[$db->Row("Kode_Satuan")] += $db->RowFloat("Terantar");
$sub_jenis++;
//}
$body .= sprintf($_line, $no_urut++, $db->Row("Kode_Produk").(($db->Row("Kode_Rasa"))?" (".$db->Row("Kode_Rasa").")":""), $db->Row("Kode_Satuan"), rupiah($db->Row("Muat")), ($db->RowFloat("Kembali")>0?rupiah($db->Row("Kembali")):""), ($db->RowFloat("Kembali")>0?rupiah($db->Row("Terantar")):""));
}
$ket_produk = "";
foreach ($asatuan as $key => $val) {
if ($val > 0) $ket_produk .= " / ".rupiah($val)." ".strtoupper($key);
}
$ket_produk = substr($ket_produk, 3);
$body .= sprintf($_bline, $sub_jenis." ITEM PRODUK (".$ket_produk.")", "", "");
$body .= '</tbody></table><table class="notaFooter"><tr height="80"><td colspan="2">&nbsp;</td></tr><tr><td width="50%" class="stamp">&nbsp;</td><td class="r stamp">'.Report_Stamp(1,true).'</td></tr></table>';
echo '<div>' . $body . '</div>';
}
$db = (is_resource($db)) ? $db : new MySQL();
$data = Param::Get("data");
$nomor = Param::Get("Nomor_Cetak");
$w_catatan = Param::Get("Cetak_Catatan");
$w_lunas = Param::Get("Cetak_Lunas");
if ( $data == "beli" ) {
nota_beli($db, $nomor);
} else if ( $data == "jual" ) {
nota_jual($db, $nomor);
} else if ( $data == "retur-beli" ) {
nota_retur_beli($db, $nomor);
} else if ( $data == "retur-jual" ) {
nota_retur_jual($db, $nomor);
} else if ( $data == "do-produk" ) {
nota_do_produk($db, $nomor, $w_catatan);
} else if ( $data == "do-faktur" ) {
nota_do_faktur($db, $nomor, $w_catatan);
} else if ( $data == "tagih" ) {
nota_dt($db, $nomor, $w_lunas);
} else if ( $data == "biaya" ) {
nota_biaya($db, $nomor);
} else if ( $data == "mdo" ) {
nota_mdo($db, $nomor);
} else if ( $data == "default") {}
?>