示例#1
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;
        }
    }
示例#2
0
    private void TambahSubKomposisiBahanBaku(List <KomposisiProduk_Model> ViewStateKomposisiProduk, TBBahanBaku bahanBaku, decimal jumlahBahanWIP, TBStokBahanBaku[] daftarStokBahanBaku, int Level)
    {
        PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"];

        foreach (var subItem in bahanBaku.TBKomposisiBahanBakus)
        {
            TBStokBahanBaku stokBahanBaku = daftarStokBahanBaku.FirstOrDefault(data => data.IDBahanBaku == subItem.IDBahanBaku);

            KomposisiProduk_Model komposisiDetail = ViewStateKomposisiProduk.FirstOrDefault(data => data.IDBahanBaku == subItem.IDBahanBaku && data.LevelProduksi == Level);

            if (komposisiDetail == null)
            {
                komposisiDetail = new KomposisiProduk_Model()
                {
                    LevelProduksi   = Level,
                    IDBahanBaku     = stokBahanBaku.IDBahanBaku.Value,
                    IDSatuan        = stokBahanBaku.TBBahanBaku.IDSatuan,
                    Kategori        = StokBahanBaku_Class.GabungkanSemuaKategoriBahanBaku(null, stokBahanBaku, null),
                    BahanBaku       = stokBahanBaku.TBBahanBaku.Nama,
                    Satuan          = stokBahanBaku.TBBahanBaku.TBSatuan.Nama,
                    JumlahPemakaian = subItem.Jumlah.Value * jumlahBahanWIP,
                    BahanBakuDasar  = stokBahanBaku.TBBahanBaku.TBKomposisiBahanBakus.Count > 0 ? false : true
                };

                if (komposisiDetail.BahanBakuDasar == true)
                {
                    komposisiDetail.Stok   = stokBahanBaku.Jumlah.Value;
                    komposisiDetail.Kurang = stokBahanBaku.Jumlah.Value - komposisiDetail.JumlahPemakaian < 0 ? Math.Abs(stokBahanBaku.Jumlah.Value - komposisiDetail.JumlahPemakaian) : 0;
                }

                ViewStateKomposisiProduk.Add(komposisiDetail);
            }
            else
            {
                komposisiDetail.JumlahPemakaian = komposisiDetail.JumlahPemakaian + subItem.Jumlah.Value * jumlahBahanWIP;

                if (komposisiDetail.BahanBakuDasar == true)
                {
                    komposisiDetail.Stok   = stokBahanBaku.Jumlah.Value;
                    komposisiDetail.Kurang = stokBahanBaku.Jumlah.Value - komposisiDetail.JumlahPemakaian < 0 ? Math.Abs(stokBahanBaku.Jumlah.Value - komposisiDetail.JumlahPemakaian) : 0;
                }
            }

            if (stokBahanBaku.TBBahanBaku.TBKomposisiBahanBakus.Count > 0)
            {
                TambahSubKomposisiBahanBaku(ViewStateKomposisiProduk, stokBahanBaku.TBBahanBaku, (subItem.Jumlah.Value * jumlahBahanWIP), daftarStokBahanBaku, Level + 1);
            }
        }
    }
    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();
            }
        }
    }
示例#4
0
    private void LoadDataTransferBahanBaku()
    {
        using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
        {
            var TransferBahanBakuDetail = db.TBTransferBahanBakuDetails
                                          .Where(item => item.IDTransferBahanBaku == LabelIDTransferBahanBaku.Text)
                                          .Select(item => new
            {
                item.IDTransferBahanBakuDetail,
                Kode = item.TBBahanBaku.KodeBahanBaku,
                item.TBBahanBaku.Nama,
                SatuanBesar = item.TBSatuan.Nama,
                Kategori    = StokBahanBaku_Class.GabungkanSemuaKategoriBahanBaku(db, null, item.TBBahanBaku),
                item.HargaBeli,
                item.Jumlah,
                item.Subtotal
            }).OrderBy(item => item.Nama).ToArray();

            RepeaterTransferBahanBaku.DataSource = TransferBahanBakuDetail;
            RepeaterTransferBahanBaku.DataBind();

            LabelTotalSubtotal.Text = TransferBahanBakuDetail.Sum(item => item.Subtotal).ToFormatHarga();
        }
    }
