示例#1
0
    private void LoadData(DataClassesDatabaseDataContext db, TBKombinasiProduk kombinasiProduk)
    {
        PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"];

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

        RepeaterBiayaProduksi.DataSource = kombinasiProduk.TBRelasiJenisBiayaProduksiKombinasiProduks.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 * StokProduk_Class.HitungHargaPokokKomposisi(db, pengguna.IDTempat, item.TBKombinasiProduk)).ToFormatHarga() : item.Nominal.ToFormatHarga()
        }).ToArray();
        RepeaterBiayaProduksi.DataBind();

        decimal hargaKomposisi = StokProduk_Class.HitungHargaPokokKomposisi(db, pengguna.IDTempat, kombinasiProduk);

        LabelTotalHargaBesarKomposisi.Text = hargaKomposisi.ToFormatHarga();

        decimal hargaBiayaProduksi = StokProduk_Class.HitungBiayaProduksi(db, pengguna.IDTempat, kombinasiProduk);

        LabelTotalHargaBesarBiayaProduksi.Text = hargaBiayaProduksi.ToFormatHarga();

        LabelHitunganKomposisi.Text     = LabelTotalHargaBesarKomposisi.Text;
        LabelHitunganBiayaProduksi.Text = hargaBiayaProduksi.ToFormatHarga();
        LabelHargaPokokProduksi.Text    = (hargaKomposisi + hargaBiayaProduksi).ToFormatHarga();
    }
示例#2
0
    private void LoadDataKombinasiProduk(DataClassesDatabaseDataContext db)
    {
        PenggunaLogin Pengguna = (PenggunaLogin)Session["PenggunaLogin"];

        KombinasiProduk_Class KombinasiProduk_Class = new KombinasiProduk_Class();
        StokProduk_Class      StokProduk_Class      = new StokProduk_Class(db);

        List <dynamic> ListKombinasiProduk = new List <dynamic>();

        foreach (var item in KombinasiProduk_Class.Data(db, HiddenFieldIDProduk.Value.ToInt()))
        {
            var StokProduk = StokProduk_Class.Cari(Pengguna.IDTempat, item.IDKombinasiProduk);

            ListKombinasiProduk.Add(new
            {
                IDKombinasiProduk   = item.IDKombinasiProduk,
                Atribut             = item.TBAtributProduk.Nama,
                KodeKombinasiProduk = item.KodeKombinasiProduk,
                Berat        = item.Berat.ToFormatHarga(),
                HargaBeli    = StokProduk != null ? StokProduk.HargaBeli.ToFormatHarga() : "0",
                HargaJual    = StokProduk != null ? StokProduk.HargaJual.ToFormatHarga() : "0",
                Jumlah       = StokProduk != null ? StokProduk.Jumlah.ToFormatHargaBulat() : "0",
                Status       = StokProduk != null ? StokProduk.Status : false,
                IDStokProduk = StokProduk != null ? StokProduk.IDStokProduk : 0,
            });
        }

        RepeaterKombinasiProduk.DataSource = ListKombinasiProduk;
        RepeaterKombinasiProduk.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 TransferProduk = db.TBTransferProduks.FirstOrDefault(item => item.IDTransferProduk == e.CommandArgument.ToString());

                if (TransferProduk != null)
                {
                    StokProduk_Class StokProduk_Class = new StokProduk_Class(db);

                    foreach (var item in TransferProduk.TBTransferProdukDetails.ToArray())
                    {
                        StokProduk_Class.BertambahBerkurang(Pengguna.IDTempat, Pengguna.IDPengguna, item.IDKombinasiProduk, item.Jumlah, item.HargaBeli, item.HargaJual, EnumJenisPerpindahanStok.TransferBatal, "Transfer Batal #" + TransferProduk.IDTransferProduk);
                    }

                    TransferProduk.EnumJenisTransfer = (int)PilihanJenisTransfer.TransferBatal;

                    db.SubmitChanges();
                }
            }

            LoadData();
        }
        else if (e.CommandName == "TransferUlang")
        {
            Response.Redirect("Pengaturan.aspx?id=" + e.CommandArgument);
        }
    }
示例#4
0
    protected void RepeaterTransferKombinasiProduk_ItemCommand(object source, RepeaterCommandEventArgs e)
    {
        if (e.CommandName == "Hapus")
        {
            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                PenggunaLogin Pengguna = (PenggunaLogin)Session["PenggunaLogin"];

                StokProduk_Class StokProduk_Class = new StokProduk_Class(db);

                var TransferProdukDetail = db.TBTransferProdukDetails.FirstOrDefault(item => item.IDTransferProdukDetail == e.CommandArgument.ToInt());

                if (TransferProdukDetail != null)
                {
                    StokProduk_Class.BertambahBerkurang(Pengguna.IDTempat, Pengguna.IDPengguna, TransferProdukDetail.IDKombinasiProduk, TransferProdukDetail.Jumlah, TransferProdukDetail.HargaBeli, TransferProdukDetail.HargaJual, EnumJenisPerpindahanStok.TransferBatal, "Transfer #" + TransferProdukDetail.IDTransferProduk);

                    db.TBTransferProdukDetails.DeleteOnSubmit(TransferProdukDetail);
                    db.SubmitChanges();

                    //UPDATE DATA TRANSFER PRODUK
                    var TransferProduk = db.TBTransferProduks.FirstOrDefault(item => item.IDTransferProduk == LabelIDTransferProduk.Text);

                    TransferProduk.TanggalUpdate       = DateTime.Now;
                    TransferProduk.TotalJumlah         = TransferProduk.TBTransferProdukDetails.Sum(item2 => item2.Jumlah);
                    TransferProduk.GrandTotalHargaBeli = TransferProduk.TBTransferProdukDetails.Sum(item2 => item2.Jumlah * item2.HargaBeli);
                    TransferProduk.GrandTotalHargaJual = TransferProduk.TBTransferProdukDetails.Sum(item2 => item2.Jumlah * item2.HargaJual);
                    db.SubmitChanges();

                    LoadDataTransferProduk();
                }
            }
        }
    }
示例#5
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                TBPrintBarcode PrintBarcode = db.TBPrintBarcodes.FirstOrDefault();

                if (PrintBarcode != null)
                {
                    StokProduk_Class StokProduk_Class = new StokProduk_Class(db);

                    var StokProduk = StokProduk_Class.Cari(PrintBarcode.IDStokProduk);

                    //UBAH ANGKANYA setelah <= dan setelah : (SESUAI DENGAN JUMLAH BARIS YANG DIINGINKAN)
                    //5 BARIS = 10 Stok/Barcode
                    int            jumlahBaris = Math.Ceiling(PrintBarcode.Jumlah.ToDecimal() / 2).ToInt() <= 5 ? Math.Ceiling(PrintBarcode.Jumlah.ToDecimal() / 2).ToInt() : 5;
                    dynamic[]      ListBarcode = new dynamic[jumlahBaris];
                    List <dynamic> ListBody    = new List <dynamic>();

                    //JUMLAH BARCODE KE KANAN
                    for (int i = 0; i < 2; i++)
                    {
                        ListBody.Add(new
                        {
                            Nama     = StokProduk.TBKombinasiProduk.TBProduk.Nama,
                            Kode     = StokProduk.TBKombinasiProduk.KodeKombinasiProduk,
                            Varian   = !string.IsNullOrWhiteSpace(StokProduk.TBKombinasiProduk.TBAtributProduk.Nama) ? "(" + StokProduk.TBKombinasiProduk.TBAtributProduk.Nama + ")" : "&nbsp;",
                            Warna    = StokProduk.TBKombinasiProduk.TBProduk.TBWarna.Nama,
                            Kategori = StokProduk.TBKombinasiProduk.TBProduk.TBRelasiProdukKategoriProduks.Count > 0 ? StokProduk.TBKombinasiProduk.TBProduk.TBRelasiProdukKategoriProduks.FirstOrDefault().TBKategoriProduk.Nama : "",
                            Harga    = StokProduk.HargaJual.ToFormatHarga()
                        });
                    }


                    RepeaterBarcodeBarcode.DataSource = ListBarcode.Select(item => new
                    {
                        Body = ListBody
                    });
                    RepeaterBarcodeBarcode.DataBind();

                    //JANGAN DI UBAH ANGKANYA
                    PrintBarcode.Jumlah -= (jumlahBaris * 2);

                    if (PrintBarcode.Jumlah <= 0)
                    {
                        db.TBPrintBarcodes.DeleteOnSubmit(PrintBarcode);
                    }

                    db.SubmitChanges();
                }
                else
                {
                    Response.Redirect("/WITWarehouse/Default.aspx");
                }
            }

            TimerBarcode.Enabled = true;
        }
    }
示例#6
0
    protected void RepeaterKombinasiProduk_ItemCommand(object source, RepeaterCommandEventArgs e)
    {
        using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
        {
            if (e.CommandName == "Hapus")
            {
                KombinasiProduk_Class KombinasiProduk_Class = new KombinasiProduk_Class();

                if (KombinasiProduk_Class.Hapus(db, e.CommandArgument.ToInt()))
                {
                    db.SubmitChanges();

                    LoadDataKombinasiProduk(db);
                }
            }
            if (e.CommandName == "UbahStatus")
            {
                StokProduk_Class StokProduk_Class = new StokProduk_Class(db);

                if (StokProduk_Class.UbahStatus((e.CommandArgument.ToString()).ToInt()))
                {
                    LoadDataKombinasiProduk(db);
                }
            }
        }
    }
示例#7
0
    protected void ButtonSimpan_Click(object sender, EventArgs e)
    {
        PenggunaLogin Pengguna = (PenggunaLogin)Session["PenggunaLogin"];

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

            foreach (RepeaterItem item in RepeaterLaporan.Items)
            {
                Repeater RepeaterKombinasiProduk = (Repeater)item.FindControl("RepeaterKombinasiProduk");

                foreach (RepeaterItem item2 in RepeaterKombinasiProduk.Items)
                {
                    Label   LabelIDStokProduk  = (Label)item2.FindControl("LabelIDStokProduk");
                    TextBox TextBoxStokTerbaru = (TextBox)item2.FindControl("TextBoxStokTerbaru");

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

                        var StokProduk = StokProduk_Class.Cari(LabelIDStokProduk.Text.ToInt());

                        if (Request.QueryString["do"] == "opname")
                        {
                            StokProduk_Class.Penyesuaian(DropDownListTempat.SelectedValue.ToInt(), Pengguna.IDPengguna, StokProduk, TextBoxStokTerbaru.Text.ToDecimal().ToInt(), "");
                        }
                        else if (Request.QueryString["do"] == "waste")
                        {
                            StokProduk_Class.BertambahBerkurang(DropDownListTempat.SelectedValue.ToInt(), Pengguna.IDPengguna, StokProduk, TextBoxStokTerbaru.Text.ToDecimal().ToInt(), StokProduk.HargaBeli.Value, StokProduk.HargaJual.Value, EnumJenisPerpindahanStok.PembuanganBarangRusak, "");
                        }
                        else if (Request.QueryString["do"] == "restock")
                        {
                            StokProduk_Class.BertambahBerkurang(DropDownListTempat.SelectedValue.ToInt(), Pengguna.IDPengguna, StokProduk, TextBoxStokTerbaru.Text.ToDecimal().ToInt(), StokProduk.HargaBeli.Value, StokProduk.HargaJual.Value, EnumJenisPerpindahanStok.RestockBarang, "");
                        }
                        else if (Request.QueryString["do"] == "return")
                        {
                            StokProduk_Class.BertambahBerkurang(DropDownListTempat.SelectedValue.ToInt(), Pengguna.IDPengguna, StokProduk, TextBoxStokTerbaru.Text.ToDecimal().ToInt(), StokProduk.HargaBeli.Value, StokProduk.HargaJual.Value, EnumJenisPerpindahanStok.ReturKeTempatProduksi, "");
                        }
                        else
                        {
                            Response.Redirect("/WITWarehouse/Produk.aspx");
                        }
                    }

                    TextBoxStokTerbaru.Text = string.Empty;
                }
            }

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

        LoadData();
    }
