0) { $db->Query("SELECT Nama_Produk Nama FROM inv_produk WHERE InvID='".$id_inv."' LIMIT 1"); if ($db->Next()) $nama_produk = $db->Row("Nama"); } // generate report header $tglheader = $tgl_from; if ($tgl_from!==$tgl_to) $tglheader .= " S/D ".$tgl_to; $tgl_from = tgl_sql2str($tgl_from); $tgl_to = tgl_sql2str($tgl_to); // query ukuran normal produk & stok awal $kali = 0; $sat_stok = ""; $sat_norm = ""; $db->Query("SELECT * FROM vi_inv_produk2 WHERE InvID='".$id_inv."' LIMIT 1"); if ($db->Next()) { $kali = $db->Row("Qty", 0); $sat_stok = $db->Row("Satuan_Stok"); $sat_norm = $db->Row("Satuan_Normal"); } $stok = 0; $tsql = ($id_cab==0) ? "" : " AND CabID='".$id_cab."'"; $db->Query("SELECT SUM(Stok) Stok FROM inv_detail WHERE Tgl_Ref<'".$tgl_from."' AND InvID='".$id_inv."'".$tsql); if ($db->Next()) $stok = $db->RowFloat("Stok", 0); // query data laporan $db->Query("SELECT DATE_FORMAT(D.Tgl_Ref,'%d-%m-%Y') Tgl_Ref2,D.No_Ref,SUM(IF((D.Stok<0 OR D.NotaID=5 OR D.NotaID=6) AND D.NotaID<>3,-D.Stok,0)) Keluar,SUM(IF((D.Stok>0 OR D.NotaID=3) AND (D.NotaID<>5 AND D.NotaID<>6),D.Stok,0)) Masuk, IF(ISNULL(S.Nama_Sup),IF(D.NotaID=6,Q.Nama,''),CONCAT(S.Nama_Sup,IF(B.Data_Beli=1,'',' (Retur)'))) Nama FROM (SELECT No_Ref,Tgl_Ref,NotaID,SUM(Stok) Stok FROM inv_detail WHERE (Tgl_Ref BETWEEN '".$tgl_from."' AND '".$tgl_to."') AND InvID=".$id_inv." AND Stok<>0".$tsql." GROUP BY No_Ref) D LEFT JOIN inv_beli B ON (B.No_Beli=D.No_Ref) LEFT JOIN inv_jual J ON (J.No_Jual=D.No_Ref) LEFT JOIN inv_opname O ON (O.No_Opname=D.No_Ref) LEFT JOIN para_supplier S ON (S.SupID=B.SupID) LEFT JOIN app_operator Q ON (Q.UserID=J.UserID) LEFT JOIN inv_nota N ON (D.NotaID=N.NotaID) ORDER BY D.Tgl_Ref,N.Urut,D.No_Ref"); } if ( $data == "print" ) { Report_Header("MUTASI STOK BARANG", "Periode : ".$tglheader); $pre = new \siaupheng\fonia3\Printer\PrintHTML(); $pre->add_field("Tanggal",20,"C"); $pre->add_field("No. Nota",20,"L"); $pre->add_field("Nama Supplier / Kasir",150,"L"); $pre->add_field("Masuk",80,"R","rupiah"); $pre->add_field("Keluar",50,"R","rupiah"); $pre->add_field("Stok",50,"R","rupiah"); $pre->add_span(array("Nama Barang : ".$nama_produk,6,"L,B")); $tot_m = 0; $tot_k = 0; $pre->add_span(array("Stok Awal",3,"R"),array("",1,"R"),array("",1,"R"),array(format_stok($stok,$kali,$sat_norm,$sat_stok),1,"R")); while ($db->Next()) { //if ($db->RowFloat("Stok", 0) == 0) continue; $msk = $db->Row("Masuk"); $klr = $db->Row("Keluar"); $stok += $msk - $klr; $tot_m += $msk; $tot_k += $klr; $pre->add_value($db->Row("Tgl_Ref2"), $db->Row("No_Ref"), $db->Row("Nama"), (($msk<>0)?format_stok($msk,$kali,$sat_norm,$sat_stok):""), (($klr<>0)?format_stok($klr,$kali,$sat_norm,$sat_stok):""), format_stok($stok,$kali,$sat_norm,$sat_stok)); } $pre->add_span(array("Stok Akhir",3,"R"),array(format_stok($tot_m,$kali,$sat_norm,$sat_stok),1,"R"),array(format_stok($tot_k,$kali,$sat_norm,$sat_stok),1,"R"),array(format_stok($stok,$kali,$sat_norm,$sat_stok),1,"R")); $pre->add_stamp(1, true); $pre->show(); } else if ( $data == "export" ) { $xls = new SimpleXLS([ 'title'=>"Data Mutasi Stok Barang", 'desc'=>"Export Data Mutasi Stok Barang" ]); $xls->add_header($_SESSION['__WEB_APP']['REG_NAME']); $xls->add_header("DATA MUTASI STOK BARANG"); $xls->add_header("Periode : ".$tglheader); $xls->add_field("Tanggal",15,"C"); $xls->add_field("No. Nota",20,"L"); $xls->add_field("Nama Supplier / Kasir",50,"L"); $xls->add_field("Masuk",20,"R"); $xls->add_field("Keluar",20,"R"); $xls->add_field("Stok",20,"R"); $xls->add_sheet("".str_replace("S/D","-",$tglheader), true); $xls->add_span(array("Nama Barang : ".$nama_produk,6,"L,B")); $tot_m = 0; $tot_k = 0; $xls->add_span(array("Stok Awal",3,"R"),array("",1,"R"),array("",1,"R"),array(format_stok($stok,$kali,$sat_norm,$sat_stok),1,"R")); while ($db->Next()) { //if ($db->RowFloat("Stok", 0) == 0) continue; $msk = $db->Row("Masuk"); $klr = $db->Row("Keluar"); $stok += $msk - $klr; $tot_m += $msk; $tot_k += $klr; $xls->add_value($db->Row("Tgl_Ref2"), $db->Row("No_Ref"), $db->Row("Nama"), (($msk<>0)?format_stok($msk,$kali,$sat_norm,$sat_stok):""), (($klr<>0)?format_stok($klr,$kali,$sat_norm,$sat_stok):""), format_stok($stok,$kali,$sat_norm,$sat_stok)); } $xls->add_span(array("Stok Akhir",3,"R"),array(format_stok($tot_m,$kali,$sat_norm,$sat_stok),1,"R"),array(format_stok($tot_k,$kali,$sat_norm,$sat_stok),1,"R"),array(format_stok($stok,$kali,$sat_norm,$sat_stok),1,"R")); $xls->add_stamp(1, true); $xls->send("Data Stok Akhir Barang ".str_replace("S/D","-",$tglheader).".xlsx"); unset($xls); } else if ($data == "auto-produk") { $tcari = Param::Get("Auto_Query"); $ajson['autodata'] = []; $bcode = 0; $arec = []; // Cari by SKU $db->Query("SELECT P.*,CONCAT(K.Kode_SKU,' / ',K.Kode_Barcode,':',P.Nama_Produk,':',S.Nama_Satuan,':',CONVERT(FORMAT(K.Harga_Jual,0) USING UTF8)) Data2 FROM (SELECT * FROM inv_produk_kemasan WHERE Harga_Jual>0 AND Kode_SKU='".$tcari."' LIMIT 1) K LEFT JOIN inv_produk P ON (P.InvID=K.InvID) LEFT JOIN para_satuan S ON (S.SatuanID=K.SatuanID) WHERE P.Aktif=1"); if ($db->Next()) { $bcode = 1; $arec = $db->AllRow(); } // Cari by Barcode if ($bcode == 0) { $db->Query("SELECT P.*,CONCAT(K.Kode_SKU,' / ',K.Kode_Barcode,':',P.Nama_Produk,':',S.Nama_Satuan,':',CONVERT(FORMAT(K.Harga_Jual,0) USING UTF8)) Data2 FROM (SELECT * FROM inv_produk_kemasan WHERE Harga_Jual>0 AND Kode_Barcode='".$tcari."' LIMIT 1) K LEFT JOIN inv_produk P ON (P.InvID=K.InvID) LEFT JOIN para_satuan S ON (S.SatuanID=K.SatuanID) WHERE P.Aktif=1"); if ($db->Next()) { $bcode = 1; $arec = $db->AllRow(); } } if ($bcode == 1) { $ajson['autodata'][] = ['value'=>$arec['InvID'], 'text'=>$arec['Nama_Produk'], 'data'=>$arec['Data2'], 'bc'=>1]; } else { $db->Query("SELECT P.*,IF(IFNULL(X.Stok,0)=0,'KOSONG',ROUND(X.Stok/K.Qty,2)) Sisa_Stok,K.Kode_SKU,K.Harga_Jual,S.Nama_Satuan,CONCAT(K.Kode_SKU,' / ',K.Kode_Barcode,':',P.Nama_Produk,':',S.Nama_Satuan,':',CONVERT(FORMAT(K.Harga_Jual,0) USING UTF8)) Data2 FROM (SELECT * FROM inv_produk_kemasan WHERE Harga_Jual>0 AND InvID IN (SELECT InvID FROM inv_produk WHERE Aktif=1 AND Nama_Produk LIKE '%".$tcari."%' ORDER BY InvID) ORDER BY InvID) K LEFT JOIN (SELECT * FROM inv_produk WHERE Aktif=1 AND Nama_Produk LIKE '%".$tcari."%' ORDER BY InvID) P ON (K.InvID=P.InvID) LEFT JOIN vi_inv_stok X ON (X.CabID='".$id_cab."' AND K.InvID=X.InvID) LEFT JOIN para_satuan S ON (S.SatuanID=K.SatuanID) ORDER BY P.Nama_Produk,K.Qty DESC LIMIT 50"); while ($db->Next()) { $ajson['autodata'][] = ['value'=>$db->Row("InvID"), 'text'=>$db->Row("Nama_Produk"), 'html'=>''.$db->Row("Kode_SKU").' '.$db->Row("Nama_Produk")." ".$db->Row("Nama_Satuan").' - Rp. '.rupiah($db->Row("Harga_Jual")).' ('.$db->Row("Sisa_Stok").')', 'data'=>$db->Row("Data2"), 'bc'=>0]; } } } else if ( $data == "brow-produk" ) { $tcari = trim(Param::Get("Cari_Produk")); $tsql = ($tcari=="") ? "" : " AND P.Barcode_Nama LIKE '%".$tcari."%'"; $obj = new Table($db); $obj->set_table("vi_inv_produk P", "P.*", "P.Harga_Jual>0 AND P.Aktif=1".$tsql); $obj->add_field("InvID", "ID", "hid"); $obj->add_field("Kode_SKU", "SKU", "c"); $obj->add_field("Kode_Barcode", "Kode Barcode", "c"); $obj->add_field("Nama_Lengkap", "Nama Barang", "awr"); $obj->add_field("Harga_Jual", "Harga @", "r", "rupiah"); $obj->add_field("Nama_Produk", "Produk", "hid"); $obj->add_field("Nama_Satuan", "Satuan", "hid"); $obj->set_field_order("Kode_SKU", "A"); $obj->add_row_btn("save", "Pilih", "RepoStokMutasiJS.produk_select"); $obj->set_func_navi("RepoStokMutasiJS.data_query('brow-produk')"); $ajson[] = $obj->db_table("divBrowProduk"); } else if ( $data == "default") { $form = new Form($db); $tbrg = $form->textauto("_", "Nama_Produk", null, true, true, "Nama Barang"); $tcab = $form->option_db("_", "CabID", $id_cab, false, false, "para_cabang", ["CabID","Nama_Cab"], "Aktif=1 ORDER BY CabID", [0,"SEMUA CABANG"]); $ttgl1 = $form->datebox("_", "Tgl_From", tgl_ymd(), true, false); $ttgl2 = $form->datebox("_", "Tgl_To", tgl_ymd(), true, false); echo '
'.$tbrg.'
'.$tcab.'
'.$ttgl1.'
'.$ttgl2.'
'; } send_json($ajson); ?>