Пример #1
0
    protected void RepeaterData_ItemCommand(object source, RepeaterCommandEventArgs e)
    {
        if (e.CommandName == "Batal")
        {
            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"];
                TBPOProduksiBahanBakuRetur poProduksiBahanBakuRetur = db.TBPOProduksiBahanBakuReturs.FirstOrDefault(item => item.IDPOProduksiBahanBakuRetur == e.CommandArgument.ToString());
                poProduksiBahanBakuRetur.EnumStatusRetur = (int)EnumStatusPORetur.Batal;

                foreach (var item in poProduksiBahanBakuRetur.TBPOProduksiBahanBakuReturDetails)
                {
                    StokBahanBaku_Class.UpdateBertambahBerkurang(
                        db: db,
                        tanggal: DateTime.Now,
                        idPengguna: pengguna.IDPengguna,
                        stokBahanBaku: item.TBStokBahanBaku,
                        jumlahStok: item.Jumlah.Value,
                        hargaBeli: item.HargaBeli.Value,
                        satuanBesar: true,
                        enumJenisPerpindahanStok: EnumJenisPerpindahanStok.TransaksiBatal,
                        keterangan: "(" + item.TBStokBahanBaku.TBBahanBaku.Nama + ") Pembatalan Retur PO #" + e.CommandArgument.ToString());
                }

                db.SubmitChanges();

                LoadData();
            }
        }
    }
Пример #2
0
    private void LoadDataBahanBaku(DataClassesDatabaseDataContext db)
    {
        PenggunaLogin Pengguna    = (PenggunaLogin)Session["PenggunaLogin"];
        DataDisplay   DataDisplay = new DataDisplay();

        var ListData = db.TBBahanBakus.Where(item => (!string.IsNullOrWhiteSpace(TextBoxCari.Text) ? item.Nama.ToLower().Contains(TextBoxCari.Text.ToLower()) : true))
                       .Select(item => new
        {
            item.IDBahanBaku,
            item.Nama,
            item.KodeBahanBaku,
            Kategori    = StokBahanBaku_Class.OutPutKategori(db, null, item),
            HargaBeli   = item.TBStokBahanBakus.FirstOrDefault(data => data.IDTempat == Pengguna.IDTempat).HargaBeli *item.Konversi,
            SatuanBesar = item.TBSatuan1.Nama,
            item.Deskripsi
        }).OrderBy(item => item.Nama).ToArray();

        int skip  = 0;
        int take  = 0;
        int count = ListData.Count();

        DataDisplay.Proses(ListData.Count(), DropDownListHalaman, DropDownListJumlahData, out take, out skip);

        RepeaterBahanBaku.DataSource = ListData.Skip(skip).Take(take);
        RepeaterBahanBaku.DataBind();
    }
Пример #3
0
    protected void Repeater_ItemCommand(object source, RepeaterCommandEventArgs e)
    {
        if (e.CommandName == "Batal")
        {
            PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"];

            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                var TransferBahanBaku = db.TBTransferBahanBakus.FirstOrDefault(item => item.IDTransferBahanBaku == e.CommandArgument.ToString());

                if (TransferBahanBaku != null)
                {
                    TBStokBahanBaku[] daftarStokBahanBaku = db.TBStokBahanBakus.Where(item => item.IDTempat == pengguna.IDTempat).ToArray();

                    foreach (var item in TransferBahanBaku.TBTransferBahanBakuDetails.ToArray())
                        StokBahanBaku_Class.UpdateBertambahBerkurang(db, DateTime.Now, pengguna.IDPengguna, daftarStokBahanBaku.FirstOrDefault(data => data.IDBahanBaku == item.IDBahanBaku), item.Jumlah, item.HargaBeli, true, EnumJenisPerpindahanStok.TransferBatal, "Transfer Batal #" + TransferBahanBaku.IDTransferBahanBaku);

                    TransferBahanBaku.EnumJenisTransfer = (int)PilihanJenisTransfer.TransferBatal;

                    db.SubmitChanges();
                }
            }

            LoadData();
        }
        else if (e.CommandName == "TransferUlang")
            Response.Redirect("Pengaturan.aspx?id=" + e.CommandArgument);
    }
Пример #4
0
    protected void RepeaterTransferBahanBaku_ItemCommand(object source, RepeaterCommandEventArgs e)
    {
        if (e.CommandName == "Hapus")
        {
            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                PenggunaLogin       Pengguna          = (PenggunaLogin)Session["PenggunaLogin"];
                TBTransferBahanBaku transferBahanBaku = db.TBTransferBahanBakus.FirstOrDefault(item => item.IDTransferBahanBaku == LabelIDTransferBahanBaku.Text);

                TBTransferBahanBakuDetail transferBahanBakuDetail = transferBahanBaku.TBTransferBahanBakuDetails.FirstOrDefault(item => item.IDTransferBahanBakuDetail == e.CommandArgument.ToInt());
                TBStokBahanBaku[]         daftarStokBahanBaku     = db.TBStokBahanBakus.Where(data => data.IDTempat == DropDownListTempatPengirim.SelectedValue.ToInt()).ToArray();

                if (transferBahanBakuDetail != null)
                {
                    var stokBahanBaku = daftarStokBahanBaku.FirstOrDefault(data => data.IDBahanBaku == transferBahanBakuDetail.IDBahanBaku);

                    StokBahanBaku_Class.UpdateBertambahBerkurang(db, DateTime.Now, Pengguna.IDPengguna, stokBahanBaku, transferBahanBakuDetail.Jumlah, transferBahanBakuDetail.HargaBeli, true, EnumJenisPerpindahanStok.TransferBatal, "Transfer Batal Item #" + LabelIDTransferBahanBaku.Text);

                    db.TBTransferBahanBakuDetails.DeleteOnSubmit(transferBahanBakuDetail);
                    transferBahanBaku.TBTransferBahanBakuDetails.Remove(transferBahanBakuDetail);
                    //db.SubmitChanges();

                    //UPDATE DATA TRANSFER BAHAN BAKU


                    transferBahanBaku.TanggalUpdate = DateTime.Now;
                    transferBahanBaku.TotalJumlah   = transferBahanBaku.TBTransferBahanBakuDetails.Sum(item2 => item2.Jumlah);
                    transferBahanBaku.GrandTotal    = transferBahanBaku.TBTransferBahanBakuDetails.Sum(item2 => item2.Jumlah * item2.HargaBeli);
                    db.SubmitChanges();

                    LoadDataTransferBahanBaku();
                }
            }
        }
    }
Пример #5
0
    private void BatalTransaksi()
    {
        try
        {
            PenggunaLogin Pengguna = (PenggunaLogin)Session["PenggunaLogin"];

            Transaksi_Class Transaksi = new Transaksi_Class(HiddenFieldIDTransaksi.Value, Pengguna.IDPengguna);

            Transaksi.IDStatusTransaksi = (int)EnumStatusTransaksi.Canceled;

            Transaksi.ConfirmTransaksi();

            if (Pengguna.PointOfSales == TipePointOfSales.Restaurant)
            {
                //PENGURANGAN BAHAN BAKU
                StokBahanBaku_Class.ProduksiByTransaksiBatal(Transaksi.IDPenggunaTransaksi, Transaksi.IDTempat, HiddenFieldIDTransaksi.Value);
            }

            LoadData();

            HiddenFieldIDTransaksi.Value = null;
        }
        catch (Exception ex)
        {
            LogError_Class LogError = new LogError_Class(ex, Request.Url.PathAndQuery);
        }
    }
Пример #6
0
    protected void ImageButtonUpdate_Click(object sender, ImageClickEventArgs e)
    {
        PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"];

        using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
        {
            StokBahanBaku_Class.PerbaharuiSemuaHargaBeli(db, pengguna.IDTempat);
            db.SubmitChanges();
            LoadData(db);
        }
    }
