Esempio n. 1
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"];

                TBPOProduksiProduk poProduksiProduk = db.TBPOProduksiProduks.FirstOrDefault(item => item.IDPOProduksiProduk == Request.QueryString["id"]);

                TextBoxIDProyeksi.Text         = poProduksiProduk.IDProyeksi != null ? poProduksiProduk.IDProyeksi : "-Tidak Ada Proyeksi-";
                TextBoxIDPOProduksiProduk.Text = poProduksiProduk.IDPOProduksiProduk;
                TextBoxPegawaiProses.Text      = pengguna.NamaLengkap;
                TextBoxTanggalProses.Text      = DateTime.Now.ToString("d MMMM yyyy");

                TBStokBahanBaku[] daftarStokBahanBaku = db.TBStokBahanBakus.Where(item => item.IDTempat == pengguna.IDTempat).ToArray();
                var komposisi = poProduksiProduk.TBPOProduksiProdukKomposisis.Where(item => item.Sisa > 0).Select(item => new
                {
                    item.IDBahanBaku,
                    BahanBaku  = item.TBBahanBaku.Nama,
                    SatuanPO   = item.TBSatuan.Nama,
                    Sisa       = item.Sisa.ToFormatHarga(),
                    Stok       = daftarStokBahanBaku.FirstOrDefault(data => data.IDBahanBaku == item.IDBahanBaku).Jumlah.Value.ToFormatHarga(),
                    SatuanStok = item.TBBahanBaku.TBSatuan.Nama
                }).OrderBy(item => item.BahanBaku);
                RepeaterKomposisi.DataSource = komposisi;  //poProduksiProduk.TBPOProduksiProdukKomposisis.OrderBy(item => item.TBBahanBaku.Nama).ToArray();
                RepeaterKomposisi.DataBind();

                if (komposisi.Count() == 0)
                {
                    ButtonSimpan.Visible = false;
                }
            }
        }
    }
Esempio n. 2
0
    protected void DropDownListIDPOProduksi_SelectedIndexChanged(object sender, EventArgs e)
    {
        using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
        {
            if (DropDownListIDPOProduksi.SelectedValue != "0")
            {
                PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"];

                TBPOProduksiProduk poProduksiProduk = db.TBPOProduksiProduks.FirstOrDefault(item => item.IDPOProduksiProduk == DropDownListIDPOProduksi.SelectedValue);

                var SisaDataDetailPOProduk = poProduksiProduk.TBPOProduksiProdukDetails.AsEnumerable()
                                             .Where(item => item.Sisa > 0)
                                             .Select(item => new
                {
                    item.IDKombinasiProduk,
                    Produk  = item.TBKombinasiProduk.TBProduk.Nama,
                    Atribut = item.TBKombinasiProduk.TBAtributProduk.Nama,
                    Sisa    = item.Sisa.ToFormatHargaBulat()
                });

                if (SisaDataDetailPOProduk.Count() == 0)
                {
                    ButtonTerima.Visible = false;
                }

                RepeaterDetail.DataSource = SisaDataDetailPOProduk;
                RepeaterDetail.DataBind();
            }
            else
            {
                RepeaterDetail.DataSource = null;
                RepeaterDetail.DataBind();
            }
        }
    }
Esempio n. 3
0
    protected void RepeaterDataPO_ItemCommand(object source, RepeaterCommandEventArgs e)
    {
        if (e.CommandName == "Hapus")
        {
            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                TBPOProduksiProduk poProduksiProduk = db.TBPOProduksiProduks.FirstOrDefault(item => item.IDPOProduksiProduk == e.CommandArgument.ToString());

                if (poProduksiProduk.IDProyeksi != null)
                {
                    foreach (var item in db.TBProyeksiDetails.Where(item => item.IDProyeksi == poProduksiProduk.IDProyeksi).OrderBy(data => data.TBKombinasiProduk.Nama).ToArray())
                    {
                        TBPOProduksiProdukDetail poProduksiProdukDetail = poProduksiProduk.TBPOProduksiProdukDetails.FirstOrDefault(data => data.IDKombinasiProduk == item.IDKombinasiProduk);
                        if (poProduksiProdukDetail != null)
                        {
                            item.Sisa = item.Sisa + poProduksiProdukDetail.Jumlah;
                        }
                    }
                }

                db.TBPOProduksiProdukBiayaTambahans.DeleteAllOnSubmit(poProduksiProduk.TBPOProduksiProdukBiayaTambahans);
                db.TBPOProduksiProdukKomposisis.DeleteAllOnSubmit(poProduksiProduk.TBPOProduksiProdukKomposisis);
                db.TBPOProduksiProdukDetails.DeleteAllOnSubmit(poProduksiProduk.TBPOProduksiProdukDetails);
                db.TBPOProduksiProduks.DeleteOnSubmit(poProduksiProduk);
                db.SubmitChanges();

                LoadDataPO(db);
            }
        }
    }
Esempio n. 4
0
    protected void DropDownListIDPOProduksi_SelectedIndexChanged(object sender, EventArgs e)
    {
        using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
        {
            ButtonSimpan.Enabled = false;

            if (DropDownListIDPOProduksi.SelectedValue != "0")
            {
                PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"];

                TBPOProduksiProduk poProduksiProduk = db.TBPOProduksiProduks.FirstOrDefault(item => item.IDPOProduksiProduk == DropDownListIDPOProduksi.SelectedValue);

                TextBoxStatusHPP.Text         = Pengaturan.StatusJenisHPP(poProduksiProduk.EnumJenisHPP.Value);
                TextBoxPegawaiPIC.Text        = poProduksiProduk.TBPengguna1.NamaLengkap;
                TextBoxPembuat.Text           = poProduksiProduk.TBPengguna.NamaLengkap + " / " + poProduksiProduk.Tanggal.ToFormatTanggal();
                TextBoxTanggalJatuhTempo.Text = poProduksiProduk.TanggalJatuhTempo.ToFormatTanggal();
                TextBoxTanggalPengiriman.Text = poProduksiProduk.TanggalPengiriman.ToFormatTanggal();

                RepeaterDetail.DataSource = poProduksiProduk.TBPOProduksiProdukDetails.ToArray();
                RepeaterDetail.DataBind();
                LabelTotalJumlah.Text   = poProduksiProduk.TotalJumlah.ToFormatHargaBulat();
                LabelTotalSubtotal.Text = poProduksiProduk.SubtotalTotalHargaVendor.ToFormatHarga();
                LabelTotalSisa.Text     = poProduksiProduk.TBPOProduksiProdukDetails.Sum(data => data.Sisa).ToFormatHargaBulat();

                TextBoxKeterangan.Text    = poProduksiProduk.Keterangan;
                TextBoxBiayaLainLain.Text = poProduksiProduk.BiayaLainLain.ToFormatHarga();
                TextBoxPotonganPO.Text    = poProduksiProduk.PotonganPOProduksiProduk.ToFormatHarga();
                LabelTax.Text             = "Tax (" + (poProduksiProduk.PersentaseTax * 100).ToFormatHarga() + "%)";
                TextBoxTax.Text           = poProduksiProduk.Tax.ToFormatHarga();
                TextBoxGrandtotal.Text    = poProduksiProduk.Grandtotal.ToFormatHarga();

                ButtonSimpan.Enabled = true;
            }
            else
            {
                TextBoxStatusHPP.Text         = string.Empty;
                TextBoxPegawaiPIC.Text        = string.Empty;
                TextBoxPembuat.Text           = string.Empty;
                TextBoxTanggalJatuhTempo.Text = string.Empty;
                TextBoxTanggalPengiriman.Text = string.Empty;

                RepeaterDetail.DataSource = null;
                RepeaterDetail.DataBind();
                LabelTotalJumlah.Text   = "0";
                LabelTotalSubtotal.Text = "0";
                LabelTotalSisa.Text     = "0";

                TextBoxKeterangan.Text    = string.Empty;
                TextBoxBiayaLainLain.Text = "0";
                TextBoxPotonganPO.Text    = "0";
                LabelTax.Text             = "Tax (0%)";
                TextBoxTax.Text           = "0";
                TextBoxGrandtotal.Text    = "0";
            }
        }
    }
Esempio n. 5
0
    protected void ButtonSimpan_Click(object sender, EventArgs e)
    {
        peringatan.Visible = false;
        bool statusBerhasil = false;

        if (Page.IsValid)
        {
            PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"];

            try
            {
                if (TextBoxDownPayment.Text.ToDecimal() > 0)
                {
                    if (TextBoxDownPayment.Text.ToDecimal() <= TextBoxGrandtotal.Text.ToDecimal())
                    {
                        using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
                        {
                            TBPOProduksiProduk poProduksiProduk = db.TBPOProduksiProduks.FirstOrDefault(item => item.IDPOProduksiProduk == DropDownListIDPOProduksi.SelectedValue);
                            poProduksiProduk.IDPenggunaDP       = pengguna.IDPengguna;
                            poProduksiProduk.IDJenisPembayaran  = DropDownListJenisPembayaran.SelectedValue.ToInt();
                            poProduksiProduk.TanggalDownPayment = TextBoxTanggal.Text.ToDateTime();
                            poProduksiProduk.DownPayment        = TextBoxDownPayment.Text.ToDecimal();

                            db.SubmitChanges();

                            statusBerhasil = true;
                        }
                    }
                    else
                    {
                        LabelPeringatan.Text = "Down Payment harus lebih kecil dari grandtotal";
                        peringatan.Visible   = true;
                    }
                }
                else
                {
                    LabelPeringatan.Text = "Down Payment harus lebih besar dari 0";
                    peringatan.Visible   = true;
                }
            }
            catch (Exception ex)
            {
                LogError_Class LogError = new LogError_Class(ex, "Down Payment 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");
                }
            }
        }
    }
