예제 #1
0
    protected void RepeaterDataPO_ItemCommand(object source, RepeaterCommandEventArgs e)
    {
        using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
        {
            if (e.CommandName == "Hapus")
            {
                TBPOProduksiBahanBaku poProduksiBahanBaku = db.TBPOProduksiBahanBakus.FirstOrDefault(item => item.IDPOProduksiBahanBaku == e.CommandArgument.ToString());

                if (poProduksiBahanBaku.IDProyeksi != null)
                {
                    foreach (var item in db.TBProyeksiKomposisis.Where(item => item.IDProyeksi == poProduksiBahanBaku.IDProyeksi && item.LevelProduksi == Request.QueryString["urutan"].ToInt() && item.BahanBakuDasar == false).OrderBy(data => data.TBBahanBaku.Nama).ToArray())
                    {
                        TBPOProduksiBahanBakuDetail poProduksiBahanBakuDetail = poProduksiBahanBaku.TBPOProduksiBahanBakuDetails.FirstOrDefault(data => data.IDBahanBaku == item.IDBahanBaku);
                        if (poProduksiBahanBakuDetail != null)
                        {
                            item.Sisa = item.Sisa + (poProduksiBahanBakuDetail.Jumlah * poProduksiBahanBakuDetail.TBBahanBaku.Konversi.Value);
                        }
                    }
                }

                db.TBPOProduksiBahanBakuBiayaTambahans.DeleteAllOnSubmit(poProduksiBahanBaku.TBPOProduksiBahanBakuBiayaTambahans);
                db.TBPOProduksiBahanBakuKomposisis.DeleteAllOnSubmit(poProduksiBahanBaku.TBPOProduksiBahanBakuKomposisis);
                db.TBPOProduksiBahanBakuDetails.DeleteAllOnSubmit(poProduksiBahanBaku.TBPOProduksiBahanBakuDetails);
                db.TBPOProduksiBahanBakus.DeleteOnSubmit(poProduksiBahanBaku);
                db.SubmitChanges();

                LoadDataPO(db);
            }
        }
    }
예제 #2
0
    protected void DropDownListIDPOProduksi_SelectedIndexChanged(object sender, EventArgs e)
    {
        using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
        {
            if (DropDownListIDPOProduksi.SelectedValue != "0")
            {
                PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"];

                TBPOProduksiBahanBaku poProduksiBahanBaku = db.TBPOProduksiBahanBakus.FirstOrDefault(item => item.IDPOProduksiBahanBaku == DropDownListIDPOProduksi.SelectedValue);

                var SisaDataDetailPOProduk = poProduksiBahanBaku.TBPOProduksiBahanBakuDetails.AsEnumerable()
                                             .Where(item => item.Sisa > 0)
                                             .Select(item => new
                {
                    item.IDBahanBaku,
                    BahanBaku = item.TBBahanBaku.Nama,
                    Satuan    = item.TBSatuan.Nama,
                    Sisa      = item.Sisa.ToFormatHarga()
                });

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

                RepeaterDetail.DataSource = SisaDataDetailPOProduk;
                RepeaterDetail.DataBind();
            }
            else
            {
                RepeaterDetail.DataSource = null;
                RepeaterDetail.DataBind();
            }
        }
    }
예제 #3
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"];

                TBPOProduksiBahanBaku poProduksiBahanBaku = db.TBPOProduksiBahanBakus.FirstOrDefault(item => item.IDPOProduksiBahanBaku == Request.QueryString["id"]);

                TextBoxIDProyeksi.Text            = poProduksiBahanBaku.IDProyeksi != null ? poProduksiBahanBaku.IDProyeksi : "-Tidak Ada Proyeksi-";
                TextBoxIDPOProduksiBahanBaku.Text = poProduksiBahanBaku.IDPOProduksiBahanBaku;
                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 = poProduksiBahanBaku.TBPOProduksiBahanBakuKomposisis.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;  //poProduksiBahanBaku.TBPOProduksiBahanBakuKomposisis.OrderBy(item => item.TBBahanBaku.Nama).ToArray();
                RepeaterKomposisi.DataBind();

                if (komposisi.Count() == 0)
                {
                    ButtonSimpan.Visible = false;
                }
            }
        }
    }
예제 #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"];

                TBPOProduksiBahanBaku poProduksiBahanBaku = db.TBPOProduksiBahanBakus.FirstOrDefault(item => item.IDPOProduksiBahanBaku == DropDownListIDPOProduksi.SelectedValue);

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

                RepeaterDetail.DataSource = poProduksiBahanBaku.TBPOProduksiBahanBakuDetails.ToArray();
                RepeaterDetail.DataBind();
                LabelTotalJumlah.Text   = poProduksiBahanBaku.TotalJumlah.ToFormatHarga();
                LabelTotalSubtotal.Text = poProduksiBahanBaku.SubtotalTotalHargaSupplier.ToFormatHarga();
                LabelTotalSisa.Text     = poProduksiBahanBaku.TBPOProduksiBahanBakuDetails.Sum(data => data.Sisa).ToFormatHarga();

                TextBoxKeterangan.Text    = poProduksiBahanBaku.Keterangan;
                TextBoxBiayaLainLain.Text = poProduksiBahanBaku.BiayaLainLain.ToFormatHarga();
                TextBoxPotonganPO.Text    = poProduksiBahanBaku.PotonganPOProduksiBahanBaku.ToFormatHarga();
                LabelTax.Text             = "Tax (" + (poProduksiBahanBaku.PersentaseTax * 100).ToFormatHarga() + "%)";
                TextBoxTax.Text           = poProduksiBahanBaku.Tax.ToFormatHarga();
                TextBoxGrandtotal.Text    = poProduksiBahanBaku.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";
            }
        }
    }
예제 #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())
                        {
                            TBPOProduksiBahanBaku poProduksiBahanBaku = db.TBPOProduksiBahanBakus.FirstOrDefault(item => item.IDPOProduksiBahanBaku == DropDownListIDPOProduksi.SelectedValue);
                            poProduksiBahanBaku.IDPenggunaDP       = pengguna.IDPengguna;
                            poProduksiBahanBaku.IDJenisPembayaran  = DropDownListJenisPembayaran.SelectedValue.ToInt();
                            poProduksiBahanBaku.TanggalDownPayment = TextBoxTanggal.Text.ToDateTime();
                            poProduksiBahanBaku.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 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");
                }
            }
        }
    }