示例#8
0
    protected void RepeaterPOProduksiDetail_ItemCommand(object source, RepeaterCommandEventArgs e)
    {
        MultiViewPerformance.SetActiveView(ViewPOProduksiDetail);

        using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
        {
            TBPOProduksiProduk poProduksiBProduk = db.TBPOProduksiProduks.FirstOrDefault(item => item.IDPOProduksiProduk == e.CommandArgument.ToString());

            TextBoxIDProyeksi.Text            = poProduksiBProduk.IDProyeksi != null ? poProduksiBProduk.IDProyeksi : "-Tidak Ada Proyeksi-";
            TextBoxIDPOProduksiBahanBaku.Text = poProduksiBProduk.IDPOProduksiProduk;
            TextBoxStatusHPP.Text             = Pengaturan.StatusJenisHPP(poProduksiBProduk.EnumJenisHPP.Value);
            TextBoxPegawaiPIC.Text            = poProduksiBProduk.TBPengguna1.NamaLengkap;
            TextBoxTanggalJatuhTempo.Text     = poProduksiBProduk.TanggalJatuhTempo != null?poProduksiBProduk.TanggalJatuhTempo.ToFormatTanggal() : string.Empty;

            TextBoxTanggalPengiriman.Text = poProduksiBProduk.TanggalPengiriman.ToFormatTanggal();
            TextBoxTanggalJatuhTempo.Text = poProduksiBProduk.TanggalJatuhTempo != null?poProduksiBProduk.TanggalJatuhTempo.ToFormatTanggal() : string.Empty;

            TextBoxTanggalPengiriman.Text = poProduksiBProduk.TanggalPengiriman.ToFormatTanggal();
            TextBoxPegawai.Text           = poProduksiBProduk.TBPengguna.NamaLengkap + " / " + poProduksiBProduk.Tanggal.ToFormatTanggal();

            if (poProduksiBProduk.EnumJenisProduksi != (int)PilihanEnumJenisProduksi.ProduksiSendiri)
            {
                TextBoxVendorTempat.Text = poProduksiBProduk.TBVendor.Nama;
                TextBoxEmail.Text        = poProduksiBProduk.TBVendor.Email;
                TextBoxAlamat.Text       = poProduksiBProduk.TBVendor.Alamat;
                TextBoxTelepon1.Text     = poProduksiBProduk.TBVendor.Telepon1;
                TextBoxTelepon2.Text     = poProduksiBProduk.TBVendor.Telepon2;
            }
            else
            {
                TextBoxVendorTempat.Text = poProduksiBProduk.TBTempat.Nama;
                TextBoxEmail.Text        = poProduksiBProduk.TBTempat.Email;
                TextBoxAlamat.Text       = poProduksiBProduk.TBTempat.Alamat;
                TextBoxTelepon1.Text     = poProduksiBProduk.TBTempat.Telepon1;
                TextBoxTelepon2.Text     = poProduksiBProduk.TBTempat.Telepon2;
            }

            DetailProduk.Visible = true;
            RepeaterPOProduksiProdukDetail.DataSource = poProduksiBProduk.TBPOProduksiProdukDetails.Select(item => new
            {
                item.TBKombinasiProduk.KodeKombinasiProduk,
                Produk        = item.TBKombinasiProduk.TBProduk.Nama,
                AtributProduk = item.TBKombinasiProduk.TBAtributProduk.Nama,
                Kategori      = StokProduk_Class.GabungkanSemuaKategoriProduk(db, null, item.TBKombinasiProduk),
                Harga         = poProduksiBProduk.EnumJenisProduksi == (int)PilihanEnumJenisProduksi.ProduksiSendiri ? item.TotalHPP : item.TotalHargaVendor,
                item.Jumlah,
                Datang = item.Jumlah - item.Sisa,
                item.Sisa
            });
            RepeaterPOProduksiProdukDetail.DataBind();

            ButtonKembali.Visible           = false;
            ButtonKembaliPOProduksi.Visible = true;
        }
    }
示例#9
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            if (Session["PenggunaLogin"] == null)
            {
                Response.Redirect("/WITWarehouse/Default.aspx");
                return;
            }

            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                PenggunaLogin    Pengguna         = (PenggunaLogin)Session["PenggunaLogin"];
                StokProduk_Class StokProduk_Class = new StokProduk_Class(db);
                var StokProduk = StokProduk_Class.Cari(Pengguna.IDTempat, Request.QueryString["id"].ToInt());

                if (StokProduk != null)
                {
                    PanelKeterangan.Visible = Request.QueryString["jumlah"].ToInt() > 0;

                    if (PanelKeterangan.Visible)
                    {
                        var jumlah        = Request.QueryString["jumlah"].ToDecimal();
                        var jumlahPrint   = Math.Ceiling(jumlah / 2);
                        var tidakTerpakai = (jumlahPrint * 2) - jumlah;

                        LabelJumlahPrint.Text   = jumlahPrint.ToFormatHargaBulat();
                        LabelTidakTerpakai.Text = tidakTerpakai.ToFormatHargaBulat();
                    }

                    List <dynamic> ListBarcode = new List <dynamic>();

                    for (int i = 0; i < 2; i++)
                    {
                        ListBarcode.Add(new
                        {
                            Nama     = StokProduk.TBKombinasiProduk.TBProduk.Nama,
                            Kode     = StokProduk.TBKombinasiProduk.KodeKombinasiProduk,
                            Varian   = !string.IsNullOrWhiteSpace(StokProduk.TBKombinasiProduk.TBAtributProduk.Nama) ? "(" + StokProduk.TBKombinasiProduk.TBAtributProduk.Nama + ")" : "&nbsp;",
                            Warna    = StokProduk.TBKombinasiProduk.TBProduk.TBWarna.Nama,
                            Kategori = StokProduk.TBKombinasiProduk.TBProduk.TBRelasiProdukKategoriProduks.Count > 0 ? StokProduk.TBKombinasiProduk.TBProduk.TBRelasiProdukKategoriProduks.FirstOrDefault().TBKategoriProduk.Nama : "",
                            Harga    = StokProduk.HargaJual.ToFormatHarga()
                        });
                    }

                    RepeaterBarcode2.DataSource = ListBarcode;
                    RepeaterBarcode2.DataBind();
                }
                else
                {
                    Response.Redirect("/WITWarehouse/Default.aspx");
                }
            }
        }
    }
示例#10
0
    protected void ButtonPerbaharuiSemuaHargaPokokProduksiProduk_Click(object sender, EventArgs e)
    {
        PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"];

        using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
        {
            StokProduk_Class.PerbaharuiSemuaHargaBeli(db, pengguna.IDTempat);
            db.SubmitChanges();
            LoadData(db);
        }
    }
示例#11
0
    protected void RepeaterKombinasiProduk_ItemCommand(object source, RepeaterCommandEventArgs e)
    {
        if (e.CommandName == "UbahHargaPokokProduksi")
        {
            PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"];

            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                StokProduk_Class.PerbaharuiHargaBeli(db, pengguna.IDTempat, e.CommandArgument.ToInt());
                db.SubmitChanges();
                LoadData(db);
            }
        }
    }
