Beispiel #1
0
    protected void RepeaterProyeksi_ItemCommand(object source, RepeaterCommandEventArgs e)
    {
        if (e.CommandName == "Selesai")
        {
            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"];

                TBProyeksi[] daftarProyeksi = db.TBProyeksis.Where(item => item.EnumStatusProyeksi == (int)PilihanEnumStatusProyeksi.Proses).OrderByDescending(item => item.TanggalProyeksi).ToArray();

                TBProyeksi proyeksi = daftarProyeksi.FirstOrDefault(item => item.IDProyeksi == e.CommandArgument.ToString());
                proyeksi.EnumStatusProyeksi = (int)PilihanEnumStatusProyeksi.Selesai;

                db.SubmitChanges();

                LoadData(daftarProyeksi);
            }
        }
    }
Beispiel #2
0
    protected void ButtonSimpan_Click(object sender, EventArgs e)
    {
        using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
        {
            PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"];

            List <ProyeksiDetail_Model>  ViewStateListDetail      = (List <ProyeksiDetail_Model>)ViewState["ViewStateListDetail"];
            List <KomposisiProduk_Model> ViewStateKomposisiProduk = (List <KomposisiProduk_Model>)ViewState["ViewStateKomposisiProduk"];

            if (ViewStateListDetail.Count > 0)
            {
                string     IDProyeksi = string.Empty;
                TBProyeksi proyeksi   = null;

                try
                {
                    peringatan.Visible = false;

                    db.Proc_InsertProyeksi(ref IDProyeksi, pengguna.IDTempat, TextBoxTanggalProyeksi.Text.ToDateTime().AddHours(DateTime.Now.Hour).AddMinutes(DateTime.Now.Minute));

                    proyeksi                = db.TBProyeksis.FirstOrDefault(item => item.IDProyeksi == IDProyeksi);
                    proyeksi.IDPengguna     = pengguna.IDPengguna;
                    proyeksi.TanggalTarget  = TextBoxTanggalTarget.Text.ToDateTime();
                    proyeksi.TanggalSelesai = null;
                    proyeksi.TBProyeksiDetails.AddRange(ViewStateListDetail.OrderBy(item => item.KombinasiProduk).Select(item => new TBProyeksiDetail
                    {
                        IDKombinasiProduk = item.IDKombinasiProduk,
                        HargaJual         = item.HargaJual,
                        Jumlah            = item.Jumlah,
                        Sisa = item.Jumlah
                    }));
                    proyeksi.TotalJumlah         = proyeksi.TBProyeksiDetails.Sum(item => item.Jumlah);
                    proyeksi.GrandTotalHargaJual = proyeksi.TBProyeksiDetails.Sum(item => item.HargaJual * item.Jumlah);
                    proyeksi.EnumStatusProyeksi  = 1;
                    proyeksi.Keterangan          = TextBoxKeterangan.Text;

                    if (ViewStateKomposisiProduk.Count > 0)
                    {
                        int LevelAkhir = ViewStateKomposisiProduk.Max(item => item.LevelProduksi);

                        proyeksi.TBProyeksiKomposisis.AddRange(ViewStateKomposisiProduk.OrderBy(item2 => item2.BahanBaku).ThenBy(item2 => item2.LevelProduksi).Select(item => new TBProyeksiKomposisi
                        {
                            IDBahanBaku    = item.IDBahanBaku,
                            IDSatuan       = item.IDSatuan,
                            LevelProduksi  = LevelAkhir - item.LevelProduksi,
                            BahanBakuDasar = item.BahanBakuDasar,
                            Jumlah         = item.JumlahPemakaian,
                            Stok           = item.Stok,
                            Kurang         = item.Kurang,
                            Sisa           = item.JumlahPemakaian
                        }));
                    }

                    db.SubmitChanges();
                }
                catch (Exception ex)
                {
                    if (IDProyeksi != string.Empty)
                    {
                        proyeksi = db.TBProyeksis.FirstOrDefault(item => item.IDProyeksi == IDProyeksi);
                        if (proyeksi != null)
                        {
                            db.TBProyeksiKomposisis.DeleteAllOnSubmit(proyeksi.TBProyeksiKomposisis);
                            db.TBProyeksiDetails.DeleteAllOnSubmit(proyeksi.TBProyeksiDetails);
                            db.TBProyeksis.DeleteOnSubmit(proyeksi);
                            db.SubmitChanges();

                            IDProyeksi = string.Empty;
                        }
                    }
                    LogError_Class LogError = new LogError_Class(ex, "Purchase Order Produk (ButtonSimpan_Click by : " + pengguna.NamaLengkap + ")");
                    LabelPeringatan.Text = "Terjadi kesalahan, silahkan cek kembali data yang diinputkan";
                    peringatan.Visible   = true;
                }
                finally
                {
                    if (IDProyeksi != string.Empty)
                    {
                        Response.Redirect("Default.aspx");
                    }
                }
            }
        }
    }