예제 #6
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                TBPOProduksiBahanBaku poProduksiBahanBaku = db.TBPOProduksiBahanBakus.FirstOrDefault(item => item.IDPOProduksiBahanBaku == Request.QueryString["id"]);

                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;
                TextBoxPembuat.Text    = poProduksiBahanBaku.TBPengguna.NamaLengkap + " / " + poProduksiBahanBaku.Tanggal.ToFormatTanggal();
                TextBoxKeterangan.Text = poProduksiBahanBaku.Keterangan;

                RepeaterDetail.DataSource = poProduksiBahanBaku.TBPOProduksiBahanBakuDetails.ToArray();
                RepeaterDetail.DataBind();
                LabelTotalJumlah.Text   = poProduksiBahanBaku.TotalJumlah.ToFormatHarga();
                LabelTotalSubtotal.Text = poProduksiBahanBaku.SubtotalTotalHPP.ToFormatHarga();
                LabelTotalSisa.Text     = poProduksiBahanBaku.TBPOProduksiBahanBakuDetails.Sum(data => data.Sisa).ToFormatHarga();

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

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

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

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

                if (poProduksiBahanBaku.TBPenerimaanPOProduksiBahanBakus.Count > 0 || poProduksiBahanBaku.TBPengirimanPOProduksiBahanBakus.Count > 0)
                {
                    ButtonEdit.Visible = false;
                }
            }
        }
    }
예제 #7
0
    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;
        }
    }
예제 #8
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                TBPOProduksiBahanBaku poProduksiBahanBaku = db.TBPOProduksiBahanBakus.FirstOrDefault(item => item.IDPOProduksiBahanBaku == Request.QueryString["id"]);

                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;
                TextBoxPembuat.Text           = poProduksiBahanBaku.TBPengguna.NamaLengkap + " / " + poProduksiBahanBaku.Tanggal.ToFormatTanggal();
                TextBoxTanggalJatuhTempo.Text = poProduksiBahanBaku.TanggalJatuhTempo.ToFormatTanggal();
                TextBoxTanggalPengiriman.Text = poProduksiBahanBaku.TanggalPengiriman.ToFormatTanggal();

                TextBoxSupplier.Text = poProduksiBahanBaku.TBSupplier.Nama;
                TextBoxEmail.Text    = poProduksiBahanBaku.TBSupplier.Email;
                TextBoxAlamat.Text   = poProduksiBahanBaku.TBSupplier.Alamat;
                TextBoxTelepon1.Text = poProduksiBahanBaku.TBSupplier.Telepon1;
                TextBoxTelepon2.Text = poProduksiBahanBaku.TBSupplier.Telepon2;

                RepeaterDetail.DataSource = poProduksiBahanBaku.TBPOProduksiBahanBakuDetails.ToArray();
                RepeaterDetail.DataBind();
                LabelTotalSubtotal.Text = poProduksiBahanBaku.SubtotalTotalHargaSupplier.ToFormatHarga();
                LabelTotalSisa.Text     = poProduksiBahanBaku.TBPOProduksiBahanBakuDetails.Sum(data => data.Sisa).ToFormatHarga();

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

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

                if (poProduksiBahanBaku.TBPenerimaanPOProduksiBahanBakus.Count > 0 || poProduksiBahanBaku.TBPengirimanPOProduksiBahanBakus.Count > 0)
                {
                    ButtonEdit.Visible = false;
                }
            }
        }
    }
예제 #9
0
    protected void RepeaterDetail_ItemCreated(object sender, RepeaterItemEventArgs e)
    {
        using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
        {
            TBPOProduksiBahanBaku poProduksiBahanBaku = db.TBPOProduksiBahanBakus.FirstOrDefault(item => item.IDPOProduksiBahanBaku == Request.QueryString["id"]);

            if (poProduksiBahanBaku.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");
            }
        }
    }
예제 #10
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                TBPOProduksiBahanBaku poProduksiBahanBaku = db.TBPOProduksiBahanBakus.FirstOrDefault(item => item.IDPOProduksiBahanBaku == Request.QueryString["id"]);

                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;
                TextBoxPembuat.Text           = poProduksiBahanBaku.TBPengguna.NamaLengkap + " / " + poProduksiBahanBaku.Tanggal.ToFormatTanggal();
                TextBoxTanggalJatuhTempo.Text = poProduksiBahanBaku.TanggalJatuhTempo.ToFormatTanggal();
                TextBoxTanggalPengiriman.Text = poProduksiBahanBaku.TanggalPengiriman.ToFormatTanggal();

                TextBoxSupplier.Text = poProduksiBahanBaku.TBSupplier.Nama;
                TextBoxEmail.Text    = poProduksiBahanBaku.TBSupplier.Email;
                TextBoxAlamat.Text   = poProduksiBahanBaku.TBSupplier.Alamat;
                TextBoxTelepon1.Text = poProduksiBahanBaku.TBSupplier.Telepon1;
                TextBoxTelepon2.Text = poProduksiBahanBaku.TBSupplier.Telepon2;

                RepeaterDetail.DataSource = poProduksiBahanBaku.TBPOProduksiBahanBakuDetails.ToArray();
                RepeaterDetail.DataBind();
                LabelTotalSubtotal.Text = poProduksiBahanBaku.SubtotalTotalHargaSupplier.ToFormatHarga();
                LabelTotalSisa.Text     = poProduksiBahanBaku.TBPOProduksiBahanBakuDetails.Sum(data => data.Sisa).ToFormatHarga();

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

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

                TextBoxJenisPembayaran.Text = poProduksiBahanBaku.IDJenisPembayaran != null ? poProduksiBahanBaku.TBJenisPembayaran.Nama : string.Empty;
                TextBoxDownPayment.Text     = poProduksiBahanBaku.DownPayment != null?poProduksiBahanBaku.DownPayment.ToFormatHarga() : string.Empty;
            }
        }
    }
