private void KurangSubKomposisiBahanBaku(List <KomposisiProduk_Model> ViewStateKomposisiProduk, TBBahanBaku bahanBaku, decimal jumlahBahanWIP, TBStokBahanBaku[] daftarStokBahanBaku, int Level) { PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"]; foreach (var subItem in bahanBaku.TBKomposisiBahanBakus) { TBStokBahanBaku stokBahanBaku = daftarStokBahanBaku.FirstOrDefault(data => data.IDBahanBaku == subItem.IDBahanBaku); KomposisiProduk_Model komposisiDetail = ViewStateKomposisiProduk.FirstOrDefault(data => data.IDBahanBaku == subItem.IDBahanBaku && data.LevelProduksi == Level); komposisiDetail.JumlahPemakaian = komposisiDetail.JumlahPemakaian - subItem.Jumlah.Value * jumlahBahanWIP; if (komposisiDetail.BahanBakuDasar == true) { komposisiDetail.Kurang = stokBahanBaku.Jumlah.Value - komposisiDetail.JumlahPemakaian < 0 ? Math.Abs(stokBahanBaku.Jumlah.Value - komposisiDetail.JumlahPemakaian) : 0; } if (komposisiDetail.JumlahPemakaian == 0) { ViewStateKomposisiProduk.Remove(komposisiDetail); } if (stokBahanBaku.TBBahanBaku.TBKomposisiBahanBakus.Count > 0) { KurangSubKomposisiBahanBaku(ViewStateKomposisiProduk, stokBahanBaku.TBBahanBaku, (subItem.Jumlah.Value * jumlahBahanWIP), daftarStokBahanBaku, Level + 1); } } }
private void TambahSubKomposisiBahanBaku(List <KomposisiProduk_Model> ViewStateKomposisiProduk, TBBahanBaku bahanBaku, decimal jumlahBahanWIP, TBStokBahanBaku[] daftarStokBahanBaku, int Level) { PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"]; foreach (var subItem in bahanBaku.TBKomposisiBahanBakus) { TBStokBahanBaku stokBahanBaku = daftarStokBahanBaku.FirstOrDefault(data => data.IDBahanBaku == subItem.IDBahanBaku); KomposisiProduk_Model komposisiDetail = ViewStateKomposisiProduk.FirstOrDefault(data => data.IDBahanBaku == subItem.IDBahanBaku && data.LevelProduksi == Level); if (komposisiDetail == null) { komposisiDetail = new KomposisiProduk_Model() { LevelProduksi = Level, IDBahanBaku = stokBahanBaku.IDBahanBaku.Value, IDSatuan = stokBahanBaku.TBBahanBaku.IDSatuan, Kategori = StokBahanBaku_Class.GabungkanSemuaKategoriBahanBaku(null, stokBahanBaku, null), BahanBaku = stokBahanBaku.TBBahanBaku.Nama, Satuan = stokBahanBaku.TBBahanBaku.TBSatuan.Nama, JumlahPemakaian = subItem.Jumlah.Value * jumlahBahanWIP, BahanBakuDasar = stokBahanBaku.TBBahanBaku.TBKomposisiBahanBakus.Count > 0 ? false : true }; if (komposisiDetail.BahanBakuDasar == true) { komposisiDetail.Stok = stokBahanBaku.Jumlah.Value; komposisiDetail.Kurang = stokBahanBaku.Jumlah.Value - komposisiDetail.JumlahPemakaian < 0 ? Math.Abs(stokBahanBaku.Jumlah.Value - komposisiDetail.JumlahPemakaian) : 0; } ViewStateKomposisiProduk.Add(komposisiDetail); } else { komposisiDetail.JumlahPemakaian = komposisiDetail.JumlahPemakaian + subItem.Jumlah.Value * jumlahBahanWIP; if (komposisiDetail.BahanBakuDasar == true) { komposisiDetail.Stok = stokBahanBaku.Jumlah.Value; komposisiDetail.Kurang = stokBahanBaku.Jumlah.Value - komposisiDetail.JumlahPemakaian < 0 ? Math.Abs(stokBahanBaku.Jumlah.Value - komposisiDetail.JumlahPemakaian) : 0; } } if (stokBahanBaku.TBBahanBaku.TBKomposisiBahanBakus.Count > 0) { TambahSubKomposisiBahanBaku(ViewStateKomposisiProduk, stokBahanBaku.TBBahanBaku, (subItem.Jumlah.Value * jumlahBahanWIP), daftarStokBahanBaku, Level + 1); } } }
private void KurangKomposisi(DataClassesDatabaseDataContext db, int idKombinasiProduk, int jumlah) { PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"]; List <KomposisiProduk_Model> ViewStateKomposisiProduk = (List <KomposisiProduk_Model>)ViewState["ViewStateKomposisiProduk"]; TBKombinasiProduk[] daftarkombinasiProduk = db.TBKombinasiProduks.ToArray(); TBStokBahanBaku[] daftarStokBahanBaku = db.TBStokBahanBakus.Where(item => item.IDTempat == pengguna.IDTempat).ToArray(); TBKombinasiProduk kombinasiProduk = daftarkombinasiProduk.FirstOrDefault(data => data.IDKombinasiProduk == idKombinasiProduk); foreach (var subItem in kombinasiProduk.TBKomposisiKombinasiProduks) { TBStokBahanBaku stokBahanBaku = daftarStokBahanBaku.FirstOrDefault(data => data.IDBahanBaku == subItem.IDBahanBaku); int Level = 0; KomposisiProduk_Model komposisiDetail = ViewStateKomposisiProduk.FirstOrDefault(data => data.IDBahanBaku == subItem.IDBahanBaku && data.LevelProduksi == Level); komposisiDetail.JumlahPemakaian = komposisiDetail.JumlahPemakaian - subItem.Jumlah.Value * jumlah; if (komposisiDetail.BahanBakuDasar == true) { komposisiDetail.Kurang = stokBahanBaku.Jumlah.Value - komposisiDetail.JumlahPemakaian < 0 ? Math.Abs(stokBahanBaku.Jumlah.Value - komposisiDetail.JumlahPemakaian) : 0; } if (komposisiDetail.JumlahPemakaian == 0) { ViewStateKomposisiProduk.Remove(komposisiDetail); } if (stokBahanBaku.TBBahanBaku.TBKomposisiBahanBakus.Count > 0) { KurangSubKomposisiBahanBaku(ViewStateKomposisiProduk, stokBahanBaku.TBBahanBaku, (subItem.Jumlah.Value * jumlah), daftarStokBahanBaku, Level + 1); } } ViewState["ViewStateKomposisiProduk"] = ViewStateKomposisiProduk; }
private void TambahKomposisi(DataClassesDatabaseDataContext db, int idKombinasiProduk, int jumlah) { PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"]; List <KomposisiProduk_Model> ViewStateKomposisiProduk = (List <KomposisiProduk_Model>)ViewState["ViewStateKomposisiProduk"]; TBKombinasiProduk[] daftarkombinasiProduk = db.TBKombinasiProduks.ToArray(); TBStokBahanBaku[] daftarStokBahanBaku = db.TBStokBahanBakus.Where(item => item.IDTempat == pengguna.IDTempat).ToArray(); TBKombinasiProduk kombinasiProduk = daftarkombinasiProduk.FirstOrDefault(data => data.IDKombinasiProduk == idKombinasiProduk); foreach (var subItem in kombinasiProduk.TBKomposisiKombinasiProduks) { TBStokBahanBaku stokBahanBaku = daftarStokBahanBaku.FirstOrDefault(data => data.IDBahanBaku == subItem.IDBahanBaku); int Level = 0; KomposisiProduk_Model komposisiDetail = ViewStateKomposisiProduk.FirstOrDefault(data => data.IDBahanBaku == subItem.IDBahanBaku && data.LevelProduksi == Level); if (komposisiDetail == null) { komposisiDetail = new KomposisiProduk_Model() { LevelProduksi = Level, IDBahanBaku = stokBahanBaku.IDBahanBaku.Value, IDSatuan = stokBahanBaku.TBBahanBaku.IDSatuan, Kategori = StokBahanBaku_Class.GabungkanSemuaKategoriBahanBaku(null, stokBahanBaku, null), BahanBaku = stokBahanBaku.TBBahanBaku.Nama, Satuan = stokBahanBaku.TBBahanBaku.TBSatuan.Nama, JumlahPemakaian = subItem.Jumlah.Value * jumlah, BahanBakuDasar = stokBahanBaku.TBBahanBaku.TBKomposisiBahanBakus.Count > 0 ? false : true }; if (komposisiDetail.BahanBakuDasar == true) { komposisiDetail.Stok = stokBahanBaku.Jumlah.Value; komposisiDetail.Kurang = stokBahanBaku.Jumlah.Value - komposisiDetail.JumlahPemakaian < 0 ? Math.Abs(stokBahanBaku.Jumlah.Value - komposisiDetail.JumlahPemakaian) : 0; } ViewStateKomposisiProduk.Add(komposisiDetail); } else { komposisiDetail.JumlahPemakaian = komposisiDetail.JumlahPemakaian + subItem.Jumlah.Value * jumlah; if (komposisiDetail.BahanBakuDasar == true) { komposisiDetail.Stok = stokBahanBaku.Jumlah.Value; komposisiDetail.Kurang = stokBahanBaku.Jumlah.Value - komposisiDetail.JumlahPemakaian < 0 ? Math.Abs(stokBahanBaku.Jumlah.Value - komposisiDetail.JumlahPemakaian) : 0; } } if (stokBahanBaku.TBBahanBaku.TBKomposisiBahanBakus.Count > 0) { TambahSubKomposisiBahanBaku(ViewStateKomposisiProduk, stokBahanBaku.TBBahanBaku, (subItem.Jumlah.Value * jumlah), daftarStokBahanBaku, Level + 1); } } ViewState["ViewStateKomposisiProduk"] = ViewStateKomposisiProduk; }