示例#5
0
    private void TambahKomposisi(DataClassesDatabaseDataContext db, int idKombinasiProduk, int jumlah)
    {
        PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"];

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

        TBKombinasiProduk[] daftarkombinasiProduk = db.TBKombinasiProduks.ToArray();
        TBStokBahanBaku[]   daftarStokBahanBaku   = db.TBStokBahanBakus.Where(item => item.IDTempat == pengguna.IDTempat).ToArray();

        TBKombinasiProduk kombinasiProduk = daftarkombinasiProduk.FirstOrDefault(data => data.IDKombinasiProduk == idKombinasiProduk);

        foreach (var subItem in kombinasiProduk.TBKomposisiKombinasiProduks)
        {
            TBStokBahanBaku stokBahanBaku = daftarStokBahanBaku.FirstOrDefault(data => data.IDBahanBaku == subItem.IDBahanBaku);

            int Level = 0;

            KomposisiProduk_Model komposisiDetail = ViewStateKomposisiProduk.FirstOrDefault(data => data.IDBahanBaku == subItem.IDBahanBaku && data.LevelProduksi == Level);

            if (komposisiDetail == null)
            {
                komposisiDetail = new KomposisiProduk_Model()
                {
                    LevelProduksi   = Level,
                    IDBahanBaku     = stokBahanBaku.IDBahanBaku.Value,
                    IDSatuan        = stokBahanBaku.TBBahanBaku.IDSatuan,
                    Kategori        = StokBahanBaku_Class.GabungkanSemuaKategoriBahanBaku(null, stokBahanBaku, null),
                    BahanBaku       = stokBahanBaku.TBBahanBaku.Nama,
                    Satuan          = stokBahanBaku.TBBahanBaku.TBSatuan.Nama,
                    JumlahPemakaian = subItem.Jumlah.Value * jumlah,
                    BahanBakuDasar  = stokBahanBaku.TBBahanBaku.TBKomposisiBahanBakus.Count > 0 ? false : true
                };

                if (komposisiDetail.BahanBakuDasar == true)
                {
                    komposisiDetail.Stok   = stokBahanBaku.Jumlah.Value;
                    komposisiDetail.Kurang = stokBahanBaku.Jumlah.Value - komposisiDetail.JumlahPemakaian < 0 ? Math.Abs(stokBahanBaku.Jumlah.Value - komposisiDetail.JumlahPemakaian) : 0;
                }

                ViewStateKomposisiProduk.Add(komposisiDetail);
            }
            else
            {
                komposisiDetail.JumlahPemakaian = komposisiDetail.JumlahPemakaian + subItem.Jumlah.Value * jumlah;

                if (komposisiDetail.BahanBakuDasar == true)
                {
                    komposisiDetail.Stok   = stokBahanBaku.Jumlah.Value;
                    komposisiDetail.Kurang = stokBahanBaku.Jumlah.Value - komposisiDetail.JumlahPemakaian < 0 ? Math.Abs(stokBahanBaku.Jumlah.Value - komposisiDetail.JumlahPemakaian) : 0;
                }
            }


            if (stokBahanBaku.TBBahanBaku.TBKomposisiBahanBakus.Count > 0)
            {
                TambahSubKomposisiBahanBaku(ViewStateKomposisiProduk, stokBahanBaku.TBBahanBaku, (subItem.Jumlah.Value * jumlah), daftarStokBahanBaku, Level + 1);
            }
        }

        ViewState["ViewStateKomposisiProduk"] = ViewStateKomposisiProduk;
    }
示例#6
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();
            }
        }
    }
