protected void RepeaterData_ItemCommand(object source, RepeaterCommandEventArgs e) { if (e.CommandName == "Batal") { using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"]; TBPOProduksiBahanBakuRetur poProduksiBahanBakuRetur = db.TBPOProduksiBahanBakuReturs.FirstOrDefault(item => item.IDPOProduksiBahanBakuRetur == e.CommandArgument.ToString()); poProduksiBahanBakuRetur.EnumStatusRetur = (int)EnumStatusPORetur.Batal; foreach (var item in poProduksiBahanBakuRetur.TBPOProduksiBahanBakuReturDetails) { StokBahanBaku_Class.UpdateBertambahBerkurang( db: db, tanggal: DateTime.Now, idPengguna: pengguna.IDPengguna, stokBahanBaku: item.TBStokBahanBaku, jumlahStok: item.Jumlah.Value, hargaBeli: item.HargaBeli.Value, satuanBesar: true, enumJenisPerpindahanStok: EnumJenisPerpindahanStok.TransaksiBatal, keterangan: "(" + item.TBStokBahanBaku.TBBahanBaku.Nama + ") Pembatalan Retur PO #" + e.CommandArgument.ToString()); } db.SubmitChanges(); LoadData(); } } }
private void LoadDataBahanBaku(DataClassesDatabaseDataContext db) { PenggunaLogin Pengguna = (PenggunaLogin)Session["PenggunaLogin"]; DataDisplay DataDisplay = new DataDisplay(); var ListData = db.TBBahanBakus.Where(item => (!string.IsNullOrWhiteSpace(TextBoxCari.Text) ? item.Nama.ToLower().Contains(TextBoxCari.Text.ToLower()) : true)) .Select(item => new { item.IDBahanBaku, item.Nama, item.KodeBahanBaku, Kategori = StokBahanBaku_Class.OutPutKategori(db, null, item), HargaBeli = item.TBStokBahanBakus.FirstOrDefault(data => data.IDTempat == Pengguna.IDTempat).HargaBeli *item.Konversi, SatuanBesar = item.TBSatuan1.Nama, item.Deskripsi }).OrderBy(item => item.Nama).ToArray(); int skip = 0; int take = 0; int count = ListData.Count(); DataDisplay.Proses(ListData.Count(), DropDownListHalaman, DropDownListJumlahData, out take, out skip); RepeaterBahanBaku.DataSource = ListData.Skip(skip).Take(take); RepeaterBahanBaku.DataBind(); }
protected void Repeater_ItemCommand(object source, RepeaterCommandEventArgs e) { if (e.CommandName == "Batal") { PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"]; using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { var TransferBahanBaku = db.TBTransferBahanBakus.FirstOrDefault(item => item.IDTransferBahanBaku == e.CommandArgument.ToString()); if (TransferBahanBaku != null) { TBStokBahanBaku[] daftarStokBahanBaku = db.TBStokBahanBakus.Where(item => item.IDTempat == pengguna.IDTempat).ToArray(); foreach (var item in TransferBahanBaku.TBTransferBahanBakuDetails.ToArray()) StokBahanBaku_Class.UpdateBertambahBerkurang(db, DateTime.Now, pengguna.IDPengguna, daftarStokBahanBaku.FirstOrDefault(data => data.IDBahanBaku == item.IDBahanBaku), item.Jumlah, item.HargaBeli, true, EnumJenisPerpindahanStok.TransferBatal, "Transfer Batal #" + TransferBahanBaku.IDTransferBahanBaku); TransferBahanBaku.EnumJenisTransfer = (int)PilihanJenisTransfer.TransferBatal; db.SubmitChanges(); } } LoadData(); } else if (e.CommandName == "TransferUlang") Response.Redirect("Pengaturan.aspx?id=" + e.CommandArgument); }
protected void RepeaterTransferBahanBaku_ItemCommand(object source, RepeaterCommandEventArgs e) { if (e.CommandName == "Hapus") { using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { PenggunaLogin Pengguna = (PenggunaLogin)Session["PenggunaLogin"]; TBTransferBahanBaku transferBahanBaku = db.TBTransferBahanBakus.FirstOrDefault(item => item.IDTransferBahanBaku == LabelIDTransferBahanBaku.Text); TBTransferBahanBakuDetail transferBahanBakuDetail = transferBahanBaku.TBTransferBahanBakuDetails.FirstOrDefault(item => item.IDTransferBahanBakuDetail == e.CommandArgument.ToInt()); TBStokBahanBaku[] daftarStokBahanBaku = db.TBStokBahanBakus.Where(data => data.IDTempat == DropDownListTempatPengirim.SelectedValue.ToInt()).ToArray(); if (transferBahanBakuDetail != null) { var stokBahanBaku = daftarStokBahanBaku.FirstOrDefault(data => data.IDBahanBaku == transferBahanBakuDetail.IDBahanBaku); StokBahanBaku_Class.UpdateBertambahBerkurang(db, DateTime.Now, Pengguna.IDPengguna, stokBahanBaku, transferBahanBakuDetail.Jumlah, transferBahanBakuDetail.HargaBeli, true, EnumJenisPerpindahanStok.TransferBatal, "Transfer Batal Item #" + LabelIDTransferBahanBaku.Text); db.TBTransferBahanBakuDetails.DeleteOnSubmit(transferBahanBakuDetail); transferBahanBaku.TBTransferBahanBakuDetails.Remove(transferBahanBakuDetail); //db.SubmitChanges(); //UPDATE DATA TRANSFER BAHAN BAKU transferBahanBaku.TanggalUpdate = DateTime.Now; transferBahanBaku.TotalJumlah = transferBahanBaku.TBTransferBahanBakuDetails.Sum(item2 => item2.Jumlah); transferBahanBaku.GrandTotal = transferBahanBaku.TBTransferBahanBakuDetails.Sum(item2 => item2.Jumlah * item2.HargaBeli); db.SubmitChanges(); LoadDataTransferBahanBaku(); } } } }
private void BatalTransaksi() { try { PenggunaLogin Pengguna = (PenggunaLogin)Session["PenggunaLogin"]; Transaksi_Class Transaksi = new Transaksi_Class(HiddenFieldIDTransaksi.Value, Pengguna.IDPengguna); Transaksi.IDStatusTransaksi = (int)EnumStatusTransaksi.Canceled; Transaksi.ConfirmTransaksi(); if (Pengguna.PointOfSales == TipePointOfSales.Restaurant) { //PENGURANGAN BAHAN BAKU StokBahanBaku_Class.ProduksiByTransaksiBatal(Transaksi.IDPenggunaTransaksi, Transaksi.IDTempat, HiddenFieldIDTransaksi.Value); } LoadData(); HiddenFieldIDTransaksi.Value = null; } catch (Exception ex) { LogError_Class LogError = new LogError_Class(ex, Request.Url.PathAndQuery); } }
protected void ImageButtonUpdate_Click(object sender, ImageClickEventArgs e) { PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"]; using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { StokBahanBaku_Class.PerbaharuiSemuaHargaBeli(db, pengguna.IDTempat); db.SubmitChanges(); LoadData(db); } }
protected void RepeaterPOProduksiDetail_ItemCommand(object source, RepeaterCommandEventArgs e) { MultiViewPerformance.SetActiveView(ViewPOProduksiDetail); using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { TBPOProduksiBahanBaku poProduksiBahanBaku = db.TBPOProduksiBahanBakus.FirstOrDefault(item => item.IDPOProduksiBahanBaku == e.CommandArgument.ToString()); TextBoxIDProyeksi.Text = poProduksiBahanBaku.IDProyeksi != null ? poProduksiBahanBaku.IDProyeksi : "-Tidak Ada Proyeksi-"; TextBoxIDPOProduksiBahanBaku.Text = poProduksiBahanBaku.IDPOProduksiBahanBaku; TextBoxStatusHPP.Text = Pengaturan.StatusJenisHPP(poProduksiBahanBaku.EnumJenisHPP.Value); TextBoxPegawaiPIC.Text = poProduksiBahanBaku.TBPengguna1.NamaLengkap; TextBoxTanggalJatuhTempo.Text = poProduksiBahanBaku.TanggalJatuhTempo != null?poProduksiBahanBaku.TanggalJatuhTempo.ToFormatTanggal() : string.Empty; TextBoxTanggalPengiriman.Text = poProduksiBahanBaku.TanggalPengiriman.ToFormatTanggal(); TextBoxPegawai.Text = poProduksiBahanBaku.TBPengguna.NamaLengkap + " / " + poProduksiBahanBaku.Tanggal.ToFormatTanggal(); if (poProduksiBahanBaku.EnumJenisProduksi != (int)PilihanEnumJenisProduksi.ProduksiSendiri) { TextBoxSupplierVendorTempat.Text = poProduksiBahanBaku.TBSupplier.Nama; TextBoxEmail.Text = poProduksiBahanBaku.TBSupplier.Email; TextBoxAlamat.Text = poProduksiBahanBaku.TBSupplier.Alamat; TextBoxTelepon1.Text = poProduksiBahanBaku.TBSupplier.Telepon1; TextBoxTelepon2.Text = poProduksiBahanBaku.TBSupplier.Telepon2; } else { TextBoxSupplierVendorTempat.Text = poProduksiBahanBaku.TBTempat.Nama; TextBoxEmail.Text = poProduksiBahanBaku.TBTempat.Email; TextBoxAlamat.Text = poProduksiBahanBaku.TBTempat.Alamat; TextBoxTelepon1.Text = poProduksiBahanBaku.TBTempat.Telepon1; TextBoxTelepon2.Text = poProduksiBahanBaku.TBTempat.Telepon2; } DetailBahanBaku.Visible = true; RepeaterPOProdusiBahanBakuDetail.DataSource = poProduksiBahanBaku.TBPOProduksiBahanBakuDetails.Select(item => new { item.TBBahanBaku.KodeBahanBaku, BahanBaku = item.TBBahanBaku.Nama, Satuan = item.TBSatuan.Nama, Kategori = StokBahanBaku_Class.GabungkanSemuaKategoriBahanBaku(db, null, item.TBBahanBaku), Harga = poProduksiBahanBaku.EnumJenisProduksi == (int)PilihanEnumJenisProduksi.ProduksiSendiri ? item.TotalHPP : item.TotalHargaSupplier, item.Jumlah, Datang = item.Jumlah - item.Sisa, item.Sisa }); RepeaterPOProdusiBahanBakuDetail.DataBind(); ButtonKembali.Visible = false; ButtonKembaliPOProduksi.Visible = true; } }
protected void ButtonTerima_Click(object sender, EventArgs e) { PenggunaLogin Pengguna = (PenggunaLogin)Session["PenggunaLogin"]; try { using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { var TransferBahanBaku = db.TBTransferBahanBakus.FirstOrDefault(item => item.IDTransferBahanBaku == Request.QueryString["id"]); if (TransferBahanBaku != null && TransferBahanBaku.EnumJenisTransfer == (int)PilihanJenisTransfer.TransferProses) { TBStokBahanBaku[] daftarStokBahanBaku = db.TBStokBahanBakus.Where(item => item.IDTempat == Pengguna.IDTempat).ToArray(); foreach (var item in TransferBahanBaku.TBTransferBahanBakuDetails.ToArray()) { var stokBahanBaku = daftarStokBahanBaku.FirstOrDefault(data => data.IDBahanBaku == item.IDBahanBaku); if (stokBahanBaku != null) { StokBahanBaku_Class.UpdateBertambahBerkurang(db, DateTime.Now, Pengguna.IDPengguna, stokBahanBaku, item.Jumlah, item.HargaBeli, true, EnumJenisPerpindahanStok.TransferStokMasuk, "Transfer #" + LabelIDTransferBahanBaku.Text); } else { stokBahanBaku = StokBahanBaku_Class.InsertStokBahanBaku(db, DateTime.Now, Pengguna.IDPengguna, Pengguna.IDTempat, db.TBBahanBakus.FirstOrDefault(data => data.IDBahanBaku == item.IDBahanBaku), (item.HargaBeli / item.TBBahanBaku.Konversi.Value), 0, 0, ""); StokBahanBaku_Class.UpdateBertambahBerkurang(db, DateTime.Now, Pengguna.IDPengguna, stokBahanBaku, item.Jumlah, item.HargaBeli, true, EnumJenisPerpindahanStok.TransferStokMasuk, "Transfer #" + LabelIDTransferBahanBaku.Text); } } TransferBahanBaku.IDPenerima = Pengguna.IDPengguna; TransferBahanBaku.TanggalTerima = DateTime.Now; TransferBahanBaku.TanggalUpdate = DateTime.Now; TransferBahanBaku.EnumJenisTransfer = (int)PilihanJenisTransfer.TransferSelesai; db.SubmitChanges(); Response.Redirect("/WITWarehouse/BahanBaku/Transfer/Detail.aspx?id=" + TransferBahanBaku.IDTransferBahanBaku, false); } else { Response.Redirect("Default.aspx", false); } } } catch (Exception ex) { LiteralWarning.Text = Alert_Class.Pesan(TipeAlert.Danger, ex.Message); LogError_Class LogError_Class = new LogError_Class(ex, Request.Url.PathAndQuery); } }
protected void RepeaterBahanBaku_ItemCommand(object source, RepeaterCommandEventArgs e) { if (e.CommandName == "UbahHargaPokokProduksi") { PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"]; using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { StokBahanBaku_Class.PerbaharuiHargaBeli(db, pengguna.IDTempat, e.CommandArgument.ToInt()); db.SubmitChanges(); LoadData(db); } } }
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 LoadData(DataClassesDatabaseDataContext db, TBBahanBaku bahanBaku) { PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"]; RepeaterKomposisi.DataSource = bahanBaku.TBKomposisiBahanBakus.Select(item => new { item.IDBahanBaku, item.TBBahanBaku1.Nama, Jumlah = item.Jumlah.ToFormatHarga(), Satuan = item.TBBahanBaku1.TBSatuan.Nama, HargaBeli = item.TBBahanBaku1.TBStokBahanBakus.FirstOrDefault(stok => stok.IDBahanBaku == item.IDBahanBaku && stok.IDTempat == pengguna.IDTempat).HargaBeli *item.Jumlah }).ToArray(); RepeaterKomposisi.DataBind(); RepeaterBiayaProduksi.DataSource = bahanBaku.TBRelasiJenisBiayaProduksiBahanBakus.Select(item => new { item.IDJenisBiayaProduksi, NamaJenisBiayaProduksi = item.TBJenisBiayaProduksi.Nama, Jenis = item.EnumBiayaProduksi == (int)PilihanBiayaProduksi.Persen ? (item.Persentase * 100).ToFormatHarga() + "% dari Komposisi Bahan Baku" : "Nominal", BiayaProduksi = item.EnumBiayaProduksi == (int)PilihanBiayaProduksi.Persen ? (item.Persentase * StokBahanBaku_Class.HitungHargaPokokKomposisi(db, pengguna.IDTempat, item.TBBahanBaku)).ToFormatHarga() : item.Nominal.ToFormatHarga() }).ToArray(); RepeaterBiayaProduksi.DataBind(); decimal hargaKomposisi = StokBahanBaku_Class.HitungHargaPokokKomposisi(db, pengguna.IDTempat, bahanBaku); LabelTotalHargaBesarKomposisi.Text = hargaKomposisi.ToFormatHarga(); LabelSatuanBesarKomposisi.Text = "/" + bahanBaku.TBSatuan1.Nama; LabelTotalHargaKecilKomposisi.Text = (hargaKomposisi / bahanBaku.Konversi).ToFormatHarga(); LabelSatuanKecilKomposisi.Text = "/" + bahanBaku.TBSatuan.Nama; decimal hargaBiayaProduksi = StokBahanBaku_Class.HitungBiayaProduksi(db, pengguna.IDTempat, bahanBaku); LabelTotalHargaBesarBiayaProduksi.Text = hargaBiayaProduksi.ToFormatHarga(); LabelSatuanBesarBiayaProduksi.Text = LabelSatuanBesarKomposisi.Text; LabelTotalHargaKecilBiayaProduksi.Text = (hargaBiayaProduksi / bahanBaku.Konversi).ToFormatHarga(); LabelSatuanKecilBiayaProduksi.Text = LabelSatuanKecilKomposisi.Text; LabelHitunganKomposisi.Text = LabelTotalHargaKecilKomposisi.Text + " " + LabelSatuanKecilKomposisi.Text; LabelHitunganBiayaProduksi.Text = (hargaBiayaProduksi / bahanBaku.Konversi).ToFormatHarga() + " " + LabelSatuanKecilKomposisi.Text; LabelHargaPokokProduksi.Text = ((hargaKomposisi + hargaBiayaProduksi) / bahanBaku.Konversi).ToFormatHarga() + " " + LabelSatuanKecilKomposisi.Text; }
private void LoadData(DataClassesDatabaseDataContext db) { PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"]; DataDisplay DataDisplay = new DataDisplay(); var ListData = db.TBStokBahanBakus .AsEnumerable() .Where(item => item.IDTempat == pengguna.IDTempat && (!string.IsNullOrWhiteSpace(TextBoxCari.Text) ? item.TBBahanBaku.Nama.ToLower().Contains(TextBoxCari.Text.ToLower()) : true)) .Select(item => new { item.TBBahanBaku.IDBahanBaku, item.TBBahanBaku.KodeBahanBaku, item.TBBahanBaku.Nama, HargaPokokProduksi = StokBahanBaku_Class.HitungHargaPokokProduksi(db, pengguna.IDTempat, item.TBBahanBaku) / item.TBBahanBaku.Konversi, HargaBeli = item.HargaBeli, Satuan = item.TBBahanBaku.TBSatuan.Nama, PunyaKomposisi = item.TBBahanBaku.TBKomposisiBahanBakus.Count }).OrderBy(item => item.Nama).ToArray(); int skip = 0; int take = 0; int count = ListData.Count(); DataDisplay.Proses(ListData.Count(), DropDownListHalaman, DropDownListJumlahData, out take, out skip); RepeaterBahanBaku.DataSource = ListData.Skip(skip).Take(take); RepeaterBahanBaku.DataBind(); DropDownListBahanBaku.DataSource = ListData.Select(item => new { item.IDBahanBaku, item.Nama }).OrderBy(item => item.Nama); DropDownListBahanBaku.DataTextField = "Nama"; DropDownListBahanBaku.DataValueField = "IDBahanBaku"; DropDownListBahanBaku.DataBind(); DropDownListBahanBaku.Items.Insert(0, new ListItem { Text = "-Bahan Baku-", Value = "0" }); }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"]; TBStore store = db.TBStores.FirstOrDefault(); LabelNamaStore.Text = store.Nama; LabelAlamatStore.Text = store.Alamat; TBPOProduksiBahanBaku poProduksiBahanBaku = db.TBPOProduksiBahanBakus.FirstOrDefault(item => item.IDPOProduksiBahanBaku == Request.QueryString["id"]); LabelJudul.Text = "(RAW MATERIAL)"; LabelNamaSupplier.Text = poProduksiBahanBaku.IDSupplier != null ? poProduksiBahanBaku.TBSupplier.Nama : string.Empty; LabelAlamatSupplier.Text = poProduksiBahanBaku.IDSupplier != null ? poProduksiBahanBaku.TBSupplier.Alamat : string.Empty; LabelIDProyeksi.Text = poProduksiBahanBaku.IDProyeksi; LabelIDProduksi.Text = poProduksiBahanBaku.IDPOProduksiBahanBaku; RepeaterDetail.DataSource = poProduksiBahanBaku.TBPOProduksiBahanBakuDetails.Select(item => new { item.TBBahanBaku.KodeBahanBaku, BahanBaku = item.TBBahanBaku.Nama, Satuan = item.TBSatuan.Nama, Kategori = StokBahanBaku_Class.GabungkanSemuaKategoriBahanBaku(db, null, item.TBBahanBaku), item.Jumlah, item.Sisa }).ToArray(); RepeaterDetail.DataBind(); } } }
private void LoadDataTransferBahanBaku() { using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { var TransferBahanBakuDetail = db.TBTransferBahanBakuDetails .Where(item => item.IDTransferBahanBaku == LabelIDTransferBahanBaku.Text) .Select(item => new { item.IDTransferBahanBakuDetail, Kode = item.TBBahanBaku.KodeBahanBaku, item.TBBahanBaku.Nama, SatuanBesar = item.TBSatuan.Nama, Kategori = StokBahanBaku_Class.GabungkanSemuaKategoriBahanBaku(db, null, item.TBBahanBaku), item.HargaBeli, item.Jumlah, item.Subtotal }).OrderBy(item => item.Nama).ToArray(); RepeaterTransferBahanBaku.DataSource = TransferBahanBakuDetail; RepeaterTransferBahanBaku.DataBind(); LabelTotalSubtotal.Text = TransferBahanBakuDetail.Sum(item => item.Subtotal).ToFormatHarga(); } }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"]; TextBoxPegawai.Text = pengguna.NamaLengkap; TBProyeksi proyeksi = db.TBProyeksis.FirstOrDefault(item => item.IDProyeksi == Request.QueryString["id"]); TextBoxTanggalProyeksi.Text = proyeksi.TanggalProyeksi.ToFormatTanggal(); TextBoxTanggalTarget.Text = proyeksi.TanggalTarget.ToFormatTanggal(); #region Produk var daftarProduk = proyeksi.TBProyeksiDetails.Select(item => new { item.TBKombinasiProduk.KodeKombinasiProduk, PemilikProduk = item.TBKombinasiProduk.TBProduk.TBPemilikProduk.Nama, Produk = item.TBKombinasiProduk.TBProduk.Nama, AtributProduk = item.TBKombinasiProduk.TBAtributProduk.Nama, Kategori = StokProduk_Class.GabungkanSemuaKategoriProduk(null, null, item.TBKombinasiProduk), item.Jumlah, item.Sisa }).OrderBy(item => item.Produk).ThenBy(item => item.AtributProduk).ToArray(); RepeaterProduk.DataSource = daftarProduk; RepeaterProduk.DataBind(); if (daftarProduk.Sum(item => item.Sisa) <= 0) { ButtonProduk.Visible = false; } #endregion if (proyeksi.TBProyeksiKomposisis.Count == 0) { PanelKomposisi.Visible = false; RepeaterKomposisi.DataSource = null; RepeaterKomposisi.DataBind(); RepeaterBahanBakuDasar.DataSource = null; RepeaterBahanBakuDasar.DataBind(); } else { PanelKomposisi.Visible = true; #region Komposisi var produksiBahanBaku = proyeksi.TBProyeksiKomposisis.Where(item => item.LevelProduksi > 0).GroupBy(item => new { item.LevelProduksi }) .Select(item => new { item.Key.LevelProduksi, SubData = item.Where(data => data.LevelProduksi == item.Key.LevelProduksi && data.BahanBakuDasar == false).Select(data => new { data.IDBahanBaku, data.IDSatuan, BahanBaku = data.TBBahanBaku.Nama, Kategori = StokBahanBaku_Class.GabungkanSemuaKategoriBahanBaku(null, null, data.TBBahanBaku), Satuan = data.TBSatuan.Nama, data.Jumlah }).OrderBy(data => data.BahanBaku), StatusButton = item.Sum(data => data.Sisa) > 0 ? true : false }).OrderBy(item => item.LevelProduksi); RepeaterKomposisi.DataSource = produksiBahanBaku; RepeaterKomposisi.DataBind(); #endregion #region Komposisi Dasar //RepeaterBahanBakuDasar.DataSource = proyeksi.TBProyeksiKomposisis.Where(item => item.BahanBakuDasar == true) //.Select(item => new //{ // item.TBBahanBaku.IDBahanBaku, // item.TBSatuan.IDSatuan, // BahanBaku = item.TBBahanBaku.Nama, // Kategori = StokBahanBaku_Class.GabungkanSemuaKategoriBahanBaku(null, null, item.TBBahanBaku), // Satuan = item.TBSatuan.Nama, // item.Jumlah, //}).OrderBy(data => data.BahanBaku); //RepeaterBahanBakuDasar.DataBind(); var purchaseOrder = proyeksi.TBProyeksiKomposisis.Where(item => item.BahanBakuDasar == true).GroupBy(item => new { item.TBBahanBaku, item.TBSatuan }) .Select(item => new { item.Key.TBBahanBaku.IDBahanBaku, item.Key.TBSatuan.IDSatuan, BahanBaku = item.Key.TBBahanBaku.Nama, Kategori = StokBahanBaku_Class.GabungkanSemuaKategoriBahanBaku(null, null, item.Key.TBBahanBaku), Satuan = item.Key.TBSatuan.Nama, Jumlah = item.Sum(x => x.Jumlah), Sisa = item.Sum(x => x.Sisa) }).OrderBy(data => data.BahanBaku); RepeaterBahanBakuDasar.DataSource = purchaseOrder; RepeaterBahanBakuDasar.DataBind(); if (purchaseOrder.Sum(item => item.Sisa) <= 0) { LinkButtonPurchaseOrder.Visible = false; } #endregion } RepeaterPOProduksiBahanBaku.DataSource = proyeksi.TBPOProduksiBahanBakus.OrderBy(item => item.Tanggal).Select(item => new { item.IDPOProduksiBahanBaku, Jenis = Pengaturan.JenisPOProduksi(item.EnumJenisProduksi, "BahanBaku"), item.Tanggal, Pegawai = item.TBPengguna.NamaLengkap, Supplier = item.IDSupplier == null ? string.Empty : item.TBSupplier.Nama, item.Grandtotal }).ToArray(); RepeaterPOProduksiBahanBaku.DataBind(); RepeaterPOProduksiProduk.DataSource = proyeksi.TBPOProduksiProduks.OrderBy(item => item.Tanggal).Select(item => new { item.IDPOProduksiProduk, Jenis = Pengaturan.JenisPOProduksi(item.EnumJenisProduksi, "Produk"), item.Tanggal, Pegawai = item.TBPengguna.NamaLengkap, Vendor = item.IDVendor == null ? string.Empty : item.TBVendor.Nama, item.Grandtotal }).ToArray(); RepeaterPOProduksiProduk.DataBind(); } } }
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"); } }
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 ButtonUpload_Click(object sender, EventArgs e) { string NamaFile = Path.GetFileNameWithoutExtension(FileUploadTransferBahanBaku.FileName); string ExtensiFile = Path.GetExtension(FileUploadTransferBahanBaku.FileName); #region Format import harus .zip if (ExtensiFile != ".zip") { LiteralWarning.Text = Alert_Class.Pesan(TipeAlert.Danger, "Format import harus .zip"); return; } #endregion if (FileUploadTransferBahanBaku.HasFile) { string Folder = Server.MapPath("~/Files/Transfer Bahan Baku/Penerimaan/"); if (!Directory.Exists(Folder)) { Directory.CreateDirectory(Folder); } string LokasiFile = Folder + NamaFile + ExtensiFile; string Output = Folder + NamaFile + "_dec" + ExtensiFile; FileUploadTransferBahanBaku.SaveAs(LokasiFile); EncryptDecrypt.Decrypt(LokasiFile, Output); string file = File.ReadAllText(Output); File.Delete(Output); var FileTransferBahanBaku = JsonConvert.DeserializeObject <FileTransferBahanBaku>(file); using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { #region Transfer transfer sudah terdaftar if (db.TBTransferBahanBakus.FirstOrDefault(item => item.IDTransferBahanBaku == FileTransferBahanBaku.IDTransferBahanBaku) != null) { LiteralWarning.Text = Alert_Class.Pesan(TipeAlert.Danger, "Data Transfer sudah terdaftar"); return; } #endregion Tempat_Class ClassTempat = new Tempat_Class(db); BahanBaku_Class ClassBahanBaku = new BahanBaku_Class(); KategoriBahanBaku_Class KategoriBahanBaku_Class = new KategoriBahanBaku_Class(); PenggunaLogin Pengguna = (PenggunaLogin)Session["PenggunaLogin"]; #region TEMPAT PENERIMA var TempatPenerima = ClassTempat.Cari(FileTransferBahanBaku.FileTempatPenerima.IDWMS); if (TempatPenerima == null) { TempatPenerima = new TBTempat { Alamat = FileTransferBahanBaku.FileTempatPenerima.Alamat, BiayaTambahan1 = FileTransferBahanBaku.FileTempatPenerima.BiayaTambahan1, BiayaTambahan2 = FileTransferBahanBaku.FileTempatPenerima.BiayaTambahan2, BiayaTambahan3 = FileTransferBahanBaku.FileTempatPenerima.BiayaTambahan3, BiayaTambahan4 = FileTransferBahanBaku.FileTempatPenerima.BiayaTambahan4, Email = FileTransferBahanBaku.FileTempatPenerima.Email, EnumBiayaTambahan1 = FileTransferBahanBaku.FileTempatPenerima.EnumBiayaTambahan1, EnumBiayaTambahan2 = FileTransferBahanBaku.FileTempatPenerima.EnumBiayaTambahan2, EnumBiayaTambahan3 = FileTransferBahanBaku.FileTempatPenerima.EnumBiayaTambahan3, EnumBiayaTambahan4 = FileTransferBahanBaku.FileTempatPenerima.EnumBiayaTambahan4, FooterPrint = FileTransferBahanBaku.FileTempatPenerima.FooterPrint, IDKategoriTempat = FileTransferBahanBaku.FileTempatPenerima.IDKategoriTempat, IDStore = FileTransferBahanBaku.FileTempatPenerima.IDStore, _IDWMS = FileTransferBahanBaku.FileTempatPenerima.IDWMS, KeteranganBiayaTambahan1 = FileTransferBahanBaku.FileTempatPenerima.KeteranganBiayaTambahan1, KeteranganBiayaTambahan2 = FileTransferBahanBaku.FileTempatPenerima.KeteranganBiayaTambahan2, KeteranganBiayaTambahan3 = FileTransferBahanBaku.FileTempatPenerima.KeteranganBiayaTambahan3, KeteranganBiayaTambahan4 = FileTransferBahanBaku.FileTempatPenerima.KeteranganBiayaTambahan4, Kode = FileTransferBahanBaku.FileTempatPenerima.Kode, Latitude = FileTransferBahanBaku.FileTempatPenerima.Latitude, Longitude = FileTransferBahanBaku.FileTempatPenerima.Longitude, Nama = FileTransferBahanBaku.FileTempatPenerima.Nama, _TanggalInsert = FileTransferBahanBaku.FileTempatPenerima.TanggalDaftar, _TanggalUpdate = FileTransferBahanBaku.FileTempatPenerima.TanggalUpdate, Telepon1 = FileTransferBahanBaku.FileTempatPenerima.Telepon1, Telepon2 = FileTransferBahanBaku.FileTempatPenerima.Telepon2 }; db.TBTempats.InsertOnSubmit(TempatPenerima); db.SubmitChanges(); } #endregion //MASTER DATA foreach (var item in FileTransferBahanBaku.TransferBahanBakuDetails) { #region BAHAN BAKU var BahanBaku = ClassBahanBaku.Cari(db, item.BahanBaku); if (BahanBaku == null) { BahanBaku = ClassBahanBaku.Tambah(db, item.SatuanKecil, item.SatuanBesar, item.BahanBaku, item.Konversi); } else { BahanBaku = ClassBahanBaku.Ubah(db, BahanBaku, item.SatuanKecil, item.SatuanBesar, item.Konversi); } #endregion #region KATEGORI KategoriBahanBaku_Class.KategoriBahanBaku(db, BahanBaku, item.Kategori); #endregion #region STOK BAHAN BAKU var stokBahanBaku = db.TBStokBahanBakus.FirstOrDefault(data => data.IDBahanBaku == BahanBaku.IDBahanBaku && data.IDTempat == TempatPenerima.IDTempat); if (stokBahanBaku == null) { stokBahanBaku = StokBahanBaku_Class.InsertStokBahanBaku(db, DateTime.Now, Pengguna.IDPengguna, TempatPenerima.IDTempat, BahanBaku, (item.HargaBeli / item.Konversi), 0, 0, ""); } else { stokBahanBaku.HargaBeli = item.HargaBeli; } #endregion db.SubmitChanges(); } #region TEMPAT PENGIRIM var TempatPengirim = ClassTempat.Cari(FileTransferBahanBaku.FileTempatPengirim.IDWMS); if (TempatPengirim == null) { TempatPengirim = new TBTempat { Alamat = FileTransferBahanBaku.FileTempatPengirim.Alamat, BiayaTambahan1 = FileTransferBahanBaku.FileTempatPengirim.BiayaTambahan1, BiayaTambahan2 = FileTransferBahanBaku.FileTempatPengirim.BiayaTambahan2, BiayaTambahan3 = FileTransferBahanBaku.FileTempatPengirim.BiayaTambahan3, BiayaTambahan4 = FileTransferBahanBaku.FileTempatPengirim.BiayaTambahan4, Email = FileTransferBahanBaku.FileTempatPengirim.Email, EnumBiayaTambahan1 = FileTransferBahanBaku.FileTempatPengirim.EnumBiayaTambahan1, EnumBiayaTambahan2 = FileTransferBahanBaku.FileTempatPengirim.EnumBiayaTambahan2, EnumBiayaTambahan3 = FileTransferBahanBaku.FileTempatPengirim.EnumBiayaTambahan3, EnumBiayaTambahan4 = FileTransferBahanBaku.FileTempatPengirim.EnumBiayaTambahan4, FooterPrint = FileTransferBahanBaku.FileTempatPengirim.FooterPrint, IDKategoriTempat = FileTransferBahanBaku.FileTempatPengirim.IDKategoriTempat, IDStore = FileTransferBahanBaku.FileTempatPengirim.IDStore, _IDWMS = FileTransferBahanBaku.FileTempatPengirim.IDWMS, KeteranganBiayaTambahan1 = FileTransferBahanBaku.FileTempatPengirim.KeteranganBiayaTambahan1, KeteranganBiayaTambahan2 = FileTransferBahanBaku.FileTempatPengirim.KeteranganBiayaTambahan2, KeteranganBiayaTambahan3 = FileTransferBahanBaku.FileTempatPengirim.KeteranganBiayaTambahan3, KeteranganBiayaTambahan4 = FileTransferBahanBaku.FileTempatPengirim.KeteranganBiayaTambahan4, Kode = FileTransferBahanBaku.FileTempatPengirim.Kode, Latitude = FileTransferBahanBaku.FileTempatPengirim.Latitude, Longitude = FileTransferBahanBaku.FileTempatPengirim.Longitude, Nama = FileTransferBahanBaku.FileTempatPengirim.Nama, _TanggalInsert = FileTransferBahanBaku.FileTempatPengirim.TanggalDaftar, _TanggalUpdate = FileTransferBahanBaku.FileTempatPengirim.TanggalUpdate, Telepon1 = FileTransferBahanBaku.FileTempatPengirim.Telepon1, Telepon2 = FileTransferBahanBaku.FileTempatPengirim.Telepon2 }; } #endregion #region PENGGUNA PENGIRIM var PenggunaPengirim = db.TBPenggunas .FirstOrDefault(item => item.Username.ToLower() == FileTransferBahanBaku.FilePenggunaPengirim.Username.ToLower()); if (PenggunaPengirim == null) { //PENGGUNA PENGIRIM PenggunaPengirim = new TBPengguna { IDGrupPengguna = FileTransferBahanBaku.FilePenggunaPengirim.IDGrupPengguna, NamaLengkap = FileTransferBahanBaku.FilePenggunaPengirim.NamaLengkap, Username = FileTransferBahanBaku.FilePenggunaPengirim.Username, Password = FileTransferBahanBaku.FilePenggunaPengirim.Password, PIN = FileTransferBahanBaku.FilePenggunaPengirim.PIN, _IsActive = FileTransferBahanBaku.FilePenggunaPengirim.Status, TBTempat = TempatPengirim, TanggalLahir = DateTime.Now, _IDWMS = Guid.NewGuid(), TanggalBekerja = DateTime.Now, _TanggalInsert = DateTime.Now, _IDTempatInsert = TempatPenerima.IDTempat, _IDPenggunaInsert = Pengguna.IDTempat, _TanggalUpdate = DateTime.Now, _IDTempatUpdate = TempatPenerima.IDTempat, _IDPenggunaUpdate = Pengguna.IDTempat }; } #endregion #region TRANSFER BAHAN BAKU TBTransferBahanBaku TransferBahanBaku = new TBTransferBahanBaku { IDTransferBahanBaku = FileTransferBahanBaku.IDTransferBahanBaku, //Nomor TBPengguna = PenggunaPengirim, //IDPenerima TBTempat = TempatPengirim, IDTempatPenerima = TempatPenerima.IDTempat, TanggalDaftar = FileTransferBahanBaku.TanggalDaftar, TanggalUpdate = FileTransferBahanBaku.TanggalUpdate, EnumJenisTransfer = FileTransferBahanBaku.EnumJenisTransfer, TanggalKirim = FileTransferBahanBaku.TanggalKirim, //TanggalTerima TotalJumlah = FileTransferBahanBaku.TotalJumlah, GrandTotal = FileTransferBahanBaku.GrandTotal, Keterangan = FileTransferBahanBaku.Keterangan }; #endregion #region DETAIL TRANSFER BAHAN BAKU foreach (var item in FileTransferBahanBaku.TransferBahanBakuDetails) { var BahanBaku = db.TBBahanBakus.FirstOrDefault(data => data.Nama.ToLower() == item.BahanBaku.ToLower()); TransferBahanBaku.TBTransferBahanBakuDetails.Add(new TBTransferBahanBakuDetail { //IDTransferBahanBakuDetail //IDTransferBahanBaku TBBahanBaku = BahanBaku, TBSatuan = BahanBaku.TBSatuan1, HargaBeli = item.HargaBeli, Jumlah = item.Jumlah //Subtotal }); } #endregion db.TBTransferBahanBakus.InsertOnSubmit(TransferBahanBaku); db.SubmitChanges(); if (TransferBahanBaku.IDTempatPenerima == Pengguna.IDTempat) { Response.Redirect("Pengaturan.aspx?id=" + TransferBahanBaku.IDTransferBahanBaku); } else { Response.Redirect("Default.aspx"); } } } }
protected void ButtonSimpan_Click(object sender, EventArgs e) { PenggunaLogin Pengguna = (PenggunaLogin)Session["PenggunaLogin"]; using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { bool StatusPerubahan = false; TBStokBahanBaku[] daftarStokBahanBaku = db.TBStokBahanBakus.Where(item => item.IDTempat == DropDownListTempat.SelectedValue.ToInt()).ToArray(); foreach (RepeaterItem item2 in RepeaterLaporan.Items) { Label LabelIDBahanBaku = (Label)item2.FindControl("LabelIDBahanBaku"); Label IDSatuanKonversi = (Label)item2.FindControl("IDSatuanKonversi"); TextBox TextBoxStokTerbaru = (TextBox)item2.FindControl("TextBoxStokTerbaru"); DropDownList DropDownListPilih = (DropDownList)item2.FindControl("DropDownListPilih"); if (!string.IsNullOrWhiteSpace(TextBoxStokTerbaru.Text)) { StatusPerubahan = true; TBStokBahanBaku stokBahanBaku = daftarStokBahanBaku.FirstOrDefault(data => data.IDBahanBaku == LabelIDBahanBaku.Text.ToInt()); if (DropDownListPilih.SelectedIndex == 0) { if (Request.QueryString["do"] == "opname") { StokBahanBaku_Class.UpdateStockOpname(db, DateTime.Now, Pengguna.IDPengguna, stokBahanBaku, TextBoxStokTerbaru.Text.ToDecimal(), true, ""); } else if (Request.QueryString["do"] == "waste") { StokBahanBaku_Class.UpdateBertambahBerkurang(db, DateTime.Now, Pengguna.IDPengguna, stokBahanBaku, TextBoxStokTerbaru.Text.ToDecimal(), stokBahanBaku.HargaBeli.Value, true, EnumJenisPerpindahanStok.PembuanganBarangRusak, ""); } else if (Request.QueryString["do"] == "restock") { StokBahanBaku_Class.UpdateBertambahBerkurang(db, DateTime.Now, Pengguna.IDPengguna, stokBahanBaku, TextBoxStokTerbaru.Text.ToDecimal(), stokBahanBaku.HargaBeli.Value, true, EnumJenisPerpindahanStok.RestockBarang, ""); } else if (Request.QueryString["do"] == "return") { StokBahanBaku_Class.UpdateBertambahBerkurang(db, DateTime.Now, Pengguna.IDPengguna, stokBahanBaku, TextBoxStokTerbaru.Text.ToDecimal(), stokBahanBaku.HargaBeli.Value, true, EnumJenisPerpindahanStok.ReturKeTempatProduksi, ""); } else { Response.Redirect("/WITWarehouse/BahanBaku.aspx"); } } else if (DropDownListPilih.SelectedIndex == 1) { if (Request.QueryString["do"] == "opname") { StokBahanBaku_Class.UpdateStockOpname(db, DateTime.Now, Pengguna.IDPengguna, stokBahanBaku, TextBoxStokTerbaru.Text.ToDecimal(), false, ""); } else if (Request.QueryString["do"] == "waste") { StokBahanBaku_Class.UpdateBertambahBerkurang(db, DateTime.Now, Pengguna.IDPengguna, stokBahanBaku, TextBoxStokTerbaru.Text.ToDecimal(), stokBahanBaku.HargaBeli.Value, false, EnumJenisPerpindahanStok.PembuanganBarangRusak, ""); } else if (Request.QueryString["do"] == "restock") { StokBahanBaku_Class.UpdateBertambahBerkurang(db, DateTime.Now, Pengguna.IDPengguna, stokBahanBaku, TextBoxStokTerbaru.Text.ToDecimal(), stokBahanBaku.HargaBeli.Value, false, EnumJenisPerpindahanStok.RestockBarang, ""); } else if (Request.QueryString["do"] == "return") { StokBahanBaku_Class.UpdateBertambahBerkurang(db, DateTime.Now, Pengguna.IDPengguna, stokBahanBaku, TextBoxStokTerbaru.Text.ToDecimal(), stokBahanBaku.HargaBeli.Value, false, EnumJenisPerpindahanStok.ReturKeTempatProduksi, ""); } else { Response.Redirect("/WITWarehouse/BahanBaku.aspx"); } } } TextBoxStokTerbaru.Text = string.Empty; } if (StatusPerubahan) { db.SubmitChanges(); } } LoadData(); }
protected void ButtonSimpan_Click(object sender, EventArgs e) { try { if (DropDownListTempatPenerima.Items.Count == 0) { LiteralWarning.Text = Alert_Class.Pesan(TipeAlert.Danger, "Anda harus membuat lokasi tujuan transfer. <a href='/WITAdministrator/Store/Tempat/Pengaturan.aspx'>Buat lokasi baru</a>"); return; } bool StokKurang = false; string TransferBerhasil = string.Empty; using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { PenggunaLogin Pengguna = (PenggunaLogin)Session["PenggunaLogin"]; TBTransferBahanBaku DataTransferBahanBaku = null; TBStokBahanBaku[] daftarStokBahanBaku = db.TBStokBahanBakus.Where(data => data.IDTempat == DropDownListTempatPengirim.SelectedValue.ToInt()).ToArray(); TransferBahanBaku_Class TransferBahanBaku = new TransferBahanBaku_Class(); foreach (RepeaterItem item in RepeaterStokBahanBaku.Items) { Label LabelIDBahanBaku = (Label)item.FindControl("LabelIDBahanBaku"); Label LabelJumlah = (Label)item.FindControl("LabelJumlah"); TextBox TextBoxJumlahTransfer = (TextBox)item.FindControl("TextBoxJumlahTransfer"); HtmlTableRow panelStok = (HtmlTableRow)item.FindControl("panelStok"); if (TextBoxJumlahTransfer.Text.ToDecimal() > 0) { //JIKA JUMLAH TRANSFER VALID TIDAK NULL DAN TIDAK 0 decimal JumlahTransfer = TextBoxJumlahTransfer.Text.ToDecimal(); //PENCARIAN STOK BAHAN BAKU var stokBahanBaku = daftarStokBahanBaku.FirstOrDefault(data => data.IDBahanBaku == LabelIDBahanBaku.Text.ToInt()); if (JumlahTransfer <= (stokBahanBaku.Jumlah / stokBahanBaku.TBBahanBaku.Konversi)) { if (string.IsNullOrWhiteSpace(LabelIDTransferBahanBaku.Text)) { #region MEMBUAT TRANSFER BAHAN BAKU BARU DataTransferBahanBaku = TransferBahanBaku.Tambah(db, Pengguna.IDPengguna, DropDownListTempatPengirim.SelectedValue.ToInt(), DropDownListTempatPenerima.SelectedValue.ToInt(), TextBoxKeterangan.Text); LabelIDTransferBahanBaku.Text = DataTransferBahanBaku.IDTransferBahanBaku; #endregion } else { DataTransferBahanBaku = db.TBTransferBahanBakus.FirstOrDefault(item2 => item2.IDTransferBahanBaku == LabelIDTransferBahanBaku.Text); } //JIKA JUMLAH YANG AKAN DI TRANSFER LEBIH KECIL ATAU SAMA DENGAN JUMLAH STOK StokBahanBaku_Class.UpdateBertambahBerkurang(db, DateTime.Now, Pengguna.IDPengguna, stokBahanBaku, JumlahTransfer, (stokBahanBaku.HargaBeli.Value * stokBahanBaku.TBBahanBaku.Konversi.Value), true, EnumJenisPerpindahanStok.TransferStokKeluar, "Transfer #" + LabelIDTransferBahanBaku.Text); //PENGECEKAN APAKAH SUDAH ADA DI DETAIL var TransferBahanBakuDetail = DataTransferBahanBaku.TBTransferBahanBakuDetails .FirstOrDefault(item2 => item2.IDBahanBaku == stokBahanBaku.IDBahanBaku); if (TransferBahanBakuDetail == null) //DETAIL TRANSFER BAHAN BAKU TIDAK DITEMUKAN MEMBUAT BARU { DataTransferBahanBaku.TBTransferBahanBakuDetails.Add(new TBTransferBahanBakuDetail { IDBahanBaku = stokBahanBaku.IDBahanBaku.Value, IDSatuan = stokBahanBaku.TBBahanBaku.IDSatuanKonversi, HargaBeli = (stokBahanBaku.HargaBeli.Value * stokBahanBaku.TBBahanBaku.Konversi.Value), Jumlah = JumlahTransfer }); } else //JIKA SUDAH TERDAPAT DI DETAIL HANYA MENAMBAHKAN QTY { TransferBahanBakuDetail.Jumlah += JumlahTransfer; } //MENGKOSONGKAN TEXTBOX - LABEL JUMLAH DIISI DENGAN JUMLAH STOK TERBARU TextBoxJumlahTransfer.Text = string.Empty; panelStok.Attributes.Add("class", ""); LabelJumlah.Text = (LabelJumlah.Text.ToDecimal() - JumlahTransfer).ToFormatHarga(); TransferBerhasil += "<br/>" + JumlahTransfer.ToFormatHarga() + " - " + stokBahanBaku.TBBahanBaku.Nama + " " + stokBahanBaku.TBBahanBaku.TBSatuan1.Nama; //MESSAGE TRANSFER YANG BERHASIL } else { //REFRESH LABEL JUMLAH STOK LabelJumlah.Text = (stokBahanBaku.Jumlah / stokBahanBaku.TBBahanBaku.Konversi.Value).ToFormatHarga(); panelStok.Attributes.Add("class", "danger"); StokKurang = true; } } //HANDLE POSTBACK FORMAT HARGA TextBoxJumlahTransfer.Text = TextBoxJumlahTransfer.Text.ToDecimal() == 0 ? string.Empty : TextBoxJumlahTransfer.Text.ToFormatHarga(); } if (DataTransferBahanBaku != null) { //UPDATE DATA TRANSFER BAHAN BAKU DataTransferBahanBaku.TanggalUpdate = DateTime.Now; DataTransferBahanBaku.TotalJumlah = DataTransferBahanBaku.TBTransferBahanBakuDetails.Sum(item2 => item2.Jumlah); DataTransferBahanBaku.GrandTotal = DataTransferBahanBaku.TBTransferBahanBakuDetails.Sum(item2 => item2.Jumlah * item2.HargaBeli); } db.SubmitChanges(); } //MENAMPILKAN MESSAGE LiteralWarning.Text = string.Empty; if (!string.IsNullOrWhiteSpace(TransferBerhasil)) { LiteralWarning.Text += Alert_Class.Pesan(TipeAlert.Success, "Bahan Baku berhasil disimpan" + TransferBerhasil); } if (StokKurang) { LiteralWarning.Text += Alert_Class.Pesan(TipeAlert.Danger, "Stok tidak cukup, silahkan cek kembali"); } } catch (Exception ex) { LiteralWarning.Text = Alert_Class.Pesan(TipeAlert.Danger, ex.Message); LogError_Class LogError = new LogError_Class(ex, Request.Url.PathAndQuery); } }
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 LoadData(bool GenerateExcel) { //DEFAULT TextBoxTanggalAwal.Text = ((DateTime)ViewState["TanggalAwal"]).ToString("d MMMM yyyy"); TextBoxTanggalAkhir.Text = ((DateTime)ViewState["TanggalAkhir"]).ToString("d MMMM yyyy"); using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { if (TextBoxTanggalAwal.Text == TextBoxTanggalAkhir.Text) { LabelPeriode.Text = TextBoxTanggalAwal.Text; } else { LabelPeriode.Text = TextBoxTanggalAwal.Text + " - " + TextBoxTanggalAkhir.Text; } TBPOProduksiBahanBaku[] daftarPOProduksiBahanBaku = db.TBPOProduksiBahanBakus.Where(item => item.IDTempat == DropDownListTempat.SelectedValue.ToInt() && item.Tanggal.Date >= DateTime.Parse(TextBoxTanggalAwal.Text).Date&& item.Tanggal.Date <= DateTime.Parse(TextBoxTanggalAkhir.Text).Date).ToArray(); TBPOProduksiBahanBakuDetail[] daftarPOProduksiBahanBakuDetail = db.TBPOProduksiBahanBakuDetails.Where(item => item.TBPOProduksiBahanBaku.IDTempat == DropDownListTempat.SelectedValue.ToInt() && item.TBPOProduksiBahanBaku.Tanggal.Date >= DateTime.Parse(TextBoxTanggalAwal.Text).Date&& item.TBPOProduksiBahanBaku.Tanggal.Date <= DateTime.Parse(TextBoxTanggalAkhir.Text).Date).ToArray(); TBPenerimaanPOProduksiBahanBakuDetail[] daftarPenerimaanPOProduksiBahanBakuDetail = db.TBPenerimaanPOProduksiBahanBakuDetails.Where(item => item.TBPenerimaanPOProduksiBahanBaku.TBPOProduksiBahanBaku.IDTempat == DropDownListTempat.SelectedValue.ToInt() && item.TBPenerimaanPOProduksiBahanBaku.TanggalTerima.Value.Date >= DateTime.Parse(TextBoxTanggalAwal.Text).Date&& item.TBPenerimaanPOProduksiBahanBaku.TanggalTerima.Value.Date <= DateTime.Parse(TextBoxTanggalAkhir.Text).Date).ToArray(); #region Purchase Order var purchaseOrder = daftarPOProduksiBahanBaku.GroupBy(item => new { item.EnumJenisProduksi }) .Select(item => new { item.Key.EnumJenisProduksi, JenisPO = Pengaturan.JenisPOProduksi(item.Key.EnumJenisProduksi, "BahanBaku"), Baru = item.Count(), GrandtotalBaru = item.Sum(data => data.Grandtotal), Proses = item.Count(), GrandtotalProses = item.Sum(data => data.Grandtotal), Selesai = item.Count(), GrandtotalSelesai = item.Sum(data => data.Grandtotal), Total = item.Count(), GrandtotalTotal = item.Sum(data => data.Grandtotal), Progress = Persentase(item.Count() == 0 ? -1 : ((decimal)item.Count() / (decimal)item.Count()) * 100), }).OrderBy(item => item.EnumJenisProduksi).ToArray(); RepeaterPurchaseOrder.DataSource = purchaseOrder; RepeaterPurchaseOrder.DataBind(); LabelBaru.Text = purchaseOrder.Sum(item => item.Baru).ToFormatHargaBulat(); LabelGrandtotalBaru.Text = purchaseOrder.Sum(item => item.GrandtotalBaru).ToFormatHarga(); LabelProses.Text = purchaseOrder.Sum(item => item.Proses).ToFormatHargaBulat(); LabeGrandtotalProses.Text = purchaseOrder.Sum(item => item.GrandtotalProses).ToFormatHarga(); LabelSelesai.Text = purchaseOrder.Sum(item => item.Selesai).ToFormatHargaBulat(); LabelGrandtotalSelesai.Text = purchaseOrder.Sum(item => item.GrandtotalSelesai).ToFormatHarga(); LabelTotal.Text = purchaseOrder.Sum(item => item.Total).ToFormatHargaBulat(); LabelGrandtotalTotal.Text = purchaseOrder.Sum(item => item.GrandtotalTotal).ToFormatHarga(); #endregion #region Summary LabelPotongan.Text = daftarPOProduksiBahanBaku.Sum(item => item.PotonganPOProduksiBahanBaku).ToFormatHarga(); LabelBiayaLainLain.Text = daftarPOProduksiBahanBaku.Sum(item => item.BiayaLainLain).ToFormatHarga(); LabelTax.Text = daftarPOProduksiBahanBaku.Sum(item => item.Tax).ToFormatHarga(); LabelGrandtotal.Text = daftarPOProduksiBahanBaku.Sum(item => item.Grandtotal).ToFormatHarga(); LabelHargaKomposisiDetail.Text = daftarPOProduksiBahanBakuDetail.Sum(item => item.Jumlah * item.HargaPokokKomposisi).ToFormatHarga(); LabelBiayaTambahanDetail.Text = daftarPOProduksiBahanBakuDetail.Sum(item => item.Jumlah * item.BiayaTambahan).ToFormatHarga(); LabelPotonganHargaDetail.Text = daftarPOProduksiBahanBakuDetail.Sum(item => item.Jumlah * item.PotonganHargaSupplier).ToFormatHarga(); LabelJumlahBahanBakuDetail.Text = daftarPOProduksiBahanBakuDetail.Sum(item => item.Jumlah).ToFormatHarga(); LabelHargaSupplierDetail.Text = daftarPOProduksiBahanBakuDetail.Sum(item => item.Jumlah * item.HargaSupplier).ToFormatHarga(); LabelSubtotalDetail.Text = daftarPOProduksiBahanBakuDetail.Sum(item => item.SubtotalHPP + item.SubtotalHargaSupplier).ToFormatHarga(); #endregion #region Kategori RepeaterKategori.DataSource = daftarPOProduksiBahanBakuDetail.GroupBy(item => new { Kategori = item.TBBahanBaku.TBRelasiBahanBakuKategoriBahanBakus.Count > 0 ? item.TBBahanBaku.TBRelasiBahanBakuKategoriBahanBakus.FirstOrDefault().TBKategoriBahanBaku.Nama : "" }) .Select(item => new { item.Key.Kategori, Jumlah = item.Sum(data => data.Jumlah).ToFormatHarga(), Subtotal = item.Sum(data => data.SubtotalHPP + data.SubtotalHargaSupplier).ToFormatHarga() }); RepeaterKategori.DataBind(); #endregion #region //RepeaterPenerimaan.DataSource = daftarPenerimaanPOProduksiBahanBakuDetail.GroupBy(item => new //{ // item.TBBahanBaku, // item.TBSatuan //}).Select(item => new //{ // BahanBaku = item.Key.TBBahanBaku.Nama, // Satuan = item.Key.TBSatuan.Nama, // Kategori = StokBahanBaku_Class.GabungkanSemuaKategoriBahanBaku(db, null, item.Key.TBBahanBaku), // Diterima = item.Sum(data => data.Diterima).ToFormatHarga(), // Subtotal = item.FirstOrDefault().TBPenerimaanPOProduksiBahanBaku.TBPOProduksiBahanBaku.EnumJenisProduksi != (int)PilihanEnumJenisProduksi.ProduksiSendiri ? item.Sum(data => data.SubtotalHargaSupplier).ToFormatHarga() : item.Sum(data => data.SubtotalHPP).ToFormatHarga() //}); //RepeaterPenerimaan.DataBind(); RepeaterPenerimaan.DataSource = daftarPenerimaanPOProduksiBahanBakuDetail.GroupBy(item => new { Kategori = StokBahanBaku_Class.GabungkanSemuaKategoriBahanBaku(db, null, item.TBBahanBaku) }).Select(item => new { Kategori = item.Key.Kategori, Diterima = item.Sum(data => data.Diterima).ToFormatHarga(), Subtotal = item.FirstOrDefault().TBPenerimaanPOProduksiBahanBaku.TBPOProduksiBahanBaku.EnumJenisProduksi != (int)PilihanEnumJenisProduksi.ProduksiSendiri ? item.Sum(data => data.SubtotalHargaSupplier).ToFormatHarga() : item.Sum(data => data.SubtotalHPP).ToFormatHarga() }).OrderBy(item => item.Kategori); RepeaterPenerimaan.DataBind(); #endregion #region Jatuh Tempo decimal batas = db.TBStoreKonfigurasis.FirstOrDefault(item => item.IDStoreKonfigurasi == (int)EnumStoreKonfigurasi.JumlahHariSebelumJatuhTempo).Pengaturan.ToDecimal(); LabelPanelSetengahJatuhTempo.Text = "1-" + Math.Floor(batas / 2).ToFormatHargaBulat() + " Hari"; LabelPanelJatuhTempo.Text = Math.Floor(batas / 2).ToFormatHargaBulat() + "-" + batas.ToFormatHargaBulat() + " Hari"; var daftarJatuhTempo = daftarPOProduksiBahanBaku .Where(item => item.EnumJenisProduksi != (int)PilihanEnumJenisProduksi.ProduksiSendiri && ((int)((item.TanggalJatuhTempo.Value.Date - DateTime.Now.Date).TotalDays) < batas)) .Select(item => new { ClassWarna = Warna((int)((item.TanggalJatuhTempo.Value.Date - DateTime.Now.Date).TotalDays), batas), Pengguna = item.TBPengguna.NamaLengkap, item.IDPOProduksiBahanBaku, item.TBSupplier.Nama, item.EnumJenisProduksi, item.Tanggal, item.TanggalJatuhTempo, Jarak = (item.TanggalJatuhTempo.Value.Date - DateTime.Now.Date).TotalDays }) .OrderBy(item => item.Jarak) .ToArray(); if (DropDownListJatuhTempo.SelectedValue == "0") { RepeaterPOBahanBakuJatuhTempoSatu.DataSource = daftarJatuhTempo.Where(item => item.ClassWarna == "danger"); RepeaterPOBahanBakuJatuhTempoSatu.DataBind(); RepeaterPOBahanBakuJatuhTempoDua.DataSource = daftarJatuhTempo.Where(item => item.ClassWarna == "warning"); RepeaterPOBahanBakuJatuhTempoDua.DataBind(); RepeaterPOBahanBakuJatuhTempoTiga.DataSource = daftarJatuhTempo.Where(item => item.ClassWarna == string.Empty); RepeaterPOBahanBakuJatuhTempoTiga.DataBind(); } else { RepeaterPOBahanBakuJatuhTempoSatu.DataSource = daftarJatuhTempo.Where(item => item.ClassWarna == "danger" && item.EnumJenisProduksi == DropDownListJatuhTempo.SelectedValue.ToInt()); RepeaterPOBahanBakuJatuhTempoSatu.DataBind(); RepeaterPOBahanBakuJatuhTempoDua.DataSource = daftarJatuhTempo.Where(item => item.ClassWarna == "warning" && item.EnumJenisProduksi == DropDownListJatuhTempo.SelectedValue.ToInt()); RepeaterPOBahanBakuJatuhTempoDua.DataBind(); RepeaterPOBahanBakuJatuhTempoTiga.DataSource = daftarJatuhTempo.Where(item => item.ClassWarna == string.Empty && item.EnumJenisProduksi == DropDownListJatuhTempo.SelectedValue.ToInt()); RepeaterPOBahanBakuJatuhTempoTiga.DataBind(); } #endregion } }
protected void ButtonSimpan_Click(object sender, EventArgs e) { if (Page.IsValid) { //DateTime tanggalretur = DateTime.Parse(TextBoxTanggalRetur.Text + " " + DateTime.Now.ToString("HH:mm:ss tt")); peringatan.Visible = false; PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"]; List <StokBahanBaku_Model> ViewStateListDetail = (List <StokBahanBaku_Model>)ViewState["ViewStateListDetail"]; if (ViewStateListDetail.Count > 0) { string IDPOProduksiBahanBakuRetur = string.Empty; TBPOProduksiBahanBakuRetur POBahanBakuRetur = null; bool statusBerhasil = false; try { using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { db.Proc_InsertPOProduksiBahanBakuRetur(ref IDPOProduksiBahanBakuRetur, pengguna.IDTempat, DropDownListSupplier.SelectedValue.ToInt(), pengguna.IDPengguna, TextBoxTanggal.Text.ToDateTime().AddHours(DateTime.Now.Hour).AddMinutes(DateTime.Now.Minute)); POBahanBakuRetur = db.TBPOProduksiBahanBakuReturs.FirstOrDefault(item => item.IDPOProduksiBahanBakuRetur == IDPOProduksiBahanBakuRetur); POBahanBakuRetur.IDPenerimaanPOProduksiBahanBaku = DropDownListPenerimaan.SelectedValue != "0" ? DropDownListPenerimaan.SelectedValue : null; POBahanBakuRetur.TBPOProduksiBahanBakuReturDetails.AddRange(ViewStateListDetail.OrderBy(item => item.BahanBaku).Select(item => new TBPOProduksiBahanBakuReturDetail { TBStokBahanBaku = db.TBStokBahanBakus.FirstOrDefault(item2 => item2.IDStokBahanBaku == item.IDStokBahanBaku), IDSatuan = item.IDSatuan, HargaBeli = item.HargaBeli, HargaRetur = item.HargaSupplier, Jumlah = item.Jumlah })); POBahanBakuRetur.Grandtotal = POBahanBakuRetur.TBPOProduksiBahanBakuReturDetails.Sum(item => item.Jumlah * item.HargaRetur); POBahanBakuRetur.EnumStatusRetur = (int)EnumStatusPORetur.Baru; POBahanBakuRetur.Keterangan = TextBoxKeterangan.Text; foreach (var item in POBahanBakuRetur.TBPOProduksiBahanBakuReturDetails) { StokBahanBaku_Class.UpdateBertambahBerkurang( db: db, tanggal: DateTime.Now, idPengguna: pengguna.IDPengguna, stokBahanBaku: item.TBStokBahanBaku, jumlahStok: item.Jumlah.Value, hargaBeli: item.HargaBeli.Value, satuanBesar: true, enumJenisPerpindahanStok: EnumJenisPerpindahanStok.ReturKeTempatProduksi, keterangan: "(" + item.TBStokBahanBaku.TBBahanBaku.Nama + ") Retur PO #" + IDPOProduksiBahanBakuRetur); } db.SubmitChanges(); statusBerhasil = true; } } catch (Exception ex) { if (statusBerhasil != true) { using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { POBahanBakuRetur = db.TBPOProduksiBahanBakuReturs.FirstOrDefault(item => item.IDPOProduksiBahanBakuRetur == IDPOProduksiBahanBakuRetur); if (POBahanBakuRetur != null) { db.TBPOProduksiBahanBakuReturDetails.DeleteAllOnSubmit(POBahanBakuRetur.TBPOProduksiBahanBakuReturDetails); db.TBPOProduksiBahanBakuReturs.DeleteOnSubmit(POBahanBakuRetur); db.SubmitChanges(); IDPOProduksiBahanBakuRetur = string.Empty; } } } LogError_Class LogError = new LogError_Class(ex, "Retur PO 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"); } } } else { LabelPeringatan.Text = "Tidak ada Bahan Baku yang dipilih"; peringatan.Visible = true; } } }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { PenggunaLogin Pengguna = (PenggunaLogin)Session["PenggunaLogin"]; using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { Tempat_Class ClassTempat = new Tempat_Class(db); #region Default DropDownListJenisStok.Items.Insert(0, new ListItem { Value = "0", Text = "Semua" }); DropDownListJenisStok.Items.Insert(1, new ListItem { Value = "1", Text = "Ada Stok", Selected = true }); DropDownListJenisStok.Items.Insert(2, new ListItem { Value = "2", Text = "Tidak Ada Stok" }); DropDownListJenisStok.Items.Insert(3, new ListItem { Value = "3", Text = "Minus" }); DropDownListCariKategori.DataSource = db.TBKategoriBahanBakus.ToArray(); DropDownListCariKategori.DataTextField = "Nama"; DropDownListCariKategori.DataValueField = "IDKategoriBahanBaku"; DropDownListCariKategori.DataBind(); DropDownListCariKategori.Items.Insert(0, new ListItem { Value = "0", Text = "- Semua -" }); DropDownListCariSatuan.DataSource = db.TBSatuans.ToArray(); DropDownListCariSatuan.DataTextField = "Nama"; DropDownListCariSatuan.DataValueField = "IDSatuan"; DropDownListCariSatuan.DataBind(); DropDownListCariSatuan.Items.Insert(0, new ListItem { Value = "0", Text = "- Semua -" }); var ListTempat = ClassTempat.Data(); DropDownListTempatPengirim.DataSource = ListTempat; DropDownListTempatPengirim.DataTextField = "Nama"; DropDownListTempatPengirim.DataValueField = "IDTempat"; DropDownListTempatPengirim.DataBind(); DropDownListTempatPengirim.Items.Insert(0, new ListItem { Text = "- Lokasi -", Value = "0" }); DropDownListTempatPengirim.SelectedValue = Pengguna.IDTempat.ToString(); DropDownListTempatPenerima.DataSource = ListTempat.Where(item => item.IDTempat != Pengguna.IDTempat); DropDownListTempatPenerima.DataTextField = "Nama"; DropDownListTempatPenerima.DataValueField = "IDTempat"; DropDownListTempatPenerima.DataBind(); TextBoxTanggalKirim.Text = DateTime.Now.ToString("d MMMM yyyy HH:mm"); #endregion var DataTransferBahanBaku = db.TBTransferBahanBakus .FirstOrDefault(item => item.IDTransferBahanBaku == Request.QueryString["id"]); if (DataTransferBahanBaku != null) { //DATA TRANSFER BAHAN BAKU DITEMUKAN if (DataTransferBahanBaku.EnumJenisTransfer == (int)PilihanJenisTransfer.TransferBatal || DataTransferBahanBaku.EnumJenisTransfer == (int)PilihanJenisTransfer.TransferProses || DataTransferBahanBaku.EnumJenisTransfer == (int)PilihanJenisTransfer.TransferSelesai) { //TRANSFER BATAL MAKA COPY TRANSFER BAHAN BAKU LAMA KE TRANSFER BAHAN BAKU BARU TextBoxTanggalKirim.Text = DateTime.Now.ToString("d MMMM yyyy HH:mm"); DropDownListTempatPenerima.SelectedValue = DataTransferBahanBaku.IDTempatPenerima.ToString(); TextBoxKeterangan.Text = "Referensi Transfer #" + DataTransferBahanBaku.IDTransferBahanBaku + " - " + DataTransferBahanBaku.Keterangan; #region MEMBUAT TRANSFER BAHAN BAKU BARU TransferBahanBaku_Class TransferBahanBaku = new TransferBahanBaku_Class(); var TransferBahanBakuBaru = TransferBahanBaku.Tambah(db, Pengguna.IDPengguna, DropDownListTempatPengirim.SelectedValue.ToInt(), DropDownListTempatPenerima.SelectedValue.ToInt(), TextBoxKeterangan.Text); LabelIDTransferBahanBaku.Text = TransferBahanBakuBaru.IDTransferBahanBaku; #endregion Dictionary <int, decimal> ListStokBahanBakuHabis = new Dictionary <int, decimal>(); TBStokBahanBaku[] daftarStokBahanBaku = db.TBStokBahanBakus.Where(item => item.IDTempat == DropDownListTempatPengirim.SelectedValue.ToInt()).ToArray(); //COPY DETAIL TRANSFER LAMA KE DETAIL TRANSFER BARU foreach (var item in DataTransferBahanBaku.TBTransferBahanBakuDetails.ToArray()) { //PENCARIAN STOK BAHAN BAKU var stokBahanBaku = daftarStokBahanBaku.FirstOrDefault(data => data.IDBahanBaku == item.IDBahanBaku); if (item.Jumlah <= (stokBahanBaku.Jumlah / stokBahanBaku.TBBahanBaku.Konversi)) { //JIKA JUMLAH PERMINTAAN LEBIH KECIL ATAU SAMA DENGAN JUMLAH STOK StokBahanBaku_Class.UpdateBertambahBerkurang(db, DateTime.Now, Pengguna.IDPengguna, stokBahanBaku, item.Jumlah, item.HargaBeli, true, EnumJenisPerpindahanStok.TransferStokKeluar, "Transfer #" + LabelIDTransferBahanBaku.Text); //MENAMBAHKAN DI DETAIL TRANSFER TransferBahanBakuBaru.TBTransferBahanBakuDetails.Add(new TBTransferBahanBakuDetail { //IDTRANSFERPBAHANBAKUDETAIL //IDTRANSFERBAHANBAKU IDBahanBaku = item.IDBahanBaku, IDSatuan = item.TBBahanBaku.IDSatuanKonversi, HargaBeli = (stokBahanBaku.HargaBeli.Value * stokBahanBaku.TBBahanBaku.Konversi.Value), Jumlah = item.Jumlah //SUBTOTALHARGABELI }); } else //MENCATAT STOK BAHAN BAKU YANG HABIS { ListStokBahanBakuHabis.Add(stokBahanBaku.IDBahanBaku.Value, item.Jumlah); } } //UPDATE DATA TRANSFERBAHANBAKU TransferBahanBakuBaru.TanggalUpdate = DateTime.Now; TransferBahanBakuBaru.TotalJumlah = TransferBahanBakuBaru.TBTransferBahanBakuDetails.Sum(item2 => item2.Jumlah); TransferBahanBakuBaru.GrandTotal = TransferBahanBakuBaru.TBTransferBahanBakuDetails.Sum(item2 => item2.Jumlah * item2.HargaBeli); db.SubmitChanges(); LoadDataTransferBahanBaku(); //RESET LITERAL WARNING LiteralWarning.Text = ""; if (ListStokBahanBakuHabis.Count > 0) { #region LIST STOK HABIS ADA MAKA MENAMPILKAN STOK APA SAJA YANG HABIS var DataStokBahanBaku = db.TBStokBahanBakus .AsEnumerable() .Where(item => item.IDTempat == Pengguna.IDTempat && ListStokBahanBakuHabis.ContainsKey(item.IDBahanBaku.Value)) .Select(item => new { IDBahanBaku = item.TBBahanBaku.IDBahanBaku, BahanBaku = item.TBBahanBaku.Nama, Kode = item.TBBahanBaku.KodeBahanBaku, IDSatuanKecil = item.TBBahanBaku.IDSatuan, SatuanKecil = item.TBBahanBaku.TBSatuan.Nama, Konversi = item.TBBahanBaku.Konversi, IDSatuanBesar = item.TBBahanBaku.IDSatuanKonversi, SatuanBesar = item.TBBahanBaku.TBSatuan1.Nama, IDKategori = item.TBBahanBaku.TBRelasiBahanBakuKategoriBahanBakus.Count > 0 ? item.TBBahanBaku.TBRelasiBahanBakuKategoriBahanBakus.FirstOrDefault().IDKategoriBahanBaku : 0, Kategori = item.TBBahanBaku.TBRelasiBahanBakuKategoriBahanBakus.Count > 0 ? item.TBBahanBaku.TBRelasiBahanBakuKategoriBahanBakus.FirstOrDefault().TBKategoriBahanBaku.Nama : "", IDStokBahanBaku = item.IDStokBahanBaku, Jumlah = (item.Jumlah / item.TBBahanBaku.Konversi), HargaBeli = (item.HargaBeli * item.TBBahanBaku.Konversi) }).OrderBy(item => item.BahanBaku).ToArray(); RepeaterStokBahanBaku.DataSource = DataStokBahanBaku; RepeaterStokBahanBaku.DataBind(); #endregion #region MENGISI TEXTBOX DENGAN JUMLAH PERMINTAAN foreach (RepeaterItem item in RepeaterStokBahanBaku.Items) { Label LabelIDBahanBaku = (Label)item.FindControl("LabelIDBahanBaku"); TextBox TextBoxJumlahTransfer = (TextBox)item.FindControl("TextBoxJumlahTransfer"); HtmlTableRow panelStok = (HtmlTableRow)item.FindControl("panelStok"); if (ListStokBahanBakuHabis.ContainsKey(LabelIDBahanBaku.Text.ToInt())) { TextBoxJumlahTransfer.Text = ListStokBahanBakuHabis[LabelIDBahanBaku.Text.ToInt()].ToFormatHarga(); panelStok.Attributes.Add("class", "danger"); } } #endregion LiteralWarning.Text = Alert_Class.Pesan(TipeAlert.Danger, "Stok tidak cukup, silahkan cek kembali"); MultiViewTransferBahanBaku.ActiveViewIndex = 0; } else { //JIKA STOK BAHAN BAKU TIDAK HABIS LoadDataStokBahanBaku(); MultiViewTransferBahanBaku.ActiveViewIndex = 1; } } else { //TRANSFER BAHAN BAKU : PENDING LabelIDTransferBahanBaku.Text = DataTransferBahanBaku.IDTransferBahanBaku; LoadDataTransferBahanBaku(); MultiViewTransferBahanBaku.ActiveViewIndex = 1; } } else { //TRANSFER BAHAN BAKU TIDAK DITEMUKAN MEMBUAT TRANSFER BARU MultiViewTransferBahanBaku.ActiveViewIndex = 0; LoadDataStokBahanBaku(); } } } else { LiteralWarning.Text = ""; } }
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; }
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; }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"]; TBStore store = db.TBStores.FirstOrDefault(); LabelNamaStore.Text = store.Nama; LabelAlamatStore.Text = store.Alamat; TBProyeksi proyeksi = db.TBProyeksis.FirstOrDefault(item => item.IDProyeksi == Request.QueryString["id"]); LabelIDProyeksi.Text = proyeksi.IDProyeksi; LabelPegawai.Text = proyeksi.TBPengguna.NamaLengkap; LabelTempat.Text = proyeksi.TBTempat.Nama; LabelTanggalProyeksi.Text = proyeksi.TanggalProyeksi.ToFormatTanggal(); LabelTanggalTarget.Text = proyeksi.TanggalTarget.ToFormatTanggal(); LabelStatusProyeksi.Text = Pengaturan.StatusProyeksi(proyeksi.EnumStatusProyeksi.Value); var varian = proyeksi.TBProyeksiDetails.Select(item => new { item.TBKombinasiProduk.IDAtributProduk, item.TBKombinasiProduk.TBAtributProduk.Nama }).OrderBy(item => item.Nama).Distinct(); RepeaterVarian.DataSource = varian; RepeaterVarian.DataBind(); KolomVarian.Attributes.Add("colspan", varian.Count().ToString()); #region Produk RepeaterDetail.DataSource = proyeksi.TBProyeksiDetails.GroupBy(item => new { item.TBKombinasiProduk.TBProduk }).Select(item => new { PemilikProduk = item.Key.TBProduk.TBPemilikProduk.Nama, Kategori = StokProduk_Class.GabungkanSemuaKategoriProduk(null, null, item.FirstOrDefault().TBKombinasiProduk), Produk = item.Key.TBProduk.Nama, Warna = item.Key.TBProduk.TBWarna.Nama, AtributProduk = varian.Select(data => new { Jumlah = item.FirstOrDefault(x => x.TBKombinasiProduk.IDAtributProduk == data.IDAtributProduk) != null ? item.FirstOrDefault(x => x.TBKombinasiProduk.IDAtributProduk == data.IDAtributProduk).Jumlah : 0 }), Total = item.Sum(x => x.Jumlah) }).ToArray(); RepeaterDetail.DataBind(); #endregion if (proyeksi.TBProyeksiKomposisis.Count == 0) { PanelKomposisi.Visible = false; RepeaterKomposisi.DataSource = null; RepeaterKomposisi.DataBind(); RepeaterBahanBakuDasar.DataSource = null; RepeaterBahanBakuDasar.DataBind(); } else { PanelKomposisi.Visible = true; #region Komposisi RepeaterKomposisi.DataSource = proyeksi.TBProyeksiKomposisis.Where(item => item.LevelProduksi > 1).GroupBy(item => new { item.LevelProduksi }) .Select(item => new { item.Key, SubData = proyeksi.TBProyeksiKomposisis.Where(data => data.LevelProduksi == item.Key.LevelProduksi && data.BahanBakuDasar == false).Select(data => new { data.IDBahanBaku, data.IDSatuan, BahanBaku = data.TBBahanBaku.Nama, Kategori = StokBahanBaku_Class.GabungkanSemuaKategoriBahanBaku(null, null, data.TBBahanBaku), Satuan = data.TBSatuan.Nama, data.Jumlah }).OrderBy(data => data.BahanBaku) }).OrderBy(item => item.Key.LevelProduksi); RepeaterKomposisi.DataBind(); #endregion #region Komposisi Dasar RepeaterBahanBakuDasar.DataSource = proyeksi.TBProyeksiKomposisis.Where(data => data.BahanBakuDasar == true).Select(data => new { data.IDBahanBaku, data.IDSatuan, BahanBaku = data.TBBahanBaku.Nama, Kategori = StokBahanBaku_Class.GabungkanSemuaKategoriBahanBaku(null, null, data.TBBahanBaku), Satuan = data.TBSatuan.Nama, data.Jumlah, data.Stok, data.Kurang }).OrderBy(data => data.BahanBaku); RepeaterBahanBakuDasar.DataBind(); #endregion } LabelKeterangan.Text = proyeksi.Keterangan != null ? proyeksi.Keterangan : string.Empty; } } }
private void LoadData() { using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { Laporan_Class Laporan_Class = new Laporan_Class(db, (PenggunaLogin)Session["PenggunaLogin"], DateTime.Now, DateTime.Now, false); Dictionary <string, dynamic> Result = new Dictionary <string, dynamic>(); string tempPencarian = string.Empty; var ListStokBahanBaku = db.TBStokBahanBakus.Where(item => item.IDTempat == DropDownListTempat.SelectedValue.ToInt()).Select(item => new { item.IDBahanBaku, Kode = item.TBBahanBaku.KodeBahanBaku, BahanBaku = item.TBBahanBaku.Nama, Satuan = item.TBBahanBaku.TBSatuan1.Nama, RelasiKategori = item.TBBahanBaku.TBRelasiBahanBakuKategoriBahanBakus.ToArray(), Kategori = StokBahanBaku_Class.GabungkanSemuaKategoriBahanBaku(db, item, null), Jumlah = item.Jumlah / item.TBBahanBaku.Konversi, item.TBBahanBaku.IDSatuanKonversi, DropDownSatuan = CariSatuan(item.TBBahanBaku) }).OrderBy(item => item.BahanBaku).ToArray(); switch (DropDownListJenisStok.Text.ToInt()) { case 1: ListStokBahanBaku = ListStokBahanBaku.Where(item => item.Jumlah > 0).ToArray(); break; case 2: ListStokBahanBaku = ListStokBahanBaku.Where(item => item.Jumlah == 0).ToArray(); break; case 3: ListStokBahanBaku = ListStokBahanBaku.Where(item => item.Jumlah < 0).ToArray(); break; } tempPencarian += "?IDTempat=" + DropDownListTempat.SelectedValue.ToInt(); tempPencarian += "&JenisStokProduk=" + DropDownListJenisStok.Text.ToInt(); if (!string.IsNullOrWhiteSpace(TextBoxBahanBaku.Text)) { ListStokBahanBaku = ListStokBahanBaku.Where(item => item.BahanBaku.ToLower().Contains(TextBoxBahanBaku.Text.ToLower())).ToArray(); } tempPencarian += "&BahanBaku=" + TextBoxBahanBaku.Text; if (DropDownListSatuan.SelectedValue.ToInt() != 0) { ListStokBahanBaku = ListStokBahanBaku.Where(item => item.IDSatuanKonversi == DropDownListSatuan.SelectedValue.ToInt()).ToArray(); } tempPencarian += "&IDSatuan=" + DropDownListSatuan.SelectedValue.ToInt(); tempPencarian += "&SatuanBesar=true"; if (DropDownListKategori.SelectedValue.ToInt() != 0) { ListStokBahanBaku = ListStokBahanBaku.Where(item => item.RelasiKategori.FirstOrDefault(data => data.IDKategoriBahanBaku == DropDownListKategori.SelectedValue.ToInt()) != null).ToArray(); } tempPencarian += "&IDKategori=" + DropDownListKategori.SelectedValue.ToInt(); if (!string.IsNullOrWhiteSpace(TextBoxKodeBahanBaku.Text)) { ListStokBahanBaku = ListStokBahanBaku.Where(item => item.Kode.ToLower().Contains(TextBoxKodeBahanBaku.Text.ToLower())).ToArray(); } tempPencarian += "&Kode=" + TextBoxKodeBahanBaku.Text; if (!string.IsNullOrWhiteSpace(TextBoxQuantity.Text)) { if (TextBoxQuantity.Text.Contains("-")) { string[] Range = TextBoxQuantity.Text.Split('-'); ListStokBahanBaku = ListStokBahanBaku.Where(item => item.Jumlah >= Range[0].ToDecimal() && item.Jumlah <= Range[1].ToDecimal()).OrderBy(item => item.Jumlah).ToArray(); } else { ListStokBahanBaku = ListStokBahanBaku.Where(item => item.Jumlah == TextBoxQuantity.Text.ToDecimal()).ToArray(); } } tempPencarian += "&Quantity=" + TextBoxQuantity.Text; if (Request.QueryString["do"] == "opname") { Result.Add("Judul", "Stock Opname"); } else if (Request.QueryString["do"] == "waste") { Result.Add("Judul", "Pembuangan Bahan Baku Rusak"); } else if (Request.QueryString["do"] == "restock") { Result.Add("Judul", "Restock Bahan Baku"); } else if (Request.QueryString["do"] == "return") { Result.Add("Judul", "Retur ke Tempat Supplier"); } else { Result.Add("Judul", ""); } tempPencarian += "&do=" + Request.QueryString["do"]; Tempat_Class ClassTempat = new Tempat_Class(db); Result.Add("Data", ListStokBahanBaku); Result.Add("Tempat", ClassTempat.Cari(DropDownListTempat.SelectedValue.ToInt()).Nama); //PRINT LAPORAN ButtonPrint.OnClientClick = "return popitup('PengaturanPrint.aspx" + tempPencarian + "')"; RepeaterLaporan.DataSource = Result["Data"]; RepeaterLaporan.DataBind(); } }