示例#1
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();
    }
示例#2
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;
        }
    }
示例#3
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();
    }
示例#4
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");
                }
            }
        }
    }
示例#5
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);
        }
    }
示例#6
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");
            }
        }
    }
示例#7
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");
                }
            }
        }
    }
示例#8
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);
        }
    }
示例#9
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 = "";
        }
    }
示例#10
0
    protected void ButtonSimpan_Click(object sender, EventArgs e)
    {
        try
        {
            if (DropDownListTempatPenerima.Items.Count == 0)
            {
                LiteralWarning.Text = Alert_Class.Pesan(TipeAlert.Danger, "Anda harus membuat lokasi tujuan transfer. <a href='/WITAdministrator/Store/Tempat/Pengaturan.aspx'>Buat lokasi baru</a>");
                return;
            }

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

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

                if (string.IsNullOrWhiteSpace(LabelIDTransferProduk.Text))
                {
                    #region MEMBUAT TRANSFER PRODUK BARU
                    TransferProduk_Class TransferProduk = new TransferProduk_Class();
                    DataTransferProduk = TransferProduk.Tambah(db, Pengguna.IDPengguna, DropDownListTempatPengirim.SelectedValue.ToInt(), DropDownListTempatPenerima.SelectedValue.ToInt(), TextBoxKeterangan.Text);

                    LabelIDTransferProduk.Text = DataTransferProduk.IDTransferProduk;
                    #endregion
                }
                else
                {
                    DataTransferProduk = db.TBTransferProduks.FirstOrDefault(item2 => item2.IDTransferProduk == LabelIDTransferProduk.Text);
                }

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

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

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

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

                            //PENGECEKAN APAKAH SUDAH ADA DI DETAIL
                            var TransferProdukDetail = DataTransferProduk.TBTransferProdukDetails
                                                       .FirstOrDefault(item2 => item2.IDKombinasiProduk == StokProduk.IDKombinasiProduk);

                            if (TransferProdukDetail == null) //DETAIL TRANSFER PRODUK TIDAK DITEMUKAN MEMBUAT BARU
                            {
                                DataTransferProduk.TBTransferProdukDetails.Add(new TBTransferProdukDetail
                                {
                                    IDKombinasiProduk = StokProduk.IDKombinasiProduk,
                                    HargaBeli         = StokProduk.HargaBeli.Value,
                                    HargaJual         = StokProduk.HargaJual.Value,
                                    Jumlah            = JumlahTransfer
                                });
                            }
                            else //JIKA SUDAH TERDAPAT DI DETAIL HANYA MENAMBAHKAN QTY
                            {
                                TransferProdukDetail.Jumlah += JumlahTransfer;
                            }

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

                            TransferBerhasil += "<br/>" + JumlahTransfer.ToFormatHargaBulat() + " - " + StokProduk.TBKombinasiProduk.Nama; //MESSAGE TRANSFER YANG BERHASIL
                        }
                        else
                        {
                            //REFRESH LABEL JUMLAH STOK
                            LabelTotalJumlahStok.Text = (LabelTotalJumlahStok.Text.ToDecimal().ToInt() - (LabelJumlah.Text.ToDecimal().ToInt() - StokProduk.Jumlah.Value)).ToFormatHargaBulat();
                            LabelJumlah.Text          = StokProduk.Jumlah.ToFormatHargaBulat();
                            panelStok.Attributes.Add("class", "danger");

                            StokKurang = true;
                        }
                    }

                    //HANDLE POSTBACK FORMAT HARGA
                    TextBoxJumlahTransfer.Text = TextBoxJumlahTransfer.Text.ToDecimal().ToInt() == 0 ? "" : TextBoxJumlahTransfer.Text.ToDecimal().ToInt().ToString();
                }

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

                db.SubmitChanges();
            }

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

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

            if (StokKurang)
            {
                LiteralWarning.Text += Alert_Class.Pesan(TipeAlert.Danger, "Stok tidak cukup, silahkan cek kembali");
            }
        }
        catch (Exception ex)
        {
            LiteralWarning.Text = Alert_Class.Pesan(TipeAlert.Danger, ex.Message);
            LogError_Class LogError = new LogError_Class(ex, Request.Url.PathAndQuery);
        }
    }
示例#11
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 = "";
        }
    }