Esempio n. 6
0
    protected void RepeaterPOProduksiDetail_ItemCommand(object source, RepeaterCommandEventArgs e)
    {
        MultiViewPerformance.SetActiveView(ViewPOProduksiDetail);

        using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
        {
            TBPOProduksiProduk poProduksiBProduk = db.TBPOProduksiProduks.FirstOrDefault(item => item.IDPOProduksiProduk == e.CommandArgument.ToString());

            TextBoxIDProyeksi.Text            = poProduksiBProduk.IDProyeksi != null ? poProduksiBProduk.IDProyeksi : "-Tidak Ada Proyeksi-";
            TextBoxIDPOProduksiBahanBaku.Text = poProduksiBProduk.IDPOProduksiProduk;
            TextBoxStatusHPP.Text             = Pengaturan.StatusJenisHPP(poProduksiBProduk.EnumJenisHPP.Value);
            TextBoxPegawaiPIC.Text            = poProduksiBProduk.TBPengguna1.NamaLengkap;
            TextBoxTanggalJatuhTempo.Text     = poProduksiBProduk.TanggalJatuhTempo != null?poProduksiBProduk.TanggalJatuhTempo.ToFormatTanggal() : string.Empty;

            TextBoxTanggalPengiriman.Text = poProduksiBProduk.TanggalPengiriman.ToFormatTanggal();
            TextBoxTanggalJatuhTempo.Text = poProduksiBProduk.TanggalJatuhTempo != null?poProduksiBProduk.TanggalJatuhTempo.ToFormatTanggal() : string.Empty;

            TextBoxTanggalPengiriman.Text = poProduksiBProduk.TanggalPengiriman.ToFormatTanggal();
            TextBoxPegawai.Text           = poProduksiBProduk.TBPengguna.NamaLengkap + " / " + poProduksiBProduk.Tanggal.ToFormatTanggal();

            if (poProduksiBProduk.EnumJenisProduksi != (int)PilihanEnumJenisProduksi.ProduksiSendiri)
            {
                TextBoxVendorTempat.Text = poProduksiBProduk.TBVendor.Nama;
                TextBoxEmail.Text        = poProduksiBProduk.TBVendor.Email;
                TextBoxAlamat.Text       = poProduksiBProduk.TBVendor.Alamat;
                TextBoxTelepon1.Text     = poProduksiBProduk.TBVendor.Telepon1;
                TextBoxTelepon2.Text     = poProduksiBProduk.TBVendor.Telepon2;
            }
            else
            {
                TextBoxVendorTempat.Text = poProduksiBProduk.TBTempat.Nama;
                TextBoxEmail.Text        = poProduksiBProduk.TBTempat.Email;
                TextBoxAlamat.Text       = poProduksiBProduk.TBTempat.Alamat;
                TextBoxTelepon1.Text     = poProduksiBProduk.TBTempat.Telepon1;
                TextBoxTelepon2.Text     = poProduksiBProduk.TBTempat.Telepon2;
            }

            DetailProduk.Visible = true;
            RepeaterPOProduksiProdukDetail.DataSource = poProduksiBProduk.TBPOProduksiProdukDetails.Select(item => new
            {
                item.TBKombinasiProduk.KodeKombinasiProduk,
                Produk        = item.TBKombinasiProduk.TBProduk.Nama,
                AtributProduk = item.TBKombinasiProduk.TBAtributProduk.Nama,
                Kategori      = StokProduk_Class.GabungkanSemuaKategoriProduk(db, null, item.TBKombinasiProduk),
                Harga         = poProduksiBProduk.EnumJenisProduksi == (int)PilihanEnumJenisProduksi.ProduksiSendiri ? item.TotalHPP : item.TotalHargaVendor,
                item.Jumlah,
                Datang = item.Jumlah - item.Sisa,
                item.Sisa
            });
            RepeaterPOProduksiProdukDetail.DataBind();

            ButtonKembali.Visible           = false;
            ButtonKembaliPOProduksi.Visible = true;
        }
    }
Esempio n. 7
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                TBPOProduksiProduk poProduksiProduk = db.TBPOProduksiProduks.FirstOrDefault(item => item.IDPOProduksiProduk == Request.QueryString["id"]);

                TextBoxIDProyeksi.Text         = poProduksiProduk.IDProyeksi != null ? poProduksiProduk.IDProyeksi : "-Tidak Ada Proyeksi-";
                TextBoxIDPOProduksiProduk.Text = poProduksiProduk.IDPOProduksiProduk;
                TextBoxStatusHPP.Text          = Pengaturan.StatusJenisHPP(poProduksiProduk.EnumJenisHPP.Value);
                TextBoxPegawaiPIC.Text         = poProduksiProduk.TBPengguna1.NamaLengkap;
                TextBoxPembuat.Text            = poProduksiProduk.TBPengguna.NamaLengkap + " / " + poProduksiProduk.Tanggal.ToFormatTanggal();
                TextBoxKeterangan.Text         = poProduksiProduk.Keterangan;

                RepeaterDetail.DataSource = poProduksiProduk.TBPOProduksiProdukDetails.ToArray();
                RepeaterDetail.DataBind();
                LabelTotalJumlah.Text   = poProduksiProduk.TotalJumlah.ToFormatHargaBulat();
                LabelTotalSubtotal.Text = poProduksiProduk.SubtotalTotalHargaVendor.ToFormatHarga();
                LabelTotalSisa.Text     = poProduksiProduk.TBPOProduksiProdukDetails.Sum(data => data.Sisa).ToFormatHargaBulat();

                RepeaterKomposisi.DataSource = poProduksiProduk.TBPOProduksiProdukKomposisis.OrderBy(item => item.TBBahanBaku.Nama).ToArray();
                RepeaterKomposisi.DataBind();
                LabelTotalSubtotalKomposisi.Text = poProduksiProduk.TBPOProduksiProdukKomposisis.Sum(item => item.Subtotal).ToFormatHarga();

                RepeaterBiayaTambahan.DataSource = poProduksiProduk.TBPOProduksiProdukBiayaTambahans.OrderBy(item => item.TBJenisBiayaProduksi.Nama).ToArray();
                RepeaterBiayaTambahan.DataBind();
                LabelTotalSubtotalBiayaTambahan.Text = poProduksiProduk.TBPOProduksiProdukBiayaTambahans.Sum(item => item.Nominal).ToFormatHarga();

                RepeaterPengiriman.DataSource = db.TBPengirimanPOProduksiProduks.Where(item => item.IDPOProduksiProduk == Request.QueryString["id"]).Select(item => new
                {
                    item.IDPengirimanPOProduksiProduk,
                    item.Tanggal,
                    Pegawai = item.TBPengguna.NamaLengkap,
                    Cetak   = "return popitup('../CetakPengiriman.aspx?id=" + item.IDPengirimanPOProduksiProduk + "')"
                }).ToArray();
                RepeaterPengiriman.DataBind();

                RepeaterPenerimaan.DataSource = db.TBPenerimaanPOProduksiProduks.Where(item => item.IDPOProduksiProduk == Request.QueryString["id"]).Select(item => new
                {
                    item.IDPenerimaanPOProduksiProduk,
                    item.TanggalDatang,
                    Pegawai = item.TBPengguna.NamaLengkap,
                    Cetak   = "return popitup('../CetakPenerimaan.aspx?id=" + item.IDPenerimaanPOProduksiProduk + "')"
                });
                RepeaterPenerimaan.DataBind();

                if (poProduksiProduk.TBPenerimaanPOProduksiProduks.Count > 0 || poProduksiProduk.TBPengirimanPOProduksiProduks.Count > 0)
                {
                    ButtonEdit.Visible = false;
                }
            }
        }
    }
