예제 #1
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");
                }
            }
        }
    }