Пример #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 ButtonTerima_Click(object sender, EventArgs e)
    {
        PenggunaLogin Pengguna = (PenggunaLogin)Session["PenggunaLogin"];

        try
        {
            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                var TransferBahanBaku = db.TBTransferBahanBakus.FirstOrDefault(item => item.IDTransferBahanBaku == Request.QueryString["id"]);

                if (TransferBahanBaku != null && TransferBahanBaku.EnumJenisTransfer == (int)PilihanJenisTransfer.TransferProses)
                {
                    TBStokBahanBaku[] daftarStokBahanBaku = db.TBStokBahanBakus.Where(item => item.IDTempat == Pengguna.IDTempat).ToArray();
                    foreach (var item in TransferBahanBaku.TBTransferBahanBakuDetails.ToArray())
                    {
                        var stokBahanBaku = daftarStokBahanBaku.FirstOrDefault(data => data.IDBahanBaku == item.IDBahanBaku);

                        if (stokBahanBaku != null)
                        {
                            StokBahanBaku_Class.UpdateBertambahBerkurang(db, DateTime.Now, Pengguna.IDPengguna, stokBahanBaku, item.Jumlah, item.HargaBeli, true, EnumJenisPerpindahanStok.TransferStokMasuk, "Transfer #" + LabelIDTransferBahanBaku.Text);
                        }
                        else
                        {
                            stokBahanBaku = StokBahanBaku_Class.InsertStokBahanBaku(db, DateTime.Now, Pengguna.IDPengguna, Pengguna.IDTempat, db.TBBahanBakus.FirstOrDefault(data => data.IDBahanBaku == item.IDBahanBaku), (item.HargaBeli / item.TBBahanBaku.Konversi.Value), 0, 0, "");

                            StokBahanBaku_Class.UpdateBertambahBerkurang(db, DateTime.Now, Pengguna.IDPengguna, stokBahanBaku, item.Jumlah, item.HargaBeli, true, EnumJenisPerpindahanStok.TransferStokMasuk, "Transfer #" + LabelIDTransferBahanBaku.Text);
                        }
                    }

                    TransferBahanBaku.IDPenerima        = Pengguna.IDPengguna;
                    TransferBahanBaku.TanggalTerima     = DateTime.Now;
                    TransferBahanBaku.TanggalUpdate     = DateTime.Now;
                    TransferBahanBaku.EnumJenisTransfer = (int)PilihanJenisTransfer.TransferSelesai;

                    db.SubmitChanges();

                    Response.Redirect("/WITWarehouse/BahanBaku/Transfer/Detail.aspx?id=" + TransferBahanBaku.IDTransferBahanBaku, false);
                }
                else
                {
                    Response.Redirect("Default.aspx", false);
                }
            }
        }
        catch (Exception ex)
        {
            LiteralWarning.Text = Alert_Class.Pesan(TipeAlert.Danger, ex.Message);
            LogError_Class LogError_Class = new LogError_Class(ex, Request.Url.PathAndQuery);
        }
    }
Пример #9
0
    protected void RepeaterBahanBaku_ItemCommand(object source, RepeaterCommandEventArgs e)
    {
        if (e.CommandName == "UbahHargaPokokProduksi")
        {
            PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"];

            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                StokBahanBaku_Class.PerbaharuiHargaBeli(db, pengguna.IDTempat, e.CommandArgument.ToInt());
                db.SubmitChanges();
                LoadData(db);
            }
        }
    }
Пример #10
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);
            }
        }
    }
Пример #11
0
    private void LoadData(DataClassesDatabaseDataContext db, TBBahanBaku bahanBaku)
    {
        PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"];

        RepeaterKomposisi.DataSource = bahanBaku.TBKomposisiBahanBakus.Select(item => new
        {
            item.IDBahanBaku,
            item.TBBahanBaku1.Nama,
            Jumlah    = item.Jumlah.ToFormatHarga(),
            Satuan    = item.TBBahanBaku1.TBSatuan.Nama,
            HargaBeli = item.TBBahanBaku1.TBStokBahanBakus.FirstOrDefault(stok => stok.IDBahanBaku == item.IDBahanBaku && stok.IDTempat == pengguna.IDTempat).HargaBeli *item.Jumlah
        }).ToArray();
        RepeaterKomposisi.DataBind();

        RepeaterBiayaProduksi.DataSource = bahanBaku.TBRelasiJenisBiayaProduksiBahanBakus.Select(item => new
        {
            item.IDJenisBiayaProduksi,
            NamaJenisBiayaProduksi = item.TBJenisBiayaProduksi.Nama,
            Jenis         = item.EnumBiayaProduksi == (int)PilihanBiayaProduksi.Persen ? (item.Persentase * 100).ToFormatHarga() + "% dari Komposisi Bahan Baku" : "Nominal",
            BiayaProduksi = item.EnumBiayaProduksi == (int)PilihanBiayaProduksi.Persen ? (item.Persentase * StokBahanBaku_Class.HitungHargaPokokKomposisi(db, pengguna.IDTempat, item.TBBahanBaku)).ToFormatHarga() : item.Nominal.ToFormatHarga()
        }).ToArray();
        RepeaterBiayaProduksi.DataBind();

        decimal hargaKomposisi = StokBahanBaku_Class.HitungHargaPokokKomposisi(db, pengguna.IDTempat, bahanBaku);

        LabelTotalHargaBesarKomposisi.Text = hargaKomposisi.ToFormatHarga();
        LabelSatuanBesarKomposisi.Text     = "/" + bahanBaku.TBSatuan1.Nama;
        LabelTotalHargaKecilKomposisi.Text = (hargaKomposisi / bahanBaku.Konversi).ToFormatHarga();
        LabelSatuanKecilKomposisi.Text     = "/" + bahanBaku.TBSatuan.Nama;


        decimal hargaBiayaProduksi = StokBahanBaku_Class.HitungBiayaProduksi(db, pengguna.IDTempat, bahanBaku);

        LabelTotalHargaBesarBiayaProduksi.Text = hargaBiayaProduksi.ToFormatHarga();
        LabelSatuanBesarBiayaProduksi.Text     = LabelSatuanBesarKomposisi.Text;
        LabelTotalHargaKecilBiayaProduksi.Text = (hargaBiayaProduksi / bahanBaku.Konversi).ToFormatHarga();
        LabelSatuanKecilBiayaProduksi.Text     = LabelSatuanKecilKomposisi.Text;

        LabelHitunganKomposisi.Text     = LabelTotalHargaKecilKomposisi.Text + " " + LabelSatuanKecilKomposisi.Text;
        LabelHitunganBiayaProduksi.Text = (hargaBiayaProduksi / bahanBaku.Konversi).ToFormatHarga() + " " + LabelSatuanKecilKomposisi.Text;
        LabelHargaPokokProduksi.Text    = ((hargaKomposisi + hargaBiayaProduksi) / bahanBaku.Konversi).ToFormatHarga() + " " + LabelSatuanKecilKomposisi.Text;
    }