Esempio n. 8
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                TBPOProduksiProduk poProduksiProduk = db.TBPOProduksiProduks.FirstOrDefault(item => item.IDPOProduksiProduk == Request.QueryString["id"]);

                TextBoxIDProyeksi.Text         = poProduksiProduk.IDProyeksi != null ? poProduksiProduk.IDProyeksi : "-Tidak Ada Proyeksi-";
                TextBoxIDPOProduksiProduk.Text = poProduksiProduk.IDPOProduksiProduk;
                TextBoxStatusHPP.Text          = Pengaturan.StatusJenisHPP(poProduksiProduk.EnumJenisHPP.Value);
                TextBoxPegawaiPIC.Text         = poProduksiProduk.TBPengguna1.NamaLengkap;
                TextBoxPembuat.Text            = poProduksiProduk.TBPengguna.NamaLengkap + " / " + poProduksiProduk.Tanggal.ToFormatTanggal();
                TextBoxTanggalJatuhTempo.Text  = poProduksiProduk.TanggalJatuhTempo.ToFormatTanggal();
                TextBoxTanggalPengiriman.Text  = poProduksiProduk.TanggalPengiriman.ToFormatTanggal();

                TextBoxVendor.Text   = poProduksiProduk.TBVendor.Nama;
                TextBoxEmail.Text    = poProduksiProduk.TBVendor.Email;
                TextBoxAlamat.Text   = poProduksiProduk.TBVendor.Alamat;
                TextBoxTelepon1.Text = poProduksiProduk.TBVendor.Telepon1;
                TextBoxTelepon2.Text = poProduksiProduk.TBVendor.Telepon2;

                RepeaterDetail.DataSource = poProduksiProduk.TBPOProduksiProdukDetails.ToArray();
                RepeaterDetail.DataBind();
                LabelTotalJumlah.Text   = poProduksiProduk.TotalJumlah.ToFormatHargaBulat();
                LabelTotalSubtotal.Text = poProduksiProduk.SubtotalTotalHargaVendor.ToFormatHarga();
                LabelTotalSisa.Text     = poProduksiProduk.TBPOProduksiProdukDetails.Sum(data => data.Sisa).ToFormatHargaBulat();

                TextBoxKeterangan.Text    = poProduksiProduk.Keterangan;
                TextBoxBiayaLainLain.Text = poProduksiProduk.BiayaLainLain.ToFormatHarga();
                TextBoxPotonganPO.Text    = poProduksiProduk.PotonganPOProduksiProduk.ToFormatHarga();
                LabelTax.Text             = "Tax (" + (poProduksiProduk.PersentaseTax * 100).ToFormatHarga() + "%)";
                TextBoxTax.Text           = poProduksiProduk.Tax.ToFormatHarga();
                TextBoxGrandtotal.Text    = poProduksiProduk.Grandtotal.ToFormatHarga();

                RepeaterPenerimaan.DataSource = db.TBPenerimaanPOProduksiProduks.Where(item => item.IDPOProduksiProduk == Request.QueryString["id"]).Select(item => new
                {
                    item.IDPenerimaanPOProduksiProduk,
                    item.TanggalDatang,
                    Pegawai = item.TBPengguna.NamaLengkap,
                    Cetak   = "return popitup('../CetakPenerimaan.aspx?id=" + item.IDPenerimaanPOProduksiProduk + "')"
                });
                RepeaterPenerimaan.DataBind();

                if (poProduksiProduk.TBPenerimaanPOProduksiProduks.Count > 0 || poProduksiProduk.TBPengirimanPOProduksiProduks.Count > 0)
                {
                    ButtonEdit.Visible = false;
                }
            }
        }
    }
Esempio n. 9
0
    protected void RepeaterDetail_ItemCreated(object sender, RepeaterItemEventArgs e)
    {
        using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
        {
            TBPOProduksiProduk poProduksiProduk = db.TBPOProduksiProduks.FirstOrDefault(item => item.IDPOProduksiProduk == Request.QueryString["id"]);

            if (poProduksiProduk.EnumJenisProduksi == (int)PilihanEnumJenisProduksi.ProduksiSendiri)
            {
                ((HtmlTableCell)(e.Item.FindControl("bodyHarga"))).Attributes.Add("class", "hidden");
                ((HtmlTableCell)(e.Item.FindControl("bodyPotongan"))).Attributes.Add("class", "hidden");
            }
            else
            {
                ((HtmlTableCell)(e.Item.FindControl("bodyKomposisi"))).Attributes.Add("class", "hidden");
                ((HtmlTableCell)(e.Item.FindControl("bodyBiaya"))).Attributes.Add("class", "hidden");
            }
        }
    }
Esempio n. 10
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                TBPOProduksiProduk poProduksiProduk = db.TBPOProduksiProduks.FirstOrDefault(item => item.IDPOProduksiProduk == Request.QueryString["id"]);

                TextBoxIDProyeksi.Text         = poProduksiProduk.IDProyeksi != null ? poProduksiProduk.IDProyeksi : "-Tidak Ada Proyeksi-";
                TextBoxIDPOProduksiProduk.Text = poProduksiProduk.IDPOProduksiProduk;
                TextBoxStatusHPP.Text          = Pengaturan.StatusJenisHPP(poProduksiProduk.EnumJenisHPP.Value);
                TextBoxPegawaiPIC.Text         = poProduksiProduk.TBPengguna1.NamaLengkap;
                TextBoxPembuat.Text            = poProduksiProduk.TBPengguna.NamaLengkap + " / " + poProduksiProduk.Tanggal.ToFormatTanggal();
                TextBoxTanggalJatuhTempo.Text  = poProduksiProduk.TanggalJatuhTempo.ToFormatTanggal();
                TextBoxTanggalPengiriman.Text  = poProduksiProduk.TanggalPengiriman.ToFormatTanggal();

                TextBoxVendor.Text   = poProduksiProduk.TBVendor.Nama;
                TextBoxEmail.Text    = poProduksiProduk.TBVendor.Email;
                TextBoxAlamat.Text   = poProduksiProduk.TBVendor.Alamat;
                TextBoxTelepon1.Text = poProduksiProduk.TBVendor.Telepon1;
                TextBoxTelepon2.Text = poProduksiProduk.TBVendor.Telepon2;

                RepeaterDetail.DataSource = poProduksiProduk.TBPOProduksiProdukDetails.ToArray();
                RepeaterDetail.DataBind();
                LabelTotalJumlah.Text   = poProduksiProduk.TotalJumlah.ToFormatHargaBulat();
                LabelTotalSubtotal.Text = poProduksiProduk.SubtotalTotalHargaVendor.ToFormatHarga();
                LabelTotalSisa.Text     = poProduksiProduk.TBPOProduksiProdukDetails.Sum(data => data.Sisa).ToFormatHargaBulat();

                TextBoxKeterangan.Text    = poProduksiProduk.Keterangan;
                TextBoxBiayaLainLain.Text = poProduksiProduk.BiayaLainLain.ToFormatHarga();
                TextBoxPotonganPO.Text    = poProduksiProduk.PotonganPOProduksiProduk.ToFormatHarga();
                LabelTax.Text             = "Tax (" + (poProduksiProduk.PersentaseTax * 100).ToFormatHarga() + "%)";
                TextBoxTax.Text           = poProduksiProduk.Tax.ToFormatHarga();
                TextBoxGrandtotal.Text    = poProduksiProduk.Grandtotal.ToFormatHarga();

                TextBoxPembayar.Text  = poProduksiProduk.IDPenggunaDP != null ? poProduksiProduk.TBPengguna2.NamaLengkap : string.Empty;
                TextBoxTanggalDP.Text = poProduksiProduk.TanggalDownPayment != null?poProduksiProduk.TanggalDownPayment.ToFormatTanggal() : string.Empty;

                TextBoxJenisPembayaran.Text = poProduksiProduk.IDJenisPembayaran != null ? poProduksiProduk.TBJenisPembayaran.Nama : string.Empty;
                TextBoxDownPayment.Text     = poProduksiProduk.DownPayment != null?poProduksiProduk.DownPayment.ToFormatHarga() : string.Empty;
            }
        }
    }
    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;

                TBPOProduksiProduk poProduksiProduk = db.TBPOProduksiProduks.FirstOrDefault(item => item.IDPOProduksiProduk == Request.QueryString["id"]);

                LabelJudul.Text = "(PRODUCT)";

                LabelNamaVendor.Text   = poProduksiProduk.IDVendor != null ? poProduksiProduk.TBVendor.Nama : string.Empty;
                LabelAlamatVendor.Text = poProduksiProduk.IDVendor != null ? poProduksiProduk.TBVendor.Alamat : string.Empty;

                LabelIDProyeksi.Text = poProduksiProduk.IDProyeksi;
                LabelIDProduksi.Text = poProduksiProduk.IDPOProduksiProduk;

                RepeaterDetail.DataSource = poProduksiProduk.TBPOProduksiProdukDetails.Select(item => new
                {
                    item.TBKombinasiProduk.KodeKombinasiProduk,
                    Produk        = item.TBKombinasiProduk.TBProduk.Nama,
                    AtributProduk = item.TBKombinasiProduk.TBAtributProduk.Nama,
                    Kategori      = StokProduk_Class.GabungkanSemuaKategoriProduk(db, null, item.TBKombinasiProduk),
                    item.Jumlah,
                    item.Sisa
                }).ToArray();
                RepeaterDetail.DataBind();
            }
        }
    }