예제 #11
0
    protected void RepeaterDataPO_ItemCommand(object source, RepeaterCommandEventArgs e)
    {
        if (e.CommandName == "Hapus")
        {
            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                TBPOProduksiBahanBaku poProduksiBahanBaku = db.TBPOProduksiBahanBakus.FirstOrDefault(item => item.IDPOProduksiBahanBaku == e.CommandArgument.ToString());

                if (poProduksiBahanBaku.IDProyeksi != null)
                {
                    foreach (var item in poProduksiBahanBaku.TBPOProduksiBahanBakuDetails.OrderByDescending(data => data.TBBahanBaku.Nama))
                    {
                        decimal jumlah = item.Jumlah * item.TBBahanBaku.Konversi.Value;
                        foreach (var item2 in db.TBProyeksiKomposisis.Where(item2 => item2.IDProyeksi == poProduksiBahanBaku.IDProyeksi && item2.BahanBakuDasar == true && item2.IDBahanBaku == item.IDBahanBaku).OrderByDescending(item2 => item2.TBBahanBaku.Nama).ThenByDescending(item2 => item2.LevelProduksi))
                        {
                            if (item2.Sisa + jumlah <= item2.Jumlah)
                            {
                                item2.Sisa = item2.Sisa + jumlah;
                                jumlah     = 0;
                                break;
                            }
                            else
                            {
                                jumlah     = (jumlah + item2.Sisa) - item2.Jumlah;
                                item2.Sisa = item2.Jumlah;
                            }
                        }
                    }
                }

                db.TBPOProduksiBahanBakuBiayaTambahans.DeleteAllOnSubmit(poProduksiBahanBaku.TBPOProduksiBahanBakuBiayaTambahans);
                db.TBPOProduksiBahanBakuKomposisis.DeleteAllOnSubmit(poProduksiBahanBaku.TBPOProduksiBahanBakuKomposisis);
                db.TBPOProduksiBahanBakuDetails.DeleteAllOnSubmit(poProduksiBahanBaku.TBPOProduksiBahanBakuDetails);
                db.TBPOProduksiBahanBakus.DeleteOnSubmit(poProduksiBahanBaku);
                db.SubmitChanges();

                LoadDataPO(db);
            }
        }
    }
예제 #12
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();
            }
        }
    }
예제 #13
0
    private void LoadPOLama(DataClassesDatabaseDataContext db, string IDPOProduksiBahanBaku)
    {
        PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"];

        TBPOProduksiBahanBaku poProduksiBahanBaku = db.TBPOProduksiBahanBakus.FirstOrDefault(item => item.IDPOProduksiBahanBaku == IDPOProduksiBahanBaku);

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

        TBStokBahanBaku[] daftarStokBahanBaku = null;
        if (TextBoxIDProyeksi.Text != string.Empty)
        {
            if (poProduksiBahanBaku.LevelProduksi != null)
            {
                TBProyeksiKomposisi[] proyeksiKomposisi = db.TBProyeksiKomposisis.Where(item => item.IDProyeksi == TextBoxIDProyeksi.Text && item.LevelProduksi == poProduksiBahanBaku.LevelProduksi && item.BahanBakuDasar == false).OrderBy(data => data.TBBahanBaku.Nama).ToArray();
                daftarStokBahanBaku = db.TBStokBahanBakus.AsEnumerable().Where(item => item.IDTempat == pengguna.IDTempat && proyeksiKomposisi.Any(data => data.IDBahanBaku == item.IDBahanBaku)).OrderBy(item => item.TBBahanBaku.Nama).ToArray();
            }
            else
            {
                TBProyeksiKomposisi[] proyeksiKomposisi = db.TBProyeksiKomposisis.Where(item => item.IDProyeksi == TextBoxIDProyeksi.Text && item.BahanBakuDasar == false).OrderBy(data => data.TBBahanBaku.Nama).ToArray();
                daftarStokBahanBaku = db.TBStokBahanBakus.AsEnumerable().Where(item => item.IDTempat == pengguna.IDTempat && proyeksiKomposisi.Any(data => data.IDBahanBaku == item.IDBahanBaku)).OrderBy(item => item.TBBahanBaku.Nama).ToArray();
            }
        }
        else
        {
            daftarStokBahanBaku = db.TBStokBahanBakus.Where(item => item.IDTempat == pengguna.IDTempat).ToArray();
        }
        DropDownListStokBahanBaku.DataSource     = daftarStokBahanBaku.Select(item => new { item.IDStokBahanBaku, item.TBBahanBaku.Nama });
        DropDownListStokBahanBaku.DataTextField  = "Nama";
        DropDownListStokBahanBaku.DataValueField = "IDStokBahanBaku";
        DropDownListStokBahanBaku.DataBind();

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

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

            POProduksiDetail_Model detail = new POProduksiDetail_Model();
            detail.IDBahanBaku         = stokBahanBaku.TBBahanBaku.IDBahanBaku;
            detail.IDSatuan            = item.IDSatuan;
            detail.IDStokBahanBaku     = stokBahanBaku.IDStokBahanBaku;
            detail.Kode                = stokBahanBaku.TBBahanBaku.KodeBahanBaku;
            detail.BahanBaku           = stokBahanBaku.TBBahanBaku.Nama;
            detail.Satuan              = item.TBSatuan.Nama;
            detail.HargaPokokKomposisi = 0;
            detail.BiayaTambahan       = 0;
            detail.TotalHPP            = detail.BiayaTambahan + detail.HargaPokokKomposisi;
            detail.Harga               = 0;
            detail.PotonganHarga       = 0;
            detail.TotalHarga          = detail.Harga - detail.PotonganHarga;
            detail.Jumlah              = item.Jumlah;
            detail.Sisa                = detail.Jumlah;
            ViewStateListDetail.Add(detail);
        }
        ViewState["ViewStateListDetail"] = ViewStateListDetail;

        LabelSatuan.Text = "/" + daftarStokBahanBaku.FirstOrDefault(item => item.IDStokBahanBaku == DropDownListStokBahanBaku.SelectedValue.ToInt()).TBBahanBaku.TBSatuan1.Nama;

        RadioButtonListStatusHPP.SelectedValue = poProduksiBahanBaku.EnumJenisHPP.ToString();
        if (RadioButtonListStatusHPP.SelectedValue == ((int)PilihanEnumJenisHPP.Komposisi).ToString())
        {
            PengaturanHPPKomposisi(db);
        }
        else
        {
            List <POProduksiKomposisi_Model>     ViewStateListKomposisi     = (List <POProduksiKomposisi_Model>)ViewState["ViewStateListKomposisi"];
            List <POProduksiBiayaTambahan_Model> ViewStateListBiayaTambahan = (List <POProduksiBiayaTambahan_Model>)ViewState["ViewStateListBiayaTambahan"];

            ViewStateListKomposisi.AddRange(poProduksiBahanBaku.TBPOProduksiBahanBakuKomposisis.Select(item => new POProduksiKomposisi_Model
            {
                IDBahanBaku     = item.IDBahanBaku,
                IDSatuan        = item.IDSatuan,
                BahanBaku       = item.TBBahanBaku.Nama,
                Satuan          = item.TBSatuan.Nama,
                HargaBeli       = item.HargaBeli,
                JumlahKebutuhan = item.Kebutuhan,
                JumlahSisa      = 0,
                JumlahKurang    = 0
            }));
            ViewState["ViewStateListKomposisi"] = ViewStateListKomposisi;

            ViewStateListBiayaTambahan.AddRange(poProduksiBahanBaku.TBPOProduksiBahanBakuBiayaTambahans.Select(item => new POProduksiBiayaTambahan_Model
            {
                IDJenisBiayaProduksi = item.IDJenisBiayaProduksi,
                Nama           = item.TBJenisBiayaProduksi.Nama,
                JumlahProduksi = 1,
                Biaya          = item.Nominal
            }));
            ViewState["ViewStateListBiayaTambahan"] = ViewStateListBiayaTambahan;

            PengaturanHPPRataRata();
        }

        TextBoxKeterangan.Text = poProduksiBahanBaku.Keterangan;
        LoadData();
    }