Пример #12
0
    private void LoadData(DataClassesDatabaseDataContext db)
    {
        PenggunaLogin pengguna    = (PenggunaLogin)Session["PenggunaLogin"];
        DataDisplay   DataDisplay = new DataDisplay();

        var ListData = db.TBStokBahanBakus
                       .AsEnumerable()
                       .Where(item => item.IDTempat == pengguna.IDTempat && (!string.IsNullOrWhiteSpace(TextBoxCari.Text) ? item.TBBahanBaku.Nama.ToLower().Contains(TextBoxCari.Text.ToLower()) : true))
                       .Select(item => new
        {
            item.TBBahanBaku.IDBahanBaku,
            item.TBBahanBaku.KodeBahanBaku,
            item.TBBahanBaku.Nama,
            HargaPokokProduksi = StokBahanBaku_Class.HitungHargaPokokProduksi(db, pengguna.IDTempat, item.TBBahanBaku) / item.TBBahanBaku.Konversi,
            HargaBeli          = item.HargaBeli,
            Satuan             = item.TBBahanBaku.TBSatuan.Nama,
            PunyaKomposisi     = item.TBBahanBaku.TBKomposisiBahanBakus.Count
        }).OrderBy(item => item.Nama).ToArray();

        int skip  = 0;
        int take  = 0;
        int count = ListData.Count();

        DataDisplay.Proses(ListData.Count(), DropDownListHalaman, DropDownListJumlahData, out take, out skip);

        RepeaterBahanBaku.DataSource = ListData.Skip(skip).Take(take);
        RepeaterBahanBaku.DataBind();

        DropDownListBahanBaku.DataSource     = ListData.Select(item => new { item.IDBahanBaku, item.Nama }).OrderBy(item => item.Nama);
        DropDownListBahanBaku.DataTextField  = "Nama";
        DropDownListBahanBaku.DataValueField = "IDBahanBaku";
        DropDownListBahanBaku.DataBind();
        DropDownListBahanBaku.Items.Insert(0, new ListItem {
            Text = "-Bahan Baku-", Value = "0"
        });
    }
Пример #13
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();
            }
        }
    }
Пример #14
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();
        }
    }
Пример #15
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();
            }
        }
    }
Пример #16
0
    protected void ButtonSimpan_Click(object sender, EventArgs e)
    {
        if (Page.IsValid)
        {
            PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"];

            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                TBBahanBaku bahanBaku;
                decimal     hargaBeli = TextBoxHargaBeli.Text.ToDecimal() / TextBoxKonversi.Text.ToDecimal();
                decimal     stok      = TextBoxStok.Text.ToDecimal() * TextBoxKonversi.Text.ToDecimal();
                decimal     batasStok = TextBoxBatasStokAkanHabis.Text.ToDecimal() * TextBoxKonversi.Text.ToDecimal();

                if (ButtonSimpan.Text == "Tambah")
                {
                    TBSatuan satuanKecil = db.TBSatuans.FirstOrDefault(item => item.IDSatuan == DropDownListSatuanKecil.SelectedValue.ToInt());
                    TBSatuan satuanBesar = db.TBSatuans.FirstOrDefault(item => item.IDSatuan == DropDownListSatuanBesar.SelectedValue.ToInt());

                    bahanBaku = new TBBahanBaku
                    {
                        IDWMS         = Guid.NewGuid(),
                        TBSatuan      = satuanKecil,
                        TBSatuan1     = satuanBesar,
                        TanggalDaftar = DateTime.Now,
                        TanggalUpdate = DateTime.Now,
                        Urutan        = null,
                        KodeBahanBaku = TextBoxKodeBahanBaku.Text,
                        Nama          = TextBoxNama.Text,
                        Berat         = TextBoxBerat.Text.ToDecimal(),
                        Konversi      = TextBoxKonversi.Text.ToDecimal(),
                        Deskripsi     = TextBoxDeskripsi.Text
                    };
                    db.TBBahanBakus.InsertOnSubmit(bahanBaku);

                    TambahKategori(bahanBaku, db);

                    TBStokBahanBaku stokBahanBaku = StokBahanBaku_Class.InsertStokBahanBaku(db, DateTime.Now, pengguna.IDPengguna, pengguna.IDTempat, bahanBaku, hargaBeli, stok, batasStok, "Stok Baru Manual");
                }
                else if (ButtonSimpan.Text == "Ubah")
                {
                    TBSatuan satuanKecil = db.TBSatuans.FirstOrDefault(item => item.IDSatuan == DropDownListSatuanKecil.SelectedValue.ToInt());
                    TBSatuan satuanBesar = db.TBSatuans.FirstOrDefault(item => item.IDSatuan == DropDownListSatuanBesar.SelectedValue.ToInt());

                    bahanBaku               = db.TBBahanBakus.FirstOrDefault(item => item.IDBahanBaku == Request.QueryString["id"].ToInt());
                    bahanBaku.TBSatuan      = satuanKecil;
                    bahanBaku.TBSatuan1     = satuanBesar;
                    bahanBaku.TanggalUpdate = DateTime.Now;
                    bahanBaku.Urutan        = null;
                    bahanBaku.KodeBahanBaku = TextBoxKodeBahanBaku.Text;
                    bahanBaku.Nama          = TextBoxNama.Text;
                    bahanBaku.Berat         = TextBoxBerat.Text.ToDecimal();
                    bahanBaku.Konversi      = TextBoxKonversi.Text.ToDecimal();
                    bahanBaku.Deskripsi     = TextBoxDeskripsi.Text;

                    TambahKategori(bahanBaku, db);

                    TBStokBahanBaku stokBahanBaku = db.TBStokBahanBakus.FirstOrDefault(item => item.TBBahanBaku == bahanBaku && item.IDTempat == pengguna.IDTempat);

                    if (stokBahanBaku == null)
                    {
                        stokBahanBaku = StokBahanBaku_Class.InsertStokBahanBaku(db, DateTime.Now, pengguna.IDPengguna, pengguna.IDTempat, bahanBaku, hargaBeli, stok, batasStok, "Stok Baru Manual");
                    }
                    else
                    {
                        stokBahanBaku.HargaBeli     = hargaBeli;
                        stokBahanBaku.JumlahMinimum = batasStok;
                    }

                    StokBahanBaku_Class.UpdateStockOpname(db, DateTime.Now, pengguna.IDPengguna, stokBahanBaku, stok, false, "Update Stok Manual");
                }

                db.SubmitChanges();
            }

            Response.Redirect("Default.aspx");
        }
    }
Пример #17
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");
            }
        }
    }
