Ejemplo n.º 1
0
    protected void RepeaterTransferBahanBaku_ItemCommand(object source, RepeaterCommandEventArgs e)
    {
        if (e.CommandName == "Hapus")
        {
            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                PenggunaLogin       Pengguna          = (PenggunaLogin)Session["PenggunaLogin"];
                TBTransferBahanBaku transferBahanBaku = db.TBTransferBahanBakus.FirstOrDefault(item => item.IDTransferBahanBaku == LabelIDTransferBahanBaku.Text);

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

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

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

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

                    //UPDATE DATA TRANSFER BAHAN BAKU


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

                    LoadDataTransferBahanBaku();
                }
            }
        }
    }
Ejemplo n.º 2
0
    public void GenerateFile(TBTransferBahanBaku TransferBahanBaku)
    {
        //MEMBUAT FILE TRANSFER PRODUK
        FileTransferBahanBaku FileTransferBahanBaku = new FileTransferBahanBaku
        {
            IDTransferBahanBaku = TransferBahanBaku.IDTransferBahanBaku,
            EnumJenisTransfer   = TransferBahanBaku.EnumJenisTransfer,
            TanggalDaftar       = TransferBahanBaku.TanggalDaftar,
            TanggalKirim        = TransferBahanBaku.TanggalKirim,
            TanggalTerima       = TransferBahanBaku.TanggalTerima,
            TanggalUpdate       = TransferBahanBaku.TanggalUpdate,
            Keterangan          = TransferBahanBaku.Keterangan,

            FileTempatPengirim = new FileTempat
            {
                Alamat                   = TransferBahanBaku.TBTempat.Alamat,
                BiayaTambahan1           = TransferBahanBaku.TBTempat.BiayaTambahan1,
                BiayaTambahan2           = TransferBahanBaku.TBTempat.BiayaTambahan2,
                BiayaTambahan3           = TransferBahanBaku.TBTempat.BiayaTambahan3,
                BiayaTambahan4           = TransferBahanBaku.TBTempat.BiayaTambahan4,
                Email                    = TransferBahanBaku.TBTempat.Email,
                EnumBiayaTambahan1       = TransferBahanBaku.TBTempat.EnumBiayaTambahan1,
                EnumBiayaTambahan2       = TransferBahanBaku.TBTempat.EnumBiayaTambahan2,
                EnumBiayaTambahan3       = TransferBahanBaku.TBTempat.EnumBiayaTambahan3,
                EnumBiayaTambahan4       = TransferBahanBaku.TBTempat.EnumBiayaTambahan4,
                FooterPrint              = TransferBahanBaku.TBTempat.FooterPrint,
                IDKategoriTempat         = TransferBahanBaku.TBTempat.IDKategoriTempat,
                IDStore                  = TransferBahanBaku.TBTempat.IDStore,
                IDWMS                    = TransferBahanBaku.TBTempat._IDWMS,
                KeteranganBiayaTambahan1 = TransferBahanBaku.TBTempat.KeteranganBiayaTambahan1,
                KeteranganBiayaTambahan2 = TransferBahanBaku.TBTempat.KeteranganBiayaTambahan2,
                KeteranganBiayaTambahan3 = TransferBahanBaku.TBTempat.KeteranganBiayaTambahan3,
                KeteranganBiayaTambahan4 = TransferBahanBaku.TBTempat.KeteranganBiayaTambahan4,
                Kode          = TransferBahanBaku.TBTempat.Kode,
                Latitude      = TransferBahanBaku.TBTempat.Latitude,
                Longitude     = TransferBahanBaku.TBTempat.Longitude,
                Nama          = TransferBahanBaku.TBTempat.Nama,
                TanggalDaftar = TransferBahanBaku.TBTempat._TanggalInsert,
                TanggalUpdate = TransferBahanBaku.TBTempat._TanggalUpdate,
                Telepon1      = TransferBahanBaku.TBTempat.Telepon1,
                Telepon2      = TransferBahanBaku.TBTempat.Telepon2
            },

            FileTempatPenerima = new FileTempat
            {
                Alamat                   = TransferBahanBaku.TBTempat1.Alamat,
                BiayaTambahan1           = TransferBahanBaku.TBTempat1.BiayaTambahan1,
                BiayaTambahan2           = TransferBahanBaku.TBTempat1.BiayaTambahan2,
                BiayaTambahan3           = TransferBahanBaku.TBTempat1.BiayaTambahan3,
                BiayaTambahan4           = TransferBahanBaku.TBTempat1.BiayaTambahan4,
                Email                    = TransferBahanBaku.TBTempat1.Email,
                EnumBiayaTambahan1       = TransferBahanBaku.TBTempat1.EnumBiayaTambahan1,
                EnumBiayaTambahan2       = TransferBahanBaku.TBTempat1.EnumBiayaTambahan2,
                EnumBiayaTambahan3       = TransferBahanBaku.TBTempat1.EnumBiayaTambahan3,
                EnumBiayaTambahan4       = TransferBahanBaku.TBTempat1.EnumBiayaTambahan4,
                FooterPrint              = TransferBahanBaku.TBTempat1.FooterPrint,
                IDKategoriTempat         = TransferBahanBaku.TBTempat1.IDKategoriTempat,
                IDStore                  = TransferBahanBaku.TBTempat1.IDStore,
                IDWMS                    = TransferBahanBaku.TBTempat1._IDWMS,
                KeteranganBiayaTambahan1 = TransferBahanBaku.TBTempat1.KeteranganBiayaTambahan1,
                KeteranganBiayaTambahan2 = TransferBahanBaku.TBTempat1.KeteranganBiayaTambahan2,
                KeteranganBiayaTambahan3 = TransferBahanBaku.TBTempat1.KeteranganBiayaTambahan3,
                KeteranganBiayaTambahan4 = TransferBahanBaku.TBTempat1.KeteranganBiayaTambahan4,
                Kode          = TransferBahanBaku.TBTempat1.Kode,
                Latitude      = TransferBahanBaku.TBTempat1.Latitude,
                Longitude     = TransferBahanBaku.TBTempat1.Longitude,
                Nama          = TransferBahanBaku.TBTempat1.Nama,
                TanggalDaftar = TransferBahanBaku.TBTempat1._TanggalInsert,
                TanggalUpdate = TransferBahanBaku.TBTempat1._TanggalUpdate,
                Telepon1      = TransferBahanBaku.TBTempat1.Telepon1,
                Telepon2      = TransferBahanBaku.TBTempat1.Telepon2
            },

            TransferBahanBakuDetails = TransferBahanBaku.TBTransferBahanBakuDetails.Select(item => new FileTransferBahanBakuDetail
            {
                Kode          = item.TBBahanBaku.KodeBahanBaku,
                BahanBaku     = item.TBBahanBaku.Nama,
                SatuanKecil   = item.TBBahanBaku.TBSatuan.Nama,
                Konversi      = item.TBBahanBaku.Konversi.Value,
                SatuanBesar   = item.TBSatuan.Nama,
                Kategori      = item.TBBahanBaku.TBRelasiBahanBakuKategoriBahanBakus.Count > 0 ? item.TBBahanBaku.TBRelasiBahanBakuKategoriBahanBakus.FirstOrDefault().TBKategoriBahanBaku.Nama : "",
                TanggalDaftar = item.TBBahanBaku.TanggalDaftar.HasValue ? item.TBBahanBaku.TanggalDaftar.Value : DateTime.Now,
                TanggalUpdate = item.TBBahanBaku.TanggalUpdate.HasValue ? item.TBBahanBaku.TanggalUpdate.Value : DateTime.Now,
                Berat         = item.TBBahanBaku.Berat.HasValue ? item.TBBahanBaku.Berat.Value : 0,
                Jumlah        = item.Jumlah,
                HargaBeli     = item.HargaBeli,
                Keterangan    = item.TBBahanBaku.Deskripsi
            }).ToList(),

            FilePenggunaPengirim = new FilePengguna
            {
                IDGrupPengguna = TransferBahanBaku.TBPengguna.IDGrupPengguna,
                NamaLengkap    = TransferBahanBaku.TBPengguna.NamaLengkap,
                Password       = TransferBahanBaku.TBPengguna.Password,
                PIN            = TransferBahanBaku.TBPengguna.PIN,
                Status         = TransferBahanBaku.TBPengguna._IsActive,
                Username       = TransferBahanBaku.TBPengguna.Username
            }
        };

        string Folder = HttpContext.Current.Server.MapPath("~/Files/Transfer Bahan Baku/Transfer/");

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

        string NamaFile    = TransferBahanBaku.TBTempat.Nama + " " + TransferBahanBaku.IDTransferBahanBaku + " " + (TransferBahanBaku.TanggalKirim).ToString("d MMMM yyyy HH.mm") + ".WIT";
        string ExtensiFile = ".zip";
        string Path        = Folder + NamaFile + ExtensiFile;
        string Json        = JsonConvert.SerializeObject(FileTransferBahanBaku);

        File.WriteAllText(Path, Json);

        string Output = Folder + NamaFile + "_enc" + ExtensiFile;

        EncryptDecrypt.Encrypt(Path, Output);

        File.Delete(Path);
    }