예제 #14
0
    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");
            }
        }
    }
예제 #15
0
    private void LoadPOLama(DataClassesDatabaseDataContext db, string IDPOProduksiBahanBaku)
    {
        PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"];

        TBPOProduksiBahanBaku poProduksiBahanBaku = db.TBPOProduksiBahanBakus.FirstOrDefault(item => item.IDPOProduksiBahanBaku == IDPOProduksiBahanBaku);

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

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

        DropDownListSupplier.SelectedValue = poProduksiBahanBaku.IDSupplier.ToString();
        HiddenFieldTax.Value = poProduksiBahanBaku.TBSupplier.PersentaseTax.ToString();
        LabelTax.Text        = "Tax (" + (poProduksiBahanBaku.TBSupplier.PersentaseTax * 100).ToFormatHarga() + "%)";

        TBStokBahanBaku[] daftarStokBahanBaku = null;
        if (TextBoxIDProyeksi.Text != string.Empty)
        {
            var proyeksiKomposisi = db.TBProyeksiKomposisis.Where(item => item.IDProyeksi == TextBoxIDProyeksi.Text && item.BahanBakuDasar == true).GroupBy(item => new
            {
                item.IDBahanBaku
            }).ToArray();
            daftarStokBahanBaku = db.TBStokBahanBakus.AsEnumerable().Where(item => item.IDTempat == pengguna.IDTempat && proyeksiKomposisi.Any(data => data.Key.IDBahanBaku == item.IDBahanBaku)).OrderBy(item => item.TBBahanBaku.Nama).ToArray();
        }
        else
        {
            daftarStokBahanBaku = db.TBStokBahanBakus.Where(item => item.IDTempat == pengguna.IDTempat).ToArray();
        }
        DropDownListStokBahanBaku.DataSource     = daftarStokBahanBaku.Select(item => new { item.IDStokBahanBaku, item.TBBahanBaku.Nama });
        DropDownListStokBahanBaku.DataTextField  = "Nama";
        DropDownListStokBahanBaku.DataValueField = "IDStokBahanBaku";
        DropDownListStokBahanBaku.DataBind();

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

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

            POProduksiDetail_Model detail = new POProduksiDetail_Model();
            detail.IDBahanBaku         = stokBahanBaku.TBBahanBaku.IDBahanBaku;
            detail.IDSatuan            = item.IDSatuan;
            detail.IDStokBahanBaku     = stokBahanBaku.IDStokBahanBaku;
            detail.Kode                = stokBahanBaku.TBBahanBaku.KodeBahanBaku;
            detail.BahanBaku           = stokBahanBaku.TBBahanBaku.Nama;
            detail.Satuan              = item.TBSatuan.Nama;
            detail.HargaPokokKomposisi = 0;
            detail.BiayaTambahan       = 0;
            detail.TotalHPP            = detail.BiayaTambahan + detail.HargaPokokKomposisi;
            detail.Harga               = item.HargaSupplier;
            detail.PotonganHarga       = item.PotonganHargaSupplier;
            detail.TotalHarga          = detail.Harga - detail.PotonganHarga;
            detail.Jumlah              = item.Jumlah;
            detail.Sisa                = detail.Jumlah;

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

        TextBoxKeterangan.Text    = poProduksiBahanBaku.Keterangan;
        TextBoxBiayaLainLain.Text = poProduksiBahanBaku.BiayaLainLain.ToFormatHarga();
        TextBoxPotonganPO.Text    = poProduksiBahanBaku.PotonganPOProduksiBahanBaku.ToFormatHarga();
        LoadData();

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

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

        CariHargaSupplierVendor();
    }