Пример #18
0
    protected void ButtonUpload_Click(object sender, EventArgs e)
    {
        string NamaFile    = Path.GetFileNameWithoutExtension(FileUploadTransferBahanBaku.FileName);
        string ExtensiFile = Path.GetExtension(FileUploadTransferBahanBaku.FileName);

        #region Format import harus .zip
        if (ExtensiFile != ".zip")
        {
            LiteralWarning.Text = Alert_Class.Pesan(TipeAlert.Danger, "Format import harus .zip");
            return;
        }
        #endregion

        if (FileUploadTransferBahanBaku.HasFile)
        {
            string Folder = Server.MapPath("~/Files/Transfer Bahan Baku/Penerimaan/");

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

            string LokasiFile = Folder + NamaFile + ExtensiFile;
            string Output     = Folder + NamaFile + "_dec" + ExtensiFile;

            FileUploadTransferBahanBaku.SaveAs(LokasiFile);

            EncryptDecrypt.Decrypt(LokasiFile, Output);

            string file = File.ReadAllText(Output);

            File.Delete(Output);

            var FileTransferBahanBaku = JsonConvert.DeserializeObject <FileTransferBahanBaku>(file);

            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                #region Transfer transfer sudah terdaftar
                if (db.TBTransferBahanBakus.FirstOrDefault(item => item.IDTransferBahanBaku == FileTransferBahanBaku.IDTransferBahanBaku) != null)
                {
                    LiteralWarning.Text = Alert_Class.Pesan(TipeAlert.Danger, "Data Transfer sudah terdaftar");
                    return;
                }
                #endregion

                Tempat_Class            ClassTempat             = new Tempat_Class(db);
                BahanBaku_Class         ClassBahanBaku          = new BahanBaku_Class();
                KategoriBahanBaku_Class KategoriBahanBaku_Class = new KategoriBahanBaku_Class();

                PenggunaLogin Pengguna = (PenggunaLogin)Session["PenggunaLogin"];

                #region TEMPAT PENERIMA
                var TempatPenerima = ClassTempat.Cari(FileTransferBahanBaku.FileTempatPenerima.IDWMS);

                if (TempatPenerima == null)
                {
                    TempatPenerima = new TBTempat
                    {
                        Alamat                   = FileTransferBahanBaku.FileTempatPenerima.Alamat,
                        BiayaTambahan1           = FileTransferBahanBaku.FileTempatPenerima.BiayaTambahan1,
                        BiayaTambahan2           = FileTransferBahanBaku.FileTempatPenerima.BiayaTambahan2,
                        BiayaTambahan3           = FileTransferBahanBaku.FileTempatPenerima.BiayaTambahan3,
                        BiayaTambahan4           = FileTransferBahanBaku.FileTempatPenerima.BiayaTambahan4,
                        Email                    = FileTransferBahanBaku.FileTempatPenerima.Email,
                        EnumBiayaTambahan1       = FileTransferBahanBaku.FileTempatPenerima.EnumBiayaTambahan1,
                        EnumBiayaTambahan2       = FileTransferBahanBaku.FileTempatPenerima.EnumBiayaTambahan2,
                        EnumBiayaTambahan3       = FileTransferBahanBaku.FileTempatPenerima.EnumBiayaTambahan3,
                        EnumBiayaTambahan4       = FileTransferBahanBaku.FileTempatPenerima.EnumBiayaTambahan4,
                        FooterPrint              = FileTransferBahanBaku.FileTempatPenerima.FooterPrint,
                        IDKategoriTempat         = FileTransferBahanBaku.FileTempatPenerima.IDKategoriTempat,
                        IDStore                  = FileTransferBahanBaku.FileTempatPenerima.IDStore,
                        _IDWMS                   = FileTransferBahanBaku.FileTempatPenerima.IDWMS,
                        KeteranganBiayaTambahan1 = FileTransferBahanBaku.FileTempatPenerima.KeteranganBiayaTambahan1,
                        KeteranganBiayaTambahan2 = FileTransferBahanBaku.FileTempatPenerima.KeteranganBiayaTambahan2,
                        KeteranganBiayaTambahan3 = FileTransferBahanBaku.FileTempatPenerima.KeteranganBiayaTambahan3,
                        KeteranganBiayaTambahan4 = FileTransferBahanBaku.FileTempatPenerima.KeteranganBiayaTambahan4,
                        Kode           = FileTransferBahanBaku.FileTempatPenerima.Kode,
                        Latitude       = FileTransferBahanBaku.FileTempatPenerima.Latitude,
                        Longitude      = FileTransferBahanBaku.FileTempatPenerima.Longitude,
                        Nama           = FileTransferBahanBaku.FileTempatPenerima.Nama,
                        _TanggalInsert = FileTransferBahanBaku.FileTempatPenerima.TanggalDaftar,
                        _TanggalUpdate = FileTransferBahanBaku.FileTempatPenerima.TanggalUpdate,
                        Telepon1       = FileTransferBahanBaku.FileTempatPenerima.Telepon1,
                        Telepon2       = FileTransferBahanBaku.FileTempatPenerima.Telepon2
                    };

                    db.TBTempats.InsertOnSubmit(TempatPenerima);
                    db.SubmitChanges();
                }
                #endregion

                //MASTER DATA
                foreach (var item in FileTransferBahanBaku.TransferBahanBakuDetails)
                {
                    #region BAHAN BAKU
                    var BahanBaku = ClassBahanBaku.Cari(db, item.BahanBaku);

                    if (BahanBaku == null)
                    {
                        BahanBaku = ClassBahanBaku.Tambah(db, item.SatuanKecil, item.SatuanBesar, item.BahanBaku, item.Konversi);
                    }
                    else
                    {
                        BahanBaku = ClassBahanBaku.Ubah(db, BahanBaku, item.SatuanKecil, item.SatuanBesar, item.Konversi);
                    }
                    #endregion

                    #region KATEGORI
                    KategoriBahanBaku_Class.KategoriBahanBaku(db, BahanBaku, item.Kategori);
                    #endregion

                    #region STOK BAHAN BAKU
                    var stokBahanBaku = db.TBStokBahanBakus.FirstOrDefault(data => data.IDBahanBaku == BahanBaku.IDBahanBaku && data.IDTempat == TempatPenerima.IDTempat);

                    if (stokBahanBaku == null)
                    {
                        stokBahanBaku = StokBahanBaku_Class.InsertStokBahanBaku(db, DateTime.Now, Pengguna.IDPengguna, TempatPenerima.IDTempat, BahanBaku, (item.HargaBeli / item.Konversi), 0, 0, "");
                    }
                    else
                    {
                        stokBahanBaku.HargaBeli = item.HargaBeli;
                    }
                    #endregion

                    db.SubmitChanges();
                }

                #region TEMPAT PENGIRIM
                var TempatPengirim = ClassTempat.Cari(FileTransferBahanBaku.FileTempatPengirim.IDWMS);

                if (TempatPengirim == null)
                {
                    TempatPengirim = new TBTempat
                    {
                        Alamat                   = FileTransferBahanBaku.FileTempatPengirim.Alamat,
                        BiayaTambahan1           = FileTransferBahanBaku.FileTempatPengirim.BiayaTambahan1,
                        BiayaTambahan2           = FileTransferBahanBaku.FileTempatPengirim.BiayaTambahan2,
                        BiayaTambahan3           = FileTransferBahanBaku.FileTempatPengirim.BiayaTambahan3,
                        BiayaTambahan4           = FileTransferBahanBaku.FileTempatPengirim.BiayaTambahan4,
                        Email                    = FileTransferBahanBaku.FileTempatPengirim.Email,
                        EnumBiayaTambahan1       = FileTransferBahanBaku.FileTempatPengirim.EnumBiayaTambahan1,
                        EnumBiayaTambahan2       = FileTransferBahanBaku.FileTempatPengirim.EnumBiayaTambahan2,
                        EnumBiayaTambahan3       = FileTransferBahanBaku.FileTempatPengirim.EnumBiayaTambahan3,
                        EnumBiayaTambahan4       = FileTransferBahanBaku.FileTempatPengirim.EnumBiayaTambahan4,
                        FooterPrint              = FileTransferBahanBaku.FileTempatPengirim.FooterPrint,
                        IDKategoriTempat         = FileTransferBahanBaku.FileTempatPengirim.IDKategoriTempat,
                        IDStore                  = FileTransferBahanBaku.FileTempatPengirim.IDStore,
                        _IDWMS                   = FileTransferBahanBaku.FileTempatPengirim.IDWMS,
                        KeteranganBiayaTambahan1 = FileTransferBahanBaku.FileTempatPengirim.KeteranganBiayaTambahan1,
                        KeteranganBiayaTambahan2 = FileTransferBahanBaku.FileTempatPengirim.KeteranganBiayaTambahan2,
                        KeteranganBiayaTambahan3 = FileTransferBahanBaku.FileTempatPengirim.KeteranganBiayaTambahan3,
                        KeteranganBiayaTambahan4 = FileTransferBahanBaku.FileTempatPengirim.KeteranganBiayaTambahan4,
                        Kode           = FileTransferBahanBaku.FileTempatPengirim.Kode,
                        Latitude       = FileTransferBahanBaku.FileTempatPengirim.Latitude,
                        Longitude      = FileTransferBahanBaku.FileTempatPengirim.Longitude,
                        Nama           = FileTransferBahanBaku.FileTempatPengirim.Nama,
                        _TanggalInsert = FileTransferBahanBaku.FileTempatPengirim.TanggalDaftar,
                        _TanggalUpdate = FileTransferBahanBaku.FileTempatPengirim.TanggalUpdate,
                        Telepon1       = FileTransferBahanBaku.FileTempatPengirim.Telepon1,
                        Telepon2       = FileTransferBahanBaku.FileTempatPengirim.Telepon2
                    };
                }
                #endregion

                #region PENGGUNA PENGIRIM
                var PenggunaPengirim = db.TBPenggunas
                                       .FirstOrDefault(item => item.Username.ToLower() == FileTransferBahanBaku.FilePenggunaPengirim.Username.ToLower());

                if (PenggunaPengirim == null)
                {
                    //PENGGUNA PENGIRIM
                    PenggunaPengirim = new TBPengguna
                    {
                        IDGrupPengguna    = FileTransferBahanBaku.FilePenggunaPengirim.IDGrupPengguna,
                        NamaLengkap       = FileTransferBahanBaku.FilePenggunaPengirim.NamaLengkap,
                        Username          = FileTransferBahanBaku.FilePenggunaPengirim.Username,
                        Password          = FileTransferBahanBaku.FilePenggunaPengirim.Password,
                        PIN               = FileTransferBahanBaku.FilePenggunaPengirim.PIN,
                        _IsActive         = FileTransferBahanBaku.FilePenggunaPengirim.Status,
                        TBTempat          = TempatPengirim,
                        TanggalLahir      = DateTime.Now,
                        _IDWMS            = Guid.NewGuid(),
                        TanggalBekerja    = DateTime.Now,
                        _TanggalInsert    = DateTime.Now,
                        _IDTempatInsert   = TempatPenerima.IDTempat,
                        _IDPenggunaInsert = Pengguna.IDTempat,
                        _TanggalUpdate    = DateTime.Now,
                        _IDTempatUpdate   = TempatPenerima.IDTempat,
                        _IDPenggunaUpdate = Pengguna.IDTempat
                    };
                }
                #endregion

                #region TRANSFER BAHAN BAKU
                TBTransferBahanBaku TransferBahanBaku = new TBTransferBahanBaku
                {
                    IDTransferBahanBaku = FileTransferBahanBaku.IDTransferBahanBaku,
                    //Nomor
                    TBPengguna = PenggunaPengirim,
                    //IDPenerima
                    TBTempat          = TempatPengirim,
                    IDTempatPenerima  = TempatPenerima.IDTempat,
                    TanggalDaftar     = FileTransferBahanBaku.TanggalDaftar,
                    TanggalUpdate     = FileTransferBahanBaku.TanggalUpdate,
                    EnumJenisTransfer = FileTransferBahanBaku.EnumJenisTransfer,
                    TanggalKirim      = FileTransferBahanBaku.TanggalKirim,
                    //TanggalTerima
                    TotalJumlah = FileTransferBahanBaku.TotalJumlah,
                    GrandTotal  = FileTransferBahanBaku.GrandTotal,
                    Keterangan  = FileTransferBahanBaku.Keterangan
                };
                #endregion

                #region DETAIL TRANSFER BAHAN BAKU
                foreach (var item in FileTransferBahanBaku.TransferBahanBakuDetails)
                {
                    var BahanBaku = db.TBBahanBakus.FirstOrDefault(data => data.Nama.ToLower() == item.BahanBaku.ToLower());

                    TransferBahanBaku.TBTransferBahanBakuDetails.Add(new TBTransferBahanBakuDetail
                    {
                        //IDTransferBahanBakuDetail
                        //IDTransferBahanBaku
                        TBBahanBaku = BahanBaku,
                        TBSatuan    = BahanBaku.TBSatuan1,
                        HargaBeli   = item.HargaBeli,
                        Jumlah      = item.Jumlah
                                      //Subtotal
                    });
                }
                #endregion

                db.TBTransferBahanBakus.InsertOnSubmit(TransferBahanBaku);
                db.SubmitChanges();

                if (TransferBahanBaku.IDTempatPenerima == Pengguna.IDTempat)
                {
                    Response.Redirect("Pengaturan.aspx?id=" + TransferBahanBaku.IDTransferBahanBaku);
                }
                else
                {
                    Response.Redirect("Default.aspx");
                }
            }
        }
    }