示例#7
0
    private void LoadData(bool GenerateExcel)
    {
        //DEFAULT
        TextBoxTanggalAwal.Text  = ((DateTime)ViewState["TanggalAwal"]).ToString("d MMMM yyyy");
        TextBoxTanggalAkhir.Text = ((DateTime)ViewState["TanggalAkhir"]).ToString("d MMMM yyyy");

        using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
        {
            if (TextBoxTanggalAwal.Text == TextBoxTanggalAkhir.Text)
            {
                LabelPeriode.Text = TextBoxTanggalAwal.Text;
            }
            else
            {
                LabelPeriode.Text = TextBoxTanggalAwal.Text + " - " + TextBoxTanggalAkhir.Text;
            }

            TBPOProduksiBahanBaku[]                 daftarPOProduksiBahanBaku                 = db.TBPOProduksiBahanBakus.Where(item => item.IDTempat == DropDownListTempat.SelectedValue.ToInt() && item.Tanggal.Date >= DateTime.Parse(TextBoxTanggalAwal.Text).Date&& item.Tanggal.Date <= DateTime.Parse(TextBoxTanggalAkhir.Text).Date).ToArray();
            TBPOProduksiBahanBakuDetail[]           daftarPOProduksiBahanBakuDetail           = db.TBPOProduksiBahanBakuDetails.Where(item => item.TBPOProduksiBahanBaku.IDTempat == DropDownListTempat.SelectedValue.ToInt() && item.TBPOProduksiBahanBaku.Tanggal.Date >= DateTime.Parse(TextBoxTanggalAwal.Text).Date&& item.TBPOProduksiBahanBaku.Tanggal.Date <= DateTime.Parse(TextBoxTanggalAkhir.Text).Date).ToArray();
            TBPenerimaanPOProduksiBahanBakuDetail[] daftarPenerimaanPOProduksiBahanBakuDetail = db.TBPenerimaanPOProduksiBahanBakuDetails.Where(item => item.TBPenerimaanPOProduksiBahanBaku.TBPOProduksiBahanBaku.IDTempat == DropDownListTempat.SelectedValue.ToInt() && item.TBPenerimaanPOProduksiBahanBaku.TanggalTerima.Value.Date >= DateTime.Parse(TextBoxTanggalAwal.Text).Date&& item.TBPenerimaanPOProduksiBahanBaku.TanggalTerima.Value.Date <= DateTime.Parse(TextBoxTanggalAkhir.Text).Date).ToArray();

            #region Purchase Order
            var purchaseOrder = daftarPOProduksiBahanBaku.GroupBy(item => new
            {
                item.EnumJenisProduksi
            })
                                .Select(item => new
            {
                item.Key.EnumJenisProduksi,
                JenisPO           = Pengaturan.JenisPOProduksi(item.Key.EnumJenisProduksi, "BahanBaku"),
                Baru              = item.Count(),
                GrandtotalBaru    = item.Sum(data => data.Grandtotal),
                Proses            = item.Count(),
                GrandtotalProses  = item.Sum(data => data.Grandtotal),
                Selesai           = item.Count(),
                GrandtotalSelesai = item.Sum(data => data.Grandtotal),
                Total             = item.Count(),
                GrandtotalTotal   = item.Sum(data => data.Grandtotal),
                Progress          = Persentase(item.Count() == 0 ? -1 : ((decimal)item.Count() / (decimal)item.Count()) * 100),
            }).OrderBy(item => item.EnumJenisProduksi).ToArray();
            RepeaterPurchaseOrder.DataSource = purchaseOrder;
            RepeaterPurchaseOrder.DataBind();

            LabelBaru.Text              = purchaseOrder.Sum(item => item.Baru).ToFormatHargaBulat();
            LabelGrandtotalBaru.Text    = purchaseOrder.Sum(item => item.GrandtotalBaru).ToFormatHarga();
            LabelProses.Text            = purchaseOrder.Sum(item => item.Proses).ToFormatHargaBulat();
            LabeGrandtotalProses.Text   = purchaseOrder.Sum(item => item.GrandtotalProses).ToFormatHarga();
            LabelSelesai.Text           = purchaseOrder.Sum(item => item.Selesai).ToFormatHargaBulat();
            LabelGrandtotalSelesai.Text = purchaseOrder.Sum(item => item.GrandtotalSelesai).ToFormatHarga();
            LabelTotal.Text             = purchaseOrder.Sum(item => item.Total).ToFormatHargaBulat();
            LabelGrandtotalTotal.Text   = purchaseOrder.Sum(item => item.GrandtotalTotal).ToFormatHarga();
            #endregion

            #region Summary
            LabelPotongan.Text              = daftarPOProduksiBahanBaku.Sum(item => item.PotonganPOProduksiBahanBaku).ToFormatHarga();
            LabelBiayaLainLain.Text         = daftarPOProduksiBahanBaku.Sum(item => item.BiayaLainLain).ToFormatHarga();
            LabelTax.Text                   = daftarPOProduksiBahanBaku.Sum(item => item.Tax).ToFormatHarga();
            LabelGrandtotal.Text            = daftarPOProduksiBahanBaku.Sum(item => item.Grandtotal).ToFormatHarga();
            LabelHargaKomposisiDetail.Text  = daftarPOProduksiBahanBakuDetail.Sum(item => item.Jumlah * item.HargaPokokKomposisi).ToFormatHarga();
            LabelBiayaTambahanDetail.Text   = daftarPOProduksiBahanBakuDetail.Sum(item => item.Jumlah * item.BiayaTambahan).ToFormatHarga();
            LabelPotonganHargaDetail.Text   = daftarPOProduksiBahanBakuDetail.Sum(item => item.Jumlah * item.PotonganHargaSupplier).ToFormatHarga();
            LabelJumlahBahanBakuDetail.Text = daftarPOProduksiBahanBakuDetail.Sum(item => item.Jumlah).ToFormatHarga();
            LabelHargaSupplierDetail.Text   = daftarPOProduksiBahanBakuDetail.Sum(item => item.Jumlah * item.HargaSupplier).ToFormatHarga();
            LabelSubtotalDetail.Text        = daftarPOProduksiBahanBakuDetail.Sum(item => item.SubtotalHPP + item.SubtotalHargaSupplier).ToFormatHarga();
            #endregion

            #region Kategori
            RepeaterKategori.DataSource = daftarPOProduksiBahanBakuDetail.GroupBy(item => new
            {
                Kategori = item.TBBahanBaku.TBRelasiBahanBakuKategoriBahanBakus.Count > 0 ? item.TBBahanBaku.TBRelasiBahanBakuKategoriBahanBakus.FirstOrDefault().TBKategoriBahanBaku.Nama : ""
            })
                                          .Select(item => new
            {
                item.Key.Kategori,
                Jumlah   = item.Sum(data => data.Jumlah).ToFormatHarga(),
                Subtotal = item.Sum(data => data.SubtotalHPP + data.SubtotalHargaSupplier).ToFormatHarga()
            });
            RepeaterKategori.DataBind();
            #endregion

            #region
            //RepeaterPenerimaan.DataSource = daftarPenerimaanPOProduksiBahanBakuDetail.GroupBy(item => new
            //{
            //    item.TBBahanBaku,
            //    item.TBSatuan
            //}).Select(item => new
            //{
            //    BahanBaku = item.Key.TBBahanBaku.Nama,
            //    Satuan = item.Key.TBSatuan.Nama,
            //    Kategori = StokBahanBaku_Class.GabungkanSemuaKategoriBahanBaku(db, null, item.Key.TBBahanBaku),
            //    Diterima = item.Sum(data => data.Diterima).ToFormatHarga(),
            //    Subtotal = item.FirstOrDefault().TBPenerimaanPOProduksiBahanBaku.TBPOProduksiBahanBaku.EnumJenisProduksi != (int)PilihanEnumJenisProduksi.ProduksiSendiri ? item.Sum(data => data.SubtotalHargaSupplier).ToFormatHarga() : item.Sum(data => data.SubtotalHPP).ToFormatHarga()
            //});
            //RepeaterPenerimaan.DataBind();

            RepeaterPenerimaan.DataSource = daftarPenerimaanPOProduksiBahanBakuDetail.GroupBy(item => new
            {
                Kategori = StokBahanBaku_Class.GabungkanSemuaKategoriBahanBaku(db, null, item.TBBahanBaku)
            }).Select(item => new
            {
                Kategori = item.Key.Kategori,
                Diterima = item.Sum(data => data.Diterima).ToFormatHarga(),
                Subtotal = item.FirstOrDefault().TBPenerimaanPOProduksiBahanBaku.TBPOProduksiBahanBaku.EnumJenisProduksi != (int)PilihanEnumJenisProduksi.ProduksiSendiri ? item.Sum(data => data.SubtotalHargaSupplier).ToFormatHarga() : item.Sum(data => data.SubtotalHPP).ToFormatHarga()
            }).OrderBy(item => item.Kategori);
            RepeaterPenerimaan.DataBind();
            #endregion

            #region Jatuh Tempo
            decimal batas = db.TBStoreKonfigurasis.FirstOrDefault(item => item.IDStoreKonfigurasi == (int)EnumStoreKonfigurasi.JumlahHariSebelumJatuhTempo).Pengaturan.ToDecimal();
            LabelPanelSetengahJatuhTempo.Text = "1-" + Math.Floor(batas / 2).ToFormatHargaBulat() + " Hari";
            LabelPanelJatuhTempo.Text         = Math.Floor(batas / 2).ToFormatHargaBulat() + "-" + batas.ToFormatHargaBulat() + " Hari";

            var daftarJatuhTempo = daftarPOProduksiBahanBaku
                                   .Where(item => item.EnumJenisProduksi != (int)PilihanEnumJenisProduksi.ProduksiSendiri && ((int)((item.TanggalJatuhTempo.Value.Date - DateTime.Now.Date).TotalDays) < batas))
                                   .Select(item => new
            {
                ClassWarna = Warna((int)((item.TanggalJatuhTempo.Value.Date - DateTime.Now.Date).TotalDays), batas),
                Pengguna   = item.TBPengguna.NamaLengkap,
                item.IDPOProduksiBahanBaku,
                item.TBSupplier.Nama,
                item.EnumJenisProduksi,
                item.Tanggal,
                item.TanggalJatuhTempo,
                Jarak = (item.TanggalJatuhTempo.Value.Date - DateTime.Now.Date).TotalDays
            })
                                   .OrderBy(item => item.Jarak)
                                   .ToArray();

            if (DropDownListJatuhTempo.SelectedValue == "0")
            {
                RepeaterPOBahanBakuJatuhTempoSatu.DataSource = daftarJatuhTempo.Where(item => item.ClassWarna == "danger");
                RepeaterPOBahanBakuJatuhTempoSatu.DataBind();
                RepeaterPOBahanBakuJatuhTempoDua.DataSource = daftarJatuhTempo.Where(item => item.ClassWarna == "warning");
                RepeaterPOBahanBakuJatuhTempoDua.DataBind();
                RepeaterPOBahanBakuJatuhTempoTiga.DataSource = daftarJatuhTempo.Where(item => item.ClassWarna == string.Empty);
                RepeaterPOBahanBakuJatuhTempoTiga.DataBind();
            }
            else
            {
                RepeaterPOBahanBakuJatuhTempoSatu.DataSource = daftarJatuhTempo.Where(item => item.ClassWarna == "danger" && item.EnumJenisProduksi == DropDownListJatuhTempo.SelectedValue.ToInt());
                RepeaterPOBahanBakuJatuhTempoSatu.DataBind();
                RepeaterPOBahanBakuJatuhTempoDua.DataSource = daftarJatuhTempo.Where(item => item.ClassWarna == "warning" && item.EnumJenisProduksi == DropDownListJatuhTempo.SelectedValue.ToInt());
                RepeaterPOBahanBakuJatuhTempoDua.DataBind();
                RepeaterPOBahanBakuJatuhTempoTiga.DataSource = daftarJatuhTempo.Where(item => item.ClassWarna == string.Empty && item.EnumJenisProduksi == DropDownListJatuhTempo.SelectedValue.ToInt());
                RepeaterPOBahanBakuJatuhTempoTiga.DataBind();
            }

            #endregion
        }
    }