예제 #16
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 IDPOProduksiBahanBaku            = string.Empty;
                TBPOProduksiBahanBaku produksiBahanBaku = null;
                bool statusBerhasil = false;

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

                            if (produksiBahanBaku.IDProyeksi != null)
                            {
                                foreach (var item in produksiBahanBaku.TBPOProduksiBahanBakuDetails.OrderByDescending(data => data.TBBahanBaku.Nama))
                                {
                                    decimal jumlah = item.Jumlah * item.TBBahanBaku.Konversi.Value;
                                    foreach (var item2 in db.TBProyeksiKomposisis.Where(item2 => item2.IDProyeksi == produksiBahanBaku.IDProyeksi && item2.BahanBakuDasar == true && item2.IDBahanBaku == item.IDBahanBaku).OrderByDescending(item2 => item2.TBBahanBaku.Nama).ThenByDescending(item2 => item2.LevelProduksi))
                                    {
                                        if (item2.Sisa + jumlah <= item2.Jumlah)
                                        {
                                            item2.Sisa = item2.Sisa + jumlah;
                                            jumlah     = 0;
                                            break;
                                        }
                                        else
                                        {
                                            jumlah     = (jumlah + item2.Sisa) - item2.Jumlah;
                                            item2.Sisa = item2.Jumlah;
                                        }
                                    }
                                }
                            }

                            db.TBPOProduksiBahanBakuDetails.DeleteAllOnSubmit(produksiBahanBaku.TBPOProduksiBahanBakuDetails);
                            produksiBahanBaku.TBPOProduksiBahanBakuDetails.Clear();

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

                            produksiBahanBaku = db.TBPOProduksiBahanBakus.FirstOrDefault(item => item.IDPOProduksiBahanBaku == IDPOProduksiBahanBaku);
                        }

                        produksiBahanBaku.IDProyeksi         = TextBoxIDProyeksi.Text != string.Empty ? TextBoxIDProyeksi.Text : null;
                        produksiBahanBaku.IDSupplier         = DropDownListSupplier.SelectedValue.ToInt();
                        produksiBahanBaku.IDPenggunaPIC      = DropDownListPenggunaPIC.SelectedValue.ToInt();
                        produksiBahanBaku.IDPenggunaDP       = null;
                        produksiBahanBaku.IDJenisPOProduksi  = null;
                        produksiBahanBaku.IDJenisPembayaran  = null;
                        produksiBahanBaku.LevelProduksi      = null;
                        produksiBahanBaku.TanggalDownPayment = null;
                        produksiBahanBaku.TanggalJatuhTempo  = TextBoxTanggalJatuhTempo.Text.ToDateTime();
                        produksiBahanBaku.TanggalPengiriman  = TextBoxTanggalPengiriman.Text.ToDateTime();
                        produksiBahanBaku.TBPOProduksiBahanBakuDetails.AddRange(ViewStateListDetail.OrderBy(item => item.BahanBaku).Select(item => new TBPOProduksiBahanBakuDetail
                        {
                            IDBahanBaku           = item.IDBahanBaku,
                            IDSatuan              = item.IDSatuan,
                            HargaPokokKomposisi   = item.HargaPokokKomposisi,
                            BiayaTambahan         = item.BiayaTambahan,
                            TotalHPP              = item.TotalHPP,
                            HargaSupplier         = item.Harga,
                            PotonganHargaSupplier = item.PotonganHarga,
                            TotalHargaSupplier    = item.TotalHarga,
                            Jumlah = item.Jumlah,
                            Sisa   = item.Sisa
                        }));

                        produksiBahanBaku.TotalJumlah                 = produksiBahanBaku.TBPOProduksiBahanBakuDetails.Sum(item => item.Jumlah);
                        produksiBahanBaku.EnumJenisHPP                = (int)PilihanEnumJenisHPP.HargaSupplierVendor;
                        produksiBahanBaku.SubtotalBiayaTambahan       = produksiBahanBaku.TBPOProduksiBahanBakuDetails.Sum(item => (item.Jumlah * item.BiayaTambahan));
                        produksiBahanBaku.SubtotalTotalHPP            = produksiBahanBaku.TBPOProduksiBahanBakuDetails.Sum(item => (item.Jumlah * item.TotalHPP));
                        produksiBahanBaku.SubtotalTotalHargaSupplier  = Math.Round(produksiBahanBaku.TBPOProduksiBahanBakuDetails.Sum(item => (item.Jumlah * item.TotalHargaSupplier)), 2, MidpointRounding.AwayFromZero);
                        produksiBahanBaku.PotonganPOProduksiBahanBaku = TextBoxPotonganPO.Text.ToDecimal();
                        produksiBahanBaku.BiayaLainLain               = TextBoxBiayaLainLain.Text.ToDecimal();
                        produksiBahanBaku.PersentaseTax               = HiddenFieldTax.Value.ToDecimal();

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

                        if (produksiBahanBaku.IDProyeksi != null)
                        {
                            foreach (var item in produksiBahanBaku.TBPOProduksiBahanBakuDetails.OrderBy(data => data.TBBahanBaku.Nama))
                            {
                                decimal jumlah = item.Jumlah * item.TBBahanBaku.Konversi.Value;
                                TBProyeksiKomposisi[] proyeksiKomposisi = db.TBProyeksiKomposisis.Where(item2 => item2.IDProyeksi == produksiBahanBaku.IDProyeksi && item2.BahanBakuDasar == true && item2.IDBahanBaku == item.IDBahanBaku).OrderBy(item2 => item2.TBBahanBaku.Nama).ThenBy(item2 => item2.LevelProduksi).ToArray();
                                int count = proyeksiKomposisi.Count();
                                foreach (var item2 in proyeksiKomposisi)
                                {
                                    if (item2.Sisa - jumlah >= 0)
                                    {
                                        item2.Sisa = item2.Sisa - jumlah;
                                        jumlah     = 0;
                                        break;
                                    }
                                    else
                                    {
                                        if (count > 1)
                                        {
                                            jumlah     = Math.Abs(item2.Sisa - jumlah);
                                            item2.Sisa = 0;
                                        }
                                        else
                                        {
                                            item2.Sisa = item2.Sisa - jumlah;
                                        }
                                    }

                                    count = count - 1;
                                }
                            }
                        }


                        TBHargaSupplier[] daftarHargaSupplier = db.TBHargaSuppliers.Where(item => item.IDSupplier == produksiBahanBaku.IDSupplier).ToArray();

                        foreach (var item in ViewStateListDetail)
                        {
                            TBHargaSupplier hargaSupplier = daftarHargaSupplier.FirstOrDefault(data => data.IDStokBahanBaku == item.IDStokBahanBaku);

                            if (hargaSupplier == null)
                            {
                                db.TBHargaSuppliers.InsertOnSubmit(new TBHargaSupplier()
                                {
                                    IDStokBahanBaku = item.IDStokBahanBaku, IDSupplier = produksiBahanBaku.IDSupplier, Tanggal = produksiBahanBaku.Tanggal, Harga = item.Harga
                                });
                            }

                            else
                            {
                                hargaSupplier.Tanggal = produksiBahanBaku.Tanggal;
                                hargaSupplier.Harga   = item.Harga;
                            }
                        }
                        db.SubmitChanges();

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

                                IDPOProduksiBahanBaku = string.Empty;
                            }
                        }
                    }
                    LogError_Class LogError = new LogError_Class(ex, "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)
                    {
                        if (!string.IsNullOrEmpty(Request.QueryString["edit"]))
                        {
                            Response.Redirect("Detail.aspx?id=" + produksiBahanBaku.IDPOProduksiBahanBaku);
                        }
                        else
                        {
                            Response.Redirect("Default.aspx");
                        }
                    }
                }
            }
            else
            {
                LabelPeringatan.Text = "Tidak ada Bahan Baku yang dipilih";
                peringatan.Visible   = true;
            }
        }
    }
