private void LoadProyeksi(DataClassesDatabaseDataContext db, string IDProyeksi, string level) { PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"]; TextBoxIDProyeksi.Text = IDProyeksi; TextBoxPegawai.Text = pengguna.NamaLengkap; TBProyeksiKomposisi[] proyeksiKomposisi = null; if (!string.IsNullOrEmpty(level)) { proyeksiKomposisi = db.TBProyeksiKomposisis.Where(item => item.IDProyeksi == IDProyeksi && item.LevelProduksi == level.ToInt() && item.BahanBakuDasar == false).OrderBy(data => data.TBBahanBaku.Nama).ToArray(); } else { proyeksiKomposisi = db.TBProyeksiKomposisis.Where(item => item.IDProyeksi == IDProyeksi && item.BahanBakuDasar == false).OrderBy(data => data.TBBahanBaku.Nama).ToArray(); } TBStokBahanBaku[] daftarStokBahanBaku = db.TBStokBahanBakus.AsEnumerable().Where(item => item.IDTempat == pengguna.IDTempat).OrderBy(item => item.TBBahanBaku.Nama).ToArray(); DropDownListStokBahanBaku.DataSource = daftarStokBahanBaku.Select(item => new { item.IDStokBahanBaku, item.TBBahanBaku.Nama }).ToArray(); DropDownListStokBahanBaku.DataTextField = "Nama"; DropDownListStokBahanBaku.DataValueField = "IDStokBahanBaku"; DropDownListStokBahanBaku.DataBind(); List <POProduksiDetail_Model> ViewStateListDetail = (List <POProduksiDetail_Model>)ViewState["ViewStateListDetail"]; foreach (var item in proyeksiKomposisi.Where(item => item.Sisa > 0)) { TBStokBahanBaku stokBahanBaku = daftarStokBahanBaku.FirstOrDefault(data => data.IDBahanBaku == item.IDBahanBaku); POProduksiDetail_Model detail = new POProduksiDetail_Model(); detail.IDBahanBaku = stokBahanBaku.TBBahanBaku.IDBahanBaku; detail.IDSatuan = stokBahanBaku.TBBahanBaku.IDSatuanKonversi; detail.IDStokBahanBaku = stokBahanBaku.IDStokBahanBaku; detail.Kode = stokBahanBaku.TBBahanBaku.KodeBahanBaku; detail.BahanBaku = stokBahanBaku.TBBahanBaku.Nama; detail.Satuan = stokBahanBaku.TBBahanBaku.TBSatuan1.Nama; detail.HargaPokokKomposisi = 0; detail.BiayaTambahan = 0; detail.TotalHPP = detail.BiayaTambahan + detail.HargaPokokKomposisi; detail.Harga = 0; detail.PotonganHarga = 0; detail.TotalHarga = detail.Harga - detail.PotonganHarga; detail.Jumlah = item.Sisa / stokBahanBaku.TBBahanBaku.Konversi.Value; detail.Sisa = detail.Jumlah; ViewStateListDetail.Add(detail); } ViewState["ViewStateListDetail"] = ViewStateListDetail; LabelSatuan.Text = "/" + daftarStokBahanBaku.FirstOrDefault(item => item.IDStokBahanBaku == DropDownListStokBahanBaku.SelectedValue.ToInt()).TBBahanBaku.TBSatuan1.Nama; PengaturanHPPKomposisi(db); LoadData(); }
private void CekHargaStok() { TextBoxHarga.Text = "0.00"; TextBoxJumlah.Text = "1.00"; using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { TBStokBahanBaku stokBahanBaku = db.TBStokBahanBakus.FirstOrDefault(item => item.IDStokBahanBaku == DropDownListStokBahanBaku.SelectedValue.ToInt()); TextBoxHarga.Text = (stokBahanBaku.HargaBeli * stokBahanBaku.TBBahanBaku.Konversi).ToFormatHarga(); LabelSatuan.Text = "/" + stokBahanBaku.TBBahanBaku.TBSatuan1.Nama; } }
protected void ButtonSimpanDetail_Click(object sender, EventArgs e) { if (Page.IsValid) { if (TextBoxJumlah.Text.ToDecimal() > 0) { using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { List <POProduksiDetail_Model> ViewStateListDetail = (List <POProduksiDetail_Model>)ViewState["ViewStateListDetail"]; POProduksiDetail_Model detail = ViewStateListDetail.FirstOrDefault(item => item.IDStokBahanBaku == DropDownListStokBahanBaku.SelectedValue.ToInt()); if (detail == null) { TBStokBahanBaku stokBahanBaku = db.TBStokBahanBakus.FirstOrDefault(item => item.IDStokBahanBaku == DropDownListStokBahanBaku.SelectedValue.ToInt()); detail = new POProduksiDetail_Model(); detail.IDBahanBaku = stokBahanBaku.TBBahanBaku.IDBahanBaku; detail.IDSatuan = stokBahanBaku.TBBahanBaku.IDSatuanKonversi; detail.IDStokBahanBaku = stokBahanBaku.IDStokBahanBaku; detail.Kode = stokBahanBaku.TBBahanBaku.KodeBahanBaku; detail.BahanBaku = stokBahanBaku.TBBahanBaku.Nama; detail.Satuan = stokBahanBaku.TBBahanBaku.TBSatuan1.Nama; detail.HargaPokokKomposisi = 0; detail.BiayaTambahan = 0; detail.TotalHPP = detail.BiayaTambahan + detail.HargaPokokKomposisi; detail.Harga = TextBoxHargaSupplier.Text.ToDecimal(); detail.PotonganHarga = TextBoxPotonganHargaSupplier.Text.ToDecimal(); detail.TotalHarga = detail.Harga - detail.PotonganHarga; detail.Jumlah = TextBoxJumlah.Text.ToDecimal(); detail.Sisa = detail.Jumlah; ViewStateListDetail.Add(detail); } else { detail.Harga = TextBoxHargaSupplier.Text.ToDecimal(); detail.PotonganHarga = TextBoxPotonganHargaSupplier.Text.ToDecimal(); detail.TotalHarga = detail.Harga - detail.PotonganHarga; detail.Jumlah = TextBoxJumlah.Text.ToDecimal(); detail.Sisa = detail.Jumlah; } ViewState["ViewStateListDetail"] = ViewStateListDetail; } LoadData(); } } }
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); } } }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"]; using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { LoadDataJavaScript(db); KategoriBahanBaku_Class KategoriBahanBaku_Class = new KategoriBahanBaku_Class(); TBBahanBaku bahanBaku = db.TBBahanBakus.FirstOrDefault(item => item.IDBahanBaku == Request.QueryString["id"].ToInt()); if (bahanBaku != null) { TextBoxNama.Text = bahanBaku.Nama; TextBoxKodeBahanBaku.Text = bahanBaku.KodeBahanBaku; TextBoxSatuanBesar.Text = bahanBaku.TBSatuan1.Nama; TextBoxSatuanKecil.Text = bahanBaku.TBSatuan.Nama; TextBoxKonversi.Text = bahanBaku.Konversi.ToFormatHarga(); TextBoxBerat.Text = bahanBaku.Berat.ToString(); TextBoxKategori.Text = KategoriBahanBaku_Class.Data(bahanBaku.TBRelasiBahanBakuKategoriBahanBakus.ToArray()); TextBoxDeskripsi.Text = bahanBaku.Deskripsi; TBStokBahanBaku stokBahanBaku = bahanBaku.TBStokBahanBakus.FirstOrDefault(item => item.IDTempat == pengguna.IDTempat); if (stokBahanBaku != null) { TextBoxHargaBeli.Text = (stokBahanBaku.HargaBeli * bahanBaku.Konversi).ToFormatHarga(); TextBoxStok.Text = (stokBahanBaku.Jumlah / bahanBaku.Konversi).ToFormatHarga(); TextBoxBatasStokAkanHabis.Text = (stokBahanBaku.JumlahMinimum / bahanBaku.Konversi).ToFormatHarga(); } LabelSatuanHargaBeli.Text = "/" + TextBoxSatuanBesar.Text; LabelSatuanKonversi.Text = TextBoxSatuanKecil.Text; LabelSatuanStok.Text = TextBoxSatuanBesar.Text; LabelSatuanStokAkanHabis.Text = TextBoxSatuanBesar.Text; ButtonSimpan.Text = "Ubah"; LabelKeterangan.Text = "Ubah"; } else { LabelKeterangan.Text = "Tambah"; } } } }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { PenggunaLogin Pengguna = (PenggunaLogin)Session["PenggunaLogin"]; var listStokBahanBaku = db.TBStokBahanBakus.Where(item => item.IDTempat == Pengguna.IDTempat).ToArray(); TBStokBahanBaku stokBahanBaku = listStokBahanBaku.FirstOrDefault(item => item.IDBahanBaku == Request.QueryString["id"].ToInt()); LabelNamaBahanBaku.Text = stokBahanBaku.TBBahanBaku.Nama + " (" + stokBahanBaku.TBBahanBaku.TBSatuan1.Nama + ")"; LabelHargaPokokSaatIni.Text = (stokBahanBaku.HargaBeli).ToFormatHarga() + " /" + stokBahanBaku.TBBahanBaku.TBSatuan.Nama; DropDownListBahanBaku.DataSource = listStokBahanBaku .Where(item => item.IDBahanBaku != Request.QueryString["id"].ToInt()) .Select(item => new { item.TBBahanBaku.IDBahanBaku, item.TBBahanBaku.Nama }).OrderBy(item => item.Nama); DropDownListBahanBaku.DataTextField = "Nama"; DropDownListBahanBaku.DataValueField = "IDBahanBaku"; DropDownListBahanBaku.DataBind(); if (DropDownListBahanBaku.Items.Count > 0) { LabelSatuan.Text = db.TBBahanBakus.FirstOrDefault(item => item.IDBahanBaku == DropDownListBahanBaku.SelectedValue.ToInt()).TBSatuan.Nama; } else { ButtonSimpanKomposisi.Enabled = false; } LoadDataDropDownListJenisBiayaProduksi(db); LoadDataJenisBiayaProduksi(db); LoadData(db, stokBahanBaku.TBBahanBaku); } } }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"]; TextBoxTanggal.Text = DateTime.Now.ToString("d MMMM yyyy"); DropDownListSupplier.DataSource = db.TBSuppliers.OrderBy(item => item.Nama).ToArray(); DropDownListSupplier.DataTextField = "Nama"; DropDownListSupplier.DataValueField = "IDSupplier"; DropDownListSupplier.DataBind(); DropDownListSupplier.Items.Insert(0, new ListItem { Text = "-Pilih Supplier-", Value = "0" }); DropDownListPenerimaan.Items.Insert(0, new ListItem { Text = "-Tanpa Penerimaan-", Value = "-" }); TBStokBahanBaku[] daftarStokBahanBaku = db.TBStokBahanBakus.Where(item => item.IDTempat == pengguna.IDTempat).ToArray(); DropDownListStokBahanBaku.DataSource = daftarStokBahanBaku.Select(item => new { item.IDStokBahanBaku, item.TBBahanBaku.Nama }).OrderBy(item => item.Nama).ToArray(); DropDownListStokBahanBaku.DataTextField = "Nama"; DropDownListStokBahanBaku.DataValueField = "IDStokBahanBaku"; DropDownListStokBahanBaku.DataBind(); if (DropDownListStokBahanBaku.Items.Count == 0) { ButtonSimpanDetail.Enabled = false; ButtonSimpan.Enabled = false; } else { TBStokBahanBaku stokBahanBaku = daftarStokBahanBaku.FirstOrDefault(item => item.IDStokBahanBaku == DropDownListStokBahanBaku.SelectedValue.ToInt()); TextBoxHarga.Text = (stokBahanBaku.HargaBeli.Value * stokBahanBaku.TBBahanBaku.Konversi.Value).ToFormatHarga(); LabelSatuan.Text = "/" + stokBahanBaku.TBBahanBaku.TBSatuan1.Nama; } ViewState["ViewStateListDetail"] = new List <StokBahanBaku_Model>(); } } }
protected void ButtonSimpanDetail_Click(object sender, EventArgs e) { if (Page.IsValid) { if (TextBoxJumlah.Text.ToDecimal() > 0) { using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { List <StokBahanBaku_Model> ViewStateListDetail = (List <StokBahanBaku_Model>)ViewState["ViewStateListDetail"]; StokBahanBaku_Model detail = ViewStateListDetail.FirstOrDefault(item => item.IDStokBahanBaku == DropDownListStokBahanBaku.SelectedValue.ToInt()); if (detail == null) { TBStokBahanBaku stokBahanBaku = db.TBStokBahanBakus.FirstOrDefault(item => item.IDStokBahanBaku == DropDownListStokBahanBaku.SelectedValue.ToInt()); detail = new StokBahanBaku_Model() { IDStokBahanBaku = DropDownListStokBahanBaku.SelectedValue.ToInt(), IDSatuan = stokBahanBaku.TBBahanBaku.IDSatuanKonversi, BahanBaku = stokBahanBaku.TBBahanBaku.Nama, HargaBeli = stokBahanBaku.HargaBeli.Value * stokBahanBaku.TBBahanBaku.Konversi.Value, HargaSupplier = TextBoxHarga.Text.ToDecimal(), Jumlah = TextBoxJumlah.Text.ToDecimal() }; ViewStateListDetail.Add(detail); } else { detail.HargaBeli = TextBoxHarga.Text.ToDecimal(); detail.Jumlah = TextBoxJumlah.Text.ToDecimal(); } ViewState["ViewStateListDetail"] = ViewStateListDetail; LoadData(); } } } }
public static string OutPutKategori(DataClassesDatabaseDataContext db, TBStokBahanBaku stokBahanBaku, TBBahanBaku bahanBaku) { string kategori = string.Empty; if (stokBahanBaku != null) { if (stokBahanBaku.TBBahanBaku.TBRelasiBahanBakuKategoriBahanBakus.Count > 0) { foreach (var item in stokBahanBaku.TBBahanBaku.TBRelasiBahanBakuKategoriBahanBakus) { if (kategori == string.Empty) { kategori = kategori + item.TBKategoriBahanBaku.Nama; } else { kategori = kategori + ", " + item.TBKategoriBahanBaku.Nama; } } } } else if (bahanBaku != null) { if (bahanBaku.TBRelasiBahanBakuKategoriBahanBakus.Count > 0) { foreach (var item in bahanBaku.TBRelasiBahanBakuKategoriBahanBakus) { if (kategori == string.Empty) { kategori = kategori + item.TBKategoriBahanBaku.Nama; } else { kategori = kategori + ", " + item.TBKategoriBahanBaku.Nama; } } } } return(kategori); }
public static string GabungkanSemuaKategoriBahanBaku(TBStokBahanBaku stokBahanBaku, TBBahanBaku bahanBaku) { string kategori = string.Empty; if (stokBahanBaku != null) { if (stokBahanBaku.TBBahanBaku.TBRelasiBahanBakuKategoriBahanBakus.Count > 0) { foreach (var item in stokBahanBaku.TBBahanBaku.TBRelasiBahanBakuKategoriBahanBakus) { if (kategori == string.Empty) { kategori = kategori + item.TBKategoriBahanBaku.Nama; } else { kategori = kategori + ", " + item.TBKategoriBahanBaku.Nama; } } } } else if (bahanBaku != null) { if (bahanBaku.TBRelasiBahanBakuKategoriBahanBakus.Count > 0) { foreach (var item in bahanBaku.TBRelasiBahanBakuKategoriBahanBakus) { if (kategori == string.Empty) { kategori = kategori + item.TBKategoriBahanBaku.Nama; } else { kategori = kategori + ", " + item.TBKategoriBahanBaku.Nama; } } } } return(kategori); }
public static void ProduksiByTransaksiBatal(int IDPenggunaTransaksi, int IDTempat, string IDTransaksi) { using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { List <POProduksiKomposisi_Model> daftarProduksiKomposisi = new List <POProduksiKomposisi_Model>(); var hasil = db.TBTransaksis.FirstOrDefault(item => item.IDTransaksi == IDTransaksi).TBTransaksiDetails.GroupBy(item => item.TBKombinasiProduk).Select(item => new { KombinasiProduk = item.Key, Quantity = item.Sum(item2 => item2.Quantity) }); foreach (var itemKombinasiProduk in hasil) { foreach (var itemKomposisi in itemKombinasiProduk.KombinasiProduk.TBKomposisiKombinasiProduks) { POProduksiKomposisi_Model komposisi = daftarProduksiKomposisi.FirstOrDefault(item => item.IDBahanBaku == itemKomposisi.IDBahanBaku); if (komposisi == null) { komposisi = new POProduksiKomposisi_Model() { IDBahanBaku = itemKomposisi.IDBahanBaku, JumlahKurang = itemKomposisi.Jumlah.Value * itemKombinasiProduk.Quantity }; daftarProduksiKomposisi.Add(komposisi); } else { komposisi.JumlahKurang += itemKomposisi.Jumlah.Value * itemKombinasiProduk.Quantity; } } } foreach (var itemBahanBaku in daftarProduksiKomposisi) { //KURANGI STOK BAHAN BAKU TBStokBahanBaku cariStokBahanBaku = db.TBStokBahanBakus.FirstOrDefault(item => item.IDTempat == IDTempat && item.IDBahanBaku == itemBahanBaku.IDBahanBaku); UpdateBertambahBerkurang(db, DateTime.Now, IDPenggunaTransaksi, cariStokBahanBaku, itemBahanBaku.JumlahKurang, cariStokBahanBaku.HargaBeli.Value, false, EnumJenisPerpindahanStok.TransaksiBatal, "Produksi Produk POS #" + IDTransaksi); } db.SubmitChanges(); } }
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; }
public static TBStokBahanBaku InsertStokBahanBaku(DataClassesDatabaseDataContext db, DateTime tanggal, int idPengguna, int idTempat, TBBahanBaku bahanBaku, decimal hargaBeli, decimal jumlahStokAwal, decimal jumlahMinimum, string keterangan) { TBStokBahanBaku stokBahanBaku = new TBStokBahanBaku { IDTempat = idTempat, TBBahanBaku = bahanBaku, HargaBeli = hargaBeli, Jumlah = 0, JumlahMinimum = jumlahMinimum, }; db.TBStokBahanBakus.InsertOnSubmit(stokBahanBaku); if (jumlahStokAwal > 0) { UpdateBertambahBerkurang(db, tanggal, idPengguna, stokBahanBaku, jumlahStokAwal, stokBahanBaku.HargaBeli.Value, false, EnumJenisPerpindahanStok.StokOpnameBertambah, keterangan); } else { UpdateBertambahBerkurang(db, tanggal, idPengguna, stokBahanBaku, jumlahStokAwal, stokBahanBaku.HargaBeli.Value, false, EnumJenisPerpindahanStok.StokOpnameBerkurang, keterangan); } return(stokBahanBaku); }
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; }
public static TBHargaSupplier CariHargaSupplier(DataClassesDatabaseDataContext db, TBSupplier supplier, TBStokBahanBaku stokBahanBaku) { return(db.TBHargaSuppliers.FirstOrDefault(item => item.TBSupplier == supplier && item.TBStokBahanBaku == stokBahanBaku)); }
public static void Update(DataClassesDatabaseDataContext db, TBSupplier supplier, TBStokBahanBaku stokBahanBaku, decimal harga) { if (supplier != null) { TBHargaSupplier hargaSupplier = db.TBHargaSuppliers.FirstOrDefault(item => item.TBSupplier == supplier && item.TBStokBahanBaku == stokBahanBaku); if (hargaSupplier == null) { hargaSupplier = new TBHargaSupplier { TBSupplier = supplier, Tanggal = DateTime.Now, Harga = harga, TBStokBahanBaku = stokBahanBaku }; db.TBHargaSuppliers.InsertOnSubmit(hargaSupplier); } else { hargaSupplier.Tanggal = DateTime.Now; hargaSupplier.Harga = harga; } } }
private void LoadPOLama(DataClassesDatabaseDataContext db, string IDPOProduksiBahanBaku) { PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"]; TBPOProduksiBahanBaku poProduksiBahanBaku = db.TBPOProduksiBahanBakus.FirstOrDefault(item => item.IDPOProduksiBahanBaku == IDPOProduksiBahanBaku); TextBoxIDProyeksi.Text = poProduksiBahanBaku.IDProyeksi != null ? poProduksiBahanBaku.IDProyeksi : string.Empty; TextBoxPegawai.Text = pengguna.NamaLengkap; DropDownListPenggunaPIC.SelectedValue = poProduksiBahanBaku.IDPenggunaPIC.ToString(); TextBoxTanggal.Text = poProduksiBahanBaku.Tanggal.ToString("d MMMM yyyy"); TextBoxTanggalPengiriman.Text = poProduksiBahanBaku.TanggalPengiriman != null?poProduksiBahanBaku.TanggalPengiriman.Value.ToString("d MMMM yyyy") : DateTime.Now.ToString("d MMMM yyyy"); TBStokBahanBaku[] daftarStokBahanBaku = null; if (TextBoxIDProyeksi.Text != string.Empty) { if (poProduksiBahanBaku.LevelProduksi != null) { TBProyeksiKomposisi[] proyeksiKomposisi = db.TBProyeksiKomposisis.Where(item => item.IDProyeksi == TextBoxIDProyeksi.Text && item.LevelProduksi == poProduksiBahanBaku.LevelProduksi && item.BahanBakuDasar == false).OrderBy(data => data.TBBahanBaku.Nama).ToArray(); daftarStokBahanBaku = db.TBStokBahanBakus.AsEnumerable().Where(item => item.IDTempat == pengguna.IDTempat && proyeksiKomposisi.Any(data => data.IDBahanBaku == item.IDBahanBaku)).OrderBy(item => item.TBBahanBaku.Nama).ToArray(); } else { TBProyeksiKomposisi[] proyeksiKomposisi = db.TBProyeksiKomposisis.Where(item => item.IDProyeksi == TextBoxIDProyeksi.Text && item.BahanBakuDasar == false).OrderBy(data => data.TBBahanBaku.Nama).ToArray(); daftarStokBahanBaku = db.TBStokBahanBakus.AsEnumerable().Where(item => item.IDTempat == pengguna.IDTempat && proyeksiKomposisi.Any(data => data.IDBahanBaku == item.IDBahanBaku)).OrderBy(item => item.TBBahanBaku.Nama).ToArray(); } } else { daftarStokBahanBaku = db.TBStokBahanBakus.Where(item => item.IDTempat == pengguna.IDTempat).ToArray(); } DropDownListStokBahanBaku.DataSource = daftarStokBahanBaku.Select(item => new { item.IDStokBahanBaku, item.TBBahanBaku.Nama }); DropDownListStokBahanBaku.DataTextField = "Nama"; DropDownListStokBahanBaku.DataValueField = "IDStokBahanBaku"; DropDownListStokBahanBaku.DataBind(); List <POProduksiDetail_Model> ViewStateListDetail = (List <POProduksiDetail_Model>)ViewState["ViewStateListDetail"]; foreach (var item in poProduksiBahanBaku.TBPOProduksiBahanBakuDetails) { TBStokBahanBaku stokBahanBaku = daftarStokBahanBaku.FirstOrDefault(data => data.IDBahanBaku == item.IDBahanBaku); POProduksiDetail_Model detail = new POProduksiDetail_Model(); detail.IDBahanBaku = stokBahanBaku.TBBahanBaku.IDBahanBaku; detail.IDSatuan = item.IDSatuan; detail.IDStokBahanBaku = stokBahanBaku.IDStokBahanBaku; detail.Kode = stokBahanBaku.TBBahanBaku.KodeBahanBaku; detail.BahanBaku = stokBahanBaku.TBBahanBaku.Nama; detail.Satuan = item.TBSatuan.Nama; detail.HargaPokokKomposisi = 0; detail.BiayaTambahan = 0; detail.TotalHPP = detail.BiayaTambahan + detail.HargaPokokKomposisi; detail.Harga = 0; detail.PotonganHarga = 0; detail.TotalHarga = detail.Harga - detail.PotonganHarga; detail.Jumlah = item.Jumlah; detail.Sisa = detail.Jumlah; ViewStateListDetail.Add(detail); } ViewState["ViewStateListDetail"] = ViewStateListDetail; LabelSatuan.Text = "/" + daftarStokBahanBaku.FirstOrDefault(item => item.IDStokBahanBaku == DropDownListStokBahanBaku.SelectedValue.ToInt()).TBBahanBaku.TBSatuan1.Nama; RadioButtonListStatusHPP.SelectedValue = poProduksiBahanBaku.EnumJenisHPP.ToString(); if (RadioButtonListStatusHPP.SelectedValue == ((int)PilihanEnumJenisHPP.Komposisi).ToString()) { PengaturanHPPKomposisi(db); } else { List <POProduksiKomposisi_Model> ViewStateListKomposisi = (List <POProduksiKomposisi_Model>)ViewState["ViewStateListKomposisi"]; List <POProduksiBiayaTambahan_Model> ViewStateListBiayaTambahan = (List <POProduksiBiayaTambahan_Model>)ViewState["ViewStateListBiayaTambahan"]; ViewStateListKomposisi.AddRange(poProduksiBahanBaku.TBPOProduksiBahanBakuKomposisis.Select(item => new POProduksiKomposisi_Model { IDBahanBaku = item.IDBahanBaku, IDSatuan = item.IDSatuan, BahanBaku = item.TBBahanBaku.Nama, Satuan = item.TBSatuan.Nama, HargaBeli = item.HargaBeli, JumlahKebutuhan = item.Kebutuhan, JumlahSisa = 0, JumlahKurang = 0 })); ViewState["ViewStateListKomposisi"] = ViewStateListKomposisi; ViewStateListBiayaTambahan.AddRange(poProduksiBahanBaku.TBPOProduksiBahanBakuBiayaTambahans.Select(item => new POProduksiBiayaTambahan_Model { IDJenisBiayaProduksi = item.IDJenisBiayaProduksi, Nama = item.TBJenisBiayaProduksi.Nama, JumlahProduksi = 1, Biaya = item.Nominal })); ViewState["ViewStateListBiayaTambahan"] = ViewStateListBiayaTambahan; PengaturanHPPRataRata(); } TextBoxKeterangan.Text = poProduksiBahanBaku.Keterangan; LoadData(); }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"]; using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { TBSatuan[] daftarSatuan = db.TBSatuans.OrderBy(item => item.Nama).ToArray(); DropDownListSatuanKecil.DataSource = daftarSatuan; DropDownListSatuanKecil.DataTextField = "Nama"; DropDownListSatuanKecil.DataValueField = "IDSatuan"; DropDownListSatuanKecil.DataBind(); DropDownListSatuanKecil.Items.Insert(0, new ListItem { Text = "-Pilih Satuan-", Value = "0" }); DropDownListSatuanBesar.DataSource = daftarSatuan; DropDownListSatuanBesar.DataTextField = "Nama"; DropDownListSatuanBesar.DataValueField = "IDSatuan"; DropDownListSatuanBesar.DataBind(); DropDownListSatuanBesar.Items.Insert(0, new ListItem { Text = "-Pilih Satuan-", Value = "0" }); CheckBoxListKategori.DataSource = db.TBKategoriBahanBakus.Select(item => new { item.IDKategoriBahanBaku, item.Nama }).ToArray(); CheckBoxListKategori.DataValueField = "IDKategoriBahanBaku"; CheckBoxListKategori.DataTextField = "Nama"; CheckBoxListKategori.DataBind(); TBBahanBaku bahanBaku = db.TBBahanBakus.FirstOrDefault(item => item.IDBahanBaku == Request.QueryString["id"].ToInt()); if (bahanBaku != null) { TextBoxNama.Text = bahanBaku.Nama; TextBoxKodeBahanBaku.Text = bahanBaku.KodeBahanBaku; TextBoxKonversi.Text = bahanBaku.Konversi.ToFormatHarga(); TextBoxBerat.Text = bahanBaku.Berat.ToString(); TextBoxDeskripsi.Text = bahanBaku.Deskripsi; DropDownListSatuanKecil.SelectedValue = bahanBaku.IDSatuan.ToString(); DropDownListSatuanBesar.SelectedValue = bahanBaku.IDSatuanKonversi.ToString(); TBStokBahanBaku stokBahanBaku = bahanBaku.TBStokBahanBakus.FirstOrDefault(item => item.IDTempat == pengguna.IDTempat); if (stokBahanBaku != null) { TextBoxHargaBeli.Text = (stokBahanBaku.HargaBeli * bahanBaku.Konversi).ToFormatHarga(); TextBoxStok.Text = (stokBahanBaku.Jumlah / bahanBaku.Konversi).ToFormatHarga(); TextBoxBatasStokAkanHabis.Text = (stokBahanBaku.JumlahMinimum / bahanBaku.Konversi).ToFormatHarga(); } LabelSatuanHargaBeli.Text = "/" + DropDownListSatuanBesar.SelectedItem.Text; LabelSatuanKonversi.Text = DropDownListSatuanKecil.SelectedItem.Text; LabelSatuanStok.Text = DropDownListSatuanBesar.SelectedItem.Text; LabelSatuanStokAkanHabis.Text = DropDownListSatuanBesar.SelectedItem.Text; if (bahanBaku.TBRelasiBahanBakuKategoriBahanBakus.Count > 0) { foreach (var item in bahanBaku.TBRelasiBahanBakuKategoriBahanBakus) { CheckBoxListKategori.Items.FindByValue(item.IDKategoriBahanBaku.ToString()).Selected = true; } } ButtonSimpan.Text = "Ubah"; LabelKeterangan.Text = "Ubah"; } else { LabelKeterangan.Text = "Tambah"; } } } }
protected void ButtonSimpan_Click(object sender, EventArgs e) { if (Page.IsValid) { PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"]; using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { TBBahanBaku bahanBaku; decimal hargaBeli = TextBoxHargaBeli.Text.ToDecimal() / TextBoxKonversi.Text.ToDecimal(); decimal stok = TextBoxStok.Text.ToDecimal() * TextBoxKonversi.Text.ToDecimal(); decimal batasStok = TextBoxBatasStokAkanHabis.Text.ToDecimal() * TextBoxKonversi.Text.ToDecimal(); if (ButtonSimpan.Text == "Tambah") { TBSatuan satuanKecil = db.TBSatuans.FirstOrDefault(item => item.IDSatuan == DropDownListSatuanKecil.SelectedValue.ToInt()); TBSatuan satuanBesar = db.TBSatuans.FirstOrDefault(item => item.IDSatuan == DropDownListSatuanBesar.SelectedValue.ToInt()); bahanBaku = new TBBahanBaku { IDWMS = Guid.NewGuid(), TBSatuan = satuanKecil, TBSatuan1 = satuanBesar, TanggalDaftar = DateTime.Now, TanggalUpdate = DateTime.Now, Urutan = null, KodeBahanBaku = TextBoxKodeBahanBaku.Text, Nama = TextBoxNama.Text, Berat = TextBoxBerat.Text.ToDecimal(), Konversi = TextBoxKonversi.Text.ToDecimal(), Deskripsi = TextBoxDeskripsi.Text }; db.TBBahanBakus.InsertOnSubmit(bahanBaku); TambahKategori(bahanBaku, db); TBStokBahanBaku stokBahanBaku = StokBahanBaku_Class.InsertStokBahanBaku(db, DateTime.Now, pengguna.IDPengguna, pengguna.IDTempat, bahanBaku, hargaBeli, stok, batasStok, "Stok Baru Manual"); } else if (ButtonSimpan.Text == "Ubah") { TBSatuan satuanKecil = db.TBSatuans.FirstOrDefault(item => item.IDSatuan == DropDownListSatuanKecil.SelectedValue.ToInt()); TBSatuan satuanBesar = db.TBSatuans.FirstOrDefault(item => item.IDSatuan == DropDownListSatuanBesar.SelectedValue.ToInt()); bahanBaku = db.TBBahanBakus.FirstOrDefault(item => item.IDBahanBaku == Request.QueryString["id"].ToInt()); bahanBaku.TBSatuan = satuanKecil; bahanBaku.TBSatuan1 = satuanBesar; bahanBaku.TanggalUpdate = DateTime.Now; bahanBaku.Urutan = null; bahanBaku.KodeBahanBaku = TextBoxKodeBahanBaku.Text; bahanBaku.Nama = TextBoxNama.Text; bahanBaku.Berat = TextBoxBerat.Text.ToDecimal(); bahanBaku.Konversi = TextBoxKonversi.Text.ToDecimal(); bahanBaku.Deskripsi = TextBoxDeskripsi.Text; TambahKategori(bahanBaku, db); TBStokBahanBaku stokBahanBaku = db.TBStokBahanBakus.FirstOrDefault(item => item.TBBahanBaku == bahanBaku && item.IDTempat == pengguna.IDTempat); if (stokBahanBaku == null) { stokBahanBaku = StokBahanBaku_Class.InsertStokBahanBaku(db, DateTime.Now, pengguna.IDPengguna, pengguna.IDTempat, bahanBaku, hargaBeli, stok, batasStok, "Stok Baru Manual"); } else { stokBahanBaku.HargaBeli = hargaBeli; stokBahanBaku.JumlahMinimum = batasStok; } StokBahanBaku_Class.UpdateStockOpname(db, DateTime.Now, pengguna.IDPengguna, stokBahanBaku, stok, false, "Update Stok Manual"); } db.SubmitChanges(); } Response.Redirect("Default.aspx"); } }
//public static TBStokBahanBakuDetail UpdateBertambahBerkurangDetail(DataClassesDatabaseDataContext db, DateTime tanggal, int idPengguna, TBStokBahanBakuDetail stokBahanBakuDetail, decimal jumlahStok, decimal hargaBeli, bool satuanBesar, EnumJenisPerpindahanStok enumJenisPerpindahanStok, string keterangan) //{ // if (stokBahanBakuDetail != null) // { // if (jumlahStok > 0) // { // //MENCARI JENIS PERPINDAHAN STOK // TBJenisPerpindahanStok JenisPerpindahanStok = db.TBJenisPerpindahanStoks.FirstOrDefault(item => item.IDJenisPerpindahanStok == (int)enumJenisPerpindahanStok); // if (JenisPerpindahanStok != null) // { // #region Konversi Ke Satuan Stok Bahan Baku // if (satuanBesar == true) // { // jumlahStok *= stokBahanBakuDetail.TBStokBahanBaku.TBBahanBaku.Konversi.Value; // hargaBeli /= stokBahanBakuDetail.TBStokBahanBaku.TBBahanBaku.Konversi.Value; // } // #endregion // decimal hargaBeliPerpindahanStok = 0; // if ((bool)JenisPerpindahanStok.Status) // { // hargaBeliPerpindahanStok = hargaBeli; // stokBahanBakuDetail.TBStokBahanBaku.HargaBeli = HitungRataRataHargaBeli(stokBahanBakuDetail.TBStokBahanBaku.Jumlah.Value, stokBahanBakuDetail.TBStokBahanBaku.HargaBeli.Value, jumlahStok, hargaBeli); // stokBahanBakuDetail.TBStokBahanBaku.Jumlah += jumlahStok; // stokBahanBakuDetail.Jumlah += jumlahStok; // } // else // { // hargaBeliPerpindahanStok = stokBahanBakuDetail.HargaBeli; // stokBahanBakuDetail.TBStokBahanBaku.Jumlah -= jumlahStok; // stokBahanBakuDetail.Jumlah -= jumlahStok; // } // //MENCATAT DI PERPINDAHAN STOK PRODUK // InsertPerpindahanStok( // db: db, // idJenisPerindahanStok: JenisPerpindahanStok.IDJenisPerpindahanStok, // idStokBahanBaku: stokBahanBakuDetail.IDStokBahanBaku, // idTempat: stokBahanBakuDetail.TBStokBahanBaku.IDTempat.Value, // idPengguna: idPengguna, // idSatuan: stokBahanBakuDetail.TBStokBahanBaku.TBBahanBaku.IDSatuan, // tanggal: tanggal, // hargaBeli: hargaBeliPerpindahanStok, // jumlah: jumlahStok, // keterangan: keterangan); // } // } // } // return stokBahanBakuDetail; //} public static TBStokBahanBaku UpdateStockOpname(DataClassesDatabaseDataContext db, DateTime tanggal, int idPengguna, TBStokBahanBaku stokBahanBaku, decimal jumlahStokTerbaru, bool satuanBesar, string keterangan) { #region Konversi Ke Satuan Stok Bahan Baku if (satuanBesar == true) { jumlahStokTerbaru *= stokBahanBaku.TBBahanBaku.Konversi.Value; } #endregion if (stokBahanBaku.Jumlah < jumlahStokTerbaru) { decimal selisihStok = jumlahStokTerbaru - stokBahanBaku.Jumlah.Value; stokBahanBaku.Jumlah = jumlahStokTerbaru; //MENCATAT DI PERPINDAHAN STOK PRODUK InsertPerpindahanStok( db: db, idJenisPerindahanStok: (int)EnumJenisPerpindahanStok.StokOpnameBertambah, stokBahanBaku: stokBahanBaku, idTempat: stokBahanBaku.IDTempat.Value, idPengguna: idPengguna, idSatuan: stokBahanBaku.TBBahanBaku.IDSatuan, tanggal: tanggal, hargaBeli: stokBahanBaku.HargaBeli.Value, jumlah: selisihStok, keterangan: keterangan); } else if (stokBahanBaku.Jumlah > jumlahStokTerbaru) { decimal selisihStok = stokBahanBaku.Jumlah.Value - jumlahStokTerbaru; stokBahanBaku.Jumlah = jumlahStokTerbaru; //MENCATAT DI PERPINDAHAN STOK PRODUK InsertPerpindahanStok( db: db, idJenisPerindahanStok: (int)EnumJenisPerpindahanStok.StokOpnameBerkurang, stokBahanBaku: stokBahanBaku, idTempat: stokBahanBaku.IDTempat.Value, idPengguna: idPengguna, idSatuan: stokBahanBaku.TBBahanBaku.IDSatuan, tanggal: tanggal, hargaBeli: stokBahanBaku.HargaBeli.Value, jumlah: selisihStok, keterangan: keterangan); } return(stokBahanBaku); }
private void LoadPOLama(DataClassesDatabaseDataContext db, string IDPOProduksiBahanBaku) { PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"]; TBPOProduksiBahanBaku poProduksiBahanBaku = db.TBPOProduksiBahanBakus.FirstOrDefault(item => item.IDPOProduksiBahanBaku == IDPOProduksiBahanBaku); TextBoxIDProyeksi.Text = poProduksiBahanBaku.IDProyeksi != null ? poProduksiBahanBaku.IDProyeksi : string.Empty; TextBoxPegawai.Text = pengguna.NamaLengkap; DropDownListPenggunaPIC.SelectedValue = poProduksiBahanBaku.IDPenggunaPIC.ToString(); TextBoxTanggal.Text = poProduksiBahanBaku.Tanggal.ToString("d MMMM yyyy"); TextBoxTanggalJatuhTempo.Text = poProduksiBahanBaku.TanggalJatuhTempo != null?poProduksiBahanBaku.TanggalJatuhTempo.Value.ToString("d MMMM yyyy") : DateTime.Now.ToString("d MMMM yyyy"); TextBoxTanggalPengiriman.Text = poProduksiBahanBaku.TanggalPengiriman != null?poProduksiBahanBaku.TanggalPengiriman.Value.ToString("d MMMM yyyy") : DateTime.Now.ToString("d MMMM yyyy"); DropDownListSupplier.SelectedValue = poProduksiBahanBaku.IDSupplier.ToString(); HiddenFieldTax.Value = poProduksiBahanBaku.TBSupplier.PersentaseTax.ToString(); LabelTax.Text = "Tax (" + (poProduksiBahanBaku.TBSupplier.PersentaseTax * 100).ToFormatHarga() + "%)"; TBStokBahanBaku[] daftarStokBahanBaku = null; if (TextBoxIDProyeksi.Text != string.Empty) { var proyeksiKomposisi = db.TBProyeksiKomposisis.Where(item => item.IDProyeksi == TextBoxIDProyeksi.Text && item.BahanBakuDasar == true).GroupBy(item => new { item.IDBahanBaku }).ToArray(); daftarStokBahanBaku = db.TBStokBahanBakus.AsEnumerable().Where(item => item.IDTempat == pengguna.IDTempat && proyeksiKomposisi.Any(data => data.Key.IDBahanBaku == item.IDBahanBaku)).OrderBy(item => item.TBBahanBaku.Nama).ToArray(); } else { daftarStokBahanBaku = db.TBStokBahanBakus.Where(item => item.IDTempat == pengguna.IDTempat).ToArray(); } DropDownListStokBahanBaku.DataSource = daftarStokBahanBaku.Select(item => new { item.IDStokBahanBaku, item.TBBahanBaku.Nama }); DropDownListStokBahanBaku.DataTextField = "Nama"; DropDownListStokBahanBaku.DataValueField = "IDStokBahanBaku"; DropDownListStokBahanBaku.DataBind(); List <POProduksiDetail_Model> ViewStateListDetail = (List <POProduksiDetail_Model>)ViewState["ViewStateListDetail"]; foreach (var item in poProduksiBahanBaku.TBPOProduksiBahanBakuDetails) { TBStokBahanBaku stokBahanBaku = daftarStokBahanBaku.FirstOrDefault(data => data.IDBahanBaku == item.IDBahanBaku); POProduksiDetail_Model detail = new POProduksiDetail_Model(); detail.IDBahanBaku = stokBahanBaku.TBBahanBaku.IDBahanBaku; detail.IDSatuan = item.IDSatuan; detail.IDStokBahanBaku = stokBahanBaku.IDStokBahanBaku; detail.Kode = stokBahanBaku.TBBahanBaku.KodeBahanBaku; detail.BahanBaku = stokBahanBaku.TBBahanBaku.Nama; detail.Satuan = item.TBSatuan.Nama; detail.HargaPokokKomposisi = 0; detail.BiayaTambahan = 0; detail.TotalHPP = detail.BiayaTambahan + detail.HargaPokokKomposisi; detail.Harga = item.HargaSupplier; detail.PotonganHarga = item.PotonganHargaSupplier; detail.TotalHarga = detail.Harga - detail.PotonganHarga; detail.Jumlah = item.Jumlah; detail.Sisa = detail.Jumlah; ViewStateListDetail.Add(detail); } ViewState["ViewStateListDetail"] = ViewStateListDetail; TextBoxKeterangan.Text = poProduksiBahanBaku.Keterangan; TextBoxBiayaLainLain.Text = poProduksiBahanBaku.BiayaLainLain.ToFormatHarga(); TextBoxPotonganPO.Text = poProduksiBahanBaku.PotonganPOProduksiBahanBaku.ToFormatHarga(); LoadData(); decimal subtotal = (LabelTotalSubtotal.Text.ToDecimal() + poProduksiBahanBaku.BiayaLainLain.Value - poProduksiBahanBaku.PotonganPOProduksiBahanBaku.Value); decimal tax = subtotal * HiddenFieldTax.Value.ToDecimal(); TextBoxTax.Text = tax.ToFormatHarga(); TextBoxGrandtotal.Text = (subtotal + tax).ToFormatHarga(); CariHargaSupplierVendor(); }
protected void ButtonTerima_Click(object sender, EventArgs e) { peringatan.Visible = false; bool statusBerhasil = false; PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"]; string IDPenerimaanPOProduksiBahanBaku = string.Empty; string IDTransferBahanBaku = string.Empty; TBPenerimaanPOProduksiBahanBaku penerimaan = null; try { using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { TBPOProduksiBahanBaku poProduksiBahanBaku = db.TBPOProduksiBahanBakus.FirstOrDefault(item => item.IDPOProduksiBahanBaku == DropDownListIDPOProduksi.SelectedValue); bool penerimaanSesuai = true; EntitySet <TBPenerimaanPOProduksiBahanBakuDetail> daftarDetail = new EntitySet <TBPenerimaanPOProduksiBahanBakuDetail>(); int baris = 0; foreach (RepeaterItem item in RepeaterDetail.Items) { baris++; Label LabelIDBahanBaku = (Label)item.FindControl("LabelIDBahanBaku"); TextBox TextBoxSisaPesanan = (TextBox)item.FindControl("TextBoxSisaPesanan"); TextBox TextBoxJumlahDatang = (TextBox)item.FindControl("TextBoxJumlahDatang"); TextBox TextBoxJumlahTerima = (TextBox)item.FindControl("TextBoxJumlahTerima"); TextBox TextBoxJumlahTolakKeSupplier = (TextBox)item.FindControl("TextBoxJumlahTolakKeSupplier"); if (TextBoxJumlahDatang.Text.ToDecimal() > 0) { if (TextBoxJumlahDatang.Text.ToDecimal() >= TextBoxJumlahTerima.Text.ToDecimal()) { TBPOProduksiBahanBakuDetail poProduksiBahanBakuDetail = poProduksiBahanBaku.TBPOProduksiBahanBakuDetails.FirstOrDefault(data => data.IDBahanBaku == LabelIDBahanBaku.Text.ToInt()); daftarDetail.Add(new TBPenerimaanPOProduksiBahanBakuDetail() { TBBahanBaku = poProduksiBahanBakuDetail.TBBahanBaku, TBSatuan = poProduksiBahanBakuDetail.TBSatuan, BiayaTambahan = poProduksiBahanBakuDetail.BiayaTambahan, HargaPokokKomposisi = poProduksiBahanBakuDetail.HargaPokokKomposisi, TotalHPP = poProduksiBahanBakuDetail.TotalHPP, HargaSupplier = poProduksiBahanBakuDetail.HargaSupplier, PotonganHargaSupplier = poProduksiBahanBakuDetail.PotonganHargaSupplier, TotalHargaSupplier = poProduksiBahanBakuDetail.TotalHargaSupplier, Datang = TextBoxJumlahDatang.Text.ToDecimal(), Diterima = TextBoxJumlahTerima.Text.ToDecimal(), TolakKeSupplier = TextBoxJumlahTolakKeSupplier.Text.ToDecimal(), Sisa = TextBoxJumlahTerima.Text.ToDecimal() <= TextBoxSisaPesanan.Text.ToDecimal() ? TextBoxSisaPesanan.Text.ToDecimal() - TextBoxJumlahTerima.Text.ToDecimal() : 0 }); } else { LabelPeringatan.Text = "Jumlah diterima lebih besar dari jumlah datang, baris ke-" + baris.ToString(); peringatan.Visible = true; penerimaanSesuai = false; break; } } } if (penerimaanSesuai == true) { TBStokBahanBaku[] daftarStokBahanBaku = db.TBStokBahanBakus.Where(data => data.IDTempat == pengguna.IDTempat).ToArray(); db.Proc_InsertPenerimaanPOProduksiBahanBaku(ref IDPenerimaanPOProduksiBahanBaku, poProduksiBahanBaku.IDPOProduksiBahanBaku, poProduksiBahanBaku.IDSupplier, pengguna.IDTempat, pengguna.IDPengguna, DateTime.Parse(TextBoxTanggalPenerimaan.Text).AddHours(DateTime.Now.Hour).AddMinutes(DateTime.Now.Minute)); penerimaan = db.TBPenerimaanPOProduksiBahanBakus.FirstOrDefault(item => item.IDPenerimaanPOProduksiBahanBaku == IDPenerimaanPOProduksiBahanBaku); penerimaan.IDPenggunaTerima = penerimaan.IDPenggunaDatang; penerimaan.TanggalTerima = penerimaan.TanggalDatang; penerimaan.TBPenerimaanPOProduksiBahanBakuDetails = daftarDetail; penerimaan.TotalDatang = penerimaan.TBPenerimaanPOProduksiBahanBakuDetails.Sum(item => item.Datang); penerimaan.TotalDiterima = penerimaan.TBPenerimaanPOProduksiBahanBakuDetails.Sum(item => item.Diterima); penerimaan.TotalTolakKeSupplier = penerimaan.TBPenerimaanPOProduksiBahanBakuDetails.Sum(item => item.TolakKeSupplier); penerimaan.TotalSisa = penerimaan.TBPenerimaanPOProduksiBahanBakuDetails.Sum(item => item.Sisa); penerimaan.SubtotalBiayaTambahan = penerimaan.TBPenerimaanPOProduksiBahanBakuDetails.Sum(item => item.BiayaTambahan * item.Diterima); penerimaan.SubtotalTotalHPP = penerimaan.TBPenerimaanPOProduksiBahanBakuDetails.Sum(item => item.TotalHPP * item.Diterima); penerimaan.SubtotalTotalHargaSupplier = penerimaan.TBPenerimaanPOProduksiBahanBakuDetails.Sum(item => item.TotalHargaSupplier * item.Diterima); penerimaan.Grandtotal = penerimaan.SubtotalTotalHPP + penerimaan.SubtotalTotalHargaSupplier; penerimaan.EnumStatusPenerimaan = (int)PilihanEnumStatusPenerimaanPO.Terima; penerimaan.Keterangan = TextBoxKeterangan.Text; foreach (var item in penerimaan.TBPenerimaanPOProduksiBahanBakuDetails) { TBPOProduksiBahanBakuDetail poProduksiBahanBakuDetail = poProduksiBahanBaku.TBPOProduksiBahanBakuDetails.FirstOrDefault(data => data.IDBahanBaku == item.IDBahanBaku); poProduksiBahanBakuDetail.Sisa = item.Sisa; TBStokBahanBaku stokBahanBaku = daftarStokBahanBaku.FirstOrDefault(data => data.IDBahanBaku == item.IDBahanBaku); StokBahanBaku_Class.PengaturanJumlahStokPenerimaanPOBahanBaku(db, penerimaan.TanggalTerima.Value, pengguna.IDPengguna, pengguna.IDTempat, stokBahanBaku, (item.TotalHPP + item.TotalHargaSupplier), item.TBSatuan, item.Datang, item.TolakKeSupplier, item.TBPenerimaanPOProduksiBahanBaku.TBPOProduksiBahanBaku.IDPOProduksiBahanBaku + " - #" + item.TBPenerimaanPOProduksiBahanBaku.IDPenerimaanPOProduksiBahanBaku); } poProduksiBahanBaku.TBPenerimaanPOProduksiBahanBakus.Add(penerimaan); db.SubmitChanges(); statusBerhasil = true; } else { peringatan.Visible = true; } } } catch (Exception ex) { if (statusBerhasil != true) { using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { penerimaan = db.TBPenerimaanPOProduksiBahanBakus.FirstOrDefault(item => item.IDPenerimaanPOProduksiBahanBaku == IDPenerimaanPOProduksiBahanBaku); if (penerimaan != null) { db.TBPenerimaanPOProduksiBahanBakuDetails.DeleteAllOnSubmit(penerimaan.TBPenerimaanPOProduksiBahanBakuDetails); db.TBPenerimaanPOProduksiBahanBakus.DeleteOnSubmit(penerimaan); db.SubmitChanges(); IDPenerimaanPOProduksiBahanBaku = string.Empty; } } } LogError_Class LogError = new LogError_Class(ex, "Penerimaan Produksi Ke Supplier (ButtonSimpan_Click by : " + pengguna.NamaLengkap + ")"); LabelPeringatan.Text = "Terjadi kesalahan, silahkan cek kembali data yang diinputkan"; peringatan.Visible = true; } finally { if (statusBerhasil == true) { Response.Redirect("Default.aspx"); } } }
private void LoadProyeksi(DataClassesDatabaseDataContext db, string IDProyeksi) { PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"]; TextBoxIDProyeksi.Text = IDProyeksi; TextBoxPegawai.Text = pengguna.NamaLengkap; TBSupplier supplier = null; if (DropDownListSupplier.SelectedValue == "0") { HiddenFieldTax.Value = "0"; LabelTax.Text = "Tax (0%)"; } else { supplier = db.TBSuppliers.FirstOrDefault(item => item.IDSupplier == DropDownListSupplier.SelectedValue.ToInt()); HiddenFieldTax.Value = supplier.PersentaseTax.ToString(); LabelTax.Text = "Tax (" + (supplier.PersentaseTax * 100).ToFormatHarga() + "%)"; } var proyeksiKomposisi = db.TBProyeksiKomposisis.Where(item => item.IDProyeksi == IDProyeksi && item.BahanBakuDasar == true && (DropDownListSupplier.SelectedValue != "0" ? db.TBHargaSuppliers.Where(item2 => item2.IDSupplier == DropDownListSupplier.SelectedValue.ToInt()).Any(item2 => item2.TBStokBahanBaku.IDBahanBaku == item.IDBahanBaku) : true)) .GroupBy(item => new { item.TBBahanBaku }) .Select(item => new { item.Key, Sisa = item.Sum(x => x.Sisa), }).OrderBy(data => data.Key.TBBahanBaku.Nama); TBStokBahanBaku[] daftarStokBahanBaku = db.TBStokBahanBakus.AsEnumerable().Where(item => item.IDTempat == pengguna.IDTempat && proyeksiKomposisi.Any(data => data.Key.TBBahanBaku.IDBahanBaku == item.IDBahanBaku)).OrderBy(item => item.TBBahanBaku.Nama).ToArray(); DropDownListStokBahanBaku.DataSource = daftarStokBahanBaku.Select(item => new { item.IDStokBahanBaku, item.TBBahanBaku.Nama }).ToArray(); DropDownListStokBahanBaku.DataTextField = "Nama"; DropDownListStokBahanBaku.DataValueField = "IDStokBahanBaku"; DropDownListStokBahanBaku.DataBind(); List <POProduksiDetail_Model> ViewStateListDetail = (List <POProduksiDetail_Model>)ViewState["ViewStateListDetail"]; foreach (var item in proyeksiKomposisi.Where(item => item.Sisa > 0)) { TBStokBahanBaku stokBahanBaku = daftarStokBahanBaku.FirstOrDefault(data => data.IDBahanBaku == item.Key.TBBahanBaku.IDBahanBaku); POProduksiDetail_Model detail = new POProduksiDetail_Model(); detail.IDBahanBaku = stokBahanBaku.TBBahanBaku.IDBahanBaku; detail.IDSatuan = stokBahanBaku.TBBahanBaku.IDSatuanKonversi; detail.IDStokBahanBaku = stokBahanBaku.IDStokBahanBaku; detail.Kode = stokBahanBaku.TBBahanBaku.KodeBahanBaku; detail.BahanBaku = stokBahanBaku.TBBahanBaku.Nama; detail.Satuan = stokBahanBaku.TBBahanBaku.TBSatuan1.Nama; detail.HargaPokokKomposisi = 0; detail.BiayaTambahan = 0; detail.TotalHPP = detail.BiayaTambahan + detail.HargaPokokKomposisi; detail.Harga = supplier == null ? 0 : supplier.TBHargaSuppliers.FirstOrDefault(data => data.IDStokBahanBaku == stokBahanBaku.IDStokBahanBaku) == null ? 0 : supplier.TBHargaSuppliers.FirstOrDefault(data => data.IDStokBahanBaku == stokBahanBaku.IDStokBahanBaku).Harga.Value; detail.PotonganHarga = 0; detail.TotalHarga = detail.Harga - detail.PotonganHarga; detail.Jumlah = item.Sisa / stokBahanBaku.TBBahanBaku.Konversi.Value; detail.Sisa = detail.Jumlah; ViewStateListDetail.Add(detail); } ViewState["ViewStateListDetail"] = ViewStateListDetail; LoadData(); decimal subtotal = LabelTotalSubtotal.Text.ToDecimal(); decimal tax = subtotal * HiddenFieldTax.Value.ToDecimal(); TextBoxTax.Text = tax.ToFormatHarga(); TextBoxGrandtotal.Text = (subtotal + tax).ToFormatHarga(); CariHargaSupplierVendor(); }
public static void PengaturanJumlahStokPenerimaanPOBahanBaku(DataClassesDatabaseDataContext db, DateTime tanggal, int idPengguna, int idTempat, TBStokBahanBaku stokBahanBaku, decimal hargaBeli, TBSatuan satuanPODetail, decimal jumlahDatang, decimal jumlahTolakKeSupplier, string keterangan) { if (stokBahanBaku != null) { #region Konversi Ke Satuan Stok Bahan Baku if (satuanPODetail != stokBahanBaku.TBBahanBaku.TBSatuan) { jumlahDatang *= stokBahanBaku.TBBahanBaku.Konversi.Value; jumlahTolakKeSupplier *= stokBahanBaku.TBBahanBaku.Konversi.Value; hargaBeli /= stokBahanBaku.TBBahanBaku.Konversi.Value; } #endregion if (jumlahDatang - jumlahTolakKeSupplier > 0) { stokBahanBaku.HargaBeli = HitungRataRataHargaBeli(stokBahanBaku.Jumlah.Value, stokBahanBaku.HargaBeli.Value, (jumlahDatang - jumlahTolakKeSupplier), hargaBeli); } if (jumlahDatang > 0) { stokBahanBaku.Jumlah += jumlahDatang; db.TBPerpindahanStokBahanBakus.InsertOnSubmit(new TBPerpindahanStokBahanBaku { IDJenisPerpindahanStok = 31, IDWMS = Guid.NewGuid(), TBStokBahanBaku = stokBahanBaku, IDTempat = idTempat, IDPengguna = idPengguna, TBSatuan = stokBahanBaku.TBBahanBaku.TBSatuan, Tanggal = tanggal, HargaBeli = hargaBeli, Jumlah = jumlahDatang, Keterangan = "Penerimaan PO #" + keterangan }); } if (jumlahTolakKeSupplier > 0) { stokBahanBaku.Jumlah -= jumlahTolakKeSupplier; db.TBPerpindahanStokBahanBakus.InsertOnSubmit(new TBPerpindahanStokBahanBaku { IDJenisPerpindahanStok = 32, IDWMS = Guid.NewGuid(), TBStokBahanBaku = stokBahanBaku, IDTempat = idTempat, IDPengguna = idPengguna, TBSatuan = stokBahanBaku.TBBahanBaku.TBSatuan, Tanggal = tanggal, HargaBeli = hargaBeli, Jumlah = jumlahTolakKeSupplier, Keterangan = "Penerimaan PO Tolak Ke Vendor #" + keterangan }); } } }
public static void PengaturanJumlahStokPenerimaanPOBahanBakuTolakKeGudang(DataClassesDatabaseDataContext db, DateTime tanggal, int idPengguna, int idTempat, TBStokBahanBaku stokBahanBaku, decimal hargaBeli, TBSatuan satuanPODetail, decimal jumlahTolakKeGudang, string keterangan) { if (stokBahanBaku != null) { #region Konversi Ke Satuan Stok Bahan Baku if (satuanPODetail != stokBahanBaku.TBBahanBaku.TBSatuan) { jumlahTolakKeGudang *= stokBahanBaku.TBBahanBaku.Konversi.Value; hargaBeli /= stokBahanBaku.TBBahanBaku.Konversi.Value; } #endregion if (jumlahTolakKeGudang > 0) { stokBahanBaku.Jumlah -= jumlahTolakKeGudang; db.TBPerpindahanStokBahanBakus.InsertOnSubmit(new TBPerpindahanStokBahanBaku { IDJenisPerpindahanStok = 3, IDWMS = Guid.NewGuid(), TBStokBahanBaku = stokBahanBaku, IDTempat = idTempat, IDPengguna = idPengguna, TBSatuan = stokBahanBaku.TBBahanBaku.TBSatuan, Tanggal = tanggal, HargaBeli = hargaBeli, Jumlah = jumlahTolakKeGudang, Keterangan = keterangan }); } } }
public static void InsertPerpindahanStok(DataClassesDatabaseDataContext db, int idJenisPerindahanStok, TBStokBahanBaku stokBahanBaku, int idTempat, int idPengguna, int idSatuan, DateTime tanggal, decimal hargaBeli, decimal jumlah, string keterangan) { db.TBPerpindahanStokBahanBakus.InsertOnSubmit(new TBPerpindahanStokBahanBaku { IDWMS = Guid.NewGuid(), IDJenisPerpindahanStok = idJenisPerindahanStok, TBStokBahanBaku = stokBahanBaku, IDTempat = idTempat, IDPengguna = idPengguna, IDSatuan = idSatuan, Tanggal = tanggal, HargaBeli = hargaBeli, Jumlah = jumlah, Keterangan = keterangan }); }
//public static void InsertStokBahanBakuDetail(DataClassesDatabaseDataContext db, string kodeStokBahanBaku, int idStokBahanBaku, int idSupplier, DateTime tanggalDaftar, decimal hargaBeli, decimal jumlah) //{ // db.TBStokBahanBakuDetails.InsertOnSubmit(new TBStokBahanBakuDetail // { // KodeStokBahanBaku = kodeStokBahanBaku, // IDStokBahanBaku = idStokBahanBaku, // IDSupplier = idSupplier, // TanggalDaftar = tanggalDaftar, // HargaBeli = hargaBeli, // Jumlah = jumlah, // Aktif = true // }); //} //public static string InsertStokBahanBakuDetailSP(DataClassesDatabaseDataContext db, TBStokBahanBaku stokBahanBaku, int idSupplier, string kodeStokBahanBaku, DateTime tanggalDaftar, decimal hargaBeli, decimal jumlah, bool satuanBesar) //{ // #region Konversi Ke Satuan Stok Bahan Baku // if (satuanBesar == true) // { // jumlah *= stokBahanBaku.TBBahanBaku.Konversi.Value; // hargaBeli /= stokBahanBaku.TBBahanBaku.Konversi.Value; // } // #endregion // db.Proc_InsertStokBahanBakuDetail(ref kodeStokBahanBaku, stokBahanBaku.IDStokBahanBaku, idSupplier, tanggalDaftar, hargaBeli, jumlah); // return kodeStokBahanBaku; //} #endregion #region UPDATE public static TBStokBahanBaku UpdateBertambahBerkurang(DataClassesDatabaseDataContext db, DateTime tanggal, int idPengguna, TBStokBahanBaku stokBahanBaku, decimal jumlahStok, decimal hargaBeli, bool satuanBesar, EnumJenisPerpindahanStok enumJenisPerpindahanStok, string keterangan) { if (stokBahanBaku != null) { if (jumlahStok > 0) { //MENCARI JENIS PERPINDAHAN STOK TBJenisPerpindahanStok JenisPerpindahanStok = db.TBJenisPerpindahanStoks.FirstOrDefault(item => item.IDJenisPerpindahanStok == (int)enumJenisPerpindahanStok); if (JenisPerpindahanStok != null) { #region Konversi Ke Satuan Stok Bahan Baku if (satuanBesar == true) { jumlahStok *= stokBahanBaku.TBBahanBaku.Konversi.Value; hargaBeli /= stokBahanBaku.TBBahanBaku.Konversi.Value; } #endregion decimal hargaBeliPerpindahanStok = 0; if ((bool)JenisPerpindahanStok.Status) { hargaBeliPerpindahanStok = hargaBeli; stokBahanBaku.HargaBeli = HitungRataRataHargaBeli(stokBahanBaku.Jumlah.Value, stokBahanBaku.HargaBeli.Value, jumlahStok, hargaBeli); stokBahanBaku.Jumlah += jumlahStok; } else { hargaBeliPerpindahanStok = stokBahanBaku.HargaBeli.Value; stokBahanBaku.Jumlah -= jumlahStok; } //MENCATAT DI PERPINDAHAN STOK PRODUK InsertPerpindahanStok( db: db, idJenisPerindahanStok: JenisPerpindahanStok.IDJenisPerpindahanStok, stokBahanBaku: stokBahanBaku, idTempat: stokBahanBaku.IDTempat.Value, idPengguna: idPengguna, idSatuan: stokBahanBaku.TBBahanBaku.IDSatuan, tanggal: tanggal, hargaBeli: hargaBeliPerpindahanStok, jumlah: jumlahStok, keterangan: keterangan); } } } return(stokBahanBaku); }
protected void ButtonSimpan_Click(object sender, EventArgs e) { peringatan.Visible = false; bool statusBerhasil = false; string IDPengirimanPOProduksiBahanBaku = string.Empty; TBPengirimanPOProduksiBahanBaku pengiriman = null; PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"]; try { using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { bool pengirimanSesuai = true; int baris = 0; TBPOProduksiBahanBaku poProduksiBahanBaku = db.TBPOProduksiBahanBakus.FirstOrDefault(item => item.IDPOProduksiBahanBaku == Request.QueryString["id"]); EntitySet <TBPengirimanPOProduksiBahanBakuDetail> daftarKomposisi = new EntitySet <TBPengirimanPOProduksiBahanBakuDetail>(); foreach (RepeaterItem item in RepeaterKomposisi.Items) { baris++; Label LabelIDBahanBaku = (Label)item.FindControl("LabelIDBahanBaku"); TextBox TextBoxSisa = (TextBox)item.FindControl("TextBoxSisa"); TextBox TextBoxStok = (TextBox)item.FindControl("TextBoxStok"); TextBox TextBoxKirim = (TextBox)item.FindControl("TextBoxKirim"); if (TextBoxKirim.Text.ToDecimal() > 0) { if (TextBoxKirim.Text.ToDecimal() <= TextBoxStok.Text.ToDecimal()) { if (TextBoxKirim.Text.ToDecimal() <= TextBoxSisa.Text.ToDecimal()) { TBPOProduksiBahanBakuKomposisi poProduksiBahanBakuKomposisi = poProduksiBahanBaku.TBPOProduksiBahanBakuKomposisis.FirstOrDefault(data => data.IDBahanBaku == LabelIDBahanBaku.Text.ToInt()); daftarKomposisi.Add(new TBPengirimanPOProduksiBahanBakuDetail() { TBBahanBaku = poProduksiBahanBakuKomposisi.TBBahanBaku, TBSatuan = poProduksiBahanBakuKomposisi.TBSatuan, Kirim = TextBoxKirim.Text.ToDecimal() }); } else { LabelPeringatan.Text = "Jumlah kirim lebih besar dari jumlah kebutuhan, baris ke-" + baris.ToString(); peringatan.Visible = true; pengirimanSesuai = false; break; } } else { LabelPeringatan.Text = "Jumlah kirim lebih besar dari stok, baris ke-" + baris.ToString(); peringatan.Visible = true; pengirimanSesuai = false; break; } } } if (pengirimanSesuai == true) { if (daftarKomposisi.Count > 0) { TBStokBahanBaku[] daftarStokBahanBaku = db.TBStokBahanBakus.Where(item => item.IDTempat == pengguna.IDTempat).ToArray(); db.Proc_InsertPengirimanPOProduksiBahanBaku(ref IDPengirimanPOProduksiBahanBaku, poProduksiBahanBaku.IDPOProduksiBahanBaku, poProduksiBahanBaku.IDSupplier, pengguna.IDTempat, pengguna.IDPengguna, DateTime.Parse(TextBoxTanggalProses.Text).AddHours(DateTime.Now.Hour).AddMinutes(DateTime.Now.Minute)); pengiriman = db.TBPengirimanPOProduksiBahanBakus.FirstOrDefault(item => item.IDPengirimanPOProduksiBahanBaku == IDPengirimanPOProduksiBahanBaku); foreach (var item in daftarKomposisi) { TBStokBahanBaku stokBahanBaku = daftarStokBahanBaku.FirstOrDefault(data => data.IDBahanBaku == item.IDBahanBaku); StokBahanBaku_Class.UpdateBertambahBerkurang(db, pengiriman.Tanggal, pengguna.IDPengguna, stokBahanBaku, item.Kirim, stokBahanBaku.HargaBeli.Value, false, EnumJenisPerpindahanStok.PenguranganProduksi, "Production to Supplier #" + poProduksiBahanBaku.IDPOProduksiBahanBaku); TBPOProduksiBahanBakuKomposisi poProduksiBahanBakuKomposisi = poProduksiBahanBaku.TBPOProduksiBahanBakuKomposisis.FirstOrDefault(data => data.IDBahanBaku == item.IDBahanBaku); item.HargaBeli = poProduksiBahanBakuKomposisi.HargaBeli; poProduksiBahanBakuKomposisi.Kirim = poProduksiBahanBakuKomposisi.Kirim + item.Kirim; poProduksiBahanBakuKomposisi.Sisa = poProduksiBahanBakuKomposisi.Sisa - item.Kirim; } pengiriman.TBPengirimanPOProduksiBahanBakuDetails = daftarKomposisi; pengiriman.Grandtotal = pengiriman.TBPengirimanPOProduksiBahanBakuDetails.Sum(item => (item.Kirim * item.HargaBeli)); pengiriman.Keterangan = null; db.SubmitChanges(); statusBerhasil = true; } else { LabelPeringatan.Text = "Tidak ada bahan baku yang dikirim"; peringatan.Visible = true; pengirimanSesuai = false; } } } } catch (Exception ex) { if (statusBerhasil != true) { using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { pengiriman = db.TBPengirimanPOProduksiBahanBakus.FirstOrDefault(item => item.IDPengirimanPOProduksiBahanBaku == IDPengirimanPOProduksiBahanBaku); if (pengiriman != null) { db.TBPengirimanPOProduksiBahanBakuDetails.DeleteAllOnSubmit(pengiriman.TBPengirimanPOProduksiBahanBakuDetails); db.TBPengirimanPOProduksiBahanBakus.DeleteOnSubmit(pengiriman); db.SubmitChanges(); IDPengirimanPOProduksiBahanBaku = string.Empty; } } } LogError_Class LogError = new LogError_Class(ex, "Penerimaan Purchase Order Bahan Baku (ButtonSimpan_Click by : " + pengguna.NamaLengkap + ")"); LabelPeringatan.Text = "Terjadi kesalahan, silahkan cek kembali data yang diinputkan"; peringatan.Visible = true; } finally { if (statusBerhasil == true) { Response.Redirect("Default.aspx"); } } }
protected void ButtonExport_Click(object sender, EventArgs e) { PenggunaLogin Pengguna = (PenggunaLogin)Session["PenggunaLogin"]; string NamaWorksheet = "Bahan Baku"; #region Default string NamaFile = "Laporan " + NamaWorksheet + " " + DateTime.Now.ToString("d MMMM yyyy hh.mm.ss") + ".xlsx"; string Folder = Server.MapPath("~/file_excel/" + NamaWorksheet + "/Export/"); if (!Directory.Exists(Folder)) { Directory.CreateDirectory(Folder); } string Path = Folder + NamaFile; string Judul = "Laporan " + NamaWorksheet + " " + Pengguna.Store + " - " + Pengguna.Tempat + " " + DateTime.Now.ToString("d MMMM yyyy"); FileInfo newFile = new FileInfo(Path); #endregion using (ExcelPackage package = new ExcelPackage(newFile)) { ExcelWorksheet worksheet = package.Workbook.Worksheets.Add(NamaWorksheet); worksheet.Cells[1, 1].Value = "No."; worksheet.Cells[1, 2].Value = "Kode"; worksheet.Cells[1, 3].Value = "Bahan Baku"; worksheet.Cells[1, 4].Value = "Satuan Besar"; worksheet.Cells[1, 5].Value = "Konversi"; worksheet.Cells[1, 6].Value = "Satuan Kecil"; worksheet.Cells[1, 7].Value = "Berat"; worksheet.Cells[1, 8].Value = "Jumlah (Satuan Besar)"; worksheet.Cells[1, 9].Value = "Harga Beli per Satuan Besar"; worksheet.Cells[1, 10].Value = "Jumlah Minimum (Satuan Besar)"; worksheet.Cells[1, 11].Value = "Kategori"; worksheet.Cells[1, 12].Value = "Keterangan"; int index = 2; using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { TBStokBahanBaku[] daftarStokBahanBaku = db.TBStokBahanBakus.Where(item => item.IDTempat == Pengguna.IDTempat).ToArray(); foreach (var item in db.TBBahanBakus.OrderBy(item => item.Nama).ToArray()) { TBStokBahanBaku stokBahanBaku = daftarStokBahanBaku.FirstOrDefault(data => data.IDBahanBaku == item.IDBahanBaku); //No worksheet.Cells[index, 1].Value = index - 1; worksheet.Cells[index, 1].Style.Numberformat.Format = "@"; //Kode worksheet.Cells[index, 2].Value = item.KodeBahanBaku; worksheet.Cells[index, 2].Style.Numberformat.Format = "@"; //Bahan Baku worksheet.Cells[index, 3].Value = item.Nama; worksheet.Cells[index, 3].Style.Numberformat.Format = "@"; //Satuan Besar worksheet.Cells[index, 4].Value = item.TBSatuan1.Nama; worksheet.Cells[index, 4].Style.Numberformat.Format = "@"; //Konversi worksheet.Cells[index, 5].Value = item.Konversi.Value; if (item.Konversi.ToFormatHarga().Contains(",")) { worksheet.Cells[index, 5].Style.Numberformat.Format = "#,##0.00"; } else { worksheet.Cells[index, 5].Style.Numberformat.Format = "#,##0"; } //Satuan Kecil worksheet.Cells[index, 6].Value = item.TBSatuan.Nama; worksheet.Cells[index, 6].Style.Numberformat.Format = "@"; //Berat worksheet.Cells[index, 7].Value = item.Berat.Value; if (item.Berat.ToFormatHarga().Contains(",")) { worksheet.Cells[index, 4].Style.Numberformat.Format = "#,##0.00"; } else { worksheet.Cells[index, 4].Style.Numberformat.Format = "#,##0"; } //Jumlah decimal jumlah = stokBahanBaku != null ? (stokBahanBaku.Jumlah.Value / stokBahanBaku.TBBahanBaku.Konversi.Value) : 0; worksheet.Cells[index, 8].Value = jumlah; if (jumlah.ToFormatHarga().Contains(",")) { worksheet.Cells[index, 8].Style.Numberformat.Format = "#,##0.00"; } else { worksheet.Cells[index, 8].Style.Numberformat.Format = "#,##0"; } //Harga Beli decimal hargaBeli = stokBahanBaku != null ? (stokBahanBaku.HargaBeli.Value * stokBahanBaku.TBBahanBaku.Konversi.Value) : 0; worksheet.Cells[index, 9].Value = hargaBeli; if (hargaBeli.ToFormatHarga().Contains(",")) { worksheet.Cells[index, 9].Style.Numberformat.Format = "#,##0.00"; } else { worksheet.Cells[index, 9].Style.Numberformat.Format = "#,##0"; } //Jumlah Minimum decimal jumlahMinimum = stokBahanBaku != null ? (stokBahanBaku.JumlahMinimum.Value / stokBahanBaku.TBBahanBaku.Konversi.Value) : 0; worksheet.Cells[index, 10].Value = jumlahMinimum; if (jumlahMinimum.ToFormatHarga().Contains(",")) { worksheet.Cells[index, 10].Style.Numberformat.Format = "#,##0.00"; } else { worksheet.Cells[index, 10].Style.Numberformat.Format = "#,##0"; } //Kategori worksheet.Cells[index, 11].Value = item.TBRelasiBahanBakuKategoriBahanBakus.Count > 0 ? StokBahanBaku_Class.GabungkanSemuaKategoriBahanBaku(db, null, item) : ""; worksheet.Cells[index, 11].Style.Numberformat.Format = "@"; //Keterangan worksheet.Cells[index, 12].Value = item.Deskripsi; worksheet.Cells[index, 12].Style.Numberformat.Format = "@"; index++; } } using (var range = worksheet.Cells[1, 1, 1, 12]) { range.Style.Font.Bold = true; } #region Default worksheet.Cells.AutoFitColumns(0); worksheet.HeaderFooter.OddHeader.CenteredText = "&16&\"Tahoma,Regular Bold\"" + Judul; worksheet.HeaderFooter.OddFooter.LeftAlignedText = "Print : " + Pengguna.NamaLengkap + " - " + Pengguna.Tempat + " - " + DateTime.Now.ToString("d MMMM yyyy hh:mm"); worksheet.HeaderFooter.OddFooter.RightAlignedText = "WIT. Warehouse Management System - " + string.Format("Page {0} of {1}", ExcelHeaderFooter.PageNumber, ExcelHeaderFooter.NumberOfPages); package.Workbook.Properties.Title = NamaWorksheet; package.Workbook.Properties.Author = "WIT. Warehouse Management System"; package.Workbook.Properties.Comments = Judul; package.Workbook.Properties.Company = "WIT. Warehouse Management System"; package.Save(); #endregion } ButtonExport.Visible = false; LinkDownload.Visible = true; LinkDownload.HRef = "/file_excel/" + NamaWorksheet + "/Export/" + NamaFile; }
public static void PerbaharuiHargaBeli(DataClassesDatabaseDataContext db, int idTempat, int idBahanBaku) { TBStokBahanBaku stokBahanBaku = db.TBStokBahanBakus.FirstOrDefault(item => item.IDTempat == idTempat && item.IDBahanBaku == idBahanBaku); stokBahanBaku.HargaBeli = (HitungHargaPokokProduksi(db, idTempat, stokBahanBaku.TBBahanBaku) / stokBahanBaku.TBBahanBaku.Konversi.Value); }