示例#8
0
    protected void ButtonExport_Click(object sender, EventArgs e)
    {
        PenggunaLogin Pengguna = (PenggunaLogin)Session["PenggunaLogin"];

        string NamaWorksheet = "Bahan Baku";

        #region Default
        string NamaFile = "Laporan " + NamaWorksheet + " " + DateTime.Now.ToString("d MMMM yyyy hh.mm.ss") + ".xlsx";
        string Folder   = Server.MapPath("~/file_excel/" + NamaWorksheet + "/Export/");

        if (!Directory.Exists(Folder))
        {
            Directory.CreateDirectory(Folder);
        }

        string Path  = Folder + NamaFile;
        string Judul = "Laporan " + NamaWorksheet + " " + Pengguna.Store + " - " + Pengguna.Tempat + " " + DateTime.Now.ToString("d MMMM yyyy");

        FileInfo newFile = new FileInfo(Path);
        #endregion

        using (ExcelPackage package = new ExcelPackage(newFile))
        {
            ExcelWorksheet worksheet = package.Workbook.Worksheets.Add(NamaWorksheet);

            worksheet.Cells[1, 1].Value  = "No.";
            worksheet.Cells[1, 2].Value  = "Kode";
            worksheet.Cells[1, 3].Value  = "Bahan Baku";
            worksheet.Cells[1, 4].Value  = "Satuan Besar";
            worksheet.Cells[1, 5].Value  = "Konversi";
            worksheet.Cells[1, 6].Value  = "Satuan Kecil";
            worksheet.Cells[1, 7].Value  = "Berat";
            worksheet.Cells[1, 8].Value  = "Jumlah (Satuan Besar)";
            worksheet.Cells[1, 9].Value  = "Harga Beli per Satuan Besar";
            worksheet.Cells[1, 10].Value = "Jumlah Minimum (Satuan Besar)";
            worksheet.Cells[1, 11].Value = "Kategori";
            worksheet.Cells[1, 12].Value = "Keterangan";

            int index = 2;

            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                TBStokBahanBaku[] daftarStokBahanBaku = db.TBStokBahanBakus.Where(item => item.IDTempat == Pengguna.IDTempat).ToArray();
                foreach (var item in db.TBBahanBakus.OrderBy(item => item.Nama).ToArray())
                {
                    TBStokBahanBaku stokBahanBaku = daftarStokBahanBaku.FirstOrDefault(data => data.IDBahanBaku == item.IDBahanBaku);

                    //No
                    worksheet.Cells[index, 1].Value = index - 1;
                    worksheet.Cells[index, 1].Style.Numberformat.Format = "@";

                    //Kode
                    worksheet.Cells[index, 2].Value = item.KodeBahanBaku;
                    worksheet.Cells[index, 2].Style.Numberformat.Format = "@";

                    //Bahan Baku
                    worksheet.Cells[index, 3].Value = item.Nama;
                    worksheet.Cells[index, 3].Style.Numberformat.Format = "@";

                    //Satuan Besar
                    worksheet.Cells[index, 4].Value = item.TBSatuan1.Nama;
                    worksheet.Cells[index, 4].Style.Numberformat.Format = "@";

                    //Konversi
                    worksheet.Cells[index, 5].Value = item.Konversi.Value;
                    if (item.Konversi.ToFormatHarga().Contains(","))
                    {
                        worksheet.Cells[index, 5].Style.Numberformat.Format = "#,##0.00";
                    }
                    else
                    {
                        worksheet.Cells[index, 5].Style.Numberformat.Format = "#,##0";
                    }

                    //Satuan Kecil
                    worksheet.Cells[index, 6].Value = item.TBSatuan.Nama;
                    worksheet.Cells[index, 6].Style.Numberformat.Format = "@";

                    //Berat
                    worksheet.Cells[index, 7].Value = item.Berat.Value;
                    if (item.Berat.ToFormatHarga().Contains(","))
                    {
                        worksheet.Cells[index, 4].Style.Numberformat.Format = "#,##0.00";
                    }
                    else
                    {
                        worksheet.Cells[index, 4].Style.Numberformat.Format = "#,##0";
                    }

                    //Jumlah
                    decimal jumlah = stokBahanBaku != null ? (stokBahanBaku.Jumlah.Value / stokBahanBaku.TBBahanBaku.Konversi.Value) : 0;
                    worksheet.Cells[index, 8].Value = jumlah;
                    if (jumlah.ToFormatHarga().Contains(","))
                    {
                        worksheet.Cells[index, 8].Style.Numberformat.Format = "#,##0.00";
                    }
                    else
                    {
                        worksheet.Cells[index, 8].Style.Numberformat.Format = "#,##0";
                    }

                    //Harga Beli
                    decimal hargaBeli = stokBahanBaku != null ? (stokBahanBaku.HargaBeli.Value * stokBahanBaku.TBBahanBaku.Konversi.Value) : 0;
                    worksheet.Cells[index, 9].Value = hargaBeli;
                    if (hargaBeli.ToFormatHarga().Contains(","))
                    {
                        worksheet.Cells[index, 9].Style.Numberformat.Format = "#,##0.00";
                    }
                    else
                    {
                        worksheet.Cells[index, 9].Style.Numberformat.Format = "#,##0";
                    }

                    //Jumlah Minimum
                    decimal jumlahMinimum = stokBahanBaku != null ? (stokBahanBaku.JumlahMinimum.Value / stokBahanBaku.TBBahanBaku.Konversi.Value) : 0;
                    worksheet.Cells[index, 10].Value = jumlahMinimum;
                    if (jumlahMinimum.ToFormatHarga().Contains(","))
                    {
                        worksheet.Cells[index, 10].Style.Numberformat.Format = "#,##0.00";
                    }
                    else
                    {
                        worksheet.Cells[index, 10].Style.Numberformat.Format = "#,##0";
                    }

                    //Kategori
                    worksheet.Cells[index, 11].Value = item.TBRelasiBahanBakuKategoriBahanBakus.Count > 0 ? StokBahanBaku_Class.GabungkanSemuaKategoriBahanBaku(db, null, item) : "";
                    worksheet.Cells[index, 11].Style.Numberformat.Format = "@";

                    //Keterangan
                    worksheet.Cells[index, 12].Value = item.Deskripsi;
                    worksheet.Cells[index, 12].Style.Numberformat.Format = "@";

                    index++;
                }
            }

            using (var range = worksheet.Cells[1, 1, 1, 12])
            {
                range.Style.Font.Bold = true;
            }

            #region Default
            worksheet.Cells.AutoFitColumns(0);

            worksheet.HeaderFooter.OddHeader.CenteredText    = "&16&\"Tahoma,Regular Bold\"" + Judul;
            worksheet.HeaderFooter.OddFooter.LeftAlignedText = "Print : " + Pengguna.NamaLengkap + " - " + Pengguna.Tempat + " - " + DateTime.Now.ToString("d MMMM yyyy hh:mm");

            worksheet.HeaderFooter.OddFooter.RightAlignedText = "WIT. Warehouse Management System - " + string.Format("Page {0} of {1}", ExcelHeaderFooter.PageNumber, ExcelHeaderFooter.NumberOfPages);

            package.Workbook.Properties.Title    = NamaWorksheet;
            package.Workbook.Properties.Author   = "WIT. Warehouse Management System";
            package.Workbook.Properties.Comments = Judul;

            package.Workbook.Properties.Company = "WIT. Warehouse Management System";
            package.Save();
            #endregion
        }

        ButtonExport.Visible = false;
        LinkDownload.Visible = true;
        LinkDownload.HRef    = "/file_excel/" + NamaWorksheet + "/Export/" + NamaFile;
    }
