Пример #1
0
    protected void Repeater_ItemCommand(object source, RepeaterCommandEventArgs e)
    {
        if (e.CommandName == "Batal")
        {
            PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"];

            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                var TransferBahanBaku = db.TBTransferBahanBakus.FirstOrDefault(item => item.IDTransferBahanBaku == e.CommandArgument.ToString());

                if (TransferBahanBaku != null)
                {
                    TBStokBahanBaku[] daftarStokBahanBaku = db.TBStokBahanBakus.Where(item => item.IDTempat == pengguna.IDTempat).ToArray();

                    foreach (var item in TransferBahanBaku.TBTransferBahanBakuDetails.ToArray())
                        StokBahanBaku_Class.UpdateBertambahBerkurang(db, DateTime.Now, pengguna.IDPengguna, daftarStokBahanBaku.FirstOrDefault(data => data.IDBahanBaku == item.IDBahanBaku), item.Jumlah, item.HargaBeli, true, EnumJenisPerpindahanStok.TransferBatal, "Transfer Batal #" + TransferBahanBaku.IDTransferBahanBaku);

                    TransferBahanBaku.EnumJenisTransfer = (int)PilihanJenisTransfer.TransferBatal;

                    db.SubmitChanges();
                }
            }

            LoadData();
        }
        else if (e.CommandName == "TransferUlang")
            Response.Redirect("Pengaturan.aspx?id=" + e.CommandArgument);
    }
Пример #2
0
    protected void RepeaterData_ItemCommand(object source, RepeaterCommandEventArgs e)
    {
        if (e.CommandName == "Batal")
        {
            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"];
                TBPOProduksiBahanBakuRetur poProduksiBahanBakuRetur = db.TBPOProduksiBahanBakuReturs.FirstOrDefault(item => item.IDPOProduksiBahanBakuRetur == e.CommandArgument.ToString());
                poProduksiBahanBakuRetur.EnumStatusRetur = (int)EnumStatusPORetur.Batal;

                foreach (var item in poProduksiBahanBakuRetur.TBPOProduksiBahanBakuReturDetails)
                {
                    StokBahanBaku_Class.UpdateBertambahBerkurang(
                        db: db,
                        tanggal: DateTime.Now,
                        idPengguna: pengguna.IDPengguna,
                        stokBahanBaku: item.TBStokBahanBaku,
                        jumlahStok: item.Jumlah.Value,
                        hargaBeli: item.HargaBeli.Value,
                        satuanBesar: true,
                        enumJenisPerpindahanStok: EnumJenisPerpindahanStok.TransaksiBatal,
                        keterangan: "(" + item.TBStokBahanBaku.TBBahanBaku.Nama + ") Pembatalan Retur PO #" + e.CommandArgument.ToString());
                }

                db.SubmitChanges();

                LoadData();
            }
        }
    }
Пример #3
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();
                }
            }
        }
    }
