コード例 #1
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 = "";
        }
    }
コード例 #2
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";
            }
        }
    }
コード例 #3
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            PenggunaLogin Pengguna = (PenggunaLogin)Session["PenggunaLogin"];

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

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

                DropDownListCariAtributProduk.DataSource     = ClassAtributProduk.Data();
                DropDownListCariAtributProduk.DataTextField  = "Nama";
                DropDownListCariAtributProduk.DataValueField = "IDAtributProduk";
                DropDownListCariAtributProduk.DataBind();
                DropDownListCariAtributProduk.Items.Insert(0, new ListItem {
                    Value = "0", Text = "- Semua -"
                });

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

                var ListTempat = ClassTempat.Data();

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

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

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

                var DataTransferProduk = db.TBTransferProduks
                                         .FirstOrDefault(item => item.IDTransferProduk == Request.QueryString["id"]);

                if (DataTransferProduk != null)
                {
                    //DATA TRANSFER PRODUK DITEMUKAN

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

                        #region MEMBUAT TRANSFER PRODUK BARU
                        TransferProduk_Class TransferProduk = new TransferProduk_Class();
                        var TransferProdukBaru = TransferProduk.Tambah(db, Pengguna.IDPengguna, DropDownListTempatPengirim.SelectedValue.ToInt(), DropDownListTempatPenerima.SelectedValue.ToInt(), TextBoxKeterangan.Text);

                        LabelIDTransferProduk.Text = TransferProdukBaru.IDTransferProduk;
                        #endregion

                        Dictionary <int, int> ListStokProdukHabis = new Dictionary <int, int>();
                        StokProduk_Class      StokProduk_Class    = new StokProduk_Class(db);

                        //COPY DETAIL TRANSFER LAMA KE DETAIL TRANSFER BARU
                        foreach (var item in DataTransferProduk.TBTransferProdukDetails.ToArray())
                        {
                            //PENCARIAN STOK PRODUK
                            var StokProduk = StokProduk_Class.Cari(DropDownListTempatPengirim.SelectedValue.ToInt(), item.IDKombinasiProduk);

                            if (item.Jumlah <= StokProduk.Jumlah)
                            {
                                //JIKA JUMLAH PERMINTAAN LEBIH KECIL ATAU SAMA DENGAN JUMLAH STOK
                                StokProduk_Class.BertambahBerkurang(DropDownListTempatPengirim.SelectedValue.ToInt(), Pengguna.IDPengguna, StokProduk, item.Jumlah, StokProduk.HargaBeli.Value, StokProduk.HargaJual.Value, EnumJenisPerpindahanStok.TransferStokKeluar, "Transfer #" + LabelIDTransferProduk.Text);

                                //MENAMBAHKAN DI DETAIL TRANSFER
                                TransferProdukBaru.TBTransferProdukDetails.Add(new TBTransferProdukDetail
                                {
                                    //IDTRANSFERPRODUKDETAIL
                                    //IDTRANSFERPRODUK
                                    IDKombinasiProduk = item.IDKombinasiProduk,
                                    HargaBeli         = StokProduk.HargaBeli.Value,
                                    HargaJual         = StokProduk.HargaJual.Value,
                                    Jumlah            = item.Jumlah
                                                        //SUBTOTALHARGABELI
                                                        //SUBTOTALHARGAJUAL
                                });
                            }
                            else //MENCATAT STOK PRODUK YANG HABIS
                            {
                                ListStokProdukHabis.Add(StokProduk.IDKombinasiProduk, item.Jumlah);
                            }
                        }

                        //UPDATE DATA TRANSFERPRODUK
                        TransferProdukBaru.TanggalUpdate       = DateTime.Now;
                        TransferProdukBaru.TotalJumlah         = TransferProdukBaru.TBTransferProdukDetails.Sum(item2 => item2.Jumlah);
                        TransferProdukBaru.GrandTotalHargaBeli = TransferProdukBaru.TBTransferProdukDetails.Sum(item2 => item2.Jumlah * item2.HargaBeli);
                        TransferProdukBaru.GrandTotalHargaJual = TransferProdukBaru.TBTransferProdukDetails.Sum(item2 => item2.Jumlah * item2.HargaJual);

                        db.SubmitChanges();

                        LoadDataTransferProduk();

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

                        if (ListStokProdukHabis.Count > 0)
                        {
                            #region LIST STOK HABIS ADA MAKA 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,
                                Kode         = item.TBKombinasiProduk.KodeKombinasiProduk,

                                IDAtribut = item.TBKombinasiProduk.IDAtributProduk,
                                Atribut   = item.TBKombinasiProduk.TBAtributProduk.Nama,

                                IDKategori = item.TBKombinasiProduk.TBProduk.TBRelasiProdukKategoriProduks.Count > 0 ? item.TBKombinasiProduk.TBProduk.TBRelasiProdukKategoriProduks.FirstOrDefault().IDKategoriProduk : 0,
                                Kategori   = item.TBKombinasiProduk.TBProduk.TBRelasiProdukKategoriProduks.Count > 0 ? item.TBKombinasiProduk.TBProduk.TBRelasiProdukKategoriProduks.FirstOrDefault().TBKategoriProduk.Nama : "",

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

                                IDWarna = item.TBKombinasiProduk.TBProduk.IDWarna,
                                Warna   = item.TBKombinasiProduk.TBProduk.TBWarna.Nama,

                                IDKombinasiProduk = item.IDKombinasiProduk,
                                KombinasiProduk   = item.TBKombinasiProduk.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 = DataStokProduk.Sum(item => item.Jumlah).ToFormatHargaBulat();
                            }
                            else
                            {
                                LabelTotalJumlahStok.Text = "0";
                            }
                            #endregion

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

                                if (ListStokProdukHabis.ContainsKey(LabelIDKombinasiProduk.Text.ToInt()))
                                {
                                    TextBoxJumlahTransfer.Text = ListStokProdukHabis[LabelIDKombinasiProduk.Text.ToInt()].ToFormatHargaBulat();
                                    panelStok.Attributes.Add("class", "danger");
                                }
                            }
                            #endregion

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

                            MultiViewTransferProduk.ActiveViewIndex = 0;
                        }
                        else
                        {
                            //JIKA STOK PRODUK TIDAK HABIS
                            LoadDataStokProduk();
                            MultiViewTransferProduk.ActiveViewIndex = 1;
                        }
                    }
                    else
                    {
                        //TRANSFER PRODUK : PENDING
                        LabelIDTransferProduk.Text = DataTransferProduk.IDTransferProduk;
                        LoadDataTransferProduk();
                        MultiViewTransferProduk.ActiveViewIndex = 1;
                    }
                }
                else
                {
                    //TRANSFER PRODUK TIDAK DITEMUKAN MEMBUAT TRANSFER BARU
                    MultiViewTransferProduk.ActiveViewIndex = 0;
                    LoadDataStokProduk();
                }
            }
        }
        else
        {
            LiteralWarning.Text = "";
        }
    }