Ejemplo n.º 3
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                PenggunaLogin Pengguna = (PenggunaLogin)Session["PenggunaLogin"];

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

                if (DataTransferBahanBaku != null)
                {
                    LabelIDTransferBahanBaku.Text = DataTransferBahanBaku.IDTransferBahanBaku;

                    //PRINT
                    LabelPrintPengguna.Text = Pengguna.NamaLengkap;
                    LabelPrintTempat.Text   = Pengguna.Tempat;
                    LabelPrintTanggal.Text  = DateTime.Now.ToFormatTanggal();

                    //PENGIRIM
                    LabelPengirimTempat.Text      = Pengguna.Store + " - " + DataTransferBahanBaku.TBTempat.Nama;
                    LabelPengirimTempat1.Text     = LabelPengirimTempat.Text;
                    LabelPengirimanTanggal.Text   = DataTransferBahanBaku.TanggalKirim.ToFormatTanggal();
                    LabelPengirimanPengguna.Text  = DataTransferBahanBaku.TBPengguna.NamaLengkap;
                    LabelPengirimanPengguna1.Text = LabelPengirimanPengguna.Text;
                    LabelPengirimAlamat.Text      = DataTransferBahanBaku.TBTempat.Alamat;
                    LabelPengirimTelepon.Text     = DataTransferBahanBaku.TBTempat.Telepon1 + " - " + DataTransferBahanBaku.TBTempat.Telepon2;
                    LabelPengirimEmail.Text       = DataTransferBahanBaku.TBTempat.Email;

                    LabelKeterangan.Text = DataTransferBahanBaku.Keterangan;

                    //PENERIMA
                    LabelPenerimaTempat.Text    = Pengguna.Store + " - " + DataTransferBahanBaku.TBTempat1.Nama;
                    LabelPenerimaTanggal.Text   = DataTransferBahanBaku.TanggalTerima.ToFormatTanggal();
                    LabelPenerimaPengguna.Text  = DataTransferBahanBaku.IDPenerima.HasValue ? DataTransferBahanBaku.TBPengguna1.NamaLengkap : "";
                    LabelPenerimaPengguna1.Text = LabelPenerimaPengguna.Text;
                    LabelPenerimaAlamat.Text    = DataTransferBahanBaku.TBTempat1.Alamat;
                    LabelPenerimaTelepon.Text   = DataTransferBahanBaku.TBTempat1.Telepon1 + " - " + DataTransferBahanBaku.TBTempat1.Telepon2;
                    LabelPenerimaEmail.Text     = DataTransferBahanBaku.TBTempat1.Email;

                    RepeaterTransferBahanBaku.DataSource = DataTransferBahanBaku.TBTransferBahanBakuDetails
                                                           .Select(item => new
                    {
                        BahanBaku     = item.TBBahanBaku.Nama,
                        SatuanBesar   = item.TBSatuan.Nama,
                        Kategori      = item.TBBahanBaku.TBRelasiBahanBakuKategoriBahanBakus.Count > 0 ? item.TBBahanBaku.TBRelasiBahanBakuKategoriBahanBakus.FirstOrDefault().TBKategoriBahanBaku.Nama : "",
                        KodeBahanBaku = item.TBBahanBaku.KodeBahanBaku,
                        HargaBeli     = item.HargaBeli,
                        Jumlah        = item.Jumlah,
                        Subtotal      = item.Subtotal
                    });
                    RepeaterTransferBahanBaku.DataBind();

                    LabelGrandTotal.Text = DataTransferBahanBaku.GrandTotal.ToFormatHarga();

                    LabelGrandTotal1.Text = LabelGrandTotal.Text;
                }
                else
                {
                    Response.Redirect("Default.aspx");
                }
            }
        }
    }