예제 #17
0
    protected void ButtonSimpan_Click(object sender, EventArgs e)
    {
        if (Page.IsValid)
        {
            peringatan.Visible = false;
            PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"];

            string IDPOProduksiBahanBakuPenagihan = string.Empty;
            TBPOProduksiBahanBakuPenagihan produksiBahanBakuPenagihan = null;
            bool statusBerhasil = false;

            try
            {
                using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
                {
                    db.Proc_InsertPOProduksiBahanBakuPenagihan(ref IDPOProduksiBahanBakuPenagihan, DropDownListSupplier.SelectedValue.ToInt(), pengguna.IDTempat, pengguna.IDPengguna, TextBoxTanggal.Text.ToDateTime().AddHours(DateTime.Now.Hour).AddMinutes(DateTime.Now.Minute));

                    produksiBahanBakuPenagihan = db.TBPOProduksiBahanBakuPenagihans.FirstOrDefault(item => item.IDPOProduksiBahanBakuPenagihan == IDPOProduksiBahanBakuPenagihan);

                    foreach (RepeaterItem item in RepeaterDetailPenerimaan.Items)
                    {
                        CheckBox CheckBoxPilihPenerimaan = (CheckBox)item.FindControl("CheckBoxPilihPenerimaan");
                        Label    LabelIDPenerimaanPOProduksiBahanBaku = (Label)item.FindControl("LabelIDPenerimaanPOProduksiBahanBaku");

                        if (CheckBoxPilihPenerimaan.Checked == true)
                        {
                            TBPenerimaanPOProduksiBahanBaku penerimaanPOProduksiBahanBaku = db.TBPenerimaanPOProduksiBahanBakus.FirstOrDefault(item2 => item2.IDPenerimaanPOProduksiBahanBaku == LabelIDPenerimaanPOProduksiBahanBaku.Text);
                            penerimaanPOProduksiBahanBaku.TBPOProduksiBahanBakuPenagihan = produksiBahanBakuPenagihan;
                        }
                    }

                    foreach (RepeaterItem item in RepeaterRetur.Items)
                    {
                        CheckBox CheckBoxPilihRetur = (CheckBox)item.FindControl("CheckBoxPilihRetur");
                        Label    LabelIDPOProduksiBahanBakuRetur = (Label)item.FindControl("LabelIDPOProduksiBahanBakuRetur");

                        if (CheckBoxPilihRetur.Checked == true)
                        {
                            TBPOProduksiBahanBakuRetur POProduksiBahanBakuRetur = db.TBPOProduksiBahanBakuReturs.FirstOrDefault(item2 => item2.IDPOProduksiBahanBakuRetur == LabelIDPOProduksiBahanBakuRetur.Text);
                            POProduksiBahanBakuRetur.TBPOProduksiBahanBakuPenagihan = produksiBahanBakuPenagihan;
                            POProduksiBahanBakuRetur.EnumStatusRetur = (int)EnumStatusPORetur.Proses;
                        }
                    }

                    foreach (RepeaterItem item in RepeaterDownPayment.Items)
                    {
                        Label LabelIDPOProduksiBahanBaku = (Label)item.FindControl("LabelIDPOProduksiBahanBaku");

                        TBPOProduksiBahanBaku POProduksiBahanBaku = db.TBPOProduksiBahanBakus.FirstOrDefault(item2 => item2.IDPOProduksiBahanBaku == LabelIDPOProduksiBahanBaku.Text);
                        POProduksiBahanBaku.TBPOProduksiBahanBakuPenagihan = produksiBahanBakuPenagihan;
                    }

                    produksiBahanBakuPenagihan.TotalPenerimaan  = LabelTotalPenerimaan.Text.ToDecimal();
                    produksiBahanBakuPenagihan.TotalRetur       = LabelTotalRetur.Text.ToDecimal();
                    produksiBahanBakuPenagihan.TotalDownPayment = LabelTotalDownPayment.Text.ToDecimal();
                    produksiBahanBakuPenagihan.TotalBayar       = 0;
                    produksiBahanBakuPenagihan.StatusPembayaran = false;
                    produksiBahanBakuPenagihan.Keterangan       = TextBoxKeterangan.Text;

                    if (TextBoxTotalPenagihan.Text.ToDecimal() > 0)
                    {
                        db.SubmitChanges();
                        statusBerhasil = true;
                    }
                    else
                    {
                        db.TBPOProduksiBahanBakuPenagihans.DeleteOnSubmit(produksiBahanBakuPenagihan);

                        LabelPeringatan.Text = "Total tagihan dibawah 0";
                        peringatan.Visible   = true;
                    }
                }
            }
            catch (Exception ex)
            {
                if (statusBerhasil != true)
                {
                    using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
                    {
                        produksiBahanBakuPenagihan = db.TBPOProduksiBahanBakuPenagihans.FirstOrDefault(item => item.IDPOProduksiBahanBakuPenagihan == IDPOProduksiBahanBakuPenagihan);
                        if (produksiBahanBakuPenagihan != null)
                        {
                            produksiBahanBakuPenagihan.TBPenerimaanPOProduksiBahanBakus.ToList().ForEach(item => item.IDPOProduksiBahanBakuPenagihan = null);
                            db.TBPOProduksiBahanBakuPenagihans.DeleteOnSubmit(produksiBahanBakuPenagihan);
                            db.SubmitChanges();

                            IDPOProduksiBahanBakuPenagihan = string.Empty;
                        }
                    }
                }
                LogError_Class LogError = new LogError_Class(ex, "Invoice 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");
                }
            }
        }
    }