示例#12
0
    protected void ButtonTerima_Click(object sender, EventArgs e)
    {
        PenggunaLogin Pengguna = (PenggunaLogin)Session["PenggunaLogin"];

        try
        {
            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                TransferProduk_Class TransferProduk_Class = new TransferProduk_Class();

                var TransferProduk = TransferProduk_Class.Cari(db, Request.QueryString["id"]);

                if (TransferProduk != null && TransferProduk.EnumJenisTransfer == (int)PilihanJenisTransfer.TransferProses)
                {
                    StokProduk_Class StokProduk_Class = new StokProduk_Class(db);

                    foreach (var item in TransferProduk.TBTransferProdukDetails.ToArray())
                    {
                        var StokProduk = StokProduk_Class.Cari(Pengguna.IDTempat, item.IDKombinasiProduk);

                        if (StokProduk == null)
                        {
                            StokProduk = StokProduk_Class.MembuatStok(0, Pengguna.IDTempat, Pengguna.IDPengguna, item.IDKombinasiProduk, item.HargaBeli, item.HargaJual, "");
                        }

                        StokProduk_Class.BertambahBerkurang(Pengguna.IDTempat, Pengguna.IDPengguna, StokProduk, item.Jumlah, item.HargaBeli, item.HargaJual, EnumJenisPerpindahanStok.TransferStokMasuk, "Transfer #" + TransferProduk.IDTransferProduk);
                    }

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

                    db.SubmitChanges();

                    Response.Redirect("/WITAdministrator/Produk/Transfer/Detail.aspx?id=" + TransferProduk.IDTransferProduk, 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);
        }
    }
示例#13
0
    private void LoadData()
    {
        using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
        {
            PelangganLogin Pelanggan = (PelangganLogin)Session["PelangganLogin"];

            //MENCARI TRANSAKSI SESSION
            var TransaksiECommerce = db.TBTransaksiECommerces
                                     .FirstOrDefault(item => item.IDPelanggan == Pelanggan.IDPelanggan);

            if (TransaksiECommerce != null)
            {
                var TransaksiECommerceDetail = TransaksiECommerce.TBTransaksiECommerceDetails;

                StokProduk_Class ClassStokProduk = new StokProduk_Class(db);

                var Result = ClassStokProduk.ValidasiStokProdukTransaksi(TransaksiECommerceDetail.ToArray());

                LiteralWarning.Text = "";

                foreach (var item in Result)
                {
                    LiteralWarning.Text += item + "<br/>";
                }

                MultiView1.ActiveViewIndex = 1;

                RepeaterCart.DataSource = TransaksiECommerceDetail
                                          .Select(item => new
                {
                    item.IDTransaksiECommerceDetail,
                    Foto = "/images/cover/" + item.TBStokProduk.TBKombinasiProduk.IDProduk + ".jpg",
                    item.TBStokProduk.TBKombinasiProduk.Nama,
                    item.Quantity,
                    Harga = item.TBStokProduk.HargaJual,
                    Total = (item.Quantity * item.TBStokProduk.HargaJual)
                })
                                          .ToArray();
                RepeaterCart.DataBind();

                var total = TransaksiECommerceDetail.Sum(item => item.Quantity * item.TBStokProduk.HargaJual).ToString();
                LiteralTotal.Text = total.ToFormatHarga();
            }
            else
            {
                MultiView1.ActiveViewIndex = 0;
            }
        }
    }
示例#14
0
    protected void ButtonSimpanDetail_Click(object sender, EventArgs e)
    {
        if (Page.IsValid)
        {
            if (TextBoxJumlah.Text.ToDecimal().ToInt() > 0)
            {
                using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
                {
                    List <ProyeksiDetail_Model> ViewStateListDetail = (List <ProyeksiDetail_Model>)ViewState["ViewStateListDetail"];

                    ProyeksiDetail_Model detail = ViewStateListDetail.FirstOrDefault(item => item.IDStokProduk == DropDownListStokProduk.SelectedValue.ToInt());

                    if (detail == null)
                    {
                        TBStokProduk stokProduk = db.TBStokProduks.FirstOrDefault(item => item.IDStokProduk == DropDownListStokProduk.SelectedValue.ToInt());

                        detail                   = new ProyeksiDetail_Model();
                        detail.IDProduk          = stokProduk.TBKombinasiProduk.IDProduk;
                        detail.IDKombinasiProduk = stokProduk.IDKombinasiProduk;
                        detail.IDStokProduk      = stokProduk.IDStokProduk;
                        detail.Kode              = stokProduk.TBKombinasiProduk.KodeKombinasiProduk;
                        detail.Kategori          = StokProduk_Class.GabungkanSemuaKategoriProduk(db, stokProduk, null);
                        detail.Produk            = stokProduk.TBKombinasiProduk.TBProduk.Nama;
                        detail.Atribut           = stokProduk.TBKombinasiProduk.TBAtributProduk.Nama;
                        detail.Warna             = stokProduk.TBKombinasiProduk.TBProduk.TBWarna.Nama;
                        detail.KombinasiProduk   = stokProduk.TBKombinasiProduk.Nama;
                        detail.HargaJual         = stokProduk.HargaJual.Value;
                        detail.Jumlah            = TextBoxJumlah.Text.ToDecimal().ToInt();
                        detail.SisaBelumProduksi = detail.Jumlah;
                        ViewStateListDetail.Add(detail);

                        TambahKomposisi(db, detail.IDKombinasiProduk, detail.Jumlah);
                    }
                    else
                    {
                        KurangKomposisi(db, detail.IDKombinasiProduk, detail.Jumlah);

                        detail.Jumlah = TextBoxJumlah.Text.ToDecimal().ToInt();

                        TambahKomposisi(db, detail.IDKombinasiProduk, detail.Jumlah);
                    }

                    ViewState["ViewStateListDetail"] = ViewStateListDetail;
                }
                LoadData();
            }
        }
    }
示例#15
0
    public void ValidasiStokProdukTransaksi(DataClassesDatabaseDataContext db)
    {
        PelangganLogin Pelanggan = (PelangganLogin)Session["PelangganLogin"];

        //MENCARI TRANSAKSI SESSION
        var TransaksiECommerce = db.TBTransaksiECommerces
                                 .FirstOrDefault(item => item.IDPelanggan == Pelanggan.IDPelanggan);

        StokProduk_Class ClassStokProduk = new StokProduk_Class(db);

        var Result = ClassStokProduk.ValidasiStokProdukTransaksi(TransaksiECommerce.TBTransaksiECommerceDetails.ToArray());

        if (Result.Count > 0)
        {
            Response.Redirect("_Cart.aspx");
        }
    }
示例#16
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["PenggunaLogin"] == null)
        {
            Response.Redirect("/WITWarehouse/Default.aspx");
            return;
        }

        using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
        {
            PenggunaLogin    Pengguna         = (PenggunaLogin)Session["PenggunaLogin"];
            StokProduk_Class StokProduk_Class = new StokProduk_Class(db);
            var StokProduk = StokProduk_Class.Cari(Pengguna.IDTempat, Request.QueryString["id"].ToInt());

            if (StokProduk != null)
            {
                List <dynamic> ListBarcode = new List <dynamic>();

                for (int i = 0; i < 1; i++)
                {
                    ListBarcode.Add(new
                    {
                        Nama     = StokProduk.TBKombinasiProduk.TBProduk.Nama,
                        Kode     = StokProduk.TBKombinasiProduk.KodeKombinasiProduk,
                        Varian   = !string.IsNullOrWhiteSpace(StokProduk.TBKombinasiProduk.TBAtributProduk.Nama) ? StokProduk.TBKombinasiProduk.TBAtributProduk.Nama : "-",
                        Warna    = StokProduk.TBKombinasiProduk.TBProduk.TBWarna.Nama,
                        Kategori = StokProduk.TBKombinasiProduk.TBProduk.TBRelasiProdukKategoriProduks.Count > 0 ? StokProduk.TBKombinasiProduk.TBProduk.TBRelasiProdukKategoriProduks.FirstOrDefault().TBKategoriProduk.Nama : "",
                        Harga    = StokProduk.HargaJual.ToFormatHarga()
                    });
                }

                RepeaterBarcode.DataSource = ListBarcode;
                RepeaterBarcode.DataBind();
            }
            else
            {
                Response.Redirect("/WITWarehouse/Default.aspx");
            }
        }
    }
示例#17
0
    private void LoadData(DataClassesDatabaseDataContext db)
    {
        PenggunaLogin pengguna    = (PenggunaLogin)Session["PenggunaLogin"];
        DataDisplay   DataDisplay = new DataDisplay();

        var ListData = db.TBStokProduks
                       .AsEnumerable()
                       .Where(item => item.IDTempat == pengguna.IDTempat && (!string.IsNullOrWhiteSpace(TextBoxCari.Text) ? item.TBKombinasiProduk.Nama.ToLower().Contains(TextBoxCari.Text.ToLower()) : true))
                       .Select(item => new
        {
            item.TBKombinasiProduk.IDKombinasiProduk,
            item.TBKombinasiProduk.KodeKombinasiProduk,
            item.TBKombinasiProduk.Nama,
            AtributProduk      = item.TBKombinasiProduk.TBAtributProduk.Nama,
            HargaPokokProduksi = StokProduk_Class.HitungHargaPokokProduksi(db, pengguna.IDTempat, item.TBKombinasiProduk),
            item.HargaBeli,
            item.HargaJual,
            PersentaseSelisihHarga = (item.HargaJual > 0) ? (item.HargaBeli / item.HargaJual) * 100 : 0,
            PunyaKomposisi         = item.TBKombinasiProduk.TBKomposisiKombinasiProduks.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);


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

        DropDownListBahanBaku.DataSource     = db.TBStokBahanBakus.Where(item => item.IDTempat == pengguna.IDTempat).Select(item => new { item.IDBahanBaku, item.TBBahanBaku.Nama }).OrderBy(item => item.Nama);
        DropDownListBahanBaku.DataTextField  = "Nama";
        DropDownListBahanBaku.DataValueField = "IDBahanBaku";
        DropDownListBahanBaku.DataBind();
        DropDownListBahanBaku.Items.Insert(0, new ListItem {
            Text = "-Bahan Baku-", Value = "0"
        });
    }
示例#18
0
    protected void ButtonSimpanVarian_Click(object sender, EventArgs e)
    {
        using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
        {
            PenggunaLogin Pengguna = (PenggunaLogin)Session["PenggunaLogin"];

            KombinasiProduk_Class KombinasiProduk_Class = new KombinasiProduk_Class();
            StokProduk_Class      StokProduk_Class      = new StokProduk_Class(db);

            foreach (RepeaterItem item in RepeaterKombinasiProduk.Items)
            {
                HiddenField HiddenFieldIDKombinasiProduk = (HiddenField)item.FindControl("HiddenFieldIDKombinasiProduk");
                HiddenField HiddenFieldJumlah            = (HiddenField)item.FindControl("HiddenFieldJumlah");
                TextBox     TextBoxKodeKombinasiProduk   = (TextBox)item.FindControl("TextBoxKodeKombinasiProduk");
                TextBox     TextBoxAtributProduk         = (TextBox)item.FindControl("TextBoxAtributProduk");
                TextBox     TextBoxBerat     = (TextBox)item.FindControl("TextBoxBerat");
                TextBox     TextBoxHargaBeli = (TextBox)item.FindControl("TextBoxHargaBeli");
                TextBox     TextBoxHargaJual = (TextBox)item.FindControl("TextBoxHargaJual");
                TextBox     TextBoxJumlah    = (TextBox)item.FindControl("TextBoxJumlah");

                //KOMBINASI PRODUK
                var KombinasiProduk = KombinasiProduk_Class.Ubah(db, Pengguna.IDTempat, HiddenFieldIDKombinasiProduk.Value.ToInt(), "", TextBoxAtributProduk.Text, TextBoxKodeKombinasiProduk.Text, TextBoxBerat.Text.ToDecimal(), "");

                //STOK PRODUK
                var StokProduk = StokProduk_Class.Ubah(Pengguna.IDTempat, Pengguna.IDPengguna, KombinasiProduk, TextBoxHargaBeli.Text.ToDecimal(), TextBoxHargaJual.Text.ToDecimal());

                if (StokProduk == null && (TextBoxHargaBeli.Text.ToDecimal() > 0 || TextBoxHargaJual.Text.ToDecimal() > 0 || TextBoxJumlah.Text.ToInt() > 0))
                {
                    StokProduk = StokProduk_Class.MembuatStok(0, Pengguna.IDTempat, Pengguna.IDPengguna, KombinasiProduk, TextBoxHargaBeli.Text.ToDecimal(), TextBoxHargaJual.Text.ToDecimal(), "");
                }

                StokProduk_Class.Penyesuaian(Pengguna.IDTempat, Pengguna.IDPengguna, StokProduk, TextBoxJumlah.Text.ToDecimal().ToInt(), "");
            }

            db.SubmitChanges();

            LoadDataKombinasiProduk(db);
        }
    }
示例#19
0
    public List <TBKombinasiProduk> TambahList(DataClassesDatabaseDataContext db, int idTempat, int idPengguna, TBProduk Produk, string listAtributProduk)
    {
        string[] _tempAtributProduk = listAtributProduk.Replace(" ,", ",").Replace(", ", ",").Split(',');

        StokProduk_Class StokProduk_Class = new StokProduk_Class(db);

        List <TBKombinasiProduk> ListKombinasiProduk = new List <TBKombinasiProduk>();

        foreach (var item in _tempAtributProduk.Distinct())
        {
            var KombinasiProduk = Tambah(db, Produk, "", item, "", 0, "");

            var StokProduk = StokProduk_Class.MembuatStok(0, idTempat, idPengguna, KombinasiProduk, 0, 0, "");

            db.SubmitChanges();

            PengaturanBarcode(db, idTempat, KombinasiProduk);

            ListKombinasiProduk.Add(KombinasiProduk);
        }

        return(ListKombinasiProduk);
    }
示例#20
0
    protected void RepeaterData_ItemCommand(object source, RepeaterCommandEventArgs e)
    {
        if (e.CommandName == "Batal")
        {
            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                PenggunaLogin           pengguna = (PenggunaLogin)Session["PenggunaLogin"];
                TBPOProduksiProdukRetur poProduksiProdukRetur = db.TBPOProduksiProdukReturs.FirstOrDefault(item => item.IDPOProduksiProdukRetur == e.CommandArgument.ToString());
                poProduksiProdukRetur.EnumStatusRetur = (int)EnumStatusPORetur.Batal;

                StokProduk_Class StokProduk_Class = new StokProduk_Class(db);

                foreach (var item in poProduksiProdukRetur.TBPOProduksiProdukReturDetails)
                {
                    StokProduk_Class.BertambahBerkurang(poProduksiProdukRetur.IDTempat.Value, pengguna.IDPengguna, item.TBStokProduk, item.Jumlah.Value, item.HargaBeli.Value, item.HargaJual.Value, EnumJenisPerpindahanStok.TransaksiBatal, "(" + item.TBStokProduk.TBKombinasiProduk.Nama + ") Pembatalan Retur PO #" + e.CommandArgument.ToString());
                }

                db.SubmitChanges();

                LoadData();
            }
        }
    }