Ejemplo n.º 4
0
    protected void ButtonSimpan_Click(object sender, EventArgs e)
    {
        try
        {
            if (DropDownListTempatPenerima.Items.Count == 0)
            {
                LiteralWarning.Text = Alert_Class.Pesan(TipeAlert.Danger, "Anda harus membuat lokasi tujuan transfer. <a href='/WITAdministrator/Store/Tempat/Pengaturan.aspx'>Buat lokasi baru</a>");
                return;
            }

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

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

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

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

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

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

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

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

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

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

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

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

                            StokKurang = true;
                        }
                    }

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

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

                db.SubmitChanges();
            }

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

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

            if (StokKurang)
            {
                LiteralWarning.Text += Alert_Class.Pesan(TipeAlert.Danger, "Stok tidak cukup, silahkan cek kembali");
            }
        }
        catch (Exception ex)
        {
            LiteralWarning.Text = Alert_Class.Pesan(TipeAlert.Danger, ex.Message);
            LogError_Class LogError = new LogError_Class(ex, Request.Url.PathAndQuery);
        }
    }
Ejemplo n.º 5
0
    protected void ButtonUpload_Click(object sender, EventArgs e)
    {
        string NamaFile    = Path.GetFileNameWithoutExtension(FileUploadTransferBahanBaku.FileName);
        string ExtensiFile = Path.GetExtension(FileUploadTransferBahanBaku.FileName);

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

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

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

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

            FileUploadTransferBahanBaku.SaveAs(LokasiFile);

            EncryptDecrypt.Decrypt(LokasiFile, Output);

            string file = File.ReadAllText(Output);

            File.Delete(Output);

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

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

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

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

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

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

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

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

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

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

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

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

                    db.SubmitChanges();
                }

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

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

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

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

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

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

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

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

                if (TransferBahanBaku.IDTempatPenerima == Pengguna.IDTempat)
                {
                    Response.Redirect("Pengaturan.aspx?id=" + TransferBahanBaku.IDTransferBahanBaku);
                }
                else
                {
                    Response.Redirect("Default.aspx");
                }
            }
        }
    }