예제 #18
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"];
            List <POProduksiKomposisi_Model>     ViewStateListKomposisi     = (List <POProduksiKomposisi_Model>)ViewState["ViewStateListKomposisi"];
            List <POProduksiBiayaTambahan_Model> ViewStateListBiayaTambahan = (List <POProduksiBiayaTambahan_Model>)ViewState["ViewStateListBiayaTambahan"];

            if (ViewStateListDetail.Count > 0)
            {
                string IDPOProduksiBahanBaku            = string.Empty;
                TBPOProduksiBahanBaku produksiBahanBaku = null;
                bool statusBerhasil = false;

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

                            if (produksiBahanBaku.IDProyeksi != null)
                            {
                                foreach (var item in db.TBProyeksiKomposisis.Where(item => item.IDProyeksi == produksiBahanBaku.IDProyeksi && item.LevelProduksi == produksiBahanBaku.LevelProduksi && item.BahanBakuDasar == false).OrderBy(data => data.TBBahanBaku.Nama).ToArray())
                                {
                                    TBPOProduksiBahanBakuDetail poProduksiBahanBakuDetail = produksiBahanBaku.TBPOProduksiBahanBakuDetails.FirstOrDefault(data => data.IDBahanBaku == item.IDBahanBaku);
                                    if (poProduksiBahanBakuDetail != null)
                                    {
                                        item.Sisa = item.Sisa + (poProduksiBahanBakuDetail.Jumlah * poProduksiBahanBakuDetail.TBBahanBaku.Konversi.Value);
                                    }
                                }
                            }

                            db.TBPOProduksiBahanBakuDetails.DeleteAllOnSubmit(produksiBahanBaku.TBPOProduksiBahanBakuDetails);
                            db.TBPOProduksiBahanBakuKomposisis.DeleteAllOnSubmit(produksiBahanBaku.TBPOProduksiBahanBakuKomposisis);
                            db.TBPOProduksiBahanBakuBiayaTambahans.DeleteAllOnSubmit(produksiBahanBaku.TBPOProduksiBahanBakuBiayaTambahans);
                            produksiBahanBaku.TBPOProduksiBahanBakuDetails.Clear();
                            produksiBahanBaku.TBPOProduksiBahanBakuKomposisis.Clear();
                            produksiBahanBaku.TBPOProduksiBahanBakuBiayaTambahans.Clear();

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

                            produksiBahanBaku = db.TBPOProduksiBahanBakus.FirstOrDefault(item => item.IDPOProduksiBahanBaku == IDPOProduksiBahanBaku);
                        }

                        produksiBahanBaku.IDProyeksi        = TextBoxIDProyeksi.Text != string.Empty ? TextBoxIDProyeksi.Text : null;
                        produksiBahanBaku.IDSupplier        = null;
                        produksiBahanBaku.IDPenggunaPIC     = DropDownListPenggunaPIC.SelectedValue.ToInt();
                        produksiBahanBaku.IDPenggunaDP      = null;
                        produksiBahanBaku.IDJenisPOProduksi = null;
                        produksiBahanBaku.IDJenisPembayaran = null;

                        if (!string.IsNullOrEmpty(Request.QueryString["proy"]))
                        {
                            produksiBahanBaku.LevelProduksi = Request.QueryString["level"].ToInt();
                        }
                        else if (string.IsNullOrEmpty(Request.QueryString["proy"]) && string.IsNullOrEmpty(Request.QueryString["edit"]))
                        {
                            produksiBahanBaku.LevelProduksi = null;
                        }
                        produksiBahanBaku.TanggalDownPayment = null;
                        produksiBahanBaku.TanggalJatuhTempo  = null;
                        produksiBahanBaku.TanggalPengiriman  = TextBoxTanggalPengiriman.Text.ToDateTime();
                        produksiBahanBaku.TBPOProduksiBahanBakuDetails.AddRange(ViewStateListDetail.Select(item => new TBPOProduksiBahanBakuDetail
                        {
                            IDBahanBaku           = item.IDBahanBaku,
                            IDSatuan              = item.IDSatuan,
                            HargaPokokKomposisi   = item.HargaPokokKomposisi,
                            BiayaTambahan         = item.BiayaTambahan,
                            TotalHPP              = item.TotalHPP,
                            HargaSupplier         = item.Harga,
                            PotonganHargaSupplier = item.PotonganHarga,
                            TotalHargaSupplier    = item.TotalHarga,
                            Jumlah = item.Jumlah,
                            Sisa   = item.Sisa
                        }));

                        produksiBahanBaku.TotalJumlah                 = produksiBahanBaku.TBPOProduksiBahanBakuDetails.Sum(item => item.Jumlah);
                        produksiBahanBaku.EnumJenisHPP                = RadioButtonListStatusHPP.SelectedValue.ToInt();
                        produksiBahanBaku.SubtotalBiayaTambahan       = produksiBahanBaku.TBPOProduksiBahanBakuDetails.Sum(item => (item.Jumlah * item.BiayaTambahan));
                        produksiBahanBaku.SubtotalTotalHPP            = produksiBahanBaku.TBPOProduksiBahanBakuDetails.Sum(item => (item.Jumlah * item.TotalHPP));
                        produksiBahanBaku.SubtotalTotalHargaSupplier  = produksiBahanBaku.TBPOProduksiBahanBakuDetails.Sum(item => (item.Jumlah * item.TotalHargaSupplier));
                        produksiBahanBaku.PotonganPOProduksiBahanBaku = 0;
                        produksiBahanBaku.BiayaLainLain               = 0;
                        produksiBahanBaku.PersentaseTax               = 0;
                        produksiBahanBaku.Tax         = 0;
                        produksiBahanBaku.Grandtotal  = produksiBahanBaku.SubtotalTotalHPP;
                        produksiBahanBaku.DownPayment = 0;
                        produksiBahanBaku.Keterangan  = TextBoxKeterangan.Text;

                        produksiBahanBaku.TBPOProduksiBahanBakuKomposisis.AddRange(ViewStateListKomposisi.OrderBy(item => item.BahanBaku).GroupBy(item => new
                        {
                            item.IDBahanBaku,
                            item.IDSatuan,
                            item.HargaBeli
                        })
                                                                                   .Select(item => new TBPOProduksiBahanBakuKomposisi
                        {
                            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)
                        }));

                        produksiBahanBaku.TBPOProduksiBahanBakuBiayaTambahans.AddRange(ViewStateListBiayaTambahan.OrderBy(item => item.Nama).GroupBy(item => new
                        {
                            item.IDJenisBiayaProduksi
                        })
                                                                                       .Select(item => new TBPOProduksiBahanBakuBiayaTambahan
                        {
                            IDJenisBiayaProduksi = item.Key.IDJenisBiayaProduksi,
                            Nominal = item.Sum(x => x.SubtotalBiaya)
                        }));

                        if (produksiBahanBaku.IDProyeksi != null)
                        {
                            foreach (var item in db.TBProyeksiKomposisis.Where(item => item.IDProyeksi == produksiBahanBaku.IDProyeksi && item.LevelProduksi == produksiBahanBaku.LevelProduksi && item.BahanBakuDasar == false).OrderBy(data => data.TBBahanBaku.Nama).ToArray())
                            {
                                TBPOProduksiBahanBakuDetail poProduksiBahanBakuDetail = produksiBahanBaku.TBPOProduksiBahanBakuDetails.FirstOrDefault(data => data.IDBahanBaku == item.IDBahanBaku);
                                if (poProduksiBahanBakuDetail != null)
                                {
                                    item.Sisa = item.Sisa - (poProduksiBahanBakuDetail.Jumlah * poProduksiBahanBakuDetail.TBBahanBaku.Konversi.Value);
                                }
                            }
                        }

                        db.SubmitChanges();

                        statusBerhasil = true;
                    }
                }
                catch (Exception ex)
                {
                    if (statusBerhasil != true && string.IsNullOrEmpty(Request.QueryString["edit"]))
                    {
                        using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
                        {
                            produksiBahanBaku = db.TBPOProduksiBahanBakus.FirstOrDefault(item => item.IDPOProduksiBahanBaku == IDPOProduksiBahanBaku);
                            if (produksiBahanBaku != null)
                            {
                                db.TBPOProduksiBahanBakuDetails.DeleteAllOnSubmit(produksiBahanBaku.TBPOProduksiBahanBakuDetails);
                                db.TBPOProduksiBahanBakuKomposisis.DeleteAllOnSubmit(produksiBahanBaku.TBPOProduksiBahanBakuKomposisis);
                                db.TBPOProduksiBahanBakuBiayaTambahans.DeleteAllOnSubmit(produksiBahanBaku.TBPOProduksiBahanBakuBiayaTambahans);
                                db.TBPOProduksiBahanBakus.DeleteOnSubmit(produksiBahanBaku);
                                db.SubmitChanges();

                                IDPOProduksiBahanBaku = string.Empty;
                            }
                        }
                    }
                    LogError_Class LogError = new LogError_Class(ex, "Produksi Bahan Baku 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=" + produksiBahanBaku.IDPOProduksiBahanBaku);
                        }
                        else
                        {
                            Response.Redirect("Default.aspx");
                        }
                    }
                }
            }
            else
            {
                LabelPeringatan.Text = "Tidak ada Bahan Baku yang dipilih";
                peringatan.Visible   = true;
            }
        }
    }
예제 #19
0
    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");
            }
        }
    }
예제 #20
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 = Pengaturan.JenisPOProduksi(poProduksiBahanBaku.EnumJenisProduksi, "BahanBaku");
                LabelIDPOProduksiBahanBaku.Text = poProduksiBahanBaku.IDPOProduksiBahanBaku;

                LabelNamaSupplier.Text   = poProduksiBahanBaku.IDSupplier != null ? poProduksiBahanBaku.TBSupplier.Nama : string.Empty;
                LabelAlamatSupplier.Text = poProduksiBahanBaku.IDSupplier != null ? poProduksiBahanBaku.TBSupplier.Alamat : string.Empty;

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

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

                RepeaterDetail.DataSource = poProduksiBahanBaku.TBPOProduksiBahanBakuDetails.Select(item => new
                {
                    item.TBBahanBaku.KodeBahanBaku,
                    BahanBaku = item.TBBahanBaku.Nama,
                    Satuan    = item.TBSatuan.Nama,
                    item.HargaPokokKomposisi,
                    item.BiayaTambahan,
                    item.HargaSupplier,
                    item.PotonganHargaSupplier,
                    item.Jumlah,
                    Subtotal = item.TBPOProduksiBahanBaku.EnumJenisProduksi == (int)PilihanEnumJenisProduksi.ProduksiSendiri ? item.SubtotalHPP : item.SubtotalHargaSupplier
                }).ToArray();
                RepeaterDetail.DataBind();
                LabelTotalSubtotal.Text = poProduksiBahanBaku.EnumJenisProduksi == (int)PilihanEnumJenisProduksi.ProduksiSendiri ? poProduksiBahanBaku.SubtotalTotalHPP.ToFormatHarga() : poProduksiBahanBaku.SubtotalTotalHargaSupplier.ToFormatHarga();

                if (poProduksiBahanBaku.EnumJenisProduksi == (int)PilihanEnumJenisProduksi.ProduksiSendiri)
                {
                    headerHarga.Visible    = false;
                    headerPotongan.Visible = false;
                }
                else
                {
                    headerKomposisi.Visible = false;
                    headerBiaya.Visible     = false;
                }
                RepeaterKomposisi.DataSource = poProduksiBahanBaku.TBPOProduksiBahanBakuKomposisis.OrderBy(item => item.TBBahanBaku.Nama).ToArray();
                RepeaterKomposisi.DataBind();
                LabelTotalSubtotalKomposisi.Text = poProduksiBahanBaku.TBPOProduksiBahanBakuKomposisis.Sum(item => item.Subtotal).ToFormatHarga();

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

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

                if (poProduksiBahanBaku.EnumJenisProduksi == (int)PilihanEnumJenisProduksi.PurchaseOrder)
                {
                    komposisi.Visible = false;
                }
            }
        }
    }