Пример #4
0
    protected void ButtonTerima_Click(object sender, EventArgs e)
    {
        PenggunaLogin Pengguna = (PenggunaLogin)Session["PenggunaLogin"];

        try
        {
            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                var TransferBahanBaku = db.TBTransferBahanBakus.FirstOrDefault(item => item.IDTransferBahanBaku == Request.QueryString["id"]);

                if (TransferBahanBaku != null && TransferBahanBaku.EnumJenisTransfer == (int)PilihanJenisTransfer.TransferProses)
                {
                    TBStokBahanBaku[] daftarStokBahanBaku = db.TBStokBahanBakus.Where(item => item.IDTempat == Pengguna.IDTempat).ToArray();
                    foreach (var item in TransferBahanBaku.TBTransferBahanBakuDetails.ToArray())
                    {
                        var stokBahanBaku = daftarStokBahanBaku.FirstOrDefault(data => data.IDBahanBaku == item.IDBahanBaku);

                        if (stokBahanBaku != null)
                        {
                            StokBahanBaku_Class.UpdateBertambahBerkurang(db, DateTime.Now, Pengguna.IDPengguna, stokBahanBaku, item.Jumlah, item.HargaBeli, true, EnumJenisPerpindahanStok.TransferStokMasuk, "Transfer #" + LabelIDTransferBahanBaku.Text);
                        }
                        else
                        {
                            stokBahanBaku = StokBahanBaku_Class.InsertStokBahanBaku(db, DateTime.Now, Pengguna.IDPengguna, Pengguna.IDTempat, db.TBBahanBakus.FirstOrDefault(data => data.IDBahanBaku == item.IDBahanBaku), (item.HargaBeli / item.TBBahanBaku.Konversi.Value), 0, 0, "");

                            StokBahanBaku_Class.UpdateBertambahBerkurang(db, DateTime.Now, Pengguna.IDPengguna, stokBahanBaku, item.Jumlah, item.HargaBeli, true, EnumJenisPerpindahanStok.TransferStokMasuk, "Transfer #" + LabelIDTransferBahanBaku.Text);
                        }
                    }

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

                    db.SubmitChanges();

                    Response.Redirect("/WITWarehouse/BahanBaku/Transfer/Detail.aspx?id=" + TransferBahanBaku.IDTransferBahanBaku, 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);
        }
    }
Пример #5
0
    protected void ButtonSimpan_Click(object sender, EventArgs e)
    {
        peringatan.Visible = false;
        bool   statusBerhasil = false;
        string IDPengirimanPOProduksiBahanBaku     = string.Empty;
        TBPengirimanPOProduksiBahanBaku pengiriman = null;
        PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"];

        try
        {
            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                bool pengirimanSesuai = true;
                int  baris            = 0;

                TBPOProduksiBahanBaku poProduksiBahanBaku = db.TBPOProduksiBahanBakus.FirstOrDefault(item => item.IDPOProduksiBahanBaku == Request.QueryString["id"]);

                EntitySet <TBPengirimanPOProduksiBahanBakuDetail> daftarKomposisi = new EntitySet <TBPengirimanPOProduksiBahanBakuDetail>();

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

                    Label   LabelIDBahanBaku = (Label)item.FindControl("LabelIDBahanBaku");
                    TextBox TextBoxSisa      = (TextBox)item.FindControl("TextBoxSisa");
                    TextBox TextBoxStok      = (TextBox)item.FindControl("TextBoxStok");
                    TextBox TextBoxKirim     = (TextBox)item.FindControl("TextBoxKirim");

                    if (TextBoxKirim.Text.ToDecimal() > 0)
                    {
                        if (TextBoxKirim.Text.ToDecimal() <= TextBoxStok.Text.ToDecimal())
                        {
                            if (TextBoxKirim.Text.ToDecimal() <= TextBoxSisa.Text.ToDecimal())
                            {
                                TBPOProduksiBahanBakuKomposisi poProduksiBahanBakuKomposisi = poProduksiBahanBaku.TBPOProduksiBahanBakuKomposisis.FirstOrDefault(data => data.IDBahanBaku == LabelIDBahanBaku.Text.ToInt());

                                daftarKomposisi.Add(new TBPengirimanPOProduksiBahanBakuDetail()
                                {
                                    TBBahanBaku = poProduksiBahanBakuKomposisi.TBBahanBaku,
                                    TBSatuan    = poProduksiBahanBakuKomposisi.TBSatuan,
                                    Kirim       = TextBoxKirim.Text.ToDecimal()
                                });
                            }
                            else
                            {
                                LabelPeringatan.Text = "Jumlah kirim lebih besar dari jumlah kebutuhan, baris ke-" + baris.ToString();
                                peringatan.Visible   = true;
                                pengirimanSesuai     = false;
                                break;
                            }
                        }
                        else
                        {
                            LabelPeringatan.Text = "Jumlah kirim lebih besar dari stok, baris ke-" + baris.ToString();
                            peringatan.Visible   = true;
                            pengirimanSesuai     = false;
                            break;
                        }
                    }
                }

                if (pengirimanSesuai == true)
                {
                    if (daftarKomposisi.Count > 0)
                    {
                        TBStokBahanBaku[] daftarStokBahanBaku = db.TBStokBahanBakus.Where(item => item.IDTempat == pengguna.IDTempat).ToArray();

                        db.Proc_InsertPengirimanPOProduksiBahanBaku(ref IDPengirimanPOProduksiBahanBaku, poProduksiBahanBaku.IDPOProduksiBahanBaku, poProduksiBahanBaku.IDSupplier, pengguna.IDTempat, pengguna.IDPengguna, DateTime.Parse(TextBoxTanggalProses.Text).AddHours(DateTime.Now.Hour).AddMinutes(DateTime.Now.Minute));

                        pengiriman = db.TBPengirimanPOProduksiBahanBakus.FirstOrDefault(item => item.IDPengirimanPOProduksiBahanBaku == IDPengirimanPOProduksiBahanBaku);

                        foreach (var item in daftarKomposisi)
                        {
                            TBStokBahanBaku stokBahanBaku = daftarStokBahanBaku.FirstOrDefault(data => data.IDBahanBaku == item.IDBahanBaku);

                            StokBahanBaku_Class.UpdateBertambahBerkurang(db, pengiriman.Tanggal, pengguna.IDPengguna, stokBahanBaku, item.Kirim, stokBahanBaku.HargaBeli.Value, false, EnumJenisPerpindahanStok.PenguranganProduksi, "Production to Supplier #" + poProduksiBahanBaku.IDPOProduksiBahanBaku);

                            TBPOProduksiBahanBakuKomposisi poProduksiBahanBakuKomposisi = poProduksiBahanBaku.TBPOProduksiBahanBakuKomposisis.FirstOrDefault(data => data.IDBahanBaku == item.IDBahanBaku);
                            item.HargaBeli = poProduksiBahanBakuKomposisi.HargaBeli;
                            poProduksiBahanBakuKomposisi.Kirim = poProduksiBahanBakuKomposisi.Kirim + item.Kirim;
                            poProduksiBahanBakuKomposisi.Sisa  = poProduksiBahanBakuKomposisi.Sisa - item.Kirim;
                        }
                        pengiriman.TBPengirimanPOProduksiBahanBakuDetails = daftarKomposisi;
                        pengiriman.Grandtotal = pengiriman.TBPengirimanPOProduksiBahanBakuDetails.Sum(item => (item.Kirim * item.HargaBeli));
                        pengiriman.Keterangan = null;

                        db.SubmitChanges();

                        statusBerhasil = true;
                    }
                    else
                    {
                        LabelPeringatan.Text = "Tidak ada bahan baku yang dikirim";
                        peringatan.Visible   = true;
                        pengirimanSesuai     = false;
                    }
                }
            }
        }
        catch (Exception ex)
        {
            if (statusBerhasil != true)
            {
                using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
                {
                    pengiriman = db.TBPengirimanPOProduksiBahanBakus.FirstOrDefault(item => item.IDPengirimanPOProduksiBahanBaku == IDPengirimanPOProduksiBahanBaku);
                    if (pengiriman != null)
                    {
                        db.TBPengirimanPOProduksiBahanBakuDetails.DeleteAllOnSubmit(pengiriman.TBPengirimanPOProduksiBahanBakuDetails);
                        db.TBPengirimanPOProduksiBahanBakus.DeleteOnSubmit(pengiriman);
                        db.SubmitChanges();

                        IDPengirimanPOProduksiBahanBaku = string.Empty;
                    }
                }
            }
            LogError_Class LogError = new LogError_Class(ex, "Penerimaan Purchase Order Bahan Baku (ButtonSimpan_Click by : " + pengguna.NamaLengkap + ")");
            LabelPeringatan.Text = "Terjadi kesalahan, silahkan cek kembali data yang diinputkan";
            peringatan.Visible   = true;
        }
        finally
        {
            if (statusBerhasil == true)
            {
                Response.Redirect("Default.aspx");
            }
        }
    }
