app = $app; $this->db = $db; $this->id_cab = Param::Int("CabID", 0); $this->mode = Param::Get("mode", ""); $this->mode_detail = Param::Get("mode_detail", ""); $this->id_grup = Param::Int("Grup_PromoID", 0); $this->id_inv = Param::Int("InvID", 0); $this->id_satuan = Param::Int("SatuanID", 0); } public function table_detail() { if (in_array($this->mode_detail, ["insert","update","delete"])) { $sql = new SQL($this->app); $sql->set_table("inv_promo"); $sql->add_param("Grup_PromoID"); $sql->add_param("InvID"); $sql->add_param("SatuanID"); $sql->add_param("Jual_Grup", Param::Get("List_CB_VarianID", "0")); $sql->add_param_userid(); $sql->add_where("PromoID"); if ( $this->mode_detail === "insert" ) { $sql->add_param("Tipe_Promo", 5); $sql->InsertDB(); } else if ( $this->mode_detail === "update" ) { $sql->UpdateDB(); } else if ( $this->mode_detail === "delete" ) { $sql->DeleteDB(); } } $tsql = 'Tipe_Promo=? AND Grup_PromoID=?'; $asql = [5, $this->id_grup]; $obj = new Table($this->app); $obj->set_table("(SELECT * FROM inv_promo WHERE ".$tsql.") D LEFT JOIN inv_produk P ON (D.InvID=P.InvID) LEFT JOIN para_satuan S ON (S.SatuanID=D.SatuanID)", "D.*,P.Nama_Produk,Nama_Varian(IF(ISNULL(D.Jual_Grup) OR D.Jual_Grup='','0',D.Jual_Grup)) Nama_Varian,S.Nama_Satuan", "", $asql); $obj->add_field("PromoID", "ID", "hid"); $obj->add_field("InvID", "InvID", "hid"); $obj->add_field("SatuanID", "SatuanID", "hid"); $obj->add_field("Jual_Grup", "Varian", "hid"); $obj->add_field("Nama_Produk", "Nama Barang", "awr"); $obj->add_field("Nama_Satuan", "Satuan", "l"); $obj->add_field("Nama_Varian", "Varian", "awr"); if (in_array($this->mode, ["add","edit"])) { $obj->add_row_btn("clipboard", "Ubah", "PromoBeliDiscJS.detail_ubah"); $obj->add_row_btn("trash", "Hapus", "PromoBeliDiscJS.detail_hapus", "Grup_PromoID", $this->id_grup); $obj->set_func_btn("PromoBeliDiscJS.detail_tambah", ' Barang'); $obj->set_func_btn("PromoBeliDiscJS.produk_brow", ' Browse'); } $ajson[] = $obj->json_table("divDetailTabel"); $this->app->json($ajson); } public function brow_promo() { $tcari = Param::Get("Cari_Promo"); $tsql = ''; $asql = []; if (!empty($tcari)) { $tsql .= "Promo_Nama LIKE ?"; array_push($asql, '%' . $tcari . '%'); } $obj = new Table($this->app); $obj->set_table("inv_promo_grup", "*", $tsql, $asql); $obj->add_field("Grup_PromoID", "ID", "hid"); $obj->add_field("Promo_Nama", "Nama Promo", "awr"); $obj->add_field("Tgl_Mulai", "Tgl. Mulai", "c", "sqltgl", "", "val-tgl"); $obj->add_field("Tgl_Akhir", "Tgl. Akhir", "c", "sqltgl", "", "val-tgl"); $obj->add_field("Aktif", "Aktif", "c", "checkbox"); $obj->set_func_select("PromoBeliDiscJS.promo_select"); $this->app->json([ $obj->db_table("divBrowPromo") ]); } public function brow_produk() { $tcari = Param::Get("Cari_Produk"); $tsql = ''; $asql = []; if (!empty($tcari)) { $tsql .= " AND Nama_Produk LIKE ?"; $asql[] = '%' . $tcari . '%'; } $obj = new Table($this->app); $obj->set_table("inv_produk", "*", $tsql, $asql); $obj->add_field("InvID", "ID", "hid"); $obj->add_field("NormalID", "ID", "hid"); $obj->add_field("Nama_Produk", "Nama Barang", "awr"); $obj->set_func_select("PromoBeliDiscJS.produk_select"); $this->app->json([ $obj->db_table("divBrowProduk") ]); } public function auto_produk() { $tcari = Param::Get("Auto_Query", ""); $ajson['autodata'] = []; // Cari by Nama_Produk $stat = $this->db->runQuery("SELECT P.InvID,P.Nama_Produk,P.NormalID Data2 FROM inv_produk P WHERE P.Nama_Produk LIKE ? ORDER BY P.Nama_Produk LIMIT 50", ['%'.$tcari.'%']); while ($row = $stat->fetch(SimplePdo::FETCH_ASSOC)) { $ajson['autodata'][] = ['value'=>$row['InvID'], 'text'=>$row['Nama_Produk'], 'html'=>$row['Nama_Produk'], 'data'=>$row['Data2'], 'bc'=>0]; } $this->app->json($ajson); } public function form_master() { $ajson = [ 'error'=>"", 'html'=>"" ]; $atabel = []; if ($this->mode === "add") { $atabel = $this->Data_Promo(true); } else if ($this->mode === "save") { $sql = new SQL($this->app); $sql->set_table("inv_promo_grup"); $sql->add_param("CabID", $this->id_cab); $sql->add_param("Grup_MemberID"); $sql->add_param("Qty_Kali"); $sql->add_param("Tipe_Promo"); $sql->add_param("Promo_Nama"); $sql->add_param("Promo_Minggu"); $sql->add_param("Promo_Disc"); $sql->add_param_date("Tgl_Mulai"); $sql->add_param_date("Tgl_Akhir"); $sql->add_param("Aktif"); $sql->add_param_userid(); $sql->add_where("Grup_PromoID"); if ($this->id_grup === 0) { $sql->add_param("Pilih_Qty", 3); $sql->InsertDB(); } else { $sql->UpdateDB(); $this->db->runQuery("UPDATE inv_promo_grup a, inv_promo b SET b.CabID=a.CabID,b.Grup_MemberID=a.Grup_MemberID,b.Pilih_Qty=a.Pilih_Qty,b.Qty_Kali=a.Qty_Kali,b.Tipe_Promo=a.Tipe_Promo,b.Promo_Disc=a.Promo_Disc,b.Tgl_Mulai=a.Tgl_Mulai,b.Tgl_Akhir=a.Tgl_Akhir,b.Aktif=a.Aktif WHERE a.Grup_PromoID=a.Grup_PromoID"); } $this->mode = "view"; } else if ($this->mode === "cancel") { $this->db->runQuery("DELETE FROM inv_promo WHERE Tipe_Promo=5 AND Grup_PromoID=0"); $atabel = $this->Data_Promo(); } else { $atabel = $this->Data_Promo(); } $enable = in_array($this->mode, ["add","edit"]) ? true : false; $form = new Form($this->app); $tcab = $form->option_db("_", "CabID", $atabel['CabID'], $enable, false, "para_cabang", ["CabID","Nama_Cab"], "Aktif=1 ORDER BY Nama_Cab", [0,"SEMUA CABANG"]); $tgrup_mem = $form->option_db("_", "Grup_MemberID", $atabel['Grup_MemberID'], $enable, false, "para_member_grup", ["Grup_MemberID","Nama_Grup"], "Aktif=1 ORDER BY Nama_Grup", [0,"SEMUA GRUP"]); $tqty = $form->textbox("_", "Qty_Kali", $atabel['Qty_Kali'], $enable, true, "double"); $tnama = $form->textbox("_", "Promo_Nama", $atabel['Promo_Nama'], $enable, true, "text", "nama promo"); $tminggu = $form->textbox("_", "Promo_Minggu", $atabel['Promo_Minggu'], $enable, true, "text", "hari promo"); $tdisc = $form->textbox("_", "Promo_Disc", $atabel['Promo_Disc'], $enable, true, "double"); $ttglmulai = $form->datebox("_", "Tgl_Mulai", $atabel['Tgl_Mulai'], $enable, true); $ttglakhir = $form->datebox("_", "Tgl_Akhir", $atabel['Tgl_Akhir'], $enable, true); $taktif = $form->radio("_", "Aktif", $atabel['Aktif'], true, false, ['1'=>"Ya",'0'=>"Tidak"]); $ajson['html'] = '