Beispiel #3
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"];

                TextBoxPegawai.Text = pengguna.NamaLengkap;

                TBProyeksi proyeksi = db.TBProyeksis.FirstOrDefault(item => item.IDProyeksi == Request.QueryString["id"]);
                TextBoxTanggalProyeksi.Text = proyeksi.TanggalProyeksi.ToFormatTanggal();
                TextBoxTanggalTarget.Text   = proyeksi.TanggalTarget.ToFormatTanggal();

                #region Produk
                var daftarProduk = proyeksi.TBProyeksiDetails.Select(item => new
                {
                    item.TBKombinasiProduk.KodeKombinasiProduk,
                    PemilikProduk = item.TBKombinasiProduk.TBProduk.TBPemilikProduk.Nama,
                    Produk        = item.TBKombinasiProduk.TBProduk.Nama,
                    AtributProduk = item.TBKombinasiProduk.TBAtributProduk.Nama,
                    Kategori      = StokProduk_Class.GabungkanSemuaKategoriProduk(null, null, item.TBKombinasiProduk),
                    item.Jumlah,
                    item.Sisa
                }).OrderBy(item => item.Produk).ThenBy(item => item.AtributProduk).ToArray();
                RepeaterProduk.DataSource = daftarProduk;
                RepeaterProduk.DataBind();

                if (daftarProduk.Sum(item => item.Sisa) <= 0)
                {
                    ButtonProduk.Visible = false;
                }
                #endregion

                if (proyeksi.TBProyeksiKomposisis.Count == 0)
                {
                    PanelKomposisi.Visible = false;

                    RepeaterKomposisi.DataSource = null;
                    RepeaterKomposisi.DataBind();

                    RepeaterBahanBakuDasar.DataSource = null;
                    RepeaterBahanBakuDasar.DataBind();
                }
                else
                {
                    PanelKomposisi.Visible = true;

                    #region Komposisi
                    var produksiBahanBaku = proyeksi.TBProyeksiKomposisis.Where(item => item.LevelProduksi > 0).GroupBy(item => new
                    {
                        item.LevelProduksi
                    })
                                            .Select(item => new
                    {
                        item.Key.LevelProduksi,
                        SubData = item.Where(data => data.LevelProduksi == item.Key.LevelProduksi && data.BahanBakuDasar == false).Select(data => new
                        {
                            data.IDBahanBaku,
                            data.IDSatuan,
                            BahanBaku = data.TBBahanBaku.Nama,
                            Kategori  = StokBahanBaku_Class.GabungkanSemuaKategoriBahanBaku(null, null, data.TBBahanBaku),
                            Satuan    = data.TBSatuan.Nama,
                            data.Jumlah
                        }).OrderBy(data => data.BahanBaku),
                        StatusButton = item.Sum(data => data.Sisa) > 0 ? true : false
                    }).OrderBy(item => item.LevelProduksi);
                    RepeaterKomposisi.DataSource = produksiBahanBaku;
                    RepeaterKomposisi.DataBind();
                    #endregion

                    #region Komposisi Dasar
                    //RepeaterBahanBakuDasar.DataSource = proyeksi.TBProyeksiKomposisis.Where(item => item.BahanBakuDasar == true)
                    //.Select(item => new
                    //{
                    //    item.TBBahanBaku.IDBahanBaku,
                    //    item.TBSatuan.IDSatuan,
                    //    BahanBaku = item.TBBahanBaku.Nama,
                    //    Kategori = StokBahanBaku_Class.GabungkanSemuaKategoriBahanBaku(null, null, item.TBBahanBaku),
                    //    Satuan = item.TBSatuan.Nama,
                    //    item.Jumlah,
                    //}).OrderBy(data => data.BahanBaku);
                    //RepeaterBahanBakuDasar.DataBind();

                    var purchaseOrder = proyeksi.TBProyeksiKomposisis.Where(item => item.BahanBakuDasar == true).GroupBy(item => new
                    {
                        item.TBBahanBaku,
                        item.TBSatuan
                    })
                                        .Select(item => new
                    {
                        item.Key.TBBahanBaku.IDBahanBaku,
                        item.Key.TBSatuan.IDSatuan,
                        BahanBaku = item.Key.TBBahanBaku.Nama,
                        Kategori  = StokBahanBaku_Class.GabungkanSemuaKategoriBahanBaku(null, null, item.Key.TBBahanBaku),
                        Satuan    = item.Key.TBSatuan.Nama,
                        Jumlah    = item.Sum(x => x.Jumlah),
                        Sisa      = item.Sum(x => x.Sisa)
                    }).OrderBy(data => data.BahanBaku);
                    RepeaterBahanBakuDasar.DataSource = purchaseOrder;
                    RepeaterBahanBakuDasar.DataBind();

                    if (purchaseOrder.Sum(item => item.Sisa) <= 0)
                    {
                        LinkButtonPurchaseOrder.Visible = false;
                    }
                    #endregion
                }

                RepeaterPOProduksiBahanBaku.DataSource = proyeksi.TBPOProduksiBahanBakus.OrderBy(item => item.Tanggal).Select(item => new
                {
                    item.IDPOProduksiBahanBaku,
                    Jenis = Pengaturan.JenisPOProduksi(item.EnumJenisProduksi, "BahanBaku"),
                    item.Tanggal,
                    Pegawai  = item.TBPengguna.NamaLengkap,
                    Supplier = item.IDSupplier == null ? string.Empty : item.TBSupplier.Nama,
                    item.Grandtotal
                }).ToArray();
                RepeaterPOProduksiBahanBaku.DataBind();

                RepeaterPOProduksiProduk.DataSource = proyeksi.TBPOProduksiProduks.OrderBy(item => item.Tanggal).Select(item => new
                {
                    item.IDPOProduksiProduk,
                    Jenis = Pengaturan.JenisPOProduksi(item.EnumJenisProduksi, "Produk"),
                    item.Tanggal,
                    Pegawai = item.TBPengguna.NamaLengkap,
                    Vendor  = item.IDVendor == null ? string.Empty : item.TBVendor.Nama,
                    item.Grandtotal
                }).ToArray();
                RepeaterPOProduksiProduk.DataBind();
            }
        }
    }
