/******************************************************************* App. Name : Inventory Advanced Systems Module : /apps/js/tab/produk.js Desc. : JS - Tabel Master Produk Created By : Siau Pheng (siaupheng@3fonia.com). Created Date : May 19th, 2010. Last Modified : January 10th, 2026. (c) 2010 - 2026, 3FONIA Software; WWW.3FONIA.COM. *******************************************************************/ var ProdukJS = { PHP: '', KODE: '', loading: function(){ $('#butFilter').click(function(){this.filter_show();}.bind(this)); this.data_query('tabel-produk'); $('#Cari_Produk').keydown(function(e){ var key = e.keyCode || e.which || 0; if (key==13 && e.target.value!='') this.data_query('tabel-produk'); }.bind(this)); $('#butSearch').click(function(e){ this.data_query('tabel-produk'); }.bind(this)); $('#butAll').click(function(){ $('#Cari_Produk').val(''); this.data_query('tabel-produk'); }.bind(this)); FoniaJS.setFocus('#Cari_Produk'); }, filter_show: function(){ new Request({ url: this.PHP, sendParam: ['data=detail-filter','Filter_Produk'], onSuccess: function(txt){ this.winFilter = FoniaJS.showWindow('Filter', 'Filter Produk Sesuai Grup', txt, 400, [{},{i:'butTutup'},{i:'butWSimpan',v:'Simpan',c:'success'}], function(){ $('#winFilter').find('#butWSimpan').click(function(){this.filter_simpan();}.bind(this)); }.bind(this)); $('#Fi_Produk').focus(); }.bind(this) }).send(); }, filter_simpan: function(){ $('#Filter_Produk').val($('#Fi_Produk').val()); FoniaJS.closeWindow(this.winFilter); this.data_query('tabel-produk'); }, produk_show: function(mode, ID){ new Request.JSON({ url: this.PHP, sendParam: ['data=detail-produk','mode='+mode,'InvID='+ID], onSuccess: function(ajson){ this.winDetail = FoniaJS.showWindow('Detail', 'Detail Produk', ajson.html, 'xl', [{},{i:'butWBtl',v:'Batal',c:'danger'},{i:'butWSimpan',v:'Simpan',c:'success'}], function(){ $('#winDetail') .find('#butWSimpan').click(function(){this.produk_simpan();}.bind(this)).end() .find('#butWBtl').click(function(){this.produk_batal();}.bind(this)); this.data_query('tabel-varian'); this.data_query('tabel-kemasan'); this.data_query('tabel-harga'); }.bind(this)); }.bind(this) }).send(); }, produk_restore: function(acell){ new Request.JSON({ url: this.PHP, sendParam: ['data=restore-detail','InvID='+acell[0]], onSuccess: function(ajson){ this.winBRest = FoniaJS.showWindow('BRest', 'Informasi Backup Produk', ajson.html, 'xl', [], function(){ this.data_query('restore-tabel'); }.bind(this)); }.bind(this) }).send(); }, produk_restore_select: function(acell){ FoniaJS.showConfirm('Konfirmasi', 'Yakin akan restore data Produk ke versi tanggal : "'+acell[0]+'" ?

HARAP KONFIRMASI KEMBALI, TERIMA KASIH!', function(){ new Request.JSON({ url: this.PHP, sendParam: ['data=restore-proses','InvID','MD5Key='+acell[1]], onSuccess: function(adata){ if (adata.status==true){ FoniaJS.showInfo('Sukses restore Data Produk ini!'); }else{ FoniaJS.showInfo('Ada masalah dalam proses restore!'); } }.bind(this) }).send(); }.bind(this), 'danger'); }, produk_restore_form: function(acell, div){ new Request.JSON({ url: this.PHP, sendParam: ['data=restore-form','InvID','MD5Key='+acell[1]], onSuccess: function(adata){ $(div).html(adata.html); }.bind(this) }).send(); }, produk_tambah: function(){ this.produk_show('add', 0); }, produk_ubah: function(acell){ this.produk_show('edit', acell[0]); }, produk_hapus: function(acell){ FoniaJS.showConfirm('Konfirmasi', 'Yakin akan hapus "'+acell[2]+'" ?', function(){ new Request.JSON({ url: this.PHP, sendParam: ['data=save','mode=del','InvID='+acell[0]], onSuccess: function(adata){ if (adata.status==true){ this.data_query('tabel-produk'); FoniaJS.showInfo('Proses hapus data sukses!'); }else{ FoniaJS.showInfo('Ada masalah dalam proses hapus data!'); } }.bind(this) }).send(); }.bind(this), 'danger'); }, produk_simpan: function(){ new Request.JSON({ url: this.PHP, sendParam: ['data=save','mode','InvID','Grup_InvID','Kode_Produk','Nama_Produk='+encodeURIComponent($('#Nama_Produk').val()),'Kode_FP','StokID','NormalID','Harga_Pokok','Stok_Min','Pajak','Hadiah','Aktif'], onSuccess: function(adata){ if (adata.status==true){ this.data_query('tabel-produk'); FoniaJS.showInfo('Proses simpan data sukses!'); }else{ FoniaJS.showInfo('Ada masalah dalam proses simpan data!'); } FoniaJS.closeWindow(this.winDetail); }.bind(this) }).send(); }, produk_batal: function(){ if ($('#mode').val()=='add'){ FoniaJS.showConfirm('Konfirmasi', 'Yakin akan batalkan Penambahan Produk ?', function(){ new Request.JSON({ url: this.PHP, sendParam: ['data=save','mode=cancel','InvID','mode_before=add'], onSuccess: function(){ this.data_query('tabel-produk'); }.bind(this) }).send(); }.bind(this), 'danger'); return false; } FoniaJS.showConfirm('Konfirmasi', 'Yakin akan batalkan Perubahan Detail Produk ?', function(){ new Request.JSON({ url: this.PHP, sendParam: ['data=save','mode=cancel','InvID'], onSuccess: function(){ FoniaJS.closeWindow(this.winDetail); }.bind(this) }).send(); }.bind(this), 'danger'); }, varian_batal: function(){ var dt = $('#divVarianTabel').DataTable(), tr, l_row; tr = $('#butBatalVarian').closest('tr'); l_row = dt.row(tr.prev('tr')); if (l_row.child.isShown()) l_row.nodes().to$().find('.fon-tabel-dt').click(); if (l_row.data()[0]=='0') l_row.remove().draw(true); }, varian_add: function(){ var dt = $('#divVarianTabel').DataTable(), l_row; dt.order([0,'desc']); l_row = dt.row(':last'); if (!dt.data().count() || l_row.data()[0]!=='0'){ dt.row.add(['0','','','']).draw(true); l_row = dt.row(':last'); } if (!l_row.child.isShown()) l_row.nodes().to$().find('.fon-tabel-dt').click(); }, varian_form: function(acell, div){ new Request.JSON({ url: this.PHP, sendParam: ['data=detail-varian','InvID','InvVarianID='+acell[0]], onSuccess: function(adata){ $(div).html(adata.html); $(div) .find('#butBatalVarian').click(function(e){ this.varian_batal(); }.bind(this)).end() .find('#butSimpanVarian').click(function(e){ this.varian_save(); }.bind(this)); }.bind(this) }).send(); }, varian_del: function(acell){ FoniaJS.showConfirm('Konfirmasi', 'Yakin akan hapus "'+acell[1]+'" ?', function(){ new Request.JSONF({ url: this.PHP, sendParam: ['data=tabel-varian','mode','mode_detail=delete','InvID','InvVarianID='+acell[0]], onSuccess: function(){ FoniaJS.showInfo('Proses hapus data sukses!'); }.bind(this) }).send(); }.bind(this), 'danger'); }, varian_save: function(){ new Request.JSONF({ url: this.PHP, sendParam: ['data=tabel-varian','mode','mode_detail=update','InvID','InvVarianID','RasaID'], onSuccess: function(){ FoniaJS.showInfo('Sukses menyimpan varian / rasa produk.'); }.bind(this) }).send(); }, kemasan_batal: function(){ var dt = $('#divKemasanTabel').DataTable(), tr, l_row; tr = $('#butBatalKemasan').closest('tr'); l_row = dt.row(tr.prev('tr')); if (l_row.child.isShown()) l_row.nodes().to$().find('.fon-tabel-dt').click(); if (l_row.data()[0]=='0') l_row.remove().draw(true); }, kemasan_add: function(){ var dt = $('#divKemasanTabel').DataTable(), l_row; dt.order([0,'desc']); l_row = dt.row(':last'); if (!dt.data().count() || l_row.data()[0]!=='0'){ dt.row.add(['0','',0,'']).draw(true); l_row = dt.row(':last'); } if (!l_row.child.isShown()) l_row.nodes().to$().find('.fon-tabel-dt').click(); }, kemasan_form: function(acell, div){ new Request.JSON({ url: this.PHP, sendParam: ['data=detail-kemasan','InvID','InvKemasanID='+acell[0]], onSuccess: function(adata){ $(div).html(adata.html); $(div) .find('#butBatalKemasan').click(function(e){ this.kemasan_batal(); }.bind(this)).end() .find('#butSimpanKemasan').click(function(e){ this.kemasan_check(); }.bind(this)); }.bind(this) }).send(); }, kemasan_del: function(acell){ FoniaJS.showConfirm('Konfirmasi', 'Yakin akan hapus "'+acell[1]+'" ?', function(){ new Request.JSONF({ url: this.PHP, sendParam: ['data=tabel-kemasan','mode','mode_detail=delete','InvID','InvKemasanID='+acell[0]], onSuccess: function(){ FoniaJS.showInfo('Proses hapus data sukses!'); }.bind(this) }).send(); }.bind(this), 'danger'); }, kemasan_save: function(){ if ($('#Qty').val()==0){ FoniaJS.showInfo('Mohon isi jumlah Qty / Kemasan !'); return false; } new Request.JSONF({ url: this.PHP, sendParam: ['data=tabel-kemasan','mode','mode_detail=update','InvID','InvKemasanID','SatuanID','SatuanLamaID','Qty'], onSuccess: function(){ FoniaJS.showInfo('Sukses menyimpan kemasan produk.'); this.data_query('tabel-harga'); }.bind(this) }).send(); }, kemasan_check: function(){ if ($('#SatuanID').val()==$('#SatuanLamaID').val()) { this.kemasan_save(); return; } new Request.JSONF({ url: this.PHP, sendParam: ['data=check-kemasan','InvID','SatuanID'], onSuccess: function(adata){ if (adata.ada==true) { FoniaJS.showInfo("Nama kemasan telah ada dalam sistem!"); } else { this.kemasan_save(); } }.bind(this) }).send(); }, harga_batal: function(){ var dt = $('#divHargaTabel').DataTable(), tr, l_row; tr = $('#butBatalHarga').closest('tr'); l_row = dt.row(tr.prev('tr')); if (l_row.child.isShown()) l_row.nodes().to$().find('.fon-tabel-dt').click(); if (l_row.data()[0]=='0') l_row.remove().draw(true); }, harga_add: function(){ var dt = $('#divHargaTabel').DataTable(), l_row; dt.order([0,'desc']); l_row = dt.row(':last'); if (!dt.data().count() || l_row.data()[0]!=='0'){ dt.row.add(['0','','','00-00-0000',0,'']).draw(true); l_row = dt.row(':last'); } if (!l_row.child.isShown()) l_row.nodes().to$().find('.fon-tabel-dt').click(); }, harga_form: function(acell, div){ new Request.JSON({ url: this.PHP, sendParam: ['data=detail-harga','InvID','InvHargaID='+acell[0]], onSuccess: function(adata){ $(div).html(adata.html); $(div) .find('#butBatalHarga').click(function(e){ this.harga_batal(); }.bind(this)).end() .find('#butSimpanHarga').click(function(e){ this.harga_check(); }.bind(this)); }.bind(this) }).send(); }, harga_del: function(acell){ FoniaJS.showConfirm('Konfirmasi', 'Yakin akan hapus "'+acell[2]+'" ?', function(){ new Request.JSONF({ url: this.PHP, sendParam: ['data=tabel-harga','mode','mode_detail=delete','InvID','InvHargaID='+acell[0]], onSuccess: function(){ var dt = $('#divHargaTabel').DataTable(); dt.order([1,'asc'],[2,'asc'],[3,'asc']); FoniaJS.showInfo('Proses hapus data sukses!'); }.bind(this) }).send(); }.bind(this), 'danger'); }, harga_save: function(){ new Request.JSONF({ url: this.PHP, sendParam: ['data=tabel-harga','mode','mode_detail=update','InvID','InvHargaID','SatuanID','Grup_OutletID','Tanggal','Harga_Jual'], onSuccess: function(){ var dt = $('#divHargaTabel').DataTable(); dt.order([1,'asc'],[2,'asc'],[3,'asc']); FoniaJS.showInfo('Sukses menyimpan harga jual produk.'); }.bind(this) }).send(); }, harga_check: function(){ if (($('#SatuanID').val()==$('#SatuanLamaID').val()) && ($('#Grup_OutletID').val()==$('#GrupLamaID').val()) && ($('#Tanggal').val()==$('#TanggalLama').val())) { this.harga_save(); return; } new Request.JSONF({ url: this.PHP, sendParam: ['data=check-harga','InvID','SatuanID','Grup_OutletID','Tanggal'], onSuccess: function(adata){ if (adata.ada==true) { FoniaJS.showInfo("Harga Satuan per Group Outlet telah ada dalam sistem!"); } else { this.harga_save(); } }.bind(this) }).send(); }, data_query: function(tipe, mode){ if (tipe=="tabel-produk"){ new Request.JSONF({ url: this.PHP, sendParam: ['data=tabel-produk','Cari_Produk','Filter_Produk'] }).send(); } else if (tipe=="tabel-varian"){ new Request.JSONF({ url: this.PHP, sendParam: ['data=tabel-varian','mode','InvID'] }).send(); } else if (tipe=="tabel-kemasan"){ new Request.JSONF({ url: this.PHP, sendParam: ['data=tabel-kemasan','mode','InvID'] }).send(); } else if (tipe=="tabel-harga"){ new Request.JSONF({ url: this.PHP, sendParam: ['data=tabel-harga','mode','InvID'], onSuccess: function(){ var dt = $('#divHargaTabel').DataTable(); dt.order([1,'asc'],[2,'asc'],[3,'asc']); } }).send(); } else if (tipe=="restore-tabel"){ new Request.JSONF({ url: this.PHP, sendParam: ['data=restore-tabel','InvID'] }).send(); } } };