Beispiel #1
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;

                TBPengirimanPOProduksiBahanBaku pengirimanPOProduksiBahanBaku = db.TBPengirimanPOProduksiBahanBakus.FirstOrDefault(item => item.IDPengirimanPOProduksiBahanBaku == Request.QueryString["id"]);

                LabelJudul.Text = "DELIVERY RAW MATERIALS TO SUPPLIER";
                LabelIDPengirimanPOProduksiBahanBaku.Text = pengirimanPOProduksiBahanBaku.IDPengirimanPOProduksiBahanBaku;

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

                LabelIDProduksi.Text   = pengirimanPOProduksiBahanBaku.IDPOProduksiBahanBaku;
                LabelIDPengiriman.Text = pengirimanPOProduksiBahanBaku.IDPengirimanPOProduksiBahanBaku;
                LabelTanggal.Text      = pengirimanPOProduksiBahanBaku.Tanggal.ToFormatTanggal();
                LabelPengirim.Text     = pengirimanPOProduksiBahanBaku.TBPengguna.NamaLengkap;

                RepeaterDetail.DataSource = pengirimanPOProduksiBahanBaku.TBPengirimanPOProduksiBahanBakuDetails.ToArray();
                RepeaterDetail.DataBind();
            }
        }
    }
Beispiel #2
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");
            }
        }
    }