Esempio n. 12
0
    private void LoadPOLama(DataClassesDatabaseDataContext db, string IDPOProduksiProduk)
    {
        PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"];

        TBPOProduksiProduk poProduksiProduk = db.TBPOProduksiProduks.FirstOrDefault(item => item.IDPOProduksiProduk == IDPOProduksiProduk);

        TextBoxIDProyeksi.Text = poProduksiProduk.IDProyeksi != null ? poProduksiProduk.IDProyeksi : string.Empty;
        TextBoxPegawai.Text    = pengguna.NamaLengkap;
        DropDownListPenggunaPIC.SelectedValue = poProduksiProduk.IDPenggunaPIC.ToString();
        TextBoxTanggal.Text           = poProduksiProduk.Tanggal.ToString("d MMMM yyyy");
        TextBoxTanggalJatuhTempo.Text = poProduksiProduk.TanggalJatuhTempo != null?poProduksiProduk.TanggalJatuhTempo.Value.ToString("d MMMM yyyy") : DateTime.Now.ToString("d MMMM yyyy");

        TextBoxTanggalPengiriman.Text = poProduksiProduk.TanggalPengiriman != null?poProduksiProduk.TanggalPengiriman.Value.ToString("d MMMM yyyy") : DateTime.Now.ToString("d MMMM yyyy");

        DropDownListVendor.SelectedValue = poProduksiProduk.IDVendor.ToString();

        HiddenFieldTax.Value = poProduksiProduk.TBVendor.PersentaseTax.ToString();
        LabelTax.Text        = "Tax (" + (poProduksiProduk.TBVendor.PersentaseTax * 100).ToFormatHarga() + "%)";

        TBStokProduk[] daftarStokProduk = null;
        if (TextBoxIDProyeksi.Text != string.Empty)
        {
            TBProyeksiDetail[] proyeksiDetail = db.TBProyeksiDetails.Where(item => item.IDProyeksi == TextBoxIDProyeksi.Text).OrderBy(item => item.TBKombinasiProduk.Nama).ToArray();
            daftarStokProduk = db.TBStokProduks.AsEnumerable().Where(item => item.IDTempat == pengguna.IDTempat && proyeksiDetail.Any(data => data.IDKombinasiProduk == item.IDKombinasiProduk)).OrderBy(item => item.TBKombinasiProduk.Nama).ToArray();
        }
        else
        {
            daftarStokProduk = db.TBStokProduks.Where(item => item.IDTempat == pengguna.IDTempat).ToArray();
        }
        DropDownListStokProduk.DataSource     = daftarStokProduk.Select(item => new { item.IDStokProduk, item.TBKombinasiProduk.Nama });
        DropDownListStokProduk.DataTextField  = "Nama";
        DropDownListStokProduk.DataValueField = "IDStokProduk";
        DropDownListStokProduk.DataBind();

        List <POProduksiDetail_Model> ViewStateListDetail = (List <POProduksiDetail_Model>)ViewState["ViewStateListDetail"];

        foreach (var item in poProduksiProduk.TBPOProduksiProdukDetails)
        {
            TBStokProduk stokProduk = daftarStokProduk.FirstOrDefault(data => data.IDKombinasiProduk == item.IDKombinasiProduk);

            POProduksiDetail_Model detail = new POProduksiDetail_Model();
            detail.IDProduk          = stokProduk.TBKombinasiProduk.IDProduk;
            detail.IDKombinasiProduk = stokProduk.IDKombinasiProduk;
            detail.IDStokProduk      = stokProduk.IDStokProduk;
            detail.Kode                = stokProduk.TBKombinasiProduk.KodeKombinasiProduk;
            detail.Produk              = stokProduk.TBKombinasiProduk.TBProduk.Nama;
            detail.Atribut             = stokProduk.TBKombinasiProduk.TBAtributProduk.Nama;
            detail.KombinasiProduk     = stokProduk.TBKombinasiProduk.Nama;
            detail.HargaPokokKomposisi = 0;
            detail.BiayaTambahan       = 0;
            detail.TotalHPP            = detail.BiayaTambahan + detail.HargaPokokKomposisi;
            detail.Harga               = item.HargaVendor;
            detail.PotonganHarga       = item.PotonganHargaVendor;
            detail.TotalHarga          = detail.Harga - detail.PotonganHarga;
            detail.Jumlah              = item.Jumlah;
            detail.Sisa                = detail.Jumlah;

            ViewStateListDetail.Add(detail);
        }
        ViewState["ViewStateListDetail"] = ViewStateListDetail;

        TextBoxKeterangan.Text    = poProduksiProduk.Keterangan;
        TextBoxBiayaLainLain.Text = poProduksiProduk.BiayaLainLain.ToString();
        TextBoxPotonganPO.Text    = poProduksiProduk.PotonganPOProduksiProduk.ToString();
        LoadData();

        decimal subtotal = (LabelTotalSubtotal.Text.ToDecimal() + poProduksiProduk.BiayaLainLain.Value - poProduksiProduk.PotonganPOProduksiProduk.Value);
        decimal tax      = subtotal * HiddenFieldTax.Value.ToDecimal();

        TextBoxTax.Text        = tax.ToFormatHarga();
        TextBoxGrandtotal.Text = (subtotal + tax).ToFormatHarga();

        CariHargaSupplierVendor();
    }