Пример #6
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);
        }
    }
Пример #7
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);

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

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

                DropDownListCariSatuan.DataSource     = db.TBSatuans.ToArray();
                DropDownListCariSatuan.DataTextField  = "Nama";
                DropDownListCariSatuan.DataValueField = "IDSatuan";
                DropDownListCariSatuan.DataBind();
                DropDownListCariSatuan.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 DataTransferBahanBaku = db.TBTransferBahanBakus
                                            .FirstOrDefault(item => item.IDTransferBahanBaku == Request.QueryString["id"]);

                if (DataTransferBahanBaku != null)
                {
                    //DATA TRANSFER BAHAN BAKU DITEMUKAN

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

                        #region MEMBUAT TRANSFER BAHAN BAKU BARU
                        TransferBahanBaku_Class TransferBahanBaku = new TransferBahanBaku_Class();
                        var TransferBahanBakuBaru = TransferBahanBaku.Tambah(db, Pengguna.IDPengguna, DropDownListTempatPengirim.SelectedValue.ToInt(), DropDownListTempatPenerima.SelectedValue.ToInt(), TextBoxKeterangan.Text);

                        LabelIDTransferBahanBaku.Text = TransferBahanBakuBaru.IDTransferBahanBaku;
                        #endregion

                        Dictionary <int, decimal> ListStokBahanBakuHabis = new Dictionary <int, decimal>();
                        TBStokBahanBaku[]         daftarStokBahanBaku    = db.TBStokBahanBakus.Where(item => item.IDTempat == DropDownListTempatPengirim.SelectedValue.ToInt()).ToArray();

                        //COPY DETAIL TRANSFER LAMA KE DETAIL TRANSFER BARU
                        foreach (var item in DataTransferBahanBaku.TBTransferBahanBakuDetails.ToArray())
                        {
                            //PENCARIAN STOK BAHAN BAKU
                            var stokBahanBaku = daftarStokBahanBaku.FirstOrDefault(data => data.IDBahanBaku == item.IDBahanBaku);

                            if (item.Jumlah <= (stokBahanBaku.Jumlah / stokBahanBaku.TBBahanBaku.Konversi))
                            {
                                //JIKA JUMLAH PERMINTAAN LEBIH KECIL ATAU SAMA DENGAN JUMLAH STOK
                                StokBahanBaku_Class.UpdateBertambahBerkurang(db, DateTime.Now, Pengguna.IDPengguna, stokBahanBaku, item.Jumlah, item.HargaBeli, true, EnumJenisPerpindahanStok.TransferStokKeluar, "Transfer #" + LabelIDTransferBahanBaku.Text);

                                //MENAMBAHKAN DI DETAIL TRANSFER
                                TransferBahanBakuBaru.TBTransferBahanBakuDetails.Add(new TBTransferBahanBakuDetail
                                {
                                    //IDTRANSFERPBAHANBAKUDETAIL
                                    //IDTRANSFERBAHANBAKU
                                    IDBahanBaku = item.IDBahanBaku,
                                    IDSatuan    = item.TBBahanBaku.IDSatuanKonversi,
                                    HargaBeli   = (stokBahanBaku.HargaBeli.Value * stokBahanBaku.TBBahanBaku.Konversi.Value),
                                    Jumlah      = item.Jumlah
                                                  //SUBTOTALHARGABELI
                                });
                            }
                            else //MENCATAT STOK BAHAN BAKU YANG HABIS
                            {
                                ListStokBahanBakuHabis.Add(stokBahanBaku.IDBahanBaku.Value, item.Jumlah);
                            }
                        }

                        //UPDATE DATA TRANSFERBAHANBAKU
                        TransferBahanBakuBaru.TanggalUpdate = DateTime.Now;
                        TransferBahanBakuBaru.TotalJumlah   = TransferBahanBakuBaru.TBTransferBahanBakuDetails.Sum(item2 => item2.Jumlah);
                        TransferBahanBakuBaru.GrandTotal    = TransferBahanBakuBaru.TBTransferBahanBakuDetails.Sum(item2 => item2.Jumlah * item2.HargaBeli);

                        db.SubmitChanges();

                        LoadDataTransferBahanBaku();

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

                        if (ListStokBahanBakuHabis.Count > 0)
                        {
                            #region LIST STOK HABIS ADA MAKA MENAMPILKAN STOK APA SAJA YANG HABIS
                            var DataStokBahanBaku = db.TBStokBahanBakus
                                                    .AsEnumerable()
                                                    .Where(item =>
                                                           item.IDTempat == Pengguna.IDTempat &&
                                                           ListStokBahanBakuHabis.ContainsKey(item.IDBahanBaku.Value))
                                                    .Select(item => new
                            {
                                IDBahanBaku = item.TBBahanBaku.IDBahanBaku,
                                BahanBaku   = item.TBBahanBaku.Nama,
                                Kode        = item.TBBahanBaku.KodeBahanBaku,

                                IDSatuanKecil = item.TBBahanBaku.IDSatuan,
                                SatuanKecil   = item.TBBahanBaku.TBSatuan.Nama,

                                Konversi = item.TBBahanBaku.Konversi,

                                IDSatuanBesar = item.TBBahanBaku.IDSatuanKonversi,
                                SatuanBesar   = item.TBBahanBaku.TBSatuan1.Nama,

                                IDKategori = item.TBBahanBaku.TBRelasiBahanBakuKategoriBahanBakus.Count > 0 ? item.TBBahanBaku.TBRelasiBahanBakuKategoriBahanBakus.FirstOrDefault().IDKategoriBahanBaku : 0,
                                Kategori   = item.TBBahanBaku.TBRelasiBahanBakuKategoriBahanBakus.Count > 0 ? item.TBBahanBaku.TBRelasiBahanBakuKategoriBahanBakus.FirstOrDefault().TBKategoriBahanBaku.Nama : "",

                                IDStokBahanBaku = item.IDStokBahanBaku,

                                Jumlah = (item.Jumlah / item.TBBahanBaku.Konversi),

                                HargaBeli = (item.HargaBeli * item.TBBahanBaku.Konversi)
                            }).OrderBy(item => item.BahanBaku).ToArray();

                            RepeaterStokBahanBaku.DataSource = DataStokBahanBaku;
                            RepeaterStokBahanBaku.DataBind();
                            #endregion

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

                                if (ListStokBahanBakuHabis.ContainsKey(LabelIDBahanBaku.Text.ToInt()))
                                {
                                    TextBoxJumlahTransfer.Text = ListStokBahanBakuHabis[LabelIDBahanBaku.Text.ToInt()].ToFormatHarga();
                                    panelStok.Attributes.Add("class", "danger");
                                }
                            }
                            #endregion

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

                            MultiViewTransferBahanBaku.ActiveViewIndex = 0;
                        }
                        else
                        {
                            //JIKA STOK BAHAN BAKU TIDAK HABIS
                            LoadDataStokBahanBaku();
                            MultiViewTransferBahanBaku.ActiveViewIndex = 1;
                        }
                    }
                    else
                    {
                        //TRANSFER BAHAN BAKU : PENDING
                        LabelIDTransferBahanBaku.Text = DataTransferBahanBaku.IDTransferBahanBaku;
                        LoadDataTransferBahanBaku();
                        MultiViewTransferBahanBaku.ActiveViewIndex = 1;
                    }
                }
                else
                {
                    //TRANSFER BAHAN BAKU TIDAK DITEMUKAN MEMBUAT TRANSFER BARU
                    MultiViewTransferBahanBaku.ActiveViewIndex = 0;
                    LoadDataStokBahanBaku();
                }
            }
        }
        else
        {
            LiteralWarning.Text = "";
        }
    }