示例#21
0
    protected void ButtonUpdateHargaBeli_Click(object sender, EventArgs e)
    {
        using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
        {
            PenggunaLogin Pengguna = (PenggunaLogin)Session["PenggunaLogin"];

            KombinasiProduk_Class KombinasiProduk_Class = new KombinasiProduk_Class();
            StokProduk_Class      StokProduk_Class      = new StokProduk_Class(db);

            foreach (RepeaterItem item in RepeaterKombinasiProduk.Items)
            {
                CheckBox CheckBoxPilih = (CheckBox)item.FindControl("CheckBoxPilih");

                if (CheckBoxPilih.Checked)
                {
                    Label LabelIDKombinasiProduk = (Label)item.FindControl("LabelIDKombinasiProduk");
                    Label LabelHargaBeli         = (Label)item.FindControl("LabelHargaBeli");
                    Label LabelHargaJual         = (Label)item.FindControl("LabelHargaJual");
                    Label LabelStok = (Label)item.FindControl("LabelStok");

                    //STOK PRODUK
                    var StokProduk = StokProduk_Class.Ubah(Pengguna.IDTempat, Pengguna.IDPengguna, KombinasiProduk_Class.Cari(db, LabelIDKombinasiProduk.Text.ToInt()), TextBoxUpdateHargaBeli.Text.ToDecimal(), LabelHargaJual.Text.ToDecimal());

                    if (StokProduk == null && (TextBoxUpdateHargaBeli.Text.ToDecimal() > 0 || LabelHargaJual.Text.ToDecimal() > 0 || LabelStok.Text.ToInt() > 0))
                    {
                        StokProduk = StokProduk_Class.MembuatStok(0, Pengguna.IDTempat, Pengguna.IDPengguna, KombinasiProduk_Class.Cari(db, LabelIDKombinasiProduk.Text.ToInt()), TextBoxUpdateHargaBeli.Text.ToDecimal(), LabelHargaJual.Text.ToDecimal(), "");
                    }

                    StokProduk_Class.Penyesuaian(Pengguna.IDTempat, Pengguna.IDPengguna, StokProduk, LabelStok.Text.ToDecimal().ToInt(), "");

                    LabelHargaBeli.Text = TextBoxUpdateHargaBeli.Text;
                }
            }

            db.SubmitChanges();
        }
    }
    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;

                TBPOProduksiProduk poProduksiProduk = db.TBPOProduksiProduks.FirstOrDefault(item => item.IDPOProduksiProduk == Request.QueryString["id"]);

                LabelJudul.Text = "(PRODUCT)";

                LabelNamaVendor.Text   = poProduksiProduk.IDVendor != null ? poProduksiProduk.TBVendor.Nama : string.Empty;
                LabelAlamatVendor.Text = poProduksiProduk.IDVendor != null ? poProduksiProduk.TBVendor.Alamat : string.Empty;

                LabelIDProyeksi.Text = poProduksiProduk.IDProyeksi;
                LabelIDProduksi.Text = poProduksiProduk.IDPOProduksiProduk;

                RepeaterDetail.DataSource = poProduksiProduk.TBPOProduksiProdukDetails.Select(item => new
                {
                    item.TBKombinasiProduk.KodeKombinasiProduk,
                    Produk        = item.TBKombinasiProduk.TBProduk.Nama,
                    AtributProduk = item.TBKombinasiProduk.TBAtributProduk.Nama,
                    Kategori      = StokProduk_Class.GabungkanSemuaKategoriProduk(db, null, item.TBKombinasiProduk),
                    item.Jumlah,
                    item.Sisa
                }).ToArray();
                RepeaterDetail.DataBind();
            }
        }
    }
示例#23
0
    protected void ButtonOk_Click(object sender, EventArgs e)
    {
        LiteralWarning.Text = "";

        //VALIDASI NAMA PRODUK HARUS DIISI
        if (string.IsNullOrWhiteSpace(TextBoxNamaProduk.Text))
        {
            LiteralWarning.Text = Alert_Class.Pesan(TipeAlert.Danger, "Nama produk harus diisi");
            return;
        }

        using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
        {
            PenggunaLogin Pengguna = (PenggunaLogin)Session["PenggunaLogin"];

            Produk_Class ClassProduk = new Produk_Class(db);

            var ProdukDuplikat = ClassProduk.Cari(TextBoxNamaProduk.Text);

            if (ButtonOk.Text == "Tambah")
            {
                //VALIDASI NAMA PRODUK DUPLIKAT
                if (ProdukDuplikat != null)
                {
                    LiteralWarning.Text = Alert_Class.Pesan(TipeAlert.Danger, "Nama produk <a href='/WITAdministrator/Produk/Pengaturan.aspx?id=" + ProdukDuplikat.IDProduk + "'>" + ProdukDuplikat.Nama + "</a> sudah digunakan");
                    return;
                }

                KategoriProduk_Class  KategoriProduk_Class  = new KategoriProduk_Class();
                KombinasiProduk_Class KombinasiProduk_Class = new KombinasiProduk_Class();
                StokProduk_Class      StokProduk_Class      = new StokProduk_Class(db);

                //PRODUK
                var Produk = ClassProduk.Tambah(TextBoxProdukKategori.Text, TextBoxWarna.Text, TextBoxPemilikProduk.Text, TextBoxKodeProduk.Text, TextBoxNamaProduk.Text, TextBoxDeskripsi.Text);

                //KATEGORI PRODUK
                KategoriProduk_Class.KategoriProduk(db, Produk, TextBoxKategori.Text);

                //KOMBINASI PRODUK
                var KombinasiProduk = KombinasiProduk_Class.Tambah(db, Produk, "", "", "", 0, "");

                //STOK PRODUK
                StokProduk_Class.MembuatStok(0, Pengguna.IDTempat, Pengguna.IDPengguna, KombinasiProduk, 0, 0, "");

                db.SubmitChanges();

                //GENERATE BARCODE
                KombinasiProduk_Class.PengaturanBarcode(db, Pengguna.IDTempat, KombinasiProduk);

                Session["IDProduk"]       = Produk.IDProduk;
                HiddenFieldIDProduk.Value = Produk.IDProduk.ToString();

                ButtonOk.Text        = "Ubah";
                LabelKeterangan.Text = "Ubah";

                AjaxFileUploadFoto.Enabled = true;
                PanelVarian.Visible        = true;

                LoadDataKombinasiProduk(db);
            }
            else if (ButtonOk.Text == "Ubah")
            {
                //VALIDASI PRODUK TIDAK BOLEH DUPLIKAT
                if (ProdukDuplikat != null && (ProdukDuplikat.IDProduk != HiddenFieldIDProduk.Value.ToInt()))
                {
                    LiteralWarning.Text = Alert_Class.Pesan(TipeAlert.Danger, "Nama produk <a href='/WITAdministrator/Produk/Pengaturan.aspx?id=" + ProdukDuplikat.IDProduk + "'>" + TextBoxNamaProduk.Text + "</a> sudah digunakan");
                    return;
                }

                KategoriProduk_Class KategoriProduk_Class = new KategoriProduk_Class();

                //PRODUK
                var Produk = ClassProduk.Ubah(
                    IDProduk: HiddenFieldIDProduk.Value.ToInt(),
                    warna: TextBoxWarna.Text,
                    pemilikProduk: TextBoxPemilikProduk.Text,
                    produkKategori: TextBoxProdukKategori.Text,
                    KodeProduk: TextBoxKodeProduk.Text,
                    Nama: TextBoxNamaProduk.Text,
                    Deskripsi: TextBoxDeskripsi.Text
                    );

                //KATEGORI PRODUK
                KategoriProduk_Class.KategoriProduk(db, Produk, TextBoxKategori.Text);

                db.SubmitChanges();

                LoadDataKombinasiProduk(db);
            }
        }
    }
示例#24
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();
            }
        }
    }