Esempio n. 13
0
    protected void ButtonTerima_Click(object sender, EventArgs e)
    {
        peringatan.Visible = false;
        bool          statusBerhasil = false;
        PenggunaLogin Pengguna       = (PenggunaLogin)Session["PenggunaLogin"];
        string        IDPenerimaanPOProduksiProduk = string.Empty;
        string        IDTransferProduk             = string.Empty;
        TBPenerimaanPOProduksiProduk penerimaan    = null;

        try
        {
            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                TBPOProduksiProduk poProduksiProduk = db.TBPOProduksiProduks.FirstOrDefault(item => item.IDPOProduksiProduk == DropDownListIDPOProduksi.SelectedValue);

                bool penerimaanSesuai = true;

                EntitySet <TBPenerimaanPOProduksiProdukDetail> daftarDetail = new EntitySet <TBPenerimaanPOProduksiProdukDetail>();

                int baris = 0;

                foreach (RepeaterItem item in RepeaterDetail.Items)
                {
                    baris++;

                    Label   LabelIDKombinasiProduk     = (Label)item.FindControl("LabelIDKombinasiProduk");
                    TextBox TextBoxSisaPesanan         = (TextBox)item.FindControl("TextBoxSisaPesanan");
                    TextBox TextBoxJumlahDatang        = (TextBox)item.FindControl("TextBoxJumlahDatang");
                    TextBox TextBoxJumlahTerima        = (TextBox)item.FindControl("TextBoxJumlahTerima");
                    TextBox TextBoxJumlahTolakKeVendor = (TextBox)item.FindControl("TextBoxJumlahTolakKeVendor");

                    if (TextBoxJumlahDatang.Text.ToDecimal().ToInt() > 0)
                    {
                        if (TextBoxJumlahDatang.Text.ToDecimal().ToInt() >= TextBoxJumlahTerima.Text.ToDecimal().ToInt())
                        {
                            TBPOProduksiProdukDetail poProduksiProdukDetail = poProduksiProduk.TBPOProduksiProdukDetails.FirstOrDefault(data => data.IDKombinasiProduk == LabelIDKombinasiProduk.Text.ToInt());

                            daftarDetail.Add(new TBPenerimaanPOProduksiProdukDetail()
                            {
                                IDKombinasiProduk   = poProduksiProdukDetail.IDKombinasiProduk,
                                BiayaTambahan       = poProduksiProdukDetail.BiayaTambahan,
                                HargaPokokKomposisi = poProduksiProdukDetail.HargaPokokKomposisi,
                                TotalHPP            = poProduksiProdukDetail.TotalHPP,
                                HargaVendor         = poProduksiProdukDetail.HargaVendor,
                                PotonganHargaVendor = poProduksiProdukDetail.PotonganHargaVendor,
                                TotalHargaVendor    = poProduksiProdukDetail.TotalHargaVendor,
                                Datang        = TextBoxJumlahDatang.Text.ToDecimal().ToInt(),
                                Diterima      = TextBoxJumlahTerima.Text.ToDecimal().ToInt(),
                                TolakKeVendor = TextBoxJumlahTolakKeVendor.Text.ToDecimal().ToInt(),
                                Sisa          = TextBoxJumlahTerima.Text.ToDecimal().ToInt() <= TextBoxSisaPesanan.Text.ToDecimal().ToInt() ? TextBoxSisaPesanan.Text.ToDecimal().ToInt() - TextBoxJumlahTerima.Text.ToDecimal().ToInt() : 0
                            });
                        }
                        else
                        {
                            LabelPeringatan.Text = "Jumlah diterima lebih besar dari jumlah datang, baris ke-" + baris.ToString();
                            peringatan.Visible   = true;
                            penerimaanSesuai     = false;
                            break;
                        }
                    }
                }

                if (penerimaanSesuai == true)
                {
                    StokProduk_Class StokProduk_Class = new StokProduk_Class(db);
                    TBStokProduk[]   daftarStokProduk = db.TBStokProduks.Where(item => item.IDTempat == Pengguna.IDTempat).ToArray();

                    db.Proc_InsertPenerimaanPOProduksiProduk(ref IDPenerimaanPOProduksiProduk, poProduksiProduk.IDPOProduksiProduk, poProduksiProduk.IDVendor, Pengguna.IDTempat, Pengguna.IDPengguna, TextBoxTanggalPenerimaan.Text.ToDateTime().AddHours(DateTime.Now.Hour).AddMinutes(DateTime.Now.Minute));

                    penerimaan = db.TBPenerimaanPOProduksiProduks.FirstOrDefault(item => item.IDPenerimaanPOProduksiProduk == IDPenerimaanPOProduksiProduk);

                    penerimaan.IDPenggunaTerima = penerimaan.IDPenggunaDatang;
                    penerimaan.TanggalTerima    = penerimaan.TanggalDatang;
                    penerimaan.TBPenerimaanPOProduksiProdukDetails = daftarDetail;
                    penerimaan.TotalDatang              = penerimaan.TBPenerimaanPOProduksiProdukDetails.Sum(item => item.Datang);
                    penerimaan.TotalDiterima            = penerimaan.TBPenerimaanPOProduksiProdukDetails.Sum(item => item.Diterima);
                    penerimaan.TotalTolakKeVendor       = penerimaan.TBPenerimaanPOProduksiProdukDetails.Sum(item => item.TolakKeVendor);
                    penerimaan.TotalSisa                = penerimaan.TBPenerimaanPOProduksiProdukDetails.Sum(item => item.Sisa);
                    penerimaan.SubtotalBiayaTambahan    = penerimaan.TBPenerimaanPOProduksiProdukDetails.Sum(item => item.BiayaTambahan * item.Diterima);
                    penerimaan.SubtotalTotalHPP         = penerimaan.TBPenerimaanPOProduksiProdukDetails.Sum(item => item.TotalHPP * item.Diterima);
                    penerimaan.SubtotalTotalHargaVendor = penerimaan.TBPenerimaanPOProduksiProdukDetails.Sum(item => item.TotalHargaVendor * item.Diterima);
                    penerimaan.Grandtotal               = penerimaan.SubtotalTotalHPP + penerimaan.SubtotalTotalHargaVendor;
                    penerimaan.EnumStatusPenerimaan     = (int)PilihanEnumStatusPenerimaanPO.Terima;
                    penerimaan.Keterangan               = TextBoxKeterangan.Text;

                    foreach (var item in penerimaan.TBPenerimaanPOProduksiProdukDetails)
                    {
                        var POProduksiProdukDetail = poProduksiProduk.TBPOProduksiProdukDetails.FirstOrDefault(data => data.IDKombinasiProduk == item.IDKombinasiProduk);
                        POProduksiProdukDetail.Sisa = item.Sisa;

                        TBStokProduk StokProduk = daftarStokProduk.FirstOrDefault(data => data.IDTempat == Pengguna.IDTempat && data.IDKombinasiProduk == item.IDKombinasiProduk);

                        StokProduk_Class.PengaturanJumlahStokPenerimaanPOProduk(penerimaan.TanggalTerima.Value, Pengguna.IDPengguna, Pengguna.IDTempat, StokProduk, item.TotalHargaVendor, item.Datang, item.TolakKeVendor, item.TBPenerimaanPOProduksiProduk.TBPOProduksiProduk.IDPOProduksiProduk + " - #" + item.TBPenerimaanPOProduksiProduk.IDPenerimaanPOProduksiProduk);
                    }

                    poProduksiProduk.TBPenerimaanPOProduksiProduks.Add(penerimaan);

                    #region arie - INPUT JURNAL
                    ////////////var KonfigurasiAkun = db.TBKonfigurasiAkuns.Where(item => item.IDTempat == 1);

                    ////////////if (KonfigurasiAkun != null)
                    ////////////{
                    ////////////    #region Pembuatan Jurnal Penerimaan PO YG Belum Bayar
                    ////////////    TBJurnal Jurnal = new TBJurnal
                    ////////////    {
                    ////////////        IDTempat = Pengguna.IDTempat,
                    ////////////        Tanggal = penerimaan.TanggalTerima,
                    ////////////        Keterangan = penerimaan.Keterangan,
                    ////////////        IDPengguna = penerimaan.IDPenggunaTerima,
                    ////////////        Referensi = penerimaan.IDPenerimaanPOProduksiProduk
                    ////////////    };

                    ////////////    #region JOURNAL ENTRY
                    ////////////    //DEBIT     : PERSEDIAAN
                    ////////////    //KREDIT    : HUTANG DAGANG

                    ////////////    //PERSEDIAAN
                    ////////////    Jurnal.TBJurnalDetails.Add(new TBJurnalDetail
                    ////////////    {
                    ////////////        IDAkun = KonfigurasiAkun.FirstOrDefault(item => item.Nama == "PERSEDIAAN").IDAkun,
                    ////////////        Debit = penerimaan.Grandtotal,
                    ////////////        Kredit = 0
                    ////////////    });

                    ////////////    //HUTANG DAGANG
                    ////////////    Jurnal.TBJurnalDetails.Add(new TBJurnalDetail
                    ////////////    {
                    ////////////        IDAkun = KonfigurasiAkun.FirstOrDefault(item => item.Nama == "HUTANG DAGANG").IDAkun,
                    ////////////        Debit = 0,
                    ////////////        Kredit = penerimaan.Grandtotal
                    ////////////    });
                    ////////////    #endregion

                    ////////////    db.TBJurnals.InsertOnSubmit(Jurnal);
                    ////////////    #endregion
                    ////////////}
                    #endregion

                    db.SubmitChanges();

                    statusBerhasil = true;
                }
                else
                {
                    peringatan.Visible = true;
                }
            }
        }
        catch (Exception ex)
        {
            if (statusBerhasil != true)
            {
                using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
                {
                    penerimaan = db.TBPenerimaanPOProduksiProduks.FirstOrDefault(item => item.IDPenerimaanPOProduksiProduk == IDPenerimaanPOProduksiProduk);
                    if (penerimaan != null)
                    {
                        db.TBPenerimaanPOProduksiProdukDetails.DeleteAllOnSubmit(penerimaan.TBPenerimaanPOProduksiProdukDetails);
                        db.TBPenerimaanPOProduksiProduks.DeleteOnSubmit(penerimaan);
                        db.SubmitChanges();

                        IDPenerimaanPOProduksiProduk = 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");
            }
        }
    }
Esempio n. 14
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;

                TBPOProduksiProduk poProduksiProduk = db.TBPOProduksiProduks.FirstOrDefault(item => item.IDPOProduksiProduk == Request.QueryString["id"]);

                LabelJudul.Text = Pengaturan.JenisPOProduksi(poProduksiProduk.EnumJenisProduksi, "Produk");

                LabelNamaVendor.Text   = poProduksiProduk.IDVendor != null ? poProduksiProduk.TBVendor.Nama : string.Empty;
                LabelAlamatVendor.Text = poProduksiProduk.IDVendor != null ? poProduksiProduk.TBVendor.Alamat : string.Empty;

                LabelIDProyeksi.Text        = poProduksiProduk.IDProyeksi != null ? poProduksiProduk.IDProyeksi : string.Empty;
                LabelIDProduksi.Text        = poProduksiProduk.IDPOProduksiProduk;
                LabelTanggalJatuhTempo.Text = poProduksiProduk.TanggalJatuhTempo.ToFormatTanggal();
                LabelTanggalPengiriman.Text = poProduksiProduk.TanggalPengiriman.ToFormatTanggal();

                LabelPembuat.Text = poProduksiProduk.TBPengguna.NamaLengkap + " / " + poProduksiProduk.Tanggal.ToFormatTanggal();

                RepeaterDetail.DataSource = poProduksiProduk.TBPOProduksiProdukDetails.Select(item => new
                {
                    KodeKombinasiProduk = item.TBKombinasiProduk.KodeKombinasiProduk,
                    Produk        = item.TBKombinasiProduk.TBProduk.Nama,
                    AtributProduk = item.TBKombinasiProduk.TBAtributProduk.Nama,
                    item.HargaPokokKomposisi,
                    item.BiayaTambahan,
                    item.HargaVendor,
                    item.PotonganHargaVendor,
                    item.Jumlah,
                    Subtotal = item.TBPOProduksiProduk.EnumJenisProduksi == (int)PilihanEnumJenisProduksi.ProduksiSendiri ? item.SubtotalHPP : item.SubtotalHargaVendor
                }).ToArray();
                RepeaterDetail.DataBind();
                LabelTotalJumlah.Text   = poProduksiProduk.TotalJumlah.ToFormatHargaBulat();
                LabelTotalSubtotal.Text = poProduksiProduk.EnumJenisProduksi == (int)PilihanEnumJenisProduksi.ProduksiSendiri ? poProduksiProduk.SubtotalTotalHPP.ToFormatHarga() : poProduksiProduk.SubtotalTotalHargaVendor.ToFormatHarga();

                if (poProduksiProduk.EnumJenisProduksi == (int)PilihanEnumJenisProduksi.ProduksiSendiri)
                {
                    headerHarga.Visible    = false;
                    headerPotongan.Visible = false;
                }
                else
                {
                    headerKomposisi.Visible = false;
                    headerBiaya.Visible     = false;
                }

                RepeaterKomposisi.DataSource = poProduksiProduk.TBPOProduksiProdukKomposisis.OrderBy(item => item.TBBahanBaku.Nama).ToArray();
                RepeaterKomposisi.DataBind();
                LabelTotalSubtotalKomposisi.Text = poProduksiProduk.TBPOProduksiProdukKomposisis.Sum(item => item.Subtotal).ToFormatHarga();

                RepeaterBiayaTambahan.DataSource = poProduksiProduk.TBPOProduksiProdukBiayaTambahans.OrderBy(item => item.TBJenisBiayaProduksi.Nama).ToArray();
                RepeaterBiayaTambahan.DataBind();
                LabelTotalSubtotalBiayaTambahan.Text = poProduksiProduk.TBPOProduksiProdukBiayaTambahans.Sum(item => item.Nominal).ToFormatHarga();
                LabelBiayaLainLain.Text = poProduksiProduk.BiayaLainLain.ToFormatHarga();
                LabelPotongan.Text      = poProduksiProduk.PotonganPOProduksiProduk.ToFormatHarga();
                LabelJudulTax.Text      = "Tax (" + (poProduksiProduk.PersentaseTax * 100).ToFormatHarga() + "%)";
                LabelTax.Text           = poProduksiProduk.Tax.ToFormatHarga();
                LabelGrandtotal.Text    = poProduksiProduk.Grandtotal.ToFormatHarga();

                LiteralKeterangan.Text = "<b>Keterangan :</b><br/>" + poProduksiProduk.Keterangan;

                if (poProduksiProduk.EnumJenisProduksi == (int)PilihanEnumJenisProduksi.PurchaseOrder)
                {
                    komposisi.Visible = false;
                }
            }
        }
    }