示例#9
0
    private void LoadData()
    {
        using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
        {
            Laporan_Class Laporan_Class = new Laporan_Class(db, (PenggunaLogin)Session["PenggunaLogin"], DateTime.Now, DateTime.Now, false);

            Dictionary <string, dynamic> Result = new Dictionary <string, dynamic>();

            string tempPencarian     = string.Empty;
            var    ListStokBahanBaku = db.TBStokBahanBakus.Where(item => item.IDTempat == DropDownListTempat.SelectedValue.ToInt()).Select(item => new
            {
                item.IDBahanBaku,
                Kode           = item.TBBahanBaku.KodeBahanBaku,
                BahanBaku      = item.TBBahanBaku.Nama,
                Satuan         = item.TBBahanBaku.TBSatuan1.Nama,
                RelasiKategori = item.TBBahanBaku.TBRelasiBahanBakuKategoriBahanBakus.ToArray(),
                Kategori       = StokBahanBaku_Class.GabungkanSemuaKategoriBahanBaku(db, item, null),
                Jumlah         = item.Jumlah / item.TBBahanBaku.Konversi,
                item.TBBahanBaku.IDSatuanKonversi,
                DropDownSatuan = CariSatuan(item.TBBahanBaku)
            }).OrderBy(item => item.BahanBaku).ToArray();

            switch (DropDownListJenisStok.Text.ToInt())
            {
            case 1: ListStokBahanBaku = ListStokBahanBaku.Where(item => item.Jumlah > 0).ToArray(); break;

            case 2: ListStokBahanBaku = ListStokBahanBaku.Where(item => item.Jumlah == 0).ToArray(); break;

            case 3: ListStokBahanBaku = ListStokBahanBaku.Where(item => item.Jumlah < 0).ToArray(); break;
            }

            tempPencarian += "?IDTempat=" + DropDownListTempat.SelectedValue.ToInt();
            tempPencarian += "&JenisStokProduk=" + DropDownListJenisStok.Text.ToInt();

            if (!string.IsNullOrWhiteSpace(TextBoxBahanBaku.Text))
            {
                ListStokBahanBaku = ListStokBahanBaku.Where(item => item.BahanBaku.ToLower().Contains(TextBoxBahanBaku.Text.ToLower())).ToArray();
            }

            tempPencarian += "&BahanBaku=" + TextBoxBahanBaku.Text;

            if (DropDownListSatuan.SelectedValue.ToInt() != 0)
            {
                ListStokBahanBaku = ListStokBahanBaku.Where(item => item.IDSatuanKonversi == DropDownListSatuan.SelectedValue.ToInt()).ToArray();
            }

            tempPencarian += "&IDSatuan=" + DropDownListSatuan.SelectedValue.ToInt();
            tempPencarian += "&SatuanBesar=true";

            if (DropDownListKategori.SelectedValue.ToInt() != 0)
            {
                ListStokBahanBaku = ListStokBahanBaku.Where(item => item.RelasiKategori.FirstOrDefault(data => data.IDKategoriBahanBaku == DropDownListKategori.SelectedValue.ToInt()) != null).ToArray();
            }

            tempPencarian += "&IDKategori=" + DropDownListKategori.SelectedValue.ToInt();

            if (!string.IsNullOrWhiteSpace(TextBoxKodeBahanBaku.Text))
            {
                ListStokBahanBaku = ListStokBahanBaku.Where(item => item.Kode.ToLower().Contains(TextBoxKodeBahanBaku.Text.ToLower())).ToArray();
            }

            tempPencarian += "&Kode=" + TextBoxKodeBahanBaku.Text;

            if (!string.IsNullOrWhiteSpace(TextBoxQuantity.Text))
            {
                if (TextBoxQuantity.Text.Contains("-"))
                {
                    string[] Range = TextBoxQuantity.Text.Split('-');
                    ListStokBahanBaku = ListStokBahanBaku.Where(item => item.Jumlah >= Range[0].ToDecimal() && item.Jumlah <= Range[1].ToDecimal()).OrderBy(item => item.Jumlah).ToArray();
                }
                else
                {
                    ListStokBahanBaku = ListStokBahanBaku.Where(item => item.Jumlah == TextBoxQuantity.Text.ToDecimal()).ToArray();
                }
            }

            tempPencarian += "&Quantity=" + TextBoxQuantity.Text;

            if (Request.QueryString["do"] == "opname")
            {
                Result.Add("Judul", "Stock Opname");
            }
            else if (Request.QueryString["do"] == "waste")
            {
                Result.Add("Judul", "Pembuangan Bahan Baku Rusak");
            }
            else if (Request.QueryString["do"] == "restock")
            {
                Result.Add("Judul", "Restock Bahan Baku");
            }
            else if (Request.QueryString["do"] == "return")
            {
                Result.Add("Judul", "Retur ke Tempat Supplier");
            }
            else
            {
                Result.Add("Judul", "");
            }

            tempPencarian += "&do=" + Request.QueryString["do"];

            Tempat_Class ClassTempat = new Tempat_Class(db);

            Result.Add("Data", ListStokBahanBaku);
            Result.Add("Tempat", ClassTempat.Cari(DropDownListTempat.SelectedValue.ToInt()).Nama);

            //PRINT LAPORAN
            ButtonPrint.OnClientClick = "return popitup('PengaturanPrint.aspx" + tempPencarian + "')";

            RepeaterLaporan.DataSource = Result["Data"];
            RepeaterLaporan.DataBind();
        }
    }
示例#10
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;
            }
        }
    }