Пример #8
0
    protected void ButtonSimpan_Click(object sender, EventArgs e)
    {
        if (Page.IsValid)
        {
            //DateTime tanggalretur = DateTime.Parse(TextBoxTanggalRetur.Text + " " + DateTime.Now.ToString("HH:mm:ss tt"));
            peringatan.Visible = false;
            PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"];

            List <StokBahanBaku_Model> ViewStateListDetail = (List <StokBahanBaku_Model>)ViewState["ViewStateListDetail"];

            if (ViewStateListDetail.Count > 0)
            {
                string IDPOProduksiBahanBakuRetur           = string.Empty;
                TBPOProduksiBahanBakuRetur POBahanBakuRetur = null;
                bool statusBerhasil = false;

                try
                {
                    using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
                    {
                        db.Proc_InsertPOProduksiBahanBakuRetur(ref IDPOProduksiBahanBakuRetur, pengguna.IDTempat, DropDownListSupplier.SelectedValue.ToInt(), pengguna.IDPengguna, TextBoxTanggal.Text.ToDateTime().AddHours(DateTime.Now.Hour).AddMinutes(DateTime.Now.Minute));
                        POBahanBakuRetur = db.TBPOProduksiBahanBakuReturs.FirstOrDefault(item => item.IDPOProduksiBahanBakuRetur == IDPOProduksiBahanBakuRetur);

                        POBahanBakuRetur.IDPenerimaanPOProduksiBahanBaku = DropDownListPenerimaan.SelectedValue != "0" ? DropDownListPenerimaan.SelectedValue : null;
                        POBahanBakuRetur.TBPOProduksiBahanBakuReturDetails.AddRange(ViewStateListDetail.OrderBy(item => item.BahanBaku).Select(item => new TBPOProduksiBahanBakuReturDetail
                        {
                            TBStokBahanBaku = db.TBStokBahanBakus.FirstOrDefault(item2 => item2.IDStokBahanBaku == item.IDStokBahanBaku),
                            IDSatuan        = item.IDSatuan,
                            HargaBeli       = item.HargaBeli,
                            HargaRetur      = item.HargaSupplier,
                            Jumlah          = item.Jumlah
                        }));
                        POBahanBakuRetur.Grandtotal      = POBahanBakuRetur.TBPOProduksiBahanBakuReturDetails.Sum(item => item.Jumlah * item.HargaRetur);
                        POBahanBakuRetur.EnumStatusRetur = (int)EnumStatusPORetur.Baru;
                        POBahanBakuRetur.Keterangan      = TextBoxKeterangan.Text;

                        foreach (var item in POBahanBakuRetur.TBPOProduksiBahanBakuReturDetails)
                        {
                            StokBahanBaku_Class.UpdateBertambahBerkurang(
                                db: db,
                                tanggal: DateTime.Now,
                                idPengguna: pengguna.IDPengguna,
                                stokBahanBaku: item.TBStokBahanBaku,
                                jumlahStok: item.Jumlah.Value,
                                hargaBeli: item.HargaBeli.Value,
                                satuanBesar: true,
                                enumJenisPerpindahanStok: EnumJenisPerpindahanStok.ReturKeTempatProduksi,
                                keterangan: "(" + item.TBStokBahanBaku.TBBahanBaku.Nama + ") Retur PO #" + IDPOProduksiBahanBakuRetur);
                        }

                        db.SubmitChanges();

                        statusBerhasil = true;
                    }
                }
                catch (Exception ex)
                {
                    if (statusBerhasil != true)
                    {
                        using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
                        {
                            POBahanBakuRetur = db.TBPOProduksiBahanBakuReturs.FirstOrDefault(item => item.IDPOProduksiBahanBakuRetur == IDPOProduksiBahanBakuRetur);
                            if (POBahanBakuRetur != null)
                            {
                                db.TBPOProduksiBahanBakuReturDetails.DeleteAllOnSubmit(POBahanBakuRetur.TBPOProduksiBahanBakuReturDetails);
                                db.TBPOProduksiBahanBakuReturs.DeleteOnSubmit(POBahanBakuRetur);
                                db.SubmitChanges();

                                IDPOProduksiBahanBakuRetur = string.Empty;
                            }
                        }
                    }
                    LogError_Class LogError = new LogError_Class(ex, "Retur PO Bahan Baku (ButtonSimpan_Click by : " + pengguna.NamaLengkap + ")");
                    LabelPeringatan.Text = "Terjadi kesalahan, silahkan cek kembali data yang diinputkan";
                    peringatan.Visible   = true;
                }
                finally
                {
                    if (statusBerhasil == true)
                    {
                        Response.Redirect("Default.aspx");
                    }
                }
            }
            else
            {
                LabelPeringatan.Text = "Tidak ada Bahan Baku yang dipilih";
                peringatan.Visible   = true;
            }
        }
    }