Esempio n. 15
0
    protected void ButtonSimpan_Click(object sender, EventArgs e)
    {
        peringatan.Visible = false;
        bool   statusBerhasil = false;
        string IDPengirimanPOProduksiProduk     = string.Empty;
        TBPengirimanPOProduksiProduk pengiriman = null;
        PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"];

        try
        {
            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                bool pengirimanSesuai = true;
                int  baris            = 0;

                TBPOProduksiProduk poProduksiProduk = db.TBPOProduksiProduks.FirstOrDefault(item => item.IDPOProduksiProduk == Request.QueryString["id"]);

                EntitySet <TBPengirimanPOProduksiProdukDetail> daftarKomposisi = new EntitySet <TBPengirimanPOProduksiProdukDetail>();

                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())
                            {
                                TBPOProduksiProdukKomposisi poProduksiKomposisiKomposisi = poProduksiProduk.TBPOProduksiProdukKomposisis.FirstOrDefault(data => data.IDBahanBaku == LabelIDBahanBaku.Text.ToInt());

                                daftarKomposisi.Add(new TBPengirimanPOProduksiProdukDetail()
                                {
                                    TBBahanBaku = poProduksiKomposisiKomposisi.TBBahanBaku,
                                    TBSatuan    = poProduksiKomposisiKomposisi.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_InsertPengirimanPOProduksiProduk(ref IDPengirimanPOProduksiProduk, poProduksiProduk.IDPOProduksiProduk, 0, pengguna.IDTempat, pengguna.IDPengguna, TextBoxTanggalProses.Text.ToDateTime().AddHours(DateTime.Now.Hour).AddMinutes(DateTime.Now.Minute));

                        pengiriman = db.TBPengirimanPOProduksiProduks.FirstOrDefault(item => item.IDPengirimanPOProduksiProduk == IDPengirimanPOProduksiProduk);

                        foreach (var item in daftarKomposisi)
                        {
                            TBStokBahanBaku stokBahanBaku = daftarStokBahanBaku.FirstOrDefault(data => data.IDBahanBaku == item.IDBahanBaku);

                            StokBahanBaku_Class.UpdateBertambahBerkurang(db, DateTime.Now, pengguna.IDPengguna, stokBahanBaku, item.Kirim, stokBahanBaku.HargaBeli.Value, false, EnumJenisPerpindahanStok.PenguranganProduksi, "In-House Production #" + poProduksiProduk.IDPOProduksiProduk);

                            TBPOProduksiProdukKomposisi poProduksiProdukomposisi = poProduksiProduk.TBPOProduksiProdukKomposisis.FirstOrDefault(data => data.IDBahanBaku == item.IDBahanBaku);
                            item.HargaBeli = poProduksiProdukomposisi.HargaBeli;
                            poProduksiProdukomposisi.Kirim = poProduksiProdukomposisi.Kirim + item.Kirim;
                            poProduksiProdukomposisi.Sisa  = poProduksiProdukomposisi.Sisa - item.Kirim;
                        }
                        pengiriman.TBPengirimanPOProduksiProdukDetails = daftarKomposisi;
                        pengiriman.Grandtotal = pengiriman.TBPengirimanPOProduksiProdukDetails.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.TBPengirimanPOProduksiProduks.FirstOrDefault(item => item.IDPengirimanPOProduksiProduk == IDPengirimanPOProduksiProduk);
                    if (pengiriman != null)
                    {
                        db.TBPengirimanPOProduksiProdukDetails.DeleteAllOnSubmit(pengiriman.TBPengirimanPOProduksiProdukDetails);
                        db.TBPengirimanPOProduksiProduks.DeleteOnSubmit(pengiriman);
                        db.SubmitChanges();

                        IDPengirimanPOProduksiProduk = string.Empty;
                    }
                }
            }
            LogError_Class LogError = new LogError_Class(ex, "Penerimaan Produksi Sendiri Produk (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");
            }
        }
    }