Пример #19
0
    protected void ButtonSimpan_Click(object sender, EventArgs e)
    {
        PenggunaLogin Pengguna = (PenggunaLogin)Session["PenggunaLogin"];

        using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
        {
            bool StatusPerubahan = false;

            TBStokBahanBaku[] daftarStokBahanBaku = db.TBStokBahanBakus.Where(item => item.IDTempat == DropDownListTempat.SelectedValue.ToInt()).ToArray();

            foreach (RepeaterItem item2 in RepeaterLaporan.Items)
            {
                Label        LabelIDBahanBaku   = (Label)item2.FindControl("LabelIDBahanBaku");
                Label        IDSatuanKonversi   = (Label)item2.FindControl("IDSatuanKonversi");
                TextBox      TextBoxStokTerbaru = (TextBox)item2.FindControl("TextBoxStokTerbaru");
                DropDownList DropDownListPilih  = (DropDownList)item2.FindControl("DropDownListPilih");

                if (!string.IsNullOrWhiteSpace(TextBoxStokTerbaru.Text))
                {
                    StatusPerubahan = true;

                    TBStokBahanBaku stokBahanBaku = daftarStokBahanBaku.FirstOrDefault(data => data.IDBahanBaku == LabelIDBahanBaku.Text.ToInt());

                    if (DropDownListPilih.SelectedIndex == 0)
                    {
                        if (Request.QueryString["do"] == "opname")
                        {
                            StokBahanBaku_Class.UpdateStockOpname(db, DateTime.Now, Pengguna.IDPengguna, stokBahanBaku, TextBoxStokTerbaru.Text.ToDecimal(), true, "");
                        }
                        else if (Request.QueryString["do"] == "waste")
                        {
                            StokBahanBaku_Class.UpdateBertambahBerkurang(db, DateTime.Now, Pengguna.IDPengguna, stokBahanBaku, TextBoxStokTerbaru.Text.ToDecimal(), stokBahanBaku.HargaBeli.Value, true, EnumJenisPerpindahanStok.PembuanganBarangRusak, "");
                        }
                        else if (Request.QueryString["do"] == "restock")
                        {
                            StokBahanBaku_Class.UpdateBertambahBerkurang(db, DateTime.Now, Pengguna.IDPengguna, stokBahanBaku, TextBoxStokTerbaru.Text.ToDecimal(), stokBahanBaku.HargaBeli.Value, true, EnumJenisPerpindahanStok.RestockBarang, "");
                        }
                        else if (Request.QueryString["do"] == "return")
                        {
                            StokBahanBaku_Class.UpdateBertambahBerkurang(db, DateTime.Now, Pengguna.IDPengguna, stokBahanBaku, TextBoxStokTerbaru.Text.ToDecimal(), stokBahanBaku.HargaBeli.Value, true, EnumJenisPerpindahanStok.ReturKeTempatProduksi, "");
                        }
                        else
                        {
                            Response.Redirect("/WITWarehouse/BahanBaku.aspx");
                        }
                    }
                    else if (DropDownListPilih.SelectedIndex == 1)
                    {
                        if (Request.QueryString["do"] == "opname")
                        {
                            StokBahanBaku_Class.UpdateStockOpname(db, DateTime.Now, Pengguna.IDPengguna, stokBahanBaku, TextBoxStokTerbaru.Text.ToDecimal(), false, "");
                        }
                        else if (Request.QueryString["do"] == "waste")
                        {
                            StokBahanBaku_Class.UpdateBertambahBerkurang(db, DateTime.Now, Pengguna.IDPengguna, stokBahanBaku, TextBoxStokTerbaru.Text.ToDecimal(), stokBahanBaku.HargaBeli.Value, false, EnumJenisPerpindahanStok.PembuanganBarangRusak, "");
                        }
                        else if (Request.QueryString["do"] == "restock")
                        {
                            StokBahanBaku_Class.UpdateBertambahBerkurang(db, DateTime.Now, Pengguna.IDPengguna, stokBahanBaku, TextBoxStokTerbaru.Text.ToDecimal(), stokBahanBaku.HargaBeli.Value, false, EnumJenisPerpindahanStok.RestockBarang, "");
                        }
                        else if (Request.QueryString["do"] == "return")
                        {
                            StokBahanBaku_Class.UpdateBertambahBerkurang(db, DateTime.Now, Pengguna.IDPengguna, stokBahanBaku, TextBoxStokTerbaru.Text.ToDecimal(), stokBahanBaku.HargaBeli.Value, false, EnumJenisPerpindahanStok.ReturKeTempatProduksi, "");
                        }
                        else
                        {
                            Response.Redirect("/WITWarehouse/BahanBaku.aspx");
                        }
                    }
                }

                TextBoxStokTerbaru.Text = string.Empty;
            }

            if (StatusPerubahan)
            {
                db.SubmitChanges();
            }
        }

        LoadData();
    }
Пример #20
0
    protected void ButtonSimpan_Click(object sender, EventArgs e)
    {
        try
        {
            if (DropDownListTempatPenerima.Items.Count == 0)
            {
                LiteralWarning.Text = Alert_Class.Pesan(TipeAlert.Danger, "Anda harus membuat lokasi tujuan transfer. <a href='/WITAdministrator/Store/Tempat/Pengaturan.aspx'>Buat lokasi baru</a>");
                return;
            }

            bool   StokKurang       = false;
            string TransferBerhasil = string.Empty;

            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                PenggunaLogin           Pengguna = (PenggunaLogin)Session["PenggunaLogin"];
                TBTransferBahanBaku     DataTransferBahanBaku = null;
                TBStokBahanBaku[]       daftarStokBahanBaku   = db.TBStokBahanBakus.Where(data => data.IDTempat == DropDownListTempatPengirim.SelectedValue.ToInt()).ToArray();
                TransferBahanBaku_Class TransferBahanBaku     = new TransferBahanBaku_Class();

                foreach (RepeaterItem item in RepeaterStokBahanBaku.Items)
                {
                    Label        LabelIDBahanBaku      = (Label)item.FindControl("LabelIDBahanBaku");
                    Label        LabelJumlah           = (Label)item.FindControl("LabelJumlah");
                    TextBox      TextBoxJumlahTransfer = (TextBox)item.FindControl("TextBoxJumlahTransfer");
                    HtmlTableRow panelStok             = (HtmlTableRow)item.FindControl("panelStok");

                    if (TextBoxJumlahTransfer.Text.ToDecimal() > 0)
                    {
                        //JIKA JUMLAH TRANSFER VALID TIDAK NULL DAN TIDAK 0
                        decimal JumlahTransfer = TextBoxJumlahTransfer.Text.ToDecimal();

                        //PENCARIAN STOK BAHAN BAKU
                        var stokBahanBaku = daftarStokBahanBaku.FirstOrDefault(data => data.IDBahanBaku == LabelIDBahanBaku.Text.ToInt());

                        if (JumlahTransfer <= (stokBahanBaku.Jumlah / stokBahanBaku.TBBahanBaku.Konversi))
                        {
                            if (string.IsNullOrWhiteSpace(LabelIDTransferBahanBaku.Text))
                            {
                                #region MEMBUAT TRANSFER BAHAN BAKU BARU
                                DataTransferBahanBaku = TransferBahanBaku.Tambah(db, Pengguna.IDPengguna, DropDownListTempatPengirim.SelectedValue.ToInt(), DropDownListTempatPenerima.SelectedValue.ToInt(), TextBoxKeterangan.Text);

                                LabelIDTransferBahanBaku.Text = DataTransferBahanBaku.IDTransferBahanBaku;
                                #endregion
                            }
                            else
                            {
                                DataTransferBahanBaku = db.TBTransferBahanBakus.FirstOrDefault(item2 => item2.IDTransferBahanBaku == LabelIDTransferBahanBaku.Text);
                            }

                            //JIKA JUMLAH YANG AKAN DI TRANSFER LEBIH KECIL ATAU SAMA DENGAN JUMLAH STOK
                            StokBahanBaku_Class.UpdateBertambahBerkurang(db, DateTime.Now, Pengguna.IDPengguna, stokBahanBaku, JumlahTransfer, (stokBahanBaku.HargaBeli.Value * stokBahanBaku.TBBahanBaku.Konversi.Value), true, EnumJenisPerpindahanStok.TransferStokKeluar, "Transfer #" + LabelIDTransferBahanBaku.Text);

                            //PENGECEKAN APAKAH SUDAH ADA DI DETAIL
                            var TransferBahanBakuDetail = DataTransferBahanBaku.TBTransferBahanBakuDetails
                                                          .FirstOrDefault(item2 => item2.IDBahanBaku == stokBahanBaku.IDBahanBaku);

                            if (TransferBahanBakuDetail == null) //DETAIL TRANSFER BAHAN BAKU TIDAK DITEMUKAN MEMBUAT BARU
                            {
                                DataTransferBahanBaku.TBTransferBahanBakuDetails.Add(new TBTransferBahanBakuDetail
                                {
                                    IDBahanBaku = stokBahanBaku.IDBahanBaku.Value,
                                    IDSatuan    = stokBahanBaku.TBBahanBaku.IDSatuanKonversi,
                                    HargaBeli   = (stokBahanBaku.HargaBeli.Value * stokBahanBaku.TBBahanBaku.Konversi.Value),
                                    Jumlah      = JumlahTransfer
                                });
                            }
                            else //JIKA SUDAH TERDAPAT DI DETAIL HANYA MENAMBAHKAN QTY
                            {
                                TransferBahanBakuDetail.Jumlah += JumlahTransfer;
                            }

                            //MENGKOSONGKAN TEXTBOX - LABEL JUMLAH DIISI DENGAN JUMLAH STOK TERBARU
                            TextBoxJumlahTransfer.Text = string.Empty;
                            panelStok.Attributes.Add("class", "");
                            LabelJumlah.Text = (LabelJumlah.Text.ToDecimal() - JumlahTransfer).ToFormatHarga();

                            TransferBerhasil += "<br/>" + JumlahTransfer.ToFormatHarga() + " - " + stokBahanBaku.TBBahanBaku.Nama + " " + stokBahanBaku.TBBahanBaku.TBSatuan1.Nama; //MESSAGE TRANSFER YANG BERHASIL
                        }
                        else
                        {
                            //REFRESH LABEL JUMLAH STOK
                            LabelJumlah.Text = (stokBahanBaku.Jumlah / stokBahanBaku.TBBahanBaku.Konversi.Value).ToFormatHarga();
                            panelStok.Attributes.Add("class", "danger");

                            StokKurang = true;
                        }
                    }

                    //HANDLE POSTBACK FORMAT HARGA
                    TextBoxJumlahTransfer.Text = TextBoxJumlahTransfer.Text.ToDecimal() == 0 ? string.Empty : TextBoxJumlahTransfer.Text.ToFormatHarga();
                }

                if (DataTransferBahanBaku != null)
                {
                    //UPDATE DATA TRANSFER BAHAN BAKU
                    DataTransferBahanBaku.TanggalUpdate = DateTime.Now;
                    DataTransferBahanBaku.TotalJumlah   = DataTransferBahanBaku.TBTransferBahanBakuDetails.Sum(item2 => item2.Jumlah);
                    DataTransferBahanBaku.GrandTotal    = DataTransferBahanBaku.TBTransferBahanBakuDetails.Sum(item2 => item2.Jumlah * item2.HargaBeli);
                }

                db.SubmitChanges();
            }

            //MENAMPILKAN MESSAGE
            LiteralWarning.Text = string.Empty;

            if (!string.IsNullOrWhiteSpace(TransferBerhasil))
            {
                LiteralWarning.Text += Alert_Class.Pesan(TipeAlert.Success, "Bahan Baku berhasil disimpan" + TransferBerhasil);
            }

            if (StokKurang)
            {
                LiteralWarning.Text += Alert_Class.Pesan(TipeAlert.Danger, "Stok tidak cukup, silahkan cek kembali");
            }
        }
        catch (Exception ex)
        {
            LiteralWarning.Text = Alert_Class.Pesan(TipeAlert.Danger, ex.Message);
            LogError_Class LogError = new LogError_Class(ex, Request.Url.PathAndQuery);
        }
    }
Пример #21
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");
            }
        }
    }
Пример #22
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
        }
    }
Пример #23
0
    protected void ButtonSimpan_Click(object sender, EventArgs e)
    {
        if (Page.IsValid)
        {
            //DateTime tanggalretur = DateTime.Parse(TextBoxTanggalRetur.Text + " " + DateTime.Now.ToString("HH:mm:ss tt"));
            peringatan.Visible = false;
            PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"];

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

            if (ViewStateListDetail.Count > 0)
            {
                string IDPOProduksiBahanBakuRetur           = string.Empty;
                TBPOProduksiBahanBakuRetur POBahanBakuRetur = null;
                bool statusBerhasil = false;

                try
                {
                    using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
                    {
                        db.Proc_InsertPOProduksiBahanBakuRetur(ref IDPOProduksiBahanBakuRetur, pengguna.IDTempat, DropDownListSupplier.SelectedValue.ToInt(), pengguna.IDPengguna, TextBoxTanggal.Text.ToDateTime().AddHours(DateTime.Now.Hour).AddMinutes(DateTime.Now.Minute));
                        POBahanBakuRetur = db.TBPOProduksiBahanBakuReturs.FirstOrDefault(item => item.IDPOProduksiBahanBakuRetur == IDPOProduksiBahanBakuRetur);

                        POBahanBakuRetur.IDPenerimaanPOProduksiBahanBaku = DropDownListPenerimaan.SelectedValue != "0" ? DropDownListPenerimaan.SelectedValue : null;
                        POBahanBakuRetur.TBPOProduksiBahanBakuReturDetails.AddRange(ViewStateListDetail.OrderBy(item => item.BahanBaku).Select(item => new TBPOProduksiBahanBakuReturDetail
                        {
                            TBStokBahanBaku = db.TBStokBahanBakus.FirstOrDefault(item2 => item2.IDStokBahanBaku == item.IDStokBahanBaku),
                            IDSatuan        = item.IDSatuan,
                            HargaBeli       = item.HargaBeli,
                            HargaRetur      = item.HargaSupplier,
                            Jumlah          = item.Jumlah
                        }));
                        POBahanBakuRetur.Grandtotal      = POBahanBakuRetur.TBPOProduksiBahanBakuReturDetails.Sum(item => item.Jumlah * item.HargaRetur);
                        POBahanBakuRetur.EnumStatusRetur = (int)EnumStatusPORetur.Baru;
                        POBahanBakuRetur.Keterangan      = TextBoxKeterangan.Text;

                        foreach (var item in POBahanBakuRetur.TBPOProduksiBahanBakuReturDetails)
                        {
                            StokBahanBaku_Class.UpdateBertambahBerkurang(
                                db: db,
                                tanggal: DateTime.Now,
                                idPengguna: pengguna.IDPengguna,
                                stokBahanBaku: item.TBStokBahanBaku,
                                jumlahStok: item.Jumlah.Value,
                                hargaBeli: item.HargaBeli.Value,
                                satuanBesar: true,
                                enumJenisPerpindahanStok: EnumJenisPerpindahanStok.ReturKeTempatProduksi,
                                keterangan: "(" + item.TBStokBahanBaku.TBBahanBaku.Nama + ") Retur PO #" + IDPOProduksiBahanBakuRetur);
                        }

                        db.SubmitChanges();

                        statusBerhasil = true;
                    }
                }
                catch (Exception ex)
                {
                    if (statusBerhasil != true)
                    {
                        using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
                        {
                            POBahanBakuRetur = db.TBPOProduksiBahanBakuReturs.FirstOrDefault(item => item.IDPOProduksiBahanBakuRetur == IDPOProduksiBahanBakuRetur);
                            if (POBahanBakuRetur != null)
                            {
                                db.TBPOProduksiBahanBakuReturDetails.DeleteAllOnSubmit(POBahanBakuRetur.TBPOProduksiBahanBakuReturDetails);
                                db.TBPOProduksiBahanBakuReturs.DeleteOnSubmit(POBahanBakuRetur);
                                db.SubmitChanges();

                                IDPOProduksiBahanBakuRetur = string.Empty;
                            }
                        }
                    }
                    LogError_Class LogError = new LogError_Class(ex, "Retur PO 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");
                    }
                }
            }
            else
            {
                LabelPeringatan.Text = "Tidak ada Bahan Baku yang dipilih";
                peringatan.Visible   = true;
            }
        }
    }
Пример #24
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            PenggunaLogin Pengguna = (PenggunaLogin)Session["PenggunaLogin"];

            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                Tempat_Class ClassTempat = new Tempat_Class(db);

                #region Default
                DropDownListJenisStok.Items.Insert(0, new ListItem {
                    Value = "0", Text = "Semua"
                });
                DropDownListJenisStok.Items.Insert(1, new ListItem {
                    Value = "1", Text = "Ada Stok", Selected = true
                });
                DropDownListJenisStok.Items.Insert(2, new ListItem {
                    Value = "2", Text = "Tidak Ada Stok"
                });
                DropDownListJenisStok.Items.Insert(3, new ListItem {
                    Value = "3", Text = "Minus"
                });

                DropDownListCariKategori.DataSource     = db.TBKategoriBahanBakus.ToArray();
                DropDownListCariKategori.DataTextField  = "Nama";
                DropDownListCariKategori.DataValueField = "IDKategoriBahanBaku";
                DropDownListCariKategori.DataBind();
                DropDownListCariKategori.Items.Insert(0, new ListItem {
                    Value = "0", Text = "- Semua -"
                });

                DropDownListCariSatuan.DataSource     = db.TBSatuans.ToArray();
                DropDownListCariSatuan.DataTextField  = "Nama";
                DropDownListCariSatuan.DataValueField = "IDSatuan";
                DropDownListCariSatuan.DataBind();
                DropDownListCariSatuan.Items.Insert(0, new ListItem {
                    Value = "0", Text = "- Semua -"
                });

                var ListTempat = ClassTempat.Data();

                DropDownListTempatPengirim.DataSource     = ListTempat;
                DropDownListTempatPengirim.DataTextField  = "Nama";
                DropDownListTempatPengirim.DataValueField = "IDTempat";
                DropDownListTempatPengirim.DataBind();
                DropDownListTempatPengirim.Items.Insert(0, new ListItem {
                    Text = "- Lokasi -", Value = "0"
                });
                DropDownListTempatPengirim.SelectedValue = Pengguna.IDTempat.ToString();

                DropDownListTempatPenerima.DataSource     = ListTempat.Where(item => item.IDTempat != Pengguna.IDTempat);
                DropDownListTempatPenerima.DataTextField  = "Nama";
                DropDownListTempatPenerima.DataValueField = "IDTempat";
                DropDownListTempatPenerima.DataBind();

                TextBoxTanggalKirim.Text = DateTime.Now.ToString("d MMMM yyyy HH:mm");
                #endregion

                var DataTransferBahanBaku = db.TBTransferBahanBakus
                                            .FirstOrDefault(item => item.IDTransferBahanBaku == Request.QueryString["id"]);

                if (DataTransferBahanBaku != null)
                {
                    //DATA TRANSFER BAHAN BAKU DITEMUKAN

                    if (DataTransferBahanBaku.EnumJenisTransfer == (int)PilihanJenisTransfer.TransferBatal ||
                        DataTransferBahanBaku.EnumJenisTransfer == (int)PilihanJenisTransfer.TransferProses ||
                        DataTransferBahanBaku.EnumJenisTransfer == (int)PilihanJenisTransfer.TransferSelesai)
                    {
                        //TRANSFER BATAL MAKA COPY TRANSFER BAHAN BAKU LAMA KE TRANSFER BAHAN BAKU BARU
                        TextBoxTanggalKirim.Text = DateTime.Now.ToString("d MMMM yyyy HH:mm");
                        DropDownListTempatPenerima.SelectedValue = DataTransferBahanBaku.IDTempatPenerima.ToString();
                        TextBoxKeterangan.Text = "Referensi Transfer #" + DataTransferBahanBaku.IDTransferBahanBaku + " - " + DataTransferBahanBaku.Keterangan;

                        #region MEMBUAT TRANSFER BAHAN BAKU BARU
                        TransferBahanBaku_Class TransferBahanBaku = new TransferBahanBaku_Class();
                        var TransferBahanBakuBaru = TransferBahanBaku.Tambah(db, Pengguna.IDPengguna, DropDownListTempatPengirim.SelectedValue.ToInt(), DropDownListTempatPenerima.SelectedValue.ToInt(), TextBoxKeterangan.Text);

                        LabelIDTransferBahanBaku.Text = TransferBahanBakuBaru.IDTransferBahanBaku;
                        #endregion

                        Dictionary <int, decimal> ListStokBahanBakuHabis = new Dictionary <int, decimal>();
                        TBStokBahanBaku[]         daftarStokBahanBaku    = db.TBStokBahanBakus.Where(item => item.IDTempat == DropDownListTempatPengirim.SelectedValue.ToInt()).ToArray();

                        //COPY DETAIL TRANSFER LAMA KE DETAIL TRANSFER BARU
                        foreach (var item in DataTransferBahanBaku.TBTransferBahanBakuDetails.ToArray())
                        {
                            //PENCARIAN STOK BAHAN BAKU
                            var stokBahanBaku = daftarStokBahanBaku.FirstOrDefault(data => data.IDBahanBaku == item.IDBahanBaku);

                            if (item.Jumlah <= (stokBahanBaku.Jumlah / stokBahanBaku.TBBahanBaku.Konversi))
                            {
                                //JIKA JUMLAH PERMINTAAN LEBIH KECIL ATAU SAMA DENGAN JUMLAH STOK
                                StokBahanBaku_Class.UpdateBertambahBerkurang(db, DateTime.Now, Pengguna.IDPengguna, stokBahanBaku, item.Jumlah, item.HargaBeli, true, EnumJenisPerpindahanStok.TransferStokKeluar, "Transfer #" + LabelIDTransferBahanBaku.Text);

                                //MENAMBAHKAN DI DETAIL TRANSFER
                                TransferBahanBakuBaru.TBTransferBahanBakuDetails.Add(new TBTransferBahanBakuDetail
                                {
                                    //IDTRANSFERPBAHANBAKUDETAIL
                                    //IDTRANSFERBAHANBAKU
                                    IDBahanBaku = item.IDBahanBaku,
                                    IDSatuan    = item.TBBahanBaku.IDSatuanKonversi,
                                    HargaBeli   = (stokBahanBaku.HargaBeli.Value * stokBahanBaku.TBBahanBaku.Konversi.Value),
                                    Jumlah      = item.Jumlah
                                                  //SUBTOTALHARGABELI
                                });
                            }
                            else //MENCATAT STOK BAHAN BAKU YANG HABIS
                            {
                                ListStokBahanBakuHabis.Add(stokBahanBaku.IDBahanBaku.Value, item.Jumlah);
                            }
                        }

                        //UPDATE DATA TRANSFERBAHANBAKU
                        TransferBahanBakuBaru.TanggalUpdate = DateTime.Now;
                        TransferBahanBakuBaru.TotalJumlah   = TransferBahanBakuBaru.TBTransferBahanBakuDetails.Sum(item2 => item2.Jumlah);
                        TransferBahanBakuBaru.GrandTotal    = TransferBahanBakuBaru.TBTransferBahanBakuDetails.Sum(item2 => item2.Jumlah * item2.HargaBeli);

                        db.SubmitChanges();

                        LoadDataTransferBahanBaku();

                        //RESET LITERAL WARNING
                        LiteralWarning.Text = "";

                        if (ListStokBahanBakuHabis.Count > 0)
                        {
                            #region LIST STOK HABIS ADA MAKA MENAMPILKAN STOK APA SAJA YANG HABIS
                            var DataStokBahanBaku = db.TBStokBahanBakus
                                                    .AsEnumerable()
                                                    .Where(item =>
                                                           item.IDTempat == Pengguna.IDTempat &&
                                                           ListStokBahanBakuHabis.ContainsKey(item.IDBahanBaku.Value))
                                                    .Select(item => new
                            {
                                IDBahanBaku = item.TBBahanBaku.IDBahanBaku,
                                BahanBaku   = item.TBBahanBaku.Nama,
                                Kode        = item.TBBahanBaku.KodeBahanBaku,

                                IDSatuanKecil = item.TBBahanBaku.IDSatuan,
                                SatuanKecil   = item.TBBahanBaku.TBSatuan.Nama,

                                Konversi = item.TBBahanBaku.Konversi,

                                IDSatuanBesar = item.TBBahanBaku.IDSatuanKonversi,
                                SatuanBesar   = item.TBBahanBaku.TBSatuan1.Nama,

                                IDKategori = item.TBBahanBaku.TBRelasiBahanBakuKategoriBahanBakus.Count > 0 ? item.TBBahanBaku.TBRelasiBahanBakuKategoriBahanBakus.FirstOrDefault().IDKategoriBahanBaku : 0,
                                Kategori   = item.TBBahanBaku.TBRelasiBahanBakuKategoriBahanBakus.Count > 0 ? item.TBBahanBaku.TBRelasiBahanBakuKategoriBahanBakus.FirstOrDefault().TBKategoriBahanBaku.Nama : "",

                                IDStokBahanBaku = item.IDStokBahanBaku,

                                Jumlah = (item.Jumlah / item.TBBahanBaku.Konversi),

                                HargaBeli = (item.HargaBeli * item.TBBahanBaku.Konversi)
                            }).OrderBy(item => item.BahanBaku).ToArray();

                            RepeaterStokBahanBaku.DataSource = DataStokBahanBaku;
                            RepeaterStokBahanBaku.DataBind();
                            #endregion

                            #region MENGISI TEXTBOX DENGAN JUMLAH PERMINTAAN
                            foreach (RepeaterItem item in RepeaterStokBahanBaku.Items)
                            {
                                Label        LabelIDBahanBaku      = (Label)item.FindControl("LabelIDBahanBaku");
                                TextBox      TextBoxJumlahTransfer = (TextBox)item.FindControl("TextBoxJumlahTransfer");
                                HtmlTableRow panelStok             = (HtmlTableRow)item.FindControl("panelStok");

                                if (ListStokBahanBakuHabis.ContainsKey(LabelIDBahanBaku.Text.ToInt()))
                                {
                                    TextBoxJumlahTransfer.Text = ListStokBahanBakuHabis[LabelIDBahanBaku.Text.ToInt()].ToFormatHarga();
                                    panelStok.Attributes.Add("class", "danger");
                                }
                            }
                            #endregion

                            LiteralWarning.Text = Alert_Class.Pesan(TipeAlert.Danger, "Stok tidak cukup, silahkan cek kembali");

                            MultiViewTransferBahanBaku.ActiveViewIndex = 0;
                        }
                        else
                        {
                            //JIKA STOK BAHAN BAKU TIDAK HABIS
                            LoadDataStokBahanBaku();
                            MultiViewTransferBahanBaku.ActiveViewIndex = 1;
                        }
                    }
                    else
                    {
                        //TRANSFER BAHAN BAKU : PENDING
                        LabelIDTransferBahanBaku.Text = DataTransferBahanBaku.IDTransferBahanBaku;
                        LoadDataTransferBahanBaku();
                        MultiViewTransferBahanBaku.ActiveViewIndex = 1;
                    }
                }
                else
                {
                    //TRANSFER BAHAN BAKU TIDAK DITEMUKAN MEMBUAT TRANSFER BARU
                    MultiViewTransferBahanBaku.ActiveViewIndex = 0;
                    LoadDataStokBahanBaku();
                }
            }
        }
        else
        {
            LiteralWarning.Text = "";
        }
    }
Пример #25
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;
    }
Пример #26
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;
    }
Пример #27
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;
            }
        }
    }
Пример #28
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();
        }
    }