Пример #9
0
    protected void ButtonSimpan_Click(object sender, EventArgs e)
    {
        PenggunaLogin Pengguna = (PenggunaLogin)Session["PenggunaLogin"];

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

            TBStokBahanBaku[] daftarStokBahanBaku = db.TBStokBahanBakus.Where(item => item.IDTempat == DropDownListTempat.SelectedValue.ToInt()).ToArray();

            foreach (RepeaterItem item2 in RepeaterLaporan.Items)
            {
                Label        LabelIDBahanBaku   = (Label)item2.FindControl("LabelIDBahanBaku");
                Label        IDSatuanKonversi   = (Label)item2.FindControl("IDSatuanKonversi");
                TextBox      TextBoxStokTerbaru = (TextBox)item2.FindControl("TextBoxStokTerbaru");
                DropDownList DropDownListPilih  = (DropDownList)item2.FindControl("DropDownListPilih");

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

                    TBStokBahanBaku stokBahanBaku = daftarStokBahanBaku.FirstOrDefault(data => data.IDBahanBaku == LabelIDBahanBaku.Text.ToInt());

                    if (DropDownListPilih.SelectedIndex == 0)
                    {
                        if (Request.QueryString["do"] == "opname")
                        {
                            StokBahanBaku_Class.UpdateStockOpname(db, DateTime.Now, Pengguna.IDPengguna, stokBahanBaku, TextBoxStokTerbaru.Text.ToDecimal(), true, "");
                        }
                        else if (Request.QueryString["do"] == "waste")
                        {
                            StokBahanBaku_Class.UpdateBertambahBerkurang(db, DateTime.Now, Pengguna.IDPengguna, stokBahanBaku, TextBoxStokTerbaru.Text.ToDecimal(), stokBahanBaku.HargaBeli.Value, true, EnumJenisPerpindahanStok.PembuanganBarangRusak, "");
                        }
                        else if (Request.QueryString["do"] == "restock")
                        {
                            StokBahanBaku_Class.UpdateBertambahBerkurang(db, DateTime.Now, Pengguna.IDPengguna, stokBahanBaku, TextBoxStokTerbaru.Text.ToDecimal(), stokBahanBaku.HargaBeli.Value, true, EnumJenisPerpindahanStok.RestockBarang, "");
                        }
                        else if (Request.QueryString["do"] == "return")
                        {
                            StokBahanBaku_Class.UpdateBertambahBerkurang(db, DateTime.Now, Pengguna.IDPengguna, stokBahanBaku, TextBoxStokTerbaru.Text.ToDecimal(), stokBahanBaku.HargaBeli.Value, true, EnumJenisPerpindahanStok.ReturKeTempatProduksi, "");
                        }
                        else
                        {
                            Response.Redirect("/WITWarehouse/BahanBaku.aspx");
                        }
                    }
                    else if (DropDownListPilih.SelectedIndex == 1)
                    {
                        if (Request.QueryString["do"] == "opname")
                        {
                            StokBahanBaku_Class.UpdateStockOpname(db, DateTime.Now, Pengguna.IDPengguna, stokBahanBaku, TextBoxStokTerbaru.Text.ToDecimal(), false, "");
                        }
                        else if (Request.QueryString["do"] == "waste")
                        {
                            StokBahanBaku_Class.UpdateBertambahBerkurang(db, DateTime.Now, Pengguna.IDPengguna, stokBahanBaku, TextBoxStokTerbaru.Text.ToDecimal(), stokBahanBaku.HargaBeli.Value, false, EnumJenisPerpindahanStok.PembuanganBarangRusak, "");
                        }
                        else if (Request.QueryString["do"] == "restock")
                        {
                            StokBahanBaku_Class.UpdateBertambahBerkurang(db, DateTime.Now, Pengguna.IDPengguna, stokBahanBaku, TextBoxStokTerbaru.Text.ToDecimal(), stokBahanBaku.HargaBeli.Value, false, EnumJenisPerpindahanStok.RestockBarang, "");
                        }
                        else if (Request.QueryString["do"] == "return")
                        {
                            StokBahanBaku_Class.UpdateBertambahBerkurang(db, DateTime.Now, Pengguna.IDPengguna, stokBahanBaku, TextBoxStokTerbaru.Text.ToDecimal(), stokBahanBaku.HargaBeli.Value, false, EnumJenisPerpindahanStok.ReturKeTempatProduksi, "");
                        }
                        else
                        {
                            Response.Redirect("/WITWarehouse/BahanBaku.aspx");
                        }
                    }
                }

                TextBoxStokTerbaru.Text = string.Empty;
            }

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

        LoadData();
    }