Esempio n. 16
0
    private void LoadPOLama(DataClassesDatabaseDataContext db, string IDPOProduksiProduk)
    {
        PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"];

        TBPOProduksiProduk poProduksiProduk = db.TBPOProduksiProduks.FirstOrDefault(item => item.IDPOProduksiProduk == IDPOProduksiProduk);

        TextBoxIDProyeksi.Text = poProduksiProduk.IDProyeksi != null ? poProduksiProduk.IDProyeksi : string.Empty;
        TextBoxPegawai.Text    = pengguna.NamaLengkap;
        DropDownListPenggunaPIC.SelectedValue = poProduksiProduk.IDPenggunaPIC.ToString();
        TextBoxTanggal.Text           = poProduksiProduk.Tanggal.ToString("d MMMM yyyy");
        TextBoxTanggalPengiriman.Text = poProduksiProduk.TanggalPengiriman != null?poProduksiProduk.TanggalPengiriman.Value.ToString("d MMMM yyyy") : DateTime.Now.ToString("d MMMM yyyy");

        TBStokProduk[] daftarStokProduk = null;
        if (TextBoxIDProyeksi.Text != string.Empty)
        {
            TBProyeksiDetail[] proyeksiDetail = db.TBProyeksiDetails.Where(item => item.IDProyeksi == TextBoxIDProyeksi.Text).OrderBy(item => item.TBKombinasiProduk.Nama).ToArray();
            daftarStokProduk = db.TBStokProduks.AsEnumerable().Where(item => item.IDTempat == pengguna.IDTempat && proyeksiDetail.Any(data => data.IDKombinasiProduk == item.IDKombinasiProduk)).OrderBy(item => item.TBKombinasiProduk.Nama).ToArray();
        }
        else
        {
            daftarStokProduk = db.TBStokProduks.Where(item => item.IDTempat == pengguna.IDTempat && item.TBKombinasiProduk.TBProduk._IsActive).ToArray();
        }
        DropDownListStokProduk.DataSource = daftarStokProduk
                                            .Select(item => new
        {
            item.IDStokProduk,
            item.TBKombinasiProduk.Nama
        })
                                            .Distinct()
                                            .OrderBy(item => item.Nama)
                                            .ToArray();

        DropDownListStokProduk.DataTextField  = "Nama";
        DropDownListStokProduk.DataValueField = "IDStokProduk";
        DropDownListStokProduk.DataBind();

        List <POProduksiDetail_Model> ViewStateListDetail = (List <POProduksiDetail_Model>)ViewState["ViewStateListDetail"];

        foreach (var item in poProduksiProduk.TBPOProduksiProdukDetails)
        {
            TBStokProduk stokProduk = daftarStokProduk.FirstOrDefault(data => data.IDKombinasiProduk == item.IDKombinasiProduk);

            POProduksiDetail_Model detail = new POProduksiDetail_Model();
            detail.IDProduk          = stokProduk.TBKombinasiProduk.IDProduk;
            detail.IDKombinasiProduk = stokProduk.IDKombinasiProduk;
            detail.IDStokProduk      = stokProduk.IDStokProduk;
            detail.Kode                = stokProduk.TBKombinasiProduk.KodeKombinasiProduk;
            detail.Produk              = stokProduk.TBKombinasiProduk.TBProduk.Nama;
            detail.Atribut             = stokProduk.TBKombinasiProduk.TBAtributProduk.Nama;
            detail.KombinasiProduk     = stokProduk.TBKombinasiProduk.Nama;
            detail.HargaPokokKomposisi = 0;
            detail.BiayaTambahan       = 0;
            detail.TotalHPP            = 0;
            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;

        RadioButtonListStatusHPP.SelectedValue = poProduksiProduk.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(poProduksiProduk.TBPOProduksiProdukKomposisis.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(poProduksiProduk.TBPOProduksiProdukBiayaTambahans.Select(item => new POProduksiBiayaTambahan_Model
            {
                IDJenisBiayaProduksi = item.IDJenisBiayaProduksi,
                Nama           = item.TBJenisBiayaProduksi.Nama,
                JumlahProduksi = 1,
                Biaya          = item.Nominal
            }));
            ViewState["ViewStateListBiayaTambahan"] = ViewStateListBiayaTambahan;

            PengaturanHPPRataRata();
        }

        TextBoxKeterangan.Text = poProduksiProduk.Keterangan;
        LoadData();
    }
Esempio n. 17
0
    protected void ButtonSimpan_Click(object sender, EventArgs e)
    {
        if (Page.IsValid)
        {
            peringatan.Visible = false;
            PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"];

            List <POProduksiDetail_Model> ViewStateListDetail = (List <POProduksiDetail_Model>)ViewState["ViewStateListDetail"];

            if (ViewStateListDetail.Count > 0)
            {
                string             IDPOProduksiProduk = string.Empty;
                TBPOProduksiProduk produksiProduk     = null;

                bool statusBerhasil = false;

                try
                {
                    using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
                    {
                        if (!string.IsNullOrEmpty(Request.QueryString["edit"]))
                        {
                            produksiProduk = db.TBPOProduksiProduks.FirstOrDefault(item => item.IDPOProduksiProduk == Request.QueryString["edit"]);

                            if (produksiProduk.IDProyeksi != null)
                            {
                                foreach (var item in db.TBProyeksiDetails.Where(item => item.IDProyeksi == produksiProduk.IDProyeksi).OrderBy(data => data.TBKombinasiProduk.Nama).ToArray())
                                {
                                    TBPOProduksiProdukDetail poProduksiProdukDetail = produksiProduk.TBPOProduksiProdukDetails.FirstOrDefault(data => data.IDKombinasiProduk == item.IDKombinasiProduk);
                                    if (poProduksiProdukDetail != null)
                                    {
                                        item.Sisa = item.Sisa + poProduksiProdukDetail.Jumlah;
                                    }
                                }
                            }

                            db.TBPOProduksiProdukDetails.DeleteAllOnSubmit(produksiProduk.TBPOProduksiProdukDetails);
                            produksiProduk.TBPOProduksiProdukDetails.Clear();

                            produksiProduk.IDTempat          = pengguna.IDTempat;
                            produksiProduk.IDPengguna        = pengguna.IDPengguna;
                            produksiProduk.EnumJenisProduksi = (int)PilihanEnumJenisProduksi.PurchaseOrder;
                            produksiProduk.Tanggal           = TextBoxTanggal.Text.ToDateTime().AddHours(DateTime.Now.Hour).AddMinutes(DateTime.Now.Minute);
                        }
                        else
                        {
                            db.Proc_InsertPOProduksiProduk(ref IDPOProduksiProduk, pengguna.IDTempat, pengguna.IDPengguna, (int)PilihanEnumJenisProduksi.PurchaseOrder, TextBoxTanggal.Text.ToDateTime().AddHours(DateTime.Now.Hour).AddMinutes(DateTime.Now.Minute));

                            produksiProduk = db.TBPOProduksiProduks.FirstOrDefault(item => item.IDPOProduksiProduk == IDPOProduksiProduk);
                        }

                        produksiProduk.IDProyeksi         = TextBoxIDProyeksi.Text != string.Empty ? TextBoxIDProyeksi.Text : null;
                        produksiProduk.IDVendor           = DropDownListVendor.SelectedValue.ToInt();
                        produksiProduk.IDPenggunaPIC      = DropDownListPenggunaPIC.SelectedValue.ToInt();
                        produksiProduk.IDPenggunaDP       = null;
                        produksiProduk.IDJenisPOProduksi  = null;
                        produksiProduk.IDJenisPembayaran  = null;
                        produksiProduk.TanggalDownPayment = null;
                        produksiProduk.TanggalJatuhTempo  = TextBoxTanggalJatuhTempo.Text.ToDateTime();
                        produksiProduk.TanggalPengiriman  = TextBoxTanggalPengiriman.Text.ToDateTime();
                        produksiProduk.TBPOProduksiProdukDetails.AddRange(ViewStateListDetail.OrderBy(item => item.KombinasiProduk).Select(item => new TBPOProduksiProdukDetail
                        {
                            IDKombinasiProduk   = item.IDKombinasiProduk,
                            HargaPokokKomposisi = item.HargaPokokKomposisi,
                            BiayaTambahan       = item.BiayaTambahan,
                            TotalHPP            = item.TotalHPP,
                            HargaVendor         = item.Harga,
                            PotonganHargaVendor = item.PotonganHarga,
                            TotalHargaVendor    = item.TotalHarga,
                            Jumlah = (int)item.Jumlah,
                            Sisa   = (int)item.Sisa
                        }));

                        produksiProduk.TotalJumlah              = produksiProduk.TBPOProduksiProdukDetails.Sum(item => item.Jumlah);
                        produksiProduk.EnumJenisHPP             = (int)PilihanEnumJenisHPP.HargaSupplierVendor;
                        produksiProduk.SubtotalBiayaTambahan    = produksiProduk.TBPOProduksiProdukDetails.Sum(item => (item.Jumlah * item.BiayaTambahan));
                        produksiProduk.SubtotalTotalHPP         = produksiProduk.TBPOProduksiProdukDetails.Sum(item => (item.Jumlah * item.TotalHPP));
                        produksiProduk.SubtotalTotalHargaVendor = Math.Round(produksiProduk.TBPOProduksiProdukDetails.Sum(item => (item.Jumlah * item.TotalHargaVendor)), 2, MidpointRounding.AwayFromZero);
                        produksiProduk.PotonganPOProduksiProduk = TextBoxPotonganPO.Text.ToDecimal();
                        produksiProduk.BiayaLainLain            = TextBoxBiayaLainLain.Text.ToDecimal();
                        produksiProduk.PersentaseTax            = HiddenFieldTax.Value.ToInt();

                        decimal subtotal = produksiProduk.SubtotalTotalHargaVendor.Value + produksiProduk.BiayaLainLain.Value - produksiProduk.PotonganPOProduksiProduk.Value;
                        produksiProduk.Tax         = Math.Round((subtotal * produksiProduk.PersentaseTax.Value), 2, MidpointRounding.AwayFromZero);
                        produksiProduk.Grandtotal  = subtotal + produksiProduk.Tax;
                        produksiProduk.DownPayment = 0;
                        produksiProduk.Keterangan  = TextBoxKeterangan.Text;

                        if (produksiProduk.IDProyeksi != null)
                        {
                            foreach (var item in db.TBProyeksiDetails.Where(item => item.IDProyeksi == produksiProduk.IDProyeksi).OrderBy(data => data.TBKombinasiProduk.Nama).ToArray())
                            {
                                TBPOProduksiProdukDetail poProduksiProdukDetail = produksiProduk.TBPOProduksiProdukDetails.FirstOrDefault(data => data.IDKombinasiProduk == item.IDKombinasiProduk);
                                if (poProduksiProdukDetail != null)
                                {
                                    item.Sisa = item.Sisa - poProduksiProdukDetail.Jumlah;
                                }
                            }
                        }

                        TBHargaVendor[] daftarHargaVendor = db.TBHargaVendors.Where(item => item.IDVendor == produksiProduk.IDVendor).ToArray();

                        foreach (var item in ViewStateListDetail)
                        {
                            TBHargaVendor hargaVendor = daftarHargaVendor.FirstOrDefault(data => data.IDStokProduk == item.IDStokProduk);

                            if (hargaVendor == null)
                            {
                                db.TBHargaVendors.InsertOnSubmit(new TBHargaVendor()
                                {
                                    IDStokProduk = item.IDStokProduk, IDVendor = produksiProduk.IDVendor, Tanggal = produksiProduk.Tanggal, Harga = item.Harga
                                });
                            }

                            else
                            {
                                hargaVendor.Tanggal = produksiProduk.Tanggal;
                                hargaVendor.Harga   = item.Harga;
                            }
                        }

                        db.SubmitChanges();

                        statusBerhasil = true;
                    }
                }
                catch (Exception ex)
                {
                    if (statusBerhasil != true && string.IsNullOrEmpty(Request.QueryString["edit"]))
                    {
                        using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
                        {
                            produksiProduk = db.TBPOProduksiProduks.FirstOrDefault(item => item.IDPOProduksiProduk == IDPOProduksiProduk);
                            if (produksiProduk != null)
                            {
                                db.TBPOProduksiProdukDetails.DeleteAllOnSubmit(produksiProduk.TBPOProduksiProdukDetails);
                                db.TBPOProduksiProduks.DeleteOnSubmit(produksiProduk);
                                db.SubmitChanges();

                                IDPOProduksiProduk = string.Empty;
                            }
                        }
                    }
                    LogError_Class LogError = new LogError_Class(ex, "Purchase Order Produk (ButtonSimpan_Click by : " + pengguna.NamaLengkap + ")");
                    LabelPeringatan.Text = "Terjadi kesalahan, silahkan cek kembali data yang diinputkan";
                    peringatan.Visible   = true;
                }
                finally
                {
                    if (statusBerhasil == true)
                    {
                        if (!string.IsNullOrEmpty(Request.QueryString["edit"]))
                        {
                            Response.Redirect("Detail.aspx?id=" + produksiProduk.IDPOProduksiProduk);
                        }
                        else
                        {
                            Response.Redirect("Default.aspx");
                        }
                    }
                }
            }
            else
            {
                LabelPeringatan.Text = "Tidak ada Produk yang dipilih";
                peringatan.Visible   = true;
            }
        }
    }
Esempio n. 18
0
    protected void ButtonSimpan_Click(object sender, EventArgs e)
    {
        if (Page.IsValid)
        {
            PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"];

            List <POProduksiDetail_Model>        ViewStateListDetail        = (List <POProduksiDetail_Model>)ViewState["ViewStateListDetail"];
            List <POProduksiKomposisi_Model>     ViewStateListKomposisi     = (List <POProduksiKomposisi_Model>)ViewState["ViewStateListKomposisi"];
            List <POProduksiBiayaTambahan_Model> ViewStateListBiayaTambahan = (List <POProduksiBiayaTambahan_Model>)ViewState["ViewStateListBiayaTambahan"];

            if (ViewStateListDetail.Count > 0)
            {
                string             IDPOProduksiProduk = string.Empty;
                TBPOProduksiProduk produksiProduk     = null;
                bool statusBerhasil = false;

                try
                {
                    using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
                    {
                        peringatan.Visible = false;

                        if (!string.IsNullOrEmpty(Request.QueryString["edit"]))
                        {
                            produksiProduk = db.TBPOProduksiProduks.FirstOrDefault(item => item.IDPOProduksiProduk == Request.QueryString["edit"]);

                            if (produksiProduk.IDProyeksi != null)
                            {
                                foreach (var item in db.TBProyeksiDetails.Where(item => item.IDProyeksi == produksiProduk.IDProyeksi).OrderBy(data => data.TBKombinasiProduk.Nama).ToArray())
                                {
                                    TBPOProduksiProdukDetail poProduksiProdukDetail = produksiProduk.TBPOProduksiProdukDetails.FirstOrDefault(data => data.IDKombinasiProduk == item.IDKombinasiProduk);
                                    if (poProduksiProdukDetail != null)
                                    {
                                        item.Sisa = item.Sisa + poProduksiProdukDetail.Jumlah;
                                    }
                                }
                            }

                            db.TBPOProduksiProdukDetails.DeleteAllOnSubmit(produksiProduk.TBPOProduksiProdukDetails);
                            db.TBPOProduksiProdukKomposisis.DeleteAllOnSubmit(produksiProduk.TBPOProduksiProdukKomposisis);
                            db.TBPOProduksiProdukBiayaTambahans.DeleteAllOnSubmit(produksiProduk.TBPOProduksiProdukBiayaTambahans);
                            produksiProduk.TBPOProduksiProdukDetails.Clear();
                            produksiProduk.TBPOProduksiProdukKomposisis.Clear();
                            produksiProduk.TBPOProduksiProdukBiayaTambahans.Clear();

                            produksiProduk.IDTempat          = pengguna.IDTempat;
                            produksiProduk.IDPengguna        = pengguna.IDPengguna;
                            produksiProduk.EnumJenisProduksi = (int)PilihanEnumJenisProduksi.ProduksiSendiri;
                            produksiProduk.Tanggal           = TextBoxTanggal.Text.ToDateTime().AddHours(DateTime.Now.Hour).AddMinutes(DateTime.Now.Minute);
                        }
                        else
                        {
                            db.Proc_InsertPOProduksiProduk(ref IDPOProduksiProduk, pengguna.IDTempat, pengguna.IDPengguna, (int)PilihanEnumJenisProduksi.ProduksiSendiri, TextBoxTanggal.Text.ToDateTime().AddHours(DateTime.Now.Hour).AddMinutes(DateTime.Now.Minute));

                            produksiProduk = db.TBPOProduksiProduks.FirstOrDefault(item => item.IDPOProduksiProduk == IDPOProduksiProduk);
                        }

                        produksiProduk.IDProyeksi         = TextBoxIDProyeksi.Text != string.Empty ? TextBoxIDProyeksi.Text : null;
                        produksiProduk.IDVendor           = null;
                        produksiProduk.IDPenggunaPIC      = DropDownListPenggunaPIC.SelectedValue.ToInt();
                        produksiProduk.IDPenggunaDP       = null;
                        produksiProduk.IDJenisPOProduksi  = null;
                        produksiProduk.IDJenisPembayaran  = null;
                        produksiProduk.TanggalDownPayment = null;
                        produksiProduk.TanggalJatuhTempo  = null;
                        produksiProduk.TanggalPengiriman  = TextBoxTanggalPengiriman.Text.ToDateTime();
                        produksiProduk.TBPOProduksiProdukDetails.AddRange(ViewStateListDetail.Select(item => new TBPOProduksiProdukDetail
                        {
                            IDKombinasiProduk   = item.IDKombinasiProduk,
                            HargaPokokKomposisi = item.HargaPokokKomposisi,
                            BiayaTambahan       = item.BiayaTambahan,
                            TotalHPP            = item.TotalHPP,
                            HargaVendor         = item.Harga,
                            PotonganHargaVendor = item.PotonganHarga,
                            TotalHargaVendor    = item.TotalHarga,
                            Jumlah = (int)item.Jumlah,
                            Sisa   = (int)item.Sisa
                        }));

                        produksiProduk.TotalJumlah              = produksiProduk.TBPOProduksiProdukDetails.Sum(item => item.Jumlah);
                        produksiProduk.EnumJenisHPP             = RadioButtonListStatusHPP.SelectedValue.ToInt();
                        produksiProduk.SubtotalBiayaTambahan    = produksiProduk.TBPOProduksiProdukDetails.Sum(item => (item.Jumlah * item.BiayaTambahan));
                        produksiProduk.SubtotalTotalHPP         = produksiProduk.TBPOProduksiProdukDetails.Sum(item => (item.Jumlah * item.TotalHPP));
                        produksiProduk.SubtotalTotalHargaVendor = produksiProduk.TBPOProduksiProdukDetails.Sum(item => (item.Jumlah * item.TotalHargaVendor));
                        produksiProduk.PotonganPOProduksiProduk = 0;
                        produksiProduk.BiayaLainLain            = 0;
                        produksiProduk.PersentaseTax            = 0;
                        produksiProduk.Tax         = 0;
                        produksiProduk.Grandtotal  = produksiProduk.SubtotalTotalHPP;
                        produksiProduk.DownPayment = 0;
                        produksiProduk.Keterangan  = TextBoxKeterangan.Text;

                        produksiProduk.TBPOProduksiProdukKomposisis.AddRange(ViewStateListKomposisi.OrderBy(item => item.BahanBaku).GroupBy(item => new
                        {
                            item.IDBahanBaku,
                            item.IDSatuan,
                            item.HargaBeli
                        })
                                                                             .Select(item => new TBPOProduksiProdukKomposisi
                        {
                            IDBahanBaku = item.Key.IDBahanBaku,
                            IDSatuan    = item.Key.IDSatuan,
                            HargaBeli   = item.Key.HargaBeli,
                            Kebutuhan   = item.Sum(x => x.JumlahKebutuhan),
                            Kirim       = 0,
                            Sisa        = item.Sum(x => x.JumlahKebutuhan)
                        }));

                        produksiProduk.TBPOProduksiProdukBiayaTambahans.AddRange(ViewStateListBiayaTambahan.OrderBy(item => item.Nama).GroupBy(item => new
                        {
                            item.IDJenisBiayaProduksi
                        })
                                                                                 .Select(item => new TBPOProduksiProdukBiayaTambahan
                        {
                            IDJenisBiayaProduksi = item.Key.IDJenisBiayaProduksi,
                            Nominal = item.Sum(x => x.SubtotalBiaya)
                        }));

                        if (produksiProduk.IDProyeksi != null)
                        {
                            foreach (var item in db.TBProyeksiDetails.Where(item => item.IDProyeksi == produksiProduk.IDProyeksi).OrderBy(data => data.TBKombinasiProduk.Nama).ToArray())
                            {
                                TBPOProduksiProdukDetail poProduksiProdukDetail = produksiProduk.TBPOProduksiProdukDetails.FirstOrDefault(data => data.IDKombinasiProduk == item.IDKombinasiProduk);
                                if (poProduksiProdukDetail != null)
                                {
                                    item.Sisa = item.Sisa - poProduksiProdukDetail.Jumlah;
                                }
                            }
                        }

                        db.SubmitChanges();

                        statusBerhasil = true;
                    }
                }
                catch (Exception ex)
                {
                    if (statusBerhasil != true && string.IsNullOrEmpty(Request.QueryString["edit"]))
                    {
                        using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
                        {
                            produksiProduk = db.TBPOProduksiProduks.FirstOrDefault(item => item.IDPOProduksiProduk == IDPOProduksiProduk);
                            if (produksiProduk != null)
                            {
                                db.TBPOProduksiProdukDetails.DeleteAllOnSubmit(produksiProduk.TBPOProduksiProdukDetails);
                                db.TBPOProduksiProdukKomposisis.DeleteAllOnSubmit(produksiProduk.TBPOProduksiProdukKomposisis);
                                db.TBPOProduksiProdukBiayaTambahans.DeleteAllOnSubmit(produksiProduk.TBPOProduksiProdukBiayaTambahans);
                                db.TBPOProduksiProduks.DeleteOnSubmit(produksiProduk);
                                db.SubmitChanges();

                                IDPOProduksiProduk = string.Empty;
                            }
                        }
                    }
                    LogError_Class LogError = new LogError_Class(ex, "Produksi Produk Sendiri (ButtonSimpan_Click by : " + pengguna.NamaLengkap + ")");
                    LabelPeringatan.Text = "Terjadi kesalahan, silahkan cek kembali data yang diinputkan";
                    peringatan.Visible   = true;
                }
                finally
                {
                    if (statusBerhasil == true)
                    {
                        if (!string.IsNullOrEmpty(Request.QueryString["edit"]))
                        {
                            Response.Redirect("Detail.aspx?id=" + produksiProduk.IDPOProduksiProduk);
                        }
                        else
                        {
                            Response.Redirect("Default.aspx");
                        }
                    }
                }
            }
            else
            {
                LabelPeringatan.Text = "Tidak ada Produk yang dipilih";
                peringatan.Visible   = true;
            }
        }
    }