Beispiel #4
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;

                TBProyeksi proyeksi = db.TBProyeksis.FirstOrDefault(item => item.IDProyeksi == Request.QueryString["id"]);

                LabelIDProyeksi.Text      = proyeksi.IDProyeksi;
                LabelPegawai.Text         = proyeksi.TBPengguna.NamaLengkap;
                LabelTempat.Text          = proyeksi.TBTempat.Nama;
                LabelTanggalProyeksi.Text = proyeksi.TanggalProyeksi.ToFormatTanggal();
                LabelTanggalTarget.Text   = proyeksi.TanggalTarget.ToFormatTanggal();
                LabelStatusProyeksi.Text  = Pengaturan.StatusProyeksi(proyeksi.EnumStatusProyeksi.Value);

                var varian = proyeksi.TBProyeksiDetails.Select(item => new { item.TBKombinasiProduk.IDAtributProduk, item.TBKombinasiProduk.TBAtributProduk.Nama }).OrderBy(item => item.Nama).Distinct();
                RepeaterVarian.DataSource = varian;
                RepeaterVarian.DataBind();

                KolomVarian.Attributes.Add("colspan", varian.Count().ToString());

                #region Produk
                RepeaterDetail.DataSource = proyeksi.TBProyeksiDetails.GroupBy(item => new
                {
                    item.TBKombinasiProduk.TBProduk
                }).Select(item => new
                {
                    PemilikProduk = item.Key.TBProduk.TBPemilikProduk.Nama,
                    Kategori      = StokProduk_Class.GabungkanSemuaKategoriProduk(null, null, item.FirstOrDefault().TBKombinasiProduk),
                    Produk        = item.Key.TBProduk.Nama,
                    Warna         = item.Key.TBProduk.TBWarna.Nama,
                    AtributProduk = varian.Select(data => new
                    {
                        Jumlah = item.FirstOrDefault(x => x.TBKombinasiProduk.IDAtributProduk == data.IDAtributProduk) != null ? item.FirstOrDefault(x => x.TBKombinasiProduk.IDAtributProduk == data.IDAtributProduk).Jumlah : 0
                    }),
                    Total = item.Sum(x => x.Jumlah)
                }).ToArray();
                RepeaterDetail.DataBind();
                #endregion

                if (proyeksi.TBProyeksiKomposisis.Count == 0)
                {
                    PanelKomposisi.Visible = false;

                    RepeaterKomposisi.DataSource = null;
                    RepeaterKomposisi.DataBind();

                    RepeaterBahanBakuDasar.DataSource = null;
                    RepeaterBahanBakuDasar.DataBind();
                }
                else
                {
                    PanelKomposisi.Visible = true;

                    #region Komposisi
                    RepeaterKomposisi.DataSource = proyeksi.TBProyeksiKomposisis.Where(item => item.LevelProduksi > 1).GroupBy(item => new
                    {
                        item.LevelProduksi
                    })
                                                   .Select(item => new
                    {
                        item.Key,
                        SubData = proyeksi.TBProyeksiKomposisis.Where(data => data.LevelProduksi == item.Key.LevelProduksi && data.BahanBakuDasar == false).Select(data => new
                        {
                            data.IDBahanBaku,
                            data.IDSatuan,
                            BahanBaku = data.TBBahanBaku.Nama,
                            Kategori  = StokBahanBaku_Class.GabungkanSemuaKategoriBahanBaku(null, null, data.TBBahanBaku),
                            Satuan    = data.TBSatuan.Nama,
                            data.Jumlah
                        }).OrderBy(data => data.BahanBaku)
                    }).OrderBy(item => item.Key.LevelProduksi);
                    RepeaterKomposisi.DataBind();
                    #endregion

                    #region Komposisi Dasar
                    RepeaterBahanBakuDasar.DataSource = proyeksi.TBProyeksiKomposisis.Where(data => data.BahanBakuDasar == true).Select(data => new
                    {
                        data.IDBahanBaku,
                        data.IDSatuan,
                        BahanBaku = data.TBBahanBaku.Nama,
                        Kategori  = StokBahanBaku_Class.GabungkanSemuaKategoriBahanBaku(null, null, data.TBBahanBaku),
                        Satuan    = data.TBSatuan.Nama,
                        data.Jumlah,
                        data.Stok,
                        data.Kurang
                    }).OrderBy(data => data.BahanBaku);
                    RepeaterBahanBakuDasar.DataBind();
                    #endregion
                }

                LabelKeterangan.Text = proyeksi.Keterangan != null ? proyeksi.Keterangan : string.Empty;
            }
        }
    }