示例#25
0
    protected void ButtonTerima_Click(object sender, EventArgs e)
    {
        peringatan.Visible = false;
        bool          statusBerhasil = false;
        PenggunaLogin Pengguna       = (PenggunaLogin)Session["PenggunaLogin"];
        string        IDPenerimaanPOProduksiProduk = string.Empty;
        string        IDTransferProduk             = string.Empty;
        TBPenerimaanPOProduksiProduk penerimaan    = null;

        try
        {
            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                TBPOProduksiProduk poProduksiProduk = db.TBPOProduksiProduks.FirstOrDefault(item => item.IDPOProduksiProduk == DropDownListIDPOProduksi.SelectedValue);

                bool penerimaanSesuai = true;

                EntitySet <TBPenerimaanPOProduksiProdukDetail> daftarDetail = new EntitySet <TBPenerimaanPOProduksiProdukDetail>();

                int baris = 0;

                foreach (RepeaterItem item in RepeaterDetail.Items)
                {
                    baris++;

                    Label   LabelIDKombinasiProduk     = (Label)item.FindControl("LabelIDKombinasiProduk");
                    TextBox TextBoxSisaPesanan         = (TextBox)item.FindControl("TextBoxSisaPesanan");
                    TextBox TextBoxJumlahDatang        = (TextBox)item.FindControl("TextBoxJumlahDatang");
                    TextBox TextBoxJumlahTerima        = (TextBox)item.FindControl("TextBoxJumlahTerima");
                    TextBox TextBoxJumlahTolakKeVendor = (TextBox)item.FindControl("TextBoxJumlahTolakKeVendor");

                    if (TextBoxJumlahDatang.Text.ToDecimal().ToInt() > 0)
                    {
                        if (TextBoxJumlahDatang.Text.ToDecimal().ToInt() >= TextBoxJumlahTerima.Text.ToDecimal().ToInt())
                        {
                            TBPOProduksiProdukDetail poProduksiProdukDetail = poProduksiProduk.TBPOProduksiProdukDetails.FirstOrDefault(data => data.IDKombinasiProduk == LabelIDKombinasiProduk.Text.ToInt());

                            daftarDetail.Add(new TBPenerimaanPOProduksiProdukDetail()
                            {
                                IDKombinasiProduk   = poProduksiProdukDetail.IDKombinasiProduk,
                                BiayaTambahan       = poProduksiProdukDetail.BiayaTambahan,
                                HargaPokokKomposisi = poProduksiProdukDetail.HargaPokokKomposisi,
                                TotalHPP            = poProduksiProdukDetail.TotalHPP,
                                HargaVendor         = poProduksiProdukDetail.HargaVendor,
                                PotonganHargaVendor = poProduksiProdukDetail.PotonganHargaVendor,
                                TotalHargaVendor    = poProduksiProdukDetail.TotalHargaVendor,
                                Datang        = TextBoxJumlahDatang.Text.ToDecimal().ToInt(),
                                Diterima      = TextBoxJumlahTerima.Text.ToDecimal().ToInt(),
                                TolakKeVendor = TextBoxJumlahTolakKeVendor.Text.ToDecimal().ToInt(),
                                Sisa          = TextBoxJumlahTerima.Text.ToDecimal().ToInt() <= TextBoxSisaPesanan.Text.ToDecimal().ToInt() ? TextBoxSisaPesanan.Text.ToDecimal().ToInt() - TextBoxJumlahTerima.Text.ToDecimal().ToInt() : 0
                            });
                        }
                        else
                        {
                            LabelPeringatan.Text = "Jumlah diterima lebih besar dari jumlah datang, baris ke-" + baris.ToString();
                            peringatan.Visible   = true;
                            penerimaanSesuai     = false;
                            break;
                        }
                    }
                }

                if (penerimaanSesuai == true)
                {
                    StokProduk_Class StokProduk_Class = new StokProduk_Class(db);
                    TBStokProduk[]   daftarStokProduk = db.TBStokProduks.Where(item => item.IDTempat == Pengguna.IDTempat).ToArray();

                    db.Proc_InsertPenerimaanPOProduksiProduk(ref IDPenerimaanPOProduksiProduk, poProduksiProduk.IDPOProduksiProduk, poProduksiProduk.IDVendor, Pengguna.IDTempat, Pengguna.IDPengguna, TextBoxTanggalPenerimaan.Text.ToDateTime().AddHours(DateTime.Now.Hour).AddMinutes(DateTime.Now.Minute));

                    penerimaan = db.TBPenerimaanPOProduksiProduks.FirstOrDefault(item => item.IDPenerimaanPOProduksiProduk == IDPenerimaanPOProduksiProduk);

                    penerimaan.IDPenggunaTerima = penerimaan.IDPenggunaDatang;
                    penerimaan.TanggalTerima    = penerimaan.TanggalDatang;
                    penerimaan.TBPenerimaanPOProduksiProdukDetails = daftarDetail;
                    penerimaan.TotalDatang              = penerimaan.TBPenerimaanPOProduksiProdukDetails.Sum(item => item.Datang);
                    penerimaan.TotalDiterima            = penerimaan.TBPenerimaanPOProduksiProdukDetails.Sum(item => item.Diterima);
                    penerimaan.TotalTolakKeVendor       = penerimaan.TBPenerimaanPOProduksiProdukDetails.Sum(item => item.TolakKeVendor);
                    penerimaan.TotalSisa                = penerimaan.TBPenerimaanPOProduksiProdukDetails.Sum(item => item.Sisa);
                    penerimaan.SubtotalBiayaTambahan    = penerimaan.TBPenerimaanPOProduksiProdukDetails.Sum(item => item.BiayaTambahan * item.Diterima);
                    penerimaan.SubtotalTotalHPP         = penerimaan.TBPenerimaanPOProduksiProdukDetails.Sum(item => item.TotalHPP * item.Diterima);
                    penerimaan.SubtotalTotalHargaVendor = penerimaan.TBPenerimaanPOProduksiProdukDetails.Sum(item => item.TotalHargaVendor * item.Diterima);
                    penerimaan.Grandtotal               = penerimaan.SubtotalTotalHPP + penerimaan.SubtotalTotalHargaVendor;
                    penerimaan.EnumStatusPenerimaan     = (int)PilihanEnumStatusPenerimaanPO.Terima;
                    penerimaan.Keterangan               = TextBoxKeterangan.Text;

                    foreach (var item in penerimaan.TBPenerimaanPOProduksiProdukDetails)
                    {
                        var POProduksiProdukDetail = poProduksiProduk.TBPOProduksiProdukDetails.FirstOrDefault(data => data.IDKombinasiProduk == item.IDKombinasiProduk);
                        POProduksiProdukDetail.Sisa = item.Sisa;

                        TBStokProduk StokProduk = daftarStokProduk.FirstOrDefault(data => data.IDTempat == Pengguna.IDTempat && data.IDKombinasiProduk == item.IDKombinasiProduk);

                        StokProduk_Class.PengaturanJumlahStokPenerimaanPOProduk(penerimaan.TanggalTerima.Value, Pengguna.IDPengguna, Pengguna.IDTempat, StokProduk, item.TotalHargaVendor, item.Datang, item.TolakKeVendor, item.TBPenerimaanPOProduksiProduk.TBPOProduksiProduk.IDPOProduksiProduk + " - #" + item.TBPenerimaanPOProduksiProduk.IDPenerimaanPOProduksiProduk);
                    }

                    poProduksiProduk.TBPenerimaanPOProduksiProduks.Add(penerimaan);

                    #region arie - INPUT JURNAL
                    ////////////var KonfigurasiAkun = db.TBKonfigurasiAkuns.Where(item => item.IDTempat == 1);

                    ////////////if (KonfigurasiAkun != null)
                    ////////////{
                    ////////////    #region Pembuatan Jurnal Penerimaan PO YG Belum Bayar
                    ////////////    TBJurnal Jurnal = new TBJurnal
                    ////////////    {
                    ////////////        IDTempat = Pengguna.IDTempat,
                    ////////////        Tanggal = penerimaan.TanggalTerima,
                    ////////////        Keterangan = penerimaan.Keterangan,
                    ////////////        IDPengguna = penerimaan.IDPenggunaTerima,
                    ////////////        Referensi = penerimaan.IDPenerimaanPOProduksiProduk
                    ////////////    };

                    ////////////    #region JOURNAL ENTRY
                    ////////////    //DEBIT     : PERSEDIAAN
                    ////////////    //KREDIT    : HUTANG DAGANG

                    ////////////    //PERSEDIAAN
                    ////////////    Jurnal.TBJurnalDetails.Add(new TBJurnalDetail
                    ////////////    {
                    ////////////        IDAkun = KonfigurasiAkun.FirstOrDefault(item => item.Nama == "PERSEDIAAN").IDAkun,
                    ////////////        Debit = penerimaan.Grandtotal,
                    ////////////        Kredit = 0
                    ////////////    });

                    ////////////    //HUTANG DAGANG
                    ////////////    Jurnal.TBJurnalDetails.Add(new TBJurnalDetail
                    ////////////    {
                    ////////////        IDAkun = KonfigurasiAkun.FirstOrDefault(item => item.Nama == "HUTANG DAGANG").IDAkun,
                    ////////////        Debit = 0,
                    ////////////        Kredit = penerimaan.Grandtotal
                    ////////////    });
                    ////////////    #endregion

                    ////////////    db.TBJurnals.InsertOnSubmit(Jurnal);
                    ////////////    #endregion
                    ////////////}
                    #endregion

                    db.SubmitChanges();

                    statusBerhasil = true;
                }
                else
                {
                    peringatan.Visible = true;
                }
            }
        }
        catch (Exception ex)
        {
            if (statusBerhasil != true)
            {
                using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
                {
                    penerimaan = db.TBPenerimaanPOProduksiProduks.FirstOrDefault(item => item.IDPenerimaanPOProduksiProduk == IDPenerimaanPOProduksiProduk);
                    if (penerimaan != null)
                    {
                        db.TBPenerimaanPOProduksiProdukDetails.DeleteAllOnSubmit(penerimaan.TBPenerimaanPOProduksiProdukDetails);
                        db.TBPenerimaanPOProduksiProduks.DeleteOnSubmit(penerimaan);
                        db.SubmitChanges();

                        IDPenerimaanPOProduksiProduk = 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");
            }
        }
    }
示例#26
0
    protected void ButtonUpload_Click(object sender, EventArgs e)
    {
        string NamaFile    = Path.GetFileNameWithoutExtension(FileUploadTransferProduk.FileName);
        string ExtensiFile = Path.GetExtension(FileUploadTransferProduk.FileName);

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

        if (FileUploadTransferProduk.HasFile)
        {
            string Folder = Server.MapPath("~/Files/Transfer Produk/Penerimaan/");

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

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

            FileUploadTransferProduk.SaveAs(LokasiFile);

            EncryptDecrypt.Decrypt(LokasiFile, Output);

            string file = File.ReadAllText(Output);

            File.Delete(Output);

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

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

                Tempat_Class          ClassTempat           = new Tempat_Class(db);
                Produk_Class          ClassProduk           = new Produk_Class(db);
                KategoriProduk_Class  KategoriProduk_Class  = new KategoriProduk_Class();
                KombinasiProduk_Class KombinasiProduk_Class = new KombinasiProduk_Class();
                StokProduk_Class      StokProduk_Class      = new StokProduk_Class(db);

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

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

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

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

                //MASTER DATA
                foreach (var item in FileTransferProduk.TransferProdukDetails)
                {
                    #region PRODUK
                    var Produk = ClassProduk.Cari(item.Produk);

                    if (Produk == null)
                    {
                        Produk = ClassProduk.Tambah(item.Kategori, item.Warna, item.PemilikProduk, item.Produk);
                    }
                    else
                    {
                        Produk = ClassProduk.Ubah(Produk, item.Warna, item.PemilikProduk);
                    }
                    #endregion

                    #region KATEGORI
                    KategoriProduk_Class.KategoriProduk(db, Produk, item.Kategori);
                    #endregion

                    #region KOMBINASI PRODUK
                    var KombinasiProduk = KombinasiProduk_Class.Cari(db, item.KombinasiProduk);

                    if (KombinasiProduk == null)
                    {
                        AtributProduk_Class ClassAtributProduk = new AtributProduk_Class(db);

                        KombinasiProduk = KombinasiProduk_Class.Tambah(db, Produk, ClassAtributProduk.CariTambah("", item.Atribut), item.TanggalDaftar, item.TanggalUpdate, item.Kode, item.Berat, item.Keterangan);
                    }
                    else
                    {
                        KombinasiProduk = KombinasiProduk_Class.Ubah(db, TempatPenerima.IDTempat, KombinasiProduk, Produk, "", item.Atribut, item.Kode, item.Berat, item.Keterangan);
                    }
                    #endregion

                    #region STOK PRODUK
                    var StokProduk = StokProduk_Class.Cari(TempatPenerima.IDTempat, KombinasiProduk.IDKombinasiProduk);

                    if (StokProduk == null)
                    {
                        if (item.PersentaseKonsinyasi > 0)
                        {
                            StokProduk_Class.MembuatStokKonsinyasi(0, TempatPenerima.IDTempat, Pengguna.IDPengguna, KombinasiProduk, item.PersentaseKonsinyasi, item.HargaJual, "");
                        }
                        else
                        {
                            StokProduk_Class.MembuatStok(0, TempatPenerima.IDTempat, Pengguna.IDPengguna, KombinasiProduk, item.HargaBeli, item.HargaJual, "");
                        }
                    }
                    else
                    {
                        StokProduk.HargaBeli            = item.HargaBeli;
                        StokProduk.HargaJual            = item.HargaJual;
                        StokProduk.PersentaseKonsinyasi = item.PersentaseKonsinyasi;
                    }
                    #endregion

                    db.SubmitChanges();
                }

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

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

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

                if (PenggunaPengirim == null)
                {
                    //PENGGUNA PENGIRIM
                    PenggunaPengirim = new TBPengguna
                    {
                        IDGrupPengguna    = FileTransferProduk.FilePenggunaPengirim.IDGrupPengguna,
                        NamaLengkap       = FileTransferProduk.FilePenggunaPengirim.NamaLengkap,
                        Username          = FileTransferProduk.FilePenggunaPengirim.Username,
                        Password          = FileTransferProduk.FilePenggunaPengirim.Password,
                        PIN               = FileTransferProduk.FilePenggunaPengirim.PIN,
                        _IsActive         = FileTransferProduk.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 PRODUK
                TBTransferProduk TransferProduk = new TBTransferProduk
                {
                    IDTransferProduk = FileTransferProduk.IDTransferProduk,
                    //Nomor
                    TBPengguna = PenggunaPengirim,
                    //IDPenerima
                    TBTempat          = TempatPengirim,
                    IDTempatPenerima  = TempatPenerima.IDTempat,
                    TanggalDaftar     = FileTransferProduk.TanggalDaftar,
                    TanggalUpdate     = FileTransferProduk.TanggalUpdate,
                    EnumJenisTransfer = FileTransferProduk.EnumJenisTransfer,
                    TanggalKirim      = FileTransferProduk.TanggalKirim,
                    //TanggalTerima
                    TotalJumlah         = FileTransferProduk.TotalJumlah,
                    GrandTotalHargaBeli = FileTransferProduk.GrandTotalHargaBeli,
                    GrandTotalHargaJual = FileTransferProduk.GrandTotalHargaJual,
                    Keterangan          = FileTransferProduk.Keterangan
                };
                #endregion

                #region DETAIL TRANSFER PRODUK
                foreach (var item in FileTransferProduk.TransferProdukDetails)
                {
                    var KombinasiProduk = KombinasiProduk_Class.Cari(db, item.KombinasiProduk);

                    TransferProduk.TBTransferProdukDetails.Add(new TBTransferProdukDetail
                    {
                        //IDTransferProdukDetail
                        //IDTransferProduk
                        TBKombinasiProduk = KombinasiProduk,
                        HargaBeli         = item.HargaBeli,
                        HargaJual         = item.HargaJual,
                        Jumlah            = item.Jumlah
                                            //SubtotalHargaBeli
                                            //SubtotalHargaJual
                    });
                }
                #endregion

                db.TBTransferProduks.InsertOnSubmit(TransferProduk);
                db.SubmitChanges();

                if (TransferProduk.IDTempatPenerima == Pengguna.IDTempat)
                {
                    Response.Redirect("Pengaturan.aspx?id=" + TransferProduk.IDTransferProduk);
                }
                else
                {
                    Response.Redirect("Default.aspx");
                }
            }
        }
    }
示例#27
0
    private void LoadData()
    {
        using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
        {
            TextBoxTanggalAwal.Text  = ((DateTime)ViewState["TanggalAwal"]).ToString("d MMMM yyyy");
            TextBoxTanggalAkhir.Text = ((DateTime)ViewState["TanggalAkhir"]).ToString("d MMMM yyyy");

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

            if (DropDownListCariFilterBy.SelectedValue == "semua")
            {
                divSemua.Visible  = true;
                divFilter.Visible = false;
                #region FILTER
                Laporan_Class Laporan_Class = new Laporan_Class(db, (PenggunaLogin)Session["PenggunaLogin"], (DateTime)ViewState["TanggalAwal"], (DateTime)ViewState["TanggalAkhir"], false);

                var Result = Laporan_Class.TransaksiDetail(DropDownListCariTempat.SelectedValue.ToInt(), DropDownListCariStatusTransaksi.SelectedValue.ToInt(), null, 0, TextBoxCariKodeSemuaProduk.Text, DropDownListCariPemilikProdukSemuaProduk.SelectedValue.ToInt(), DropDownListCariProdukSemuaProduk.SelectedValue.ToInt(), DropDownListCariAtributProdukSemuaProduk.SelectedValue.ToInt(), DropDownListCariKategoriSemuaProduk.SelectedValue.ToInt(), true);

                #region KONFIGURASI LAPORAN
                LabelPeriode.Text = Laporan_Class.Periode;

                //LinkDownloadSemuaProduk.Visible = GenerateExcel;

                //if (LinkDownloadSemuaProduk.Visible)
                //    LinkDownloadSemuaProduk.HRef = Laporan_Class.LinkDownload;

                //ButtonPrintSemuaProduk.OnClientClick = "return popitup('PenjualanProdukPrint.aspx" + Laporan_Class.TempPencarian + "')";
                #endregion

                LabelJumlahProduk.Text    = Result["JumlahProduk"];
                LabelHargaPokok.Text      = Result["HargaPokok"];
                LabelHargaJual.Text       = Result["HargaJual"];
                LabelPotonganHarga.Text   = Result["PotonganHargaJual"];
                LabelSubtotal.Text        = Result["Subtotal"];
                LabelPenjualanBersih.Text = Result["PenjualanBersih"];

                RepeaterSemuaProduk.DataSource = Result["Data"];
                RepeaterSemuaProduk.DataBind();
                #endregion
            }
            else
            {
                divSemua.Visible  = false;
                divFilter.Visible = true;
                #region FILTER
                string _tempPencarian = string.Empty;

                _tempPencarian += "?TanggalAwal=" + DateTime.Parse(TextBoxTanggalAwal.Text).Date;
                _tempPencarian += "&TanggalAkhir=" + DateTime.Parse(TextBoxTanggalAkhir.Text).Date;

                _tempPencarian += "&IDTempat=" + DropDownListCariTempat.SelectedValue;
                _tempPencarian += "&IDStatusTransaksi=" + DropDownListCariStatusTransaksi.SelectedValue;
                _tempPencarian += "&Filter=" + DropDownListCariFilterBy.SelectedValue;

                var _hasilDetailTransaksi = db.TBTransaksiDetails.ToArray();

                if (DropDownListCariTempat.SelectedValue != "0")
                {
                    _hasilDetailTransaksi = _hasilDetailTransaksi.Where(item => item.TBTransaksi.IDTempat == DropDownListCariTempat.SelectedValue.ToInt()).ToArray();
                }

                if (DropDownListCariStatusTransaksi.SelectedValue != "0")
                {
                    _hasilDetailTransaksi = _hasilDetailTransaksi.Where(item => item.TBTransaksi.IDStatusTransaksi == DropDownListCariStatusTransaksi.SelectedValue.ToInt()).ToArray();
                }

                var _dataDatabase = _hasilDetailTransaksi.Where(item => item.TBTransaksi.TanggalOperasional.Value.Date >= DateTime.Parse(TextBoxTanggalAwal.Text).Date&& item.TBTransaksi.TanggalOperasional.Value.Date <= DateTime.Parse(TextBoxTanggalAkhir.Text).Date).ToArray();

                var _data = _dataDatabase.AsEnumerable().GroupBy(item => new
                {
                    item.TBKombinasiProduk
                })
                            .Select(item => new
                {
                    KodeKombinasiProduk = item.Key.TBKombinasiProduk.KodeKombinasiProduk,
                    PemilikProduk       = item.Key.TBKombinasiProduk.TBProduk.TBPemilikProduk.Nama,
                    Produk            = item.Key.TBKombinasiProduk.TBProduk.Nama,
                    AtributProduk     = item.Key.TBKombinasiProduk.TBAtributProduk.Nama,
                    IDPemilikProduk   = item.Key.TBKombinasiProduk.TBProduk.IDPemilikProduk,
                    IDProduk          = item.Key.TBKombinasiProduk.TBProduk.IDProduk,
                    IDAtributProduk   = item.Key.TBKombinasiProduk.IDAtributProduk,
                    RelasiKategori    = item.Key.TBKombinasiProduk.TBProduk.TBRelasiProdukKategoriProduks,
                    Kategori          = StokProduk_Class.GabungkanSemuaKategoriProduk(db, null, item.Key.TBKombinasiProduk),
                    JumlahProduk      = item.Sum(item2 => item2.Quantity),
                    HargaPokok        = item.Sum(item2 => item2.HargaBeli * item2.Quantity),
                    HargaJual         = item.Sum(item2 => item2.HargaJual * item2.Quantity),
                    PotonganHargaJual = item.Sum(item2 => item2.Discount * item2.Quantity),
                    Subtotal          = item.Sum(item2 => item2.Subtotal),
                    PenjualanBersih   = item.Sum(item2 => (item2.HargaJual - item2.Discount - item2.HargaBeli) * item2.Quantity),
                });

                if (DropDownListCariFilterBy.SelectedValue == "brand")
                {
                    var hasil = db.TBPemilikProduks.AsEnumerable().Where(item => _data.Any(data => data.IDPemilikProduk == item.IDPemilikProduk)).Select(item => new
                    {
                        Nama = item.Nama,
                        Body = _data.Where(data => data.IDPemilikProduk == item.IDPemilikProduk),
                        TotalJumlahProduk      = _data.Where(data => data.IDPemilikProduk == item.IDPemilikProduk).Sum(data => data.JumlahProduk),
                        TotalHargaPokok        = _data.Where(data => data.IDPemilikProduk == item.IDPemilikProduk).Sum(data => data.HargaPokok),
                        TotalHargaJual         = _data.Where(data => data.IDPemilikProduk == item.IDPemilikProduk).Sum(data => data.HargaJual),
                        TotalPotonganHargaJual = _data.Where(data => data.IDPemilikProduk == item.IDPemilikProduk).Sum(data => data.PotonganHargaJual),
                        TotalSubtotal          = _data.Where(data => data.IDPemilikProduk == item.IDPemilikProduk).Sum(data => data.Subtotal),
                        TotalPenjualanBersih   = _data.Where(data => data.IDPemilikProduk == item.IDPemilikProduk).Sum(data => data.PenjualanBersih),
                    }).ToArray();

                    RepeaterFilterBy.DataSource = hasil.OrderBy(item => item.Nama);
                    RepeaterFilterBy.DataBind();
                }
                else if (DropDownListCariFilterBy.SelectedValue == "produk")
                {
                    var hasil = db.TBProduks.AsEnumerable().Where(item => _data.Any(data => data.IDProduk == item.IDProduk)).Select(item => new
                    {
                        Nama = item.Nama,
                        Body = _data.Where(data => data.IDProduk == item.IDProduk),
                        TotalJumlahProduk      = _data.Where(data => data.IDProduk == item.IDProduk).Sum(data => data.JumlahProduk),
                        TotalHargaPokok        = _data.Where(data => data.IDProduk == item.IDProduk).Sum(data => data.HargaPokok),
                        TotalHargaJual         = _data.Where(data => data.IDProduk == item.IDProduk).Sum(data => data.HargaJual),
                        TotalPotonganHargaJual = _data.Where(data => data.IDProduk == item.IDProduk).Sum(data => data.PotonganHargaJual),
                        TotalSubtotal          = _data.Where(data => data.IDProduk == item.IDProduk).Sum(data => data.Subtotal),
                        TotalPenjualanBersih   = _data.Where(data => data.IDProduk == item.IDProduk).Sum(data => data.PenjualanBersih),
                    }).ToArray();

                    RepeaterFilterBy.DataSource = hasil.OrderBy(item => item.Nama);
                    RepeaterFilterBy.DataBind();
                }
                else if (DropDownListCariFilterBy.SelectedValue == "varian")
                {
                    var hasil = db.TBAtributProduks.AsEnumerable().Where(item => _data.Any(data => data.IDAtributProduk == item.IDAtributProduk)).Select(item => new
                    {
                        Nama = item.Nama,
                        Body = _data.Where(data => data.IDAtributProduk == item.IDAtributProduk),
                        TotalJumlahProduk      = _data.Where(data => data.IDAtributProduk == item.IDAtributProduk).Sum(data => data.JumlahProduk),
                        TotalHargaPokok        = _data.Where(data => data.IDAtributProduk == item.IDAtributProduk).Sum(data => data.HargaPokok),
                        TotalHargaJual         = _data.Where(data => data.IDAtributProduk == item.IDAtributProduk).Sum(data => data.HargaJual),
                        TotalPotonganHargaJual = _data.Where(data => data.IDAtributProduk == item.IDAtributProduk).Sum(data => data.PotonganHargaJual),
                        TotalSubtotal          = _data.Where(data => data.IDAtributProduk == item.IDAtributProduk).Sum(data => data.Subtotal),
                        TotalPenjualanBersih   = _data.Where(data => data.IDAtributProduk == item.IDAtributProduk).Sum(data => data.PenjualanBersih),
                    }).ToArray();

                    RepeaterFilterBy.DataSource = hasil.OrderBy(item => item.Nama);
                    RepeaterFilterBy.DataBind();
                }
                else if (DropDownListCariFilterBy.SelectedValue == "kategori")
                {
                    var hasil = db.TBKategoriProduks.AsEnumerable().Where(item => _data.Any(data => data.RelasiKategori.FirstOrDefault(relasi => relasi.IDKategoriProduk == item.IDKategoriProduk) != null)).Select(item => new
                    {
                        Nama = item.Nama,
                        Body = _data.Where(data => data.RelasiKategori.FirstOrDefault(relasi => relasi.IDKategoriProduk == item.IDKategoriProduk) != null),
                        TotalJumlahProduk      = _data.Where(data => data.RelasiKategori.FirstOrDefault(relasi => relasi.IDKategoriProduk == item.IDKategoriProduk) != null).Sum(data => data.JumlahProduk),
                        TotalHargaPokok        = _data.Where(data => data.RelasiKategori.FirstOrDefault(relasi => relasi.IDKategoriProduk == item.IDKategoriProduk) != null).Sum(data => data.HargaPokok),
                        TotalHargaJual         = _data.Where(data => data.RelasiKategori.FirstOrDefault(relasi => relasi.IDKategoriProduk == item.IDKategoriProduk) != null).Sum(data => data.HargaJual),
                        TotalPotonganHargaJual = _data.Where(data => data.RelasiKategori.FirstOrDefault(relasi => relasi.IDKategoriProduk == item.IDKategoriProduk) != null).Sum(data => data.PotonganHargaJual),
                        TotalSubtotal          = _data.Where(data => data.RelasiKategori.FirstOrDefault(relasi => relasi.IDKategoriProduk == item.IDKategoriProduk) != null).Sum(data => data.Subtotal),
                        TotalPenjualanBersih   = _data.Where(data => data.RelasiKategori.FirstOrDefault(relasi => relasi.IDKategoriProduk == item.IDKategoriProduk) != null).Sum(data => data.PenjualanBersih),
                    }).ToArray();

                    RepeaterFilterBy.DataSource = hasil.OrderBy(item => item.Nama);
                    RepeaterFilterBy.DataBind();
                }
                #endregion
            }
        }
    }
示例#28
0
    protected void ButtonSimpan_Click(object sender, EventArgs e)
    {
        try
        {
            //STATUS STOK KURANG ATAU TIDAK
            bool StokKurang = false;

            int    TotalTransfer  = 0;
            string PesanTransaksi = "";

            //MENAMPILKAN MESSAGE
            LiteralWarning.Text = "";

            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                PenggunaLogin    Pengguna         = (PenggunaLogin)Session["PenggunaLogin"];
                StokProduk_Class StokProduk_Class = new StokProduk_Class(db);
                Transaksi_Model  Transaksi;

                //CLASS TRANSAKSI
                if (string.IsNullOrWhiteSpace(LabelIDTransaksi.Text))
                {
                    //MEMBUAT TRANSAKSI BARU
                    Transaksi = new Transaksi_Model(Pengguna.IDPengguna, Pengguna.IDTempat, DateTime.Now);

                    //3 : WHOLESALE
                    Transaksi.IDJenisTransaksi = 3;
                }
                else
                {
                    Transaksi = new Transaksi_Model(LabelIDTransaksi.Text, Pengguna.IDPengguna);
                }

                foreach (RepeaterItem item in RepeaterStokKombinasiProduk.Items)
                {
                    Label        LabelIDKombinasiProduk = (Label)item.FindControl("LabelIDKombinasiProduk");
                    Label        LabelJumlah            = (Label)item.FindControl("LabelJumlah");
                    TextBox      TextBoxJumlahTransaksi = (TextBox)item.FindControl("TextBoxJumlahTransaksi");
                    HtmlTableRow PanelStok       = (HtmlTableRow)item.FindControl("PanelStok");
                    int          JumlahTransaksi = (int)Pengaturan.FormatAngkaInput(TextBoxJumlahTransaksi);

                    if (JumlahTransaksi > 0)
                    {
                        //JIKA JUMLAH TRANSAKSI VALID TIDAK NULL DAN TIDAK 0

                        //PENCARIAN STOK PRODUK
                        var StokProduk = StokProduk_Class.Cari(Pengguna.IDTempat, LabelIDKombinasiProduk.Text.ToInt());

                        if (JumlahTransaksi <= StokProduk.Jumlah)
                        {
                            //JIKA JUMLAH YANG AKAN DI TRANSAKSI LEBIH KECIL ATAU SAMA DENGAN JUMLAH STOK

                            //APAKAH SUDAH ADA DI DETAIL
                            var TransaksiDetail = Transaksi.Detail.FirstOrDefault(item2 => item2.IDKombinasiProduk == LabelIDKombinasiProduk.Text.ToInt());

                            if (TransaksiDetail == null)
                            {
                                Transaksi.TambahDetailTransaksi(LabelIDKombinasiProduk.Text.ToInt(), JumlahTransaksi);
                            }
                            else
                            {
                                Transaksi.TambahKurangJumlahProduk(TransaksiDetail.IDDetailTransaksi, JumlahTransaksi);
                            }

                            //MENGKOSONGKAN TEXTBOX - LABEL JUMLAH DIISI DENGAN JUMLAH STOK TERBARU
                            TextBoxJumlahTransaksi.Text = "";
                            PanelStok.Attributes.Add("class", "");
                            LabelJumlah.Text          = Pengaturan.FormatHarga(Pengaturan.FormatAngkaInput(LabelJumlah.Text) - JumlahTransaksi);
                            LabelTotalJumlahStok.Text = Pengaturan.FormatHarga(Pengaturan.FormatAngkaInput(LabelTotalJumlahStok.Text) - JumlahTransaksi);

                            //MESSAGE TRANSFER YANG BERHASIL
                            TotalTransfer  += JumlahTransaksi;
                            PesanTransaksi += "<br/>" + Pengaturan.FormatHarga(JumlahTransaksi) + " - " + StokProduk.TBKombinasiProduk.Nama;
                        }
                        else
                        {
                            //REFRESH LABEL JUMLAH STOK
                            LabelTotalJumlahStok.Text = Pengaturan.FormatHarga(Pengaturan.FormatAngkaInput(LabelTotalJumlahStok.Text) - (Pengaturan.FormatAngkaInput(LabelJumlah.Text) - StokProduk.Jumlah));
                            LabelJumlah.Text          = Pengaturan.FormatHarga(StokProduk.Jumlah);
                            PanelStok.Attributes.Add("class", "danger");

                            StokKurang = true;
                        }
                    }

                    //HANDLE POSTBACK FORMAT HARGA
                    TextBoxJumlahTransaksi.Text = Pengaturan.FormatAngkaInput(TextBoxJumlahTransaksi.Text) == 0 ? "" : Pengaturan.FormatAngkaInput(TextBoxJumlahTransaksi.Text).ToString();
                }

                if (TotalTransfer > 0)
                {
                    LabelIDTransaksi.Text = Transaksi.ConfirmTransaksi(db);
                    db.SubmitChanges();
                }
            }

            if (TotalTransfer > 0)
            {
                PesanTransaksi      += "<br/><h5><b>Total : " + TotalTransfer + "</b></h5>";
                LiteralWarning.Text += Alert_Class.Pesan(TipeAlert.Success, "Produk berhasil disimpan" + PesanTransaksi);
            }

            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);
        }
    }
示例#29
0
    private void LoadDataStokProduk()
    {
        PenggunaLogin Pengguna = (PenggunaLogin)Session["PenggunaLogin"];

        using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
        {
            var DataStokProduk = db.TBStokProduks
                                 .Where(item =>
                                        item.TBKombinasiProduk.TBProduk._IsActive &&
                                        item.IDTempat == Pengguna.IDTempat)
                                 .Select(item => new
            {
                IDStokProduk      = item.IDStokProduk,
                IDKombinasiProduk = item.IDKombinasiProduk,
                Kode = item.TBKombinasiProduk.KodeKombinasiProduk,

                RelasiKategoriProduk = item.TBKombinasiProduk.TBProduk.TBRelasiProdukKategoriProduks,
                Kategori             = StokProduk_Class.GabungkanSemuaKategoriProduk(db, item, null),

                IDPemilikProduk = item.TBKombinasiProduk.TBProduk.IDPemilikProduk,
                PemilikProduk   = item.TBKombinasiProduk.TBProduk.TBPemilikProduk.Nama,

                IDAtributProduk = item.TBKombinasiProduk.IDAtributProduk,
                AtributProduk   = item.TBKombinasiProduk.TBAtributProduk.Nama,

                IDProduk = item.TBKombinasiProduk.IDProduk,
                Produk   = item.TBKombinasiProduk.TBProduk.Nama,

                Jumlah = item.Jumlah,

                HargaBeli = item.HargaBeli,
                HargaJual = item.HargaJual
            }).ToArray();

            if (DropDownListJenisStok.SelectedValue == "1")
            {
                DataStokProduk = DataStokProduk.Where(item => item.Jumlah > 0).ToArray();
            }
            else if (DropDownListJenisStok.SelectedValue == "2")
            {
                DataStokProduk = DataStokProduk.Where(item => item.Jumlah == 0).ToArray();
            }
            else if (DropDownListJenisStok.SelectedValue == "3")
            {
                DataStokProduk = DataStokProduk.Where(item => item.Jumlah < 0).ToArray();
            }

            if (!string.IsNullOrWhiteSpace(TextBoxCariKode.Text))
            {
                DataStokProduk = DataStokProduk.Where(item => item.Kode.ToLower().Contains(TextBoxCariKode.Text.ToLower())).ToArray();
                TextBoxCariKode.Focus();
            }

            if (!string.IsNullOrWhiteSpace(TextBoxCariProduk.Text))
            {
                DataStokProduk = DataStokProduk.Where(item => item.Produk.ToLower().Contains(TextBoxCariProduk.Text.ToLower())).ToArray();
                TextBoxCariProduk.Focus();
            }

            if (DropDownListCariKategori.SelectedValue != "0")
            {
                DataStokProduk = DataStokProduk.Where(item => item.Kategori == DropDownListCariKategori.SelectedItem.Text).ToArray();
                DropDownListCariKategori.Focus();
            }

            if (DropDownListCariPemilik.SelectedValue != "0")
            {
                DataStokProduk = DataStokProduk.Where(item => item.PemilikProduk == DropDownListCariPemilik.SelectedItem.Text).ToArray();
                DropDownListCariPemilik.Focus();
            }

            RepeaterStokKombinasiProduk.DataSource = DataStokProduk;
            RepeaterStokKombinasiProduk.DataBind();

            if (DataStokProduk.Count() > 0)
            {
                LabelTotalJumlahStok.Text = Pengaturan.FormatHarga(DataStokProduk.Sum(item => item.Jumlah));
            }
            else
            {
                LabelTotalJumlahStok.Text = "0";
            }
        }
    }
示例#30
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                #region Default
                AtributProduk_Class  ClassAtributProduk   = new AtributProduk_Class(db);
                KategoriProduk_Class KategoriProduk_Class = new KategoriProduk_Class();
                PemilikProduk_Class  ClassPemilikProduk   = new PemilikProduk_Class(db);

                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"
                });

                DropDownListCariAtributProduk.Items.AddRange(ClassAtributProduk.Dropdownlist());
                DropDownListCariKategori.Items.AddRange(KategoriProduk_Class.Dropdownlist(db));
                DropDownListCariPemilik.Items.AddRange(ClassPemilikProduk.Dropdownlist());
                #endregion

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

                ////MENAMPILKAN MESSAGE
                LiteralWarning.Text = "";

                var DataTransaksi = db.TBTransaksis.FirstOrDefault(item => item.IDTransaksi == Request.QueryString["id"]);

                if (DataTransaksi != null)
                {
                    //DATA TRANSAKSI DITEMUKAN
                    if (DataTransaksi.IDStatusTransaksi == (int)EnumStatusTransaksi.Complete || DataTransaksi.IDStatusTransaksi == (int)EnumStatusTransaksi.Canceled)
                    {
                        //TRANSAKSI COMPLETE ATAU CANCELED COPY KE TRANSAKSI BARU
                        var Transaksi = new Transaksi_Model(Pengguna.IDPengguna, Pengguna.IDTempat, DateTime.Now);

                        Transaksi.IDJenisTransaksi = (int)EnumJenisTransaksi.Wholesale; //WHOLESALE

                        Dictionary <int, int> ListStokProdukHabis = new Dictionary <int, int>();
                        StokProduk_Class      StokProduk_Class    = new StokProduk_Class(db);
                        int    TotalTransfer  = 0;
                        string PesanTransaksi = "";

                        //COPY DETAIL TRANSAKSI LAMA KE DETAIL TRANSAKSI BARU
                        foreach (var item in DataTransaksi.TBTransaksiDetails.ToArray())
                        {
                            //PENCARIAN STOK PRODUK
                            var StokProduk = StokProduk_Class.Cari(Pengguna.IDTempat, item.IDKombinasiProduk);

                            if (item.Quantity <= StokProduk.Jumlah)
                            {
                                //JIKA JUMLAH YANG AKAN DI TRANSAKSI LEBIH KECIL ATAU SAMA DENGAN JUMLAH STOK

                                Transaksi.TambahDetailTransaksi(item.IDKombinasiProduk, item.Quantity);

                                //MESSAGE TRANSFER YANG BERHASIL
                                TotalTransfer  += item.Quantity;
                                PesanTransaksi += "<br/>" + Pengaturan.FormatHarga(item.Quantity) + " - " + item.TBKombinasiProduk.Nama;
                            }
                            else //MENCATAT STOK PRODUK YANG HABIS
                            {
                                ListStokProdukHabis.Add(StokProduk.IDKombinasiProduk, item.Quantity);
                            }
                        }

                        if (TotalTransfer > 0)
                        {
                            Transaksi.Keterangan = "Referensi Transaksi #" + DataTransaksi.IDTransaksi + " - " + DataTransaksi.Keterangan;

                            LabelIDTransaksi.Text = Transaksi.ConfirmTransaksi(db);
                            db.SubmitChanges();

                            LoadDataTransaksiDetail();

                            PesanTransaksi      += "<br/><h5><b>Total : " + TotalTransfer + "</b></h5>";
                            LiteralWarning.Text += Alert_Class.Pesan(TipeAlert.Success, "Produk berhasil disimpan" + PesanTransaksi);
                        }

                        if (ListStokProdukHabis.Count > 0)
                        {
                            DropDownListJenisStok.SelectedValue = "2";

                            #region MENAMPILKAN STOK APA SAJA YANG HABIS
                            var DataStokProduk = db.TBStokProduks
                                                 .AsEnumerable()
                                                 .Where(item =>
                                                        item.IDTempat == Pengguna.IDTempat &&
                                                        ListStokProdukHabis.ContainsKey(item.IDKombinasiProduk))
                                                 .Select(item => new
                            {
                                IDStokProduk      = item.IDStokProduk,
                                IDKombinasiProduk = item.IDKombinasiProduk,
                                Kode = item.TBKombinasiProduk.KodeKombinasiProduk,

                                RelasiKategoriProduk = item.TBKombinasiProduk.TBProduk.TBRelasiProdukKategoriProduks,
                                Kategori             = StokProduk_Class.GabungkanSemuaKategoriProduk(db, item, null),

                                IDPemilikProduk = item.TBKombinasiProduk.TBProduk.IDPemilikProduk,
                                PemilikProduk   = item.TBKombinasiProduk.TBProduk.TBPemilikProduk.Nama,

                                IDAtributProduk = item.TBKombinasiProduk.IDAtributProduk,
                                AtributProduk   = item.TBKombinasiProduk.TBAtributProduk.Nama,

                                IDProduk = item.TBKombinasiProduk.IDProduk,
                                Produk   = item.TBKombinasiProduk.TBProduk.Nama,

                                Jumlah = item.Jumlah,

                                HargaBeli = item.HargaBeli,
                                HargaJual = item.HargaJual
                            }).ToArray();

                            RepeaterStokKombinasiProduk.DataSource = DataStokProduk;
                            RepeaterStokKombinasiProduk.DataBind();

                            if (DataStokProduk.Count() > 0)
                            {
                                LabelTotalJumlahStok.Text = Pengaturan.FormatHarga(DataStokProduk.Sum(item => item.Jumlah));
                            }
                            else
                            {
                                LabelTotalJumlahStok.Text = "0";
                            }
                            #endregion

                            #region MENGISI TEXTBOX DENGAN JUMLAH PERMINTAAN
                            foreach (RepeaterItem item in RepeaterStokKombinasiProduk.Items)
                            {
                                Label        LabelIDKombinasiProduk = (Label)item.FindControl("LabelIDKombinasiProduk");
                                TextBox      TextBoxJumlahTransaksi = (TextBox)item.FindControl("TextBoxJumlahTransaksi");
                                HtmlTableRow PanelStok = (HtmlTableRow)item.FindControl("PanelStok");

                                if (ListStokProdukHabis.ContainsKey(LabelIDKombinasiProduk.Text.ToInt()))
                                {
                                    TextBoxJumlahTransaksi.Text = Pengaturan.FormatHarga(ListStokProdukHabis[LabelIDKombinasiProduk.Text.ToInt()]);
                                    PanelStok.Attributes.Add("class", "danger");
                                }
                            }
                            #endregion

                            LiteralWarning.Text += Alert_Class.Pesan(TipeAlert.Danger, "Stok tidak cukup, silahkan cek kembali");
                            MultiViewTransaksi.ActiveViewIndex = 0;
                        }
                        else
                        {
                            //JIKA STOK PRODUK TIDAK HABIS
                            LoadDataStokProduk();
                            MultiViewTransaksi.ActiveViewIndex = 1;
                        }
                    }
                    else
                    {
                        //STATUS TRANSAKSI SELAIN COMPLETE DAN CANCELED
                        LabelIDTransaksi.Text = DataTransaksi.IDTransaksi;
                        LoadDataTransaksiDetail();
                        MultiViewTransaksi.ActiveViewIndex = 1;
                    }
                }
                else
                {
                    //TRANSAKSI TIDAK DITEMUKAN
                    MultiViewTransaksi.ActiveViewIndex = 0;
                    LoadDataStokProduk();
                }
            }
        }
        else
        {
            LiteralWarning.Text = "";
        }
    }