Exemplo n.º 1
0
    public static void Update(DataClassesDatabaseDataContext db, TBSupplier supplier, TBStokBahanBaku stokBahanBaku, decimal harga)
    {
        if (supplier != null)
        {
            TBHargaSupplier hargaSupplier = db.TBHargaSuppliers.FirstOrDefault(item => item.TBSupplier == supplier && item.TBStokBahanBaku == stokBahanBaku);

            if (hargaSupplier == null)
            {
                hargaSupplier = new TBHargaSupplier
                {
                    TBSupplier      = supplier,
                    Tanggal         = DateTime.Now,
                    Harga           = harga,
                    TBStokBahanBaku = stokBahanBaku
                };

                db.TBHargaSuppliers.InsertOnSubmit(hargaSupplier);
            }
            else
            {
                hargaSupplier.Tanggal = DateTime.Now;
                hargaSupplier.Harga   = harga;
            }
        }
    }
Exemplo n.º 2
0
    private void CariHargaSupplierVendor()
    {
        TextBoxHargaSupplier.Text         = "0.00";
        TextBoxJumlah.Text                = "1.00";
        TextBoxPotonganHargaSupplier.Text = "0.00";

        using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
        {
            TBHargaSupplier hargaSupplier = db.TBHargaSuppliers.FirstOrDefault(item => item.IDSupplier == DropDownListSupplier.SelectedValue.ToInt() && item.IDStokBahanBaku == DropDownListStokBahanBaku.SelectedValue.ToInt());

            if (hargaSupplier != null)
            {
                TextBoxHargaSupplier.Text = hargaSupplier.Harga.ToFormatHarga();
                LabelSatuan.Text          = "/" + hargaSupplier.TBStokBahanBaku.TBBahanBaku.TBSatuan1.Nama;
            }
            else
            {
                LabelSatuan.Text = "/" + db.TBStokBahanBakus.FirstOrDefault(item => item.IDStokBahanBaku == DropDownListStokBahanBaku.SelectedValue.ToInt()).TBBahanBaku.TBSatuan1.Nama;
            }
        }
    }
Exemplo n.º 3
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;
            }
        }
    }