Пример #1
0
    private void LoadProyeksi(DataClassesDatabaseDataContext db, string IDProyeksi, string level)
    {
        PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"];

        TextBoxIDProyeksi.Text = IDProyeksi;
        TextBoxPegawai.Text    = pengguna.NamaLengkap;

        TBProyeksiKomposisi[] proyeksiKomposisi = null;
        if (!string.IsNullOrEmpty(level))
        {
            proyeksiKomposisi = db.TBProyeksiKomposisis.Where(item => item.IDProyeksi == IDProyeksi && item.LevelProduksi == level.ToInt() && item.BahanBakuDasar == false).OrderBy(data => data.TBBahanBaku.Nama).ToArray();
        }
        else
        {
            proyeksiKomposisi = db.TBProyeksiKomposisis.Where(item => item.IDProyeksi == IDProyeksi && item.BahanBakuDasar == false).OrderBy(data => data.TBBahanBaku.Nama).ToArray();
        }

        TBStokBahanBaku[] daftarStokBahanBaku = db.TBStokBahanBakus.AsEnumerable().Where(item => item.IDTempat == pengguna.IDTempat).OrderBy(item => item.TBBahanBaku.Nama).ToArray();
        DropDownListStokBahanBaku.DataSource     = daftarStokBahanBaku.Select(item => new { item.IDStokBahanBaku, item.TBBahanBaku.Nama }).ToArray();
        DropDownListStokBahanBaku.DataTextField  = "Nama";
        DropDownListStokBahanBaku.DataValueField = "IDStokBahanBaku";
        DropDownListStokBahanBaku.DataBind();

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

        foreach (var item in proyeksiKomposisi.Where(item => item.Sisa > 0))
        {
            TBStokBahanBaku stokBahanBaku = daftarStokBahanBaku.FirstOrDefault(data => data.IDBahanBaku == item.IDBahanBaku);

            POProduksiDetail_Model detail = new POProduksiDetail_Model();
            detail.IDBahanBaku         = stokBahanBaku.TBBahanBaku.IDBahanBaku;
            detail.IDSatuan            = stokBahanBaku.TBBahanBaku.IDSatuanKonversi;
            detail.IDStokBahanBaku     = stokBahanBaku.IDStokBahanBaku;
            detail.Kode                = stokBahanBaku.TBBahanBaku.KodeBahanBaku;
            detail.BahanBaku           = stokBahanBaku.TBBahanBaku.Nama;
            detail.Satuan              = stokBahanBaku.TBBahanBaku.TBSatuan1.Nama;
            detail.HargaPokokKomposisi = 0;
            detail.BiayaTambahan       = 0;
            detail.TotalHPP            = detail.BiayaTambahan + detail.HargaPokokKomposisi;
            detail.Harga               = 0;
            detail.PotonganHarga       = 0;
            detail.TotalHarga          = detail.Harga - detail.PotonganHarga;
            detail.Jumlah              = item.Sisa / stokBahanBaku.TBBahanBaku.Konversi.Value;
            detail.Sisa                = detail.Jumlah;
            ViewStateListDetail.Add(detail);
        }
        ViewState["ViewStateListDetail"] = ViewStateListDetail;

        LabelSatuan.Text = "/" + daftarStokBahanBaku.FirstOrDefault(item => item.IDStokBahanBaku == DropDownListStokBahanBaku.SelectedValue.ToInt()).TBBahanBaku.TBSatuan1.Nama;

        PengaturanHPPKomposisi(db);

        LoadData();
    }
Пример #2
0
    private void CekHargaStok()
    {
        TextBoxHarga.Text  = "0.00";
        TextBoxJumlah.Text = "1.00";

        using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
        {
            TBStokBahanBaku stokBahanBaku = db.TBStokBahanBakus.FirstOrDefault(item => item.IDStokBahanBaku == DropDownListStokBahanBaku.SelectedValue.ToInt());
            TextBoxHarga.Text = (stokBahanBaku.HargaBeli * stokBahanBaku.TBBahanBaku.Konversi).ToFormatHarga();
            LabelSatuan.Text  = "/" + stokBahanBaku.TBBahanBaku.TBSatuan1.Nama;
        }
    }
Пример #3
0
    protected void ButtonSimpanDetail_Click(object sender, EventArgs e)
    {
        if (Page.IsValid)
        {
            if (TextBoxJumlah.Text.ToDecimal() > 0)
            {
                using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
                {
                    List <POProduksiDetail_Model> ViewStateListDetail = (List <POProduksiDetail_Model>)ViewState["ViewStateListDetail"];

                    POProduksiDetail_Model detail = ViewStateListDetail.FirstOrDefault(item => item.IDStokBahanBaku == DropDownListStokBahanBaku.SelectedValue.ToInt());

                    if (detail == null)
                    {
                        TBStokBahanBaku stokBahanBaku = db.TBStokBahanBakus.FirstOrDefault(item => item.IDStokBahanBaku == DropDownListStokBahanBaku.SelectedValue.ToInt());

                        detail                     = new POProduksiDetail_Model();
                        detail.IDBahanBaku         = stokBahanBaku.TBBahanBaku.IDBahanBaku;
                        detail.IDSatuan            = stokBahanBaku.TBBahanBaku.IDSatuanKonversi;
                        detail.IDStokBahanBaku     = stokBahanBaku.IDStokBahanBaku;
                        detail.Kode                = stokBahanBaku.TBBahanBaku.KodeBahanBaku;
                        detail.BahanBaku           = stokBahanBaku.TBBahanBaku.Nama;
                        detail.Satuan              = stokBahanBaku.TBBahanBaku.TBSatuan1.Nama;
                        detail.HargaPokokKomposisi = 0;
                        detail.BiayaTambahan       = 0;
                        detail.TotalHPP            = detail.BiayaTambahan + detail.HargaPokokKomposisi;
                        detail.Harga               = TextBoxHargaSupplier.Text.ToDecimal();
                        detail.PotonganHarga       = TextBoxPotonganHargaSupplier.Text.ToDecimal();
                        detail.TotalHarga          = detail.Harga - detail.PotonganHarga;
                        detail.Jumlah              = TextBoxJumlah.Text.ToDecimal();
                        detail.Sisa                = detail.Jumlah;
                        ViewStateListDetail.Add(detail);
                    }
                    else
                    {
                        detail.Harga         = TextBoxHargaSupplier.Text.ToDecimal();
                        detail.PotonganHarga = TextBoxPotonganHargaSupplier.Text.ToDecimal();
                        detail.TotalHarga    = detail.Harga - detail.PotonganHarga;
                        detail.Jumlah        = TextBoxJumlah.Text.ToDecimal();
                        detail.Sisa          = detail.Jumlah;
                    }

                    ViewState["ViewStateListDetail"] = ViewStateListDetail;
                }

                LoadData();
            }
        }
    }
Пример #4
0
    private void TambahSubKomposisiBahanBaku(List <KomposisiProduk_Model> ViewStateKomposisiProduk, TBBahanBaku bahanBaku, decimal jumlahBahanWIP, TBStokBahanBaku[] daftarStokBahanBaku, int Level)
    {
        PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"];

        foreach (var subItem in bahanBaku.TBKomposisiBahanBakus)
        {
            TBStokBahanBaku stokBahanBaku = daftarStokBahanBaku.FirstOrDefault(data => data.IDBahanBaku == subItem.IDBahanBaku);

            KomposisiProduk_Model komposisiDetail = ViewStateKomposisiProduk.FirstOrDefault(data => data.IDBahanBaku == subItem.IDBahanBaku && data.LevelProduksi == Level);

            if (komposisiDetail == null)
            {
                komposisiDetail = new KomposisiProduk_Model()
                {
                    LevelProduksi   = Level,
                    IDBahanBaku     = stokBahanBaku.IDBahanBaku.Value,
                    IDSatuan        = stokBahanBaku.TBBahanBaku.IDSatuan,
                    Kategori        = StokBahanBaku_Class.GabungkanSemuaKategoriBahanBaku(null, stokBahanBaku, null),
                    BahanBaku       = stokBahanBaku.TBBahanBaku.Nama,
                    Satuan          = stokBahanBaku.TBBahanBaku.TBSatuan.Nama,
                    JumlahPemakaian = subItem.Jumlah.Value * jumlahBahanWIP,
                    BahanBakuDasar  = stokBahanBaku.TBBahanBaku.TBKomposisiBahanBakus.Count > 0 ? false : true
                };

                if (komposisiDetail.BahanBakuDasar == true)
                {
                    komposisiDetail.Stok   = stokBahanBaku.Jumlah.Value;
                    komposisiDetail.Kurang = stokBahanBaku.Jumlah.Value - komposisiDetail.JumlahPemakaian < 0 ? Math.Abs(stokBahanBaku.Jumlah.Value - komposisiDetail.JumlahPemakaian) : 0;
                }

                ViewStateKomposisiProduk.Add(komposisiDetail);
            }
            else
            {
                komposisiDetail.JumlahPemakaian = komposisiDetail.JumlahPemakaian + subItem.Jumlah.Value * jumlahBahanWIP;

                if (komposisiDetail.BahanBakuDasar == true)
                {
                    komposisiDetail.Stok   = stokBahanBaku.Jumlah.Value;
                    komposisiDetail.Kurang = stokBahanBaku.Jumlah.Value - komposisiDetail.JumlahPemakaian < 0 ? Math.Abs(stokBahanBaku.Jumlah.Value - komposisiDetail.JumlahPemakaian) : 0;
                }
            }

            if (stokBahanBaku.TBBahanBaku.TBKomposisiBahanBakus.Count > 0)
            {
                TambahSubKomposisiBahanBaku(ViewStateKomposisiProduk, stokBahanBaku.TBBahanBaku, (subItem.Jumlah.Value * jumlahBahanWIP), daftarStokBahanBaku, Level + 1);
            }
        }
    }
Пример #5
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"];

            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                LoadDataJavaScript(db);
                KategoriBahanBaku_Class KategoriBahanBaku_Class = new KategoriBahanBaku_Class();
                TBBahanBaku             bahanBaku = db.TBBahanBakus.FirstOrDefault(item => item.IDBahanBaku == Request.QueryString["id"].ToInt());

                if (bahanBaku != null)
                {
                    TextBoxNama.Text          = bahanBaku.Nama;
                    TextBoxKodeBahanBaku.Text = bahanBaku.KodeBahanBaku;
                    TextBoxSatuanBesar.Text   = bahanBaku.TBSatuan1.Nama;
                    TextBoxSatuanKecil.Text   = bahanBaku.TBSatuan.Nama;
                    TextBoxKonversi.Text      = bahanBaku.Konversi.ToFormatHarga();
                    TextBoxBerat.Text         = bahanBaku.Berat.ToString();
                    TextBoxKategori.Text      = KategoriBahanBaku_Class.Data(bahanBaku.TBRelasiBahanBakuKategoriBahanBakus.ToArray());
                    TextBoxDeskripsi.Text     = bahanBaku.Deskripsi;

                    TBStokBahanBaku stokBahanBaku = bahanBaku.TBStokBahanBakus.FirstOrDefault(item => item.IDTempat == pengguna.IDTempat);
                    if (stokBahanBaku != null)
                    {
                        TextBoxHargaBeli.Text          = (stokBahanBaku.HargaBeli * bahanBaku.Konversi).ToFormatHarga();
                        TextBoxStok.Text               = (stokBahanBaku.Jumlah / bahanBaku.Konversi).ToFormatHarga();
                        TextBoxBatasStokAkanHabis.Text = (stokBahanBaku.JumlahMinimum / bahanBaku.Konversi).ToFormatHarga();
                    }

                    LabelSatuanHargaBeli.Text     = "/" + TextBoxSatuanBesar.Text;
                    LabelSatuanKonversi.Text      = TextBoxSatuanKecil.Text;
                    LabelSatuanStok.Text          = TextBoxSatuanBesar.Text;
                    LabelSatuanStokAkanHabis.Text = TextBoxSatuanBesar.Text;

                    ButtonSimpan.Text    = "Ubah";
                    LabelKeterangan.Text = "Ubah";
                }
                else
                {
                    LabelKeterangan.Text = "Tambah";
                }
            }
        }
    }
Пример #6
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                PenggunaLogin Pengguna = (PenggunaLogin)Session["PenggunaLogin"];

                var             listStokBahanBaku = db.TBStokBahanBakus.Where(item => item.IDTempat == Pengguna.IDTempat).ToArray();
                TBStokBahanBaku stokBahanBaku     = listStokBahanBaku.FirstOrDefault(item => item.IDBahanBaku == Request.QueryString["id"].ToInt());

                LabelNamaBahanBaku.Text = stokBahanBaku.TBBahanBaku.Nama + " (" + stokBahanBaku.TBBahanBaku.TBSatuan1.Nama + ")";

                LabelHargaPokokSaatIni.Text = (stokBahanBaku.HargaBeli).ToFormatHarga() + " /" + stokBahanBaku.TBBahanBaku.TBSatuan.Nama;

                DropDownListBahanBaku.DataSource = listStokBahanBaku
                                                   .Where(item => item.IDBahanBaku != Request.QueryString["id"].ToInt())
                                                   .Select(item => new
                {
                    item.TBBahanBaku.IDBahanBaku,
                    item.TBBahanBaku.Nama
                }).OrderBy(item => item.Nama);
                DropDownListBahanBaku.DataTextField  = "Nama";
                DropDownListBahanBaku.DataValueField = "IDBahanBaku";
                DropDownListBahanBaku.DataBind();

                if (DropDownListBahanBaku.Items.Count > 0)
                {
                    LabelSatuan.Text = db.TBBahanBakus.FirstOrDefault(item => item.IDBahanBaku == DropDownListBahanBaku.SelectedValue.ToInt()).TBSatuan.Nama;
                }
                else
                {
                    ButtonSimpanKomposisi.Enabled = false;
                }

                LoadDataDropDownListJenisBiayaProduksi(db);

                LoadDataJenisBiayaProduksi(db);

                LoadData(db, stokBahanBaku.TBBahanBaku);
            }
        }
    }
Пример #7
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"];
                TextBoxTanggal.Text = DateTime.Now.ToString("d MMMM yyyy");

                DropDownListSupplier.DataSource     = db.TBSuppliers.OrderBy(item => item.Nama).ToArray();
                DropDownListSupplier.DataTextField  = "Nama";
                DropDownListSupplier.DataValueField = "IDSupplier";
                DropDownListSupplier.DataBind();
                DropDownListSupplier.Items.Insert(0, new ListItem {
                    Text = "-Pilih Supplier-", Value = "0"
                });

                DropDownListPenerimaan.Items.Insert(0, new ListItem {
                    Text = "-Tanpa Penerimaan-", Value = "-"
                });

                TBStokBahanBaku[] daftarStokBahanBaku = db.TBStokBahanBakus.Where(item => item.IDTempat == pengguna.IDTempat).ToArray();
                DropDownListStokBahanBaku.DataSource     = daftarStokBahanBaku.Select(item => new { item.IDStokBahanBaku, item.TBBahanBaku.Nama }).OrderBy(item => item.Nama).ToArray();
                DropDownListStokBahanBaku.DataTextField  = "Nama";
                DropDownListStokBahanBaku.DataValueField = "IDStokBahanBaku";
                DropDownListStokBahanBaku.DataBind();

                if (DropDownListStokBahanBaku.Items.Count == 0)
                {
                    ButtonSimpanDetail.Enabled = false;
                    ButtonSimpan.Enabled       = false;
                }
                else
                {
                    TBStokBahanBaku stokBahanBaku = daftarStokBahanBaku.FirstOrDefault(item => item.IDStokBahanBaku == DropDownListStokBahanBaku.SelectedValue.ToInt());
                    TextBoxHarga.Text = (stokBahanBaku.HargaBeli.Value * stokBahanBaku.TBBahanBaku.Konversi.Value).ToFormatHarga();
                    LabelSatuan.Text  = "/" + stokBahanBaku.TBBahanBaku.TBSatuan1.Nama;
                }
                ViewState["ViewStateListDetail"] = new List <StokBahanBaku_Model>();
            }
        }
    }
Пример #8
0
    protected void ButtonSimpanDetail_Click(object sender, EventArgs e)
    {
        if (Page.IsValid)
        {
            if (TextBoxJumlah.Text.ToDecimal() > 0)
            {
                using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
                {
                    List <StokBahanBaku_Model> ViewStateListDetail = (List <StokBahanBaku_Model>)ViewState["ViewStateListDetail"];

                    StokBahanBaku_Model detail = ViewStateListDetail.FirstOrDefault(item => item.IDStokBahanBaku == DropDownListStokBahanBaku.SelectedValue.ToInt());

                    if (detail == null)
                    {
                        TBStokBahanBaku stokBahanBaku = db.TBStokBahanBakus.FirstOrDefault(item => item.IDStokBahanBaku == DropDownListStokBahanBaku.SelectedValue.ToInt());

                        detail = new StokBahanBaku_Model()
                        {
                            IDStokBahanBaku = DropDownListStokBahanBaku.SelectedValue.ToInt(),
                            IDSatuan        = stokBahanBaku.TBBahanBaku.IDSatuanKonversi,
                            BahanBaku       = stokBahanBaku.TBBahanBaku.Nama,
                            HargaBeli       = stokBahanBaku.HargaBeli.Value * stokBahanBaku.TBBahanBaku.Konversi.Value,
                            HargaSupplier   = TextBoxHarga.Text.ToDecimal(),
                            Jumlah          = TextBoxJumlah.Text.ToDecimal()
                        };

                        ViewStateListDetail.Add(detail);
                    }
                    else
                    {
                        detail.HargaBeli = TextBoxHarga.Text.ToDecimal();
                        detail.Jumlah    = TextBoxJumlah.Text.ToDecimal();
                    }

                    ViewState["ViewStateListDetail"] = ViewStateListDetail;

                    LoadData();
                }
            }
        }
    }
Пример #9
0
    public static string OutPutKategori(DataClassesDatabaseDataContext db, TBStokBahanBaku stokBahanBaku, TBBahanBaku bahanBaku)
    {
        string kategori = string.Empty;

        if (stokBahanBaku != null)
        {
            if (stokBahanBaku.TBBahanBaku.TBRelasiBahanBakuKategoriBahanBakus.Count > 0)
            {
                foreach (var item in stokBahanBaku.TBBahanBaku.TBRelasiBahanBakuKategoriBahanBakus)
                {
                    if (kategori == string.Empty)
                    {
                        kategori = kategori + item.TBKategoriBahanBaku.Nama;
                    }
                    else
                    {
                        kategori = kategori + ", " + item.TBKategoriBahanBaku.Nama;
                    }
                }
            }
        }
        else if (bahanBaku != null)
        {
            if (bahanBaku.TBRelasiBahanBakuKategoriBahanBakus.Count > 0)
            {
                foreach (var item in bahanBaku.TBRelasiBahanBakuKategoriBahanBakus)
                {
                    if (kategori == string.Empty)
                    {
                        kategori = kategori + item.TBKategoriBahanBaku.Nama;
                    }
                    else
                    {
                        kategori = kategori + ", " + item.TBKategoriBahanBaku.Nama;
                    }
                }
            }
        }

        return(kategori);
    }
    public static string GabungkanSemuaKategoriBahanBaku(TBStokBahanBaku stokBahanBaku, TBBahanBaku bahanBaku)
    {
        string kategori = string.Empty;

        if (stokBahanBaku != null)
        {
            if (stokBahanBaku.TBBahanBaku.TBRelasiBahanBakuKategoriBahanBakus.Count > 0)
            {
                foreach (var item in stokBahanBaku.TBBahanBaku.TBRelasiBahanBakuKategoriBahanBakus)
                {
                    if (kategori == string.Empty)
                    {
                        kategori = kategori + item.TBKategoriBahanBaku.Nama;
                    }
                    else
                    {
                        kategori = kategori + ", " + item.TBKategoriBahanBaku.Nama;
                    }
                }
            }
        }
        else if (bahanBaku != null)
        {
            if (bahanBaku.TBRelasiBahanBakuKategoriBahanBakus.Count > 0)
            {
                foreach (var item in bahanBaku.TBRelasiBahanBakuKategoriBahanBakus)
                {
                    if (kategori == string.Empty)
                    {
                        kategori = kategori + item.TBKategoriBahanBaku.Nama;
                    }
                    else
                    {
                        kategori = kategori + ", " + item.TBKategoriBahanBaku.Nama;
                    }
                }
            }
        }

        return(kategori);
    }
Пример #11
0
    public static void ProduksiByTransaksiBatal(int IDPenggunaTransaksi, int IDTempat, string IDTransaksi)
    {
        using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
        {
            List <POProduksiKomposisi_Model> daftarProduksiKomposisi = new List <POProduksiKomposisi_Model>();

            var hasil = db.TBTransaksis.FirstOrDefault(item => item.IDTransaksi == IDTransaksi).TBTransaksiDetails.GroupBy(item => item.TBKombinasiProduk).Select(item => new { KombinasiProduk = item.Key, Quantity = item.Sum(item2 => item2.Quantity) });
            foreach (var itemKombinasiProduk in hasil)
            {
                foreach (var itemKomposisi in itemKombinasiProduk.KombinasiProduk.TBKomposisiKombinasiProduks)
                {
                    POProduksiKomposisi_Model komposisi = daftarProduksiKomposisi.FirstOrDefault(item => item.IDBahanBaku == itemKomposisi.IDBahanBaku);

                    if (komposisi == null)
                    {
                        komposisi = new POProduksiKomposisi_Model()
                        {
                            IDBahanBaku  = itemKomposisi.IDBahanBaku,
                            JumlahKurang = itemKomposisi.Jumlah.Value * itemKombinasiProduk.Quantity
                        };

                        daftarProduksiKomposisi.Add(komposisi);
                    }
                    else
                    {
                        komposisi.JumlahKurang += itemKomposisi.Jumlah.Value * itemKombinasiProduk.Quantity;
                    }
                }
            }

            foreach (var itemBahanBaku in daftarProduksiKomposisi)
            {
                //KURANGI STOK BAHAN BAKU
                TBStokBahanBaku cariStokBahanBaku = db.TBStokBahanBakus.FirstOrDefault(item => item.IDTempat == IDTempat && item.IDBahanBaku == itemBahanBaku.IDBahanBaku);
                UpdateBertambahBerkurang(db, DateTime.Now, IDPenggunaTransaksi, cariStokBahanBaku, itemBahanBaku.JumlahKurang, cariStokBahanBaku.HargaBeli.Value, false, EnumJenisPerpindahanStok.TransaksiBatal, "Produksi Produk POS #" + IDTransaksi);
            }

            db.SubmitChanges();
        }
    }
Пример #12
0
    private void KurangKomposisi(DataClassesDatabaseDataContext db, int idKombinasiProduk, int jumlah)
    {
        PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"];

        List <KomposisiProduk_Model> ViewStateKomposisiProduk = (List <KomposisiProduk_Model>)ViewState["ViewStateKomposisiProduk"];

        TBKombinasiProduk[] daftarkombinasiProduk = db.TBKombinasiProduks.ToArray();
        TBStokBahanBaku[]   daftarStokBahanBaku   = db.TBStokBahanBakus.Where(item => item.IDTempat == pengguna.IDTempat).ToArray();

        TBKombinasiProduk kombinasiProduk = daftarkombinasiProduk.FirstOrDefault(data => data.IDKombinasiProduk == idKombinasiProduk);

        foreach (var subItem in kombinasiProduk.TBKomposisiKombinasiProduks)
        {
            TBStokBahanBaku stokBahanBaku = daftarStokBahanBaku.FirstOrDefault(data => data.IDBahanBaku == subItem.IDBahanBaku);

            int Level = 0;

            KomposisiProduk_Model komposisiDetail = ViewStateKomposisiProduk.FirstOrDefault(data => data.IDBahanBaku == subItem.IDBahanBaku && data.LevelProduksi == Level);

            komposisiDetail.JumlahPemakaian = komposisiDetail.JumlahPemakaian - subItem.Jumlah.Value * jumlah;
            if (komposisiDetail.BahanBakuDasar == true)
            {
                komposisiDetail.Kurang = stokBahanBaku.Jumlah.Value - komposisiDetail.JumlahPemakaian < 0 ? Math.Abs(stokBahanBaku.Jumlah.Value - komposisiDetail.JumlahPemakaian) : 0;
            }

            if (komposisiDetail.JumlahPemakaian == 0)
            {
                ViewStateKomposisiProduk.Remove(komposisiDetail);
            }

            if (stokBahanBaku.TBBahanBaku.TBKomposisiBahanBakus.Count > 0)
            {
                KurangSubKomposisiBahanBaku(ViewStateKomposisiProduk, stokBahanBaku.TBBahanBaku, (subItem.Jumlah.Value * jumlah), daftarStokBahanBaku, Level + 1);
            }
        }

        ViewState["ViewStateKomposisiProduk"] = ViewStateKomposisiProduk;
    }
Пример #13
0
    public static TBStokBahanBaku InsertStokBahanBaku(DataClassesDatabaseDataContext db, DateTime tanggal, int idPengguna, int idTempat, TBBahanBaku bahanBaku, decimal hargaBeli, decimal jumlahStokAwal, decimal jumlahMinimum, string keterangan)
    {
        TBStokBahanBaku stokBahanBaku = new TBStokBahanBaku
        {
            IDTempat      = idTempat,
            TBBahanBaku   = bahanBaku,
            HargaBeli     = hargaBeli,
            Jumlah        = 0,
            JumlahMinimum = jumlahMinimum,
        };

        db.TBStokBahanBakus.InsertOnSubmit(stokBahanBaku);

        if (jumlahStokAwal > 0)
        {
            UpdateBertambahBerkurang(db, tanggal, idPengguna, stokBahanBaku, jumlahStokAwal, stokBahanBaku.HargaBeli.Value, false, EnumJenisPerpindahanStok.StokOpnameBertambah, keterangan);
        }
        else
        {
            UpdateBertambahBerkurang(db, tanggal, idPengguna, stokBahanBaku, jumlahStokAwal, stokBahanBaku.HargaBeli.Value, false, EnumJenisPerpindahanStok.StokOpnameBerkurang, keterangan);
        }

        return(stokBahanBaku);
    }
Пример #14
0
    private void TambahKomposisi(DataClassesDatabaseDataContext db, int idKombinasiProduk, int jumlah)
    {
        PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"];

        List <KomposisiProduk_Model> ViewStateKomposisiProduk = (List <KomposisiProduk_Model>)ViewState["ViewStateKomposisiProduk"];

        TBKombinasiProduk[] daftarkombinasiProduk = db.TBKombinasiProduks.ToArray();
        TBStokBahanBaku[]   daftarStokBahanBaku   = db.TBStokBahanBakus.Where(item => item.IDTempat == pengguna.IDTempat).ToArray();

        TBKombinasiProduk kombinasiProduk = daftarkombinasiProduk.FirstOrDefault(data => data.IDKombinasiProduk == idKombinasiProduk);

        foreach (var subItem in kombinasiProduk.TBKomposisiKombinasiProduks)
        {
            TBStokBahanBaku stokBahanBaku = daftarStokBahanBaku.FirstOrDefault(data => data.IDBahanBaku == subItem.IDBahanBaku);

            int Level = 0;

            KomposisiProduk_Model komposisiDetail = ViewStateKomposisiProduk.FirstOrDefault(data => data.IDBahanBaku == subItem.IDBahanBaku && data.LevelProduksi == Level);

            if (komposisiDetail == null)
            {
                komposisiDetail = new KomposisiProduk_Model()
                {
                    LevelProduksi   = Level,
                    IDBahanBaku     = stokBahanBaku.IDBahanBaku.Value,
                    IDSatuan        = stokBahanBaku.TBBahanBaku.IDSatuan,
                    Kategori        = StokBahanBaku_Class.GabungkanSemuaKategoriBahanBaku(null, stokBahanBaku, null),
                    BahanBaku       = stokBahanBaku.TBBahanBaku.Nama,
                    Satuan          = stokBahanBaku.TBBahanBaku.TBSatuan.Nama,
                    JumlahPemakaian = subItem.Jumlah.Value * jumlah,
                    BahanBakuDasar  = stokBahanBaku.TBBahanBaku.TBKomposisiBahanBakus.Count > 0 ? false : true
                };

                if (komposisiDetail.BahanBakuDasar == true)
                {
                    komposisiDetail.Stok   = stokBahanBaku.Jumlah.Value;
                    komposisiDetail.Kurang = stokBahanBaku.Jumlah.Value - komposisiDetail.JumlahPemakaian < 0 ? Math.Abs(stokBahanBaku.Jumlah.Value - komposisiDetail.JumlahPemakaian) : 0;
                }

                ViewStateKomposisiProduk.Add(komposisiDetail);
            }
            else
            {
                komposisiDetail.JumlahPemakaian = komposisiDetail.JumlahPemakaian + subItem.Jumlah.Value * jumlah;

                if (komposisiDetail.BahanBakuDasar == true)
                {
                    komposisiDetail.Stok   = stokBahanBaku.Jumlah.Value;
                    komposisiDetail.Kurang = stokBahanBaku.Jumlah.Value - komposisiDetail.JumlahPemakaian < 0 ? Math.Abs(stokBahanBaku.Jumlah.Value - komposisiDetail.JumlahPemakaian) : 0;
                }
            }


            if (stokBahanBaku.TBBahanBaku.TBKomposisiBahanBakus.Count > 0)
            {
                TambahSubKomposisiBahanBaku(ViewStateKomposisiProduk, stokBahanBaku.TBBahanBaku, (subItem.Jumlah.Value * jumlah), daftarStokBahanBaku, Level + 1);
            }
        }

        ViewState["ViewStateKomposisiProduk"] = ViewStateKomposisiProduk;
    }
Пример #15
0
 public static TBHargaSupplier CariHargaSupplier(DataClassesDatabaseDataContext db, TBSupplier supplier, TBStokBahanBaku stokBahanBaku)
 {
     return(db.TBHargaSuppliers.FirstOrDefault(item => item.TBSupplier == supplier && item.TBStokBahanBaku == stokBahanBaku));
 }
Пример #16
0
    public static void Update(DataClassesDatabaseDataContext db, TBSupplier supplier, TBStokBahanBaku stokBahanBaku, decimal harga)
    {
        if (supplier != null)
        {
            TBHargaSupplier hargaSupplier = db.TBHargaSuppliers.FirstOrDefault(item => item.TBSupplier == supplier && item.TBStokBahanBaku == stokBahanBaku);

            if (hargaSupplier == null)
            {
                hargaSupplier = new TBHargaSupplier
                {
                    TBSupplier      = supplier,
                    Tanggal         = DateTime.Now,
                    Harga           = harga,
                    TBStokBahanBaku = stokBahanBaku
                };

                db.TBHargaSuppliers.InsertOnSubmit(hargaSupplier);
            }
            else
            {
                hargaSupplier.Tanggal = DateTime.Now;
                hargaSupplier.Harga   = harga;
            }
        }
    }
Пример #17
0
    private void LoadPOLama(DataClassesDatabaseDataContext db, string IDPOProduksiBahanBaku)
    {
        PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"];

        TBPOProduksiBahanBaku poProduksiBahanBaku = db.TBPOProduksiBahanBakus.FirstOrDefault(item => item.IDPOProduksiBahanBaku == IDPOProduksiBahanBaku);

        TextBoxIDProyeksi.Text = poProduksiBahanBaku.IDProyeksi != null ? poProduksiBahanBaku.IDProyeksi : string.Empty;
        TextBoxPegawai.Text    = pengguna.NamaLengkap;
        DropDownListPenggunaPIC.SelectedValue = poProduksiBahanBaku.IDPenggunaPIC.ToString();
        TextBoxTanggal.Text           = poProduksiBahanBaku.Tanggal.ToString("d MMMM yyyy");
        TextBoxTanggalPengiriman.Text = poProduksiBahanBaku.TanggalPengiriman != null?poProduksiBahanBaku.TanggalPengiriman.Value.ToString("d MMMM yyyy") : DateTime.Now.ToString("d MMMM yyyy");

        TBStokBahanBaku[] daftarStokBahanBaku = null;
        if (TextBoxIDProyeksi.Text != string.Empty)
        {
            if (poProduksiBahanBaku.LevelProduksi != null)
            {
                TBProyeksiKomposisi[] proyeksiKomposisi = db.TBProyeksiKomposisis.Where(item => item.IDProyeksi == TextBoxIDProyeksi.Text && item.LevelProduksi == poProduksiBahanBaku.LevelProduksi && item.BahanBakuDasar == false).OrderBy(data => data.TBBahanBaku.Nama).ToArray();
                daftarStokBahanBaku = db.TBStokBahanBakus.AsEnumerable().Where(item => item.IDTempat == pengguna.IDTempat && proyeksiKomposisi.Any(data => data.IDBahanBaku == item.IDBahanBaku)).OrderBy(item => item.TBBahanBaku.Nama).ToArray();
            }
            else
            {
                TBProyeksiKomposisi[] proyeksiKomposisi = db.TBProyeksiKomposisis.Where(item => item.IDProyeksi == TextBoxIDProyeksi.Text && item.BahanBakuDasar == false).OrderBy(data => data.TBBahanBaku.Nama).ToArray();
                daftarStokBahanBaku = db.TBStokBahanBakus.AsEnumerable().Where(item => item.IDTempat == pengguna.IDTempat && proyeksiKomposisi.Any(data => data.IDBahanBaku == item.IDBahanBaku)).OrderBy(item => item.TBBahanBaku.Nama).ToArray();
            }
        }
        else
        {
            daftarStokBahanBaku = db.TBStokBahanBakus.Where(item => item.IDTempat == pengguna.IDTempat).ToArray();
        }
        DropDownListStokBahanBaku.DataSource     = daftarStokBahanBaku.Select(item => new { item.IDStokBahanBaku, item.TBBahanBaku.Nama });
        DropDownListStokBahanBaku.DataTextField  = "Nama";
        DropDownListStokBahanBaku.DataValueField = "IDStokBahanBaku";
        DropDownListStokBahanBaku.DataBind();

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

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

            POProduksiDetail_Model detail = new POProduksiDetail_Model();
            detail.IDBahanBaku         = stokBahanBaku.TBBahanBaku.IDBahanBaku;
            detail.IDSatuan            = item.IDSatuan;
            detail.IDStokBahanBaku     = stokBahanBaku.IDStokBahanBaku;
            detail.Kode                = stokBahanBaku.TBBahanBaku.KodeBahanBaku;
            detail.BahanBaku           = stokBahanBaku.TBBahanBaku.Nama;
            detail.Satuan              = item.TBSatuan.Nama;
            detail.HargaPokokKomposisi = 0;
            detail.BiayaTambahan       = 0;
            detail.TotalHPP            = detail.BiayaTambahan + detail.HargaPokokKomposisi;
            detail.Harga               = 0;
            detail.PotonganHarga       = 0;
            detail.TotalHarga          = detail.Harga - detail.PotonganHarga;
            detail.Jumlah              = item.Jumlah;
            detail.Sisa                = detail.Jumlah;
            ViewStateListDetail.Add(detail);
        }
        ViewState["ViewStateListDetail"] = ViewStateListDetail;

        LabelSatuan.Text = "/" + daftarStokBahanBaku.FirstOrDefault(item => item.IDStokBahanBaku == DropDownListStokBahanBaku.SelectedValue.ToInt()).TBBahanBaku.TBSatuan1.Nama;

        RadioButtonListStatusHPP.SelectedValue = poProduksiBahanBaku.EnumJenisHPP.ToString();
        if (RadioButtonListStatusHPP.SelectedValue == ((int)PilihanEnumJenisHPP.Komposisi).ToString())
        {
            PengaturanHPPKomposisi(db);
        }
        else
        {
            List <POProduksiKomposisi_Model>     ViewStateListKomposisi     = (List <POProduksiKomposisi_Model>)ViewState["ViewStateListKomposisi"];
            List <POProduksiBiayaTambahan_Model> ViewStateListBiayaTambahan = (List <POProduksiBiayaTambahan_Model>)ViewState["ViewStateListBiayaTambahan"];

            ViewStateListKomposisi.AddRange(poProduksiBahanBaku.TBPOProduksiBahanBakuKomposisis.Select(item => new POProduksiKomposisi_Model
            {
                IDBahanBaku     = item.IDBahanBaku,
                IDSatuan        = item.IDSatuan,
                BahanBaku       = item.TBBahanBaku.Nama,
                Satuan          = item.TBSatuan.Nama,
                HargaBeli       = item.HargaBeli,
                JumlahKebutuhan = item.Kebutuhan,
                JumlahSisa      = 0,
                JumlahKurang    = 0
            }));
            ViewState["ViewStateListKomposisi"] = ViewStateListKomposisi;

            ViewStateListBiayaTambahan.AddRange(poProduksiBahanBaku.TBPOProduksiBahanBakuBiayaTambahans.Select(item => new POProduksiBiayaTambahan_Model
            {
                IDJenisBiayaProduksi = item.IDJenisBiayaProduksi,
                Nama           = item.TBJenisBiayaProduksi.Nama,
                JumlahProduksi = 1,
                Biaya          = item.Nominal
            }));
            ViewState["ViewStateListBiayaTambahan"] = ViewStateListBiayaTambahan;

            PengaturanHPPRataRata();
        }

        TextBoxKeterangan.Text = poProduksiBahanBaku.Keterangan;
        LoadData();
    }
Пример #18
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"];

            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                TBSatuan[] daftarSatuan = db.TBSatuans.OrderBy(item => item.Nama).ToArray();
                DropDownListSatuanKecil.DataSource     = daftarSatuan;
                DropDownListSatuanKecil.DataTextField  = "Nama";
                DropDownListSatuanKecil.DataValueField = "IDSatuan";
                DropDownListSatuanKecil.DataBind();
                DropDownListSatuanKecil.Items.Insert(0, new ListItem {
                    Text = "-Pilih Satuan-", Value = "0"
                });

                DropDownListSatuanBesar.DataSource     = daftarSatuan;
                DropDownListSatuanBesar.DataTextField  = "Nama";
                DropDownListSatuanBesar.DataValueField = "IDSatuan";
                DropDownListSatuanBesar.DataBind();
                DropDownListSatuanBesar.Items.Insert(0, new ListItem {
                    Text = "-Pilih Satuan-", Value = "0"
                });

                CheckBoxListKategori.DataSource     = db.TBKategoriBahanBakus.Select(item => new { item.IDKategoriBahanBaku, item.Nama }).ToArray();
                CheckBoxListKategori.DataValueField = "IDKategoriBahanBaku";
                CheckBoxListKategori.DataTextField  = "Nama";
                CheckBoxListKategori.DataBind();

                TBBahanBaku bahanBaku = db.TBBahanBakus.FirstOrDefault(item => item.IDBahanBaku == Request.QueryString["id"].ToInt());

                if (bahanBaku != null)
                {
                    TextBoxNama.Text                      = bahanBaku.Nama;
                    TextBoxKodeBahanBaku.Text             = bahanBaku.KodeBahanBaku;
                    TextBoxKonversi.Text                  = bahanBaku.Konversi.ToFormatHarga();
                    TextBoxBerat.Text                     = bahanBaku.Berat.ToString();
                    TextBoxDeskripsi.Text                 = bahanBaku.Deskripsi;
                    DropDownListSatuanKecil.SelectedValue = bahanBaku.IDSatuan.ToString();
                    DropDownListSatuanBesar.SelectedValue = bahanBaku.IDSatuanKonversi.ToString();

                    TBStokBahanBaku stokBahanBaku = bahanBaku.TBStokBahanBakus.FirstOrDefault(item => item.IDTempat == pengguna.IDTempat);
                    if (stokBahanBaku != null)
                    {
                        TextBoxHargaBeli.Text          = (stokBahanBaku.HargaBeli * bahanBaku.Konversi).ToFormatHarga();
                        TextBoxStok.Text               = (stokBahanBaku.Jumlah / bahanBaku.Konversi).ToFormatHarga();
                        TextBoxBatasStokAkanHabis.Text = (stokBahanBaku.JumlahMinimum / bahanBaku.Konversi).ToFormatHarga();
                    }

                    LabelSatuanHargaBeli.Text     = "/" + DropDownListSatuanBesar.SelectedItem.Text;
                    LabelSatuanKonversi.Text      = DropDownListSatuanKecil.SelectedItem.Text;
                    LabelSatuanStok.Text          = DropDownListSatuanBesar.SelectedItem.Text;
                    LabelSatuanStokAkanHabis.Text = DropDownListSatuanBesar.SelectedItem.Text;

                    if (bahanBaku.TBRelasiBahanBakuKategoriBahanBakus.Count > 0)
                    {
                        foreach (var item in bahanBaku.TBRelasiBahanBakuKategoriBahanBakus)
                        {
                            CheckBoxListKategori.Items.FindByValue(item.IDKategoriBahanBaku.ToString()).Selected = true;
                        }
                    }

                    ButtonSimpan.Text    = "Ubah";
                    LabelKeterangan.Text = "Ubah";
                }
                else
                {
                    LabelKeterangan.Text = "Tambah";
                }
            }
        }
    }
Пример #19
0
    protected void ButtonSimpan_Click(object sender, EventArgs e)
    {
        if (Page.IsValid)
        {
            PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"];

            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                TBBahanBaku bahanBaku;
                decimal     hargaBeli = TextBoxHargaBeli.Text.ToDecimal() / TextBoxKonversi.Text.ToDecimal();
                decimal     stok      = TextBoxStok.Text.ToDecimal() * TextBoxKonversi.Text.ToDecimal();
                decimal     batasStok = TextBoxBatasStokAkanHabis.Text.ToDecimal() * TextBoxKonversi.Text.ToDecimal();

                if (ButtonSimpan.Text == "Tambah")
                {
                    TBSatuan satuanKecil = db.TBSatuans.FirstOrDefault(item => item.IDSatuan == DropDownListSatuanKecil.SelectedValue.ToInt());
                    TBSatuan satuanBesar = db.TBSatuans.FirstOrDefault(item => item.IDSatuan == DropDownListSatuanBesar.SelectedValue.ToInt());

                    bahanBaku = new TBBahanBaku
                    {
                        IDWMS         = Guid.NewGuid(),
                        TBSatuan      = satuanKecil,
                        TBSatuan1     = satuanBesar,
                        TanggalDaftar = DateTime.Now,
                        TanggalUpdate = DateTime.Now,
                        Urutan        = null,
                        KodeBahanBaku = TextBoxKodeBahanBaku.Text,
                        Nama          = TextBoxNama.Text,
                        Berat         = TextBoxBerat.Text.ToDecimal(),
                        Konversi      = TextBoxKonversi.Text.ToDecimal(),
                        Deskripsi     = TextBoxDeskripsi.Text
                    };
                    db.TBBahanBakus.InsertOnSubmit(bahanBaku);

                    TambahKategori(bahanBaku, db);

                    TBStokBahanBaku stokBahanBaku = StokBahanBaku_Class.InsertStokBahanBaku(db, DateTime.Now, pengguna.IDPengguna, pengguna.IDTempat, bahanBaku, hargaBeli, stok, batasStok, "Stok Baru Manual");
                }
                else if (ButtonSimpan.Text == "Ubah")
                {
                    TBSatuan satuanKecil = db.TBSatuans.FirstOrDefault(item => item.IDSatuan == DropDownListSatuanKecil.SelectedValue.ToInt());
                    TBSatuan satuanBesar = db.TBSatuans.FirstOrDefault(item => item.IDSatuan == DropDownListSatuanBesar.SelectedValue.ToInt());

                    bahanBaku               = db.TBBahanBakus.FirstOrDefault(item => item.IDBahanBaku == Request.QueryString["id"].ToInt());
                    bahanBaku.TBSatuan      = satuanKecil;
                    bahanBaku.TBSatuan1     = satuanBesar;
                    bahanBaku.TanggalUpdate = DateTime.Now;
                    bahanBaku.Urutan        = null;
                    bahanBaku.KodeBahanBaku = TextBoxKodeBahanBaku.Text;
                    bahanBaku.Nama          = TextBoxNama.Text;
                    bahanBaku.Berat         = TextBoxBerat.Text.ToDecimal();
                    bahanBaku.Konversi      = TextBoxKonversi.Text.ToDecimal();
                    bahanBaku.Deskripsi     = TextBoxDeskripsi.Text;

                    TambahKategori(bahanBaku, db);

                    TBStokBahanBaku stokBahanBaku = db.TBStokBahanBakus.FirstOrDefault(item => item.TBBahanBaku == bahanBaku && item.IDTempat == pengguna.IDTempat);

                    if (stokBahanBaku == null)
                    {
                        stokBahanBaku = StokBahanBaku_Class.InsertStokBahanBaku(db, DateTime.Now, pengguna.IDPengguna, pengguna.IDTempat, bahanBaku, hargaBeli, stok, batasStok, "Stok Baru Manual");
                    }
                    else
                    {
                        stokBahanBaku.HargaBeli     = hargaBeli;
                        stokBahanBaku.JumlahMinimum = batasStok;
                    }

                    StokBahanBaku_Class.UpdateStockOpname(db, DateTime.Now, pengguna.IDPengguna, stokBahanBaku, stok, false, "Update Stok Manual");
                }

                db.SubmitChanges();
            }

            Response.Redirect("Default.aspx");
        }
    }
Пример #20
0
    //public static TBStokBahanBakuDetail UpdateBertambahBerkurangDetail(DataClassesDatabaseDataContext db, DateTime tanggal, int idPengguna, TBStokBahanBakuDetail stokBahanBakuDetail, decimal jumlahStok, decimal hargaBeli, bool satuanBesar, EnumJenisPerpindahanStok enumJenisPerpindahanStok, string keterangan)
    //{
    //    if (stokBahanBakuDetail != null)
    //    {
    //        if (jumlahStok > 0)
    //        {
    //            //MENCARI JENIS PERPINDAHAN STOK
    //            TBJenisPerpindahanStok JenisPerpindahanStok = db.TBJenisPerpindahanStoks.FirstOrDefault(item => item.IDJenisPerpindahanStok == (int)enumJenisPerpindahanStok);

    //            if (JenisPerpindahanStok != null)
    //            {
    //                #region Konversi Ke Satuan Stok Bahan Baku
    //                if (satuanBesar == true)
    //                {
    //                    jumlahStok *= stokBahanBakuDetail.TBStokBahanBaku.TBBahanBaku.Konversi.Value;
    //                    hargaBeli /= stokBahanBakuDetail.TBStokBahanBaku.TBBahanBaku.Konversi.Value;
    //                }
    //                #endregion

    //                decimal hargaBeliPerpindahanStok = 0;
    //                if ((bool)JenisPerpindahanStok.Status)
    //                {
    //                    hargaBeliPerpindahanStok = hargaBeli;
    //                    stokBahanBakuDetail.TBStokBahanBaku.HargaBeli = HitungRataRataHargaBeli(stokBahanBakuDetail.TBStokBahanBaku.Jumlah.Value, stokBahanBakuDetail.TBStokBahanBaku.HargaBeli.Value, jumlahStok, hargaBeli);
    //                    stokBahanBakuDetail.TBStokBahanBaku.Jumlah += jumlahStok;
    //                    stokBahanBakuDetail.Jumlah += jumlahStok;
    //                }
    //                else
    //                {
    //                    hargaBeliPerpindahanStok = stokBahanBakuDetail.HargaBeli;
    //                    stokBahanBakuDetail.TBStokBahanBaku.Jumlah -= jumlahStok;
    //                    stokBahanBakuDetail.Jumlah -= jumlahStok;
    //                }

    //                //MENCATAT DI PERPINDAHAN STOK PRODUK
    //                InsertPerpindahanStok(
    //                    db: db,
    //                    idJenisPerindahanStok: JenisPerpindahanStok.IDJenisPerpindahanStok,
    //                    idStokBahanBaku: stokBahanBakuDetail.IDStokBahanBaku,
    //                    idTempat: stokBahanBakuDetail.TBStokBahanBaku.IDTempat.Value,
    //                    idPengguna: idPengguna,
    //                    idSatuan: stokBahanBakuDetail.TBStokBahanBaku.TBBahanBaku.IDSatuan,
    //                    tanggal: tanggal,
    //                    hargaBeli: hargaBeliPerpindahanStok,
    //                    jumlah: jumlahStok,
    //                    keterangan: keterangan);
    //            }
    //        }
    //    }

    //    return stokBahanBakuDetail;
    //}

    public static TBStokBahanBaku UpdateStockOpname(DataClassesDatabaseDataContext db, DateTime tanggal, int idPengguna, TBStokBahanBaku stokBahanBaku, decimal jumlahStokTerbaru, bool satuanBesar, string keterangan)
    {
        #region Konversi Ke Satuan Stok Bahan Baku
        if (satuanBesar == true)
        {
            jumlahStokTerbaru *= stokBahanBaku.TBBahanBaku.Konversi.Value;
        }
        #endregion

        if (stokBahanBaku.Jumlah < jumlahStokTerbaru)
        {
            decimal selisihStok = jumlahStokTerbaru - stokBahanBaku.Jumlah.Value;
            stokBahanBaku.Jumlah = jumlahStokTerbaru;

            //MENCATAT DI PERPINDAHAN STOK PRODUK
            InsertPerpindahanStok(
                db: db,
                idJenisPerindahanStok: (int)EnumJenisPerpindahanStok.StokOpnameBertambah,
                stokBahanBaku: stokBahanBaku,
                idTempat: stokBahanBaku.IDTempat.Value,
                idPengguna: idPengguna,
                idSatuan: stokBahanBaku.TBBahanBaku.IDSatuan,
                tanggal: tanggal,
                hargaBeli: stokBahanBaku.HargaBeli.Value,
                jumlah: selisihStok,
                keterangan: keterangan);
        }
        else if (stokBahanBaku.Jumlah > jumlahStokTerbaru)
        {
            decimal selisihStok = stokBahanBaku.Jumlah.Value - jumlahStokTerbaru;
            stokBahanBaku.Jumlah = jumlahStokTerbaru;

            //MENCATAT DI PERPINDAHAN STOK PRODUK
            InsertPerpindahanStok(
                db: db,
                idJenisPerindahanStok: (int)EnumJenisPerpindahanStok.StokOpnameBerkurang,
                stokBahanBaku: stokBahanBaku,
                idTempat: stokBahanBaku.IDTempat.Value,
                idPengguna: idPengguna,
                idSatuan: stokBahanBaku.TBBahanBaku.IDSatuan,
                tanggal: tanggal,
                hargaBeli: stokBahanBaku.HargaBeli.Value,
                jumlah: selisihStok,
                keterangan: keterangan);
        }

        return(stokBahanBaku);
    }
Пример #21
0
    private void LoadPOLama(DataClassesDatabaseDataContext db, string IDPOProduksiBahanBaku)
    {
        PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"];

        TBPOProduksiBahanBaku poProduksiBahanBaku = db.TBPOProduksiBahanBakus.FirstOrDefault(item => item.IDPOProduksiBahanBaku == IDPOProduksiBahanBaku);

        TextBoxIDProyeksi.Text = poProduksiBahanBaku.IDProyeksi != null ? poProduksiBahanBaku.IDProyeksi : string.Empty;
        TextBoxPegawai.Text    = pengguna.NamaLengkap;
        DropDownListPenggunaPIC.SelectedValue = poProduksiBahanBaku.IDPenggunaPIC.ToString();
        TextBoxTanggal.Text           = poProduksiBahanBaku.Tanggal.ToString("d MMMM yyyy");
        TextBoxTanggalJatuhTempo.Text = poProduksiBahanBaku.TanggalJatuhTempo != null?poProduksiBahanBaku.TanggalJatuhTempo.Value.ToString("d MMMM yyyy") : DateTime.Now.ToString("d MMMM yyyy");

        TextBoxTanggalPengiriman.Text = poProduksiBahanBaku.TanggalPengiriman != null?poProduksiBahanBaku.TanggalPengiriman.Value.ToString("d MMMM yyyy") : DateTime.Now.ToString("d MMMM yyyy");

        DropDownListSupplier.SelectedValue = poProduksiBahanBaku.IDSupplier.ToString();
        HiddenFieldTax.Value = poProduksiBahanBaku.TBSupplier.PersentaseTax.ToString();
        LabelTax.Text        = "Tax (" + (poProduksiBahanBaku.TBSupplier.PersentaseTax * 100).ToFormatHarga() + "%)";

        TBStokBahanBaku[] daftarStokBahanBaku = null;
        if (TextBoxIDProyeksi.Text != string.Empty)
        {
            var proyeksiKomposisi = db.TBProyeksiKomposisis.Where(item => item.IDProyeksi == TextBoxIDProyeksi.Text && item.BahanBakuDasar == true).GroupBy(item => new
            {
                item.IDBahanBaku
            }).ToArray();
            daftarStokBahanBaku = db.TBStokBahanBakus.AsEnumerable().Where(item => item.IDTempat == pengguna.IDTempat && proyeksiKomposisi.Any(data => data.Key.IDBahanBaku == item.IDBahanBaku)).OrderBy(item => item.TBBahanBaku.Nama).ToArray();
        }
        else
        {
            daftarStokBahanBaku = db.TBStokBahanBakus.Where(item => item.IDTempat == pengguna.IDTempat).ToArray();
        }
        DropDownListStokBahanBaku.DataSource     = daftarStokBahanBaku.Select(item => new { item.IDStokBahanBaku, item.TBBahanBaku.Nama });
        DropDownListStokBahanBaku.DataTextField  = "Nama";
        DropDownListStokBahanBaku.DataValueField = "IDStokBahanBaku";
        DropDownListStokBahanBaku.DataBind();

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

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

            POProduksiDetail_Model detail = new POProduksiDetail_Model();
            detail.IDBahanBaku         = stokBahanBaku.TBBahanBaku.IDBahanBaku;
            detail.IDSatuan            = item.IDSatuan;
            detail.IDStokBahanBaku     = stokBahanBaku.IDStokBahanBaku;
            detail.Kode                = stokBahanBaku.TBBahanBaku.KodeBahanBaku;
            detail.BahanBaku           = stokBahanBaku.TBBahanBaku.Nama;
            detail.Satuan              = item.TBSatuan.Nama;
            detail.HargaPokokKomposisi = 0;
            detail.BiayaTambahan       = 0;
            detail.TotalHPP            = detail.BiayaTambahan + detail.HargaPokokKomposisi;
            detail.Harga               = item.HargaSupplier;
            detail.PotonganHarga       = item.PotonganHargaSupplier;
            detail.TotalHarga          = detail.Harga - detail.PotonganHarga;
            detail.Jumlah              = item.Jumlah;
            detail.Sisa                = detail.Jumlah;

            ViewStateListDetail.Add(detail);
        }
        ViewState["ViewStateListDetail"] = ViewStateListDetail;

        TextBoxKeterangan.Text    = poProduksiBahanBaku.Keterangan;
        TextBoxBiayaLainLain.Text = poProduksiBahanBaku.BiayaLainLain.ToFormatHarga();
        TextBoxPotonganPO.Text    = poProduksiBahanBaku.PotonganPOProduksiBahanBaku.ToFormatHarga();
        LoadData();

        decimal subtotal = (LabelTotalSubtotal.Text.ToDecimal() + poProduksiBahanBaku.BiayaLainLain.Value - poProduksiBahanBaku.PotonganPOProduksiBahanBaku.Value);
        decimal tax      = subtotal * HiddenFieldTax.Value.ToDecimal();

        TextBoxTax.Text        = tax.ToFormatHarga();
        TextBoxGrandtotal.Text = (subtotal + tax).ToFormatHarga();

        CariHargaSupplierVendor();
    }
Пример #22
0
    protected void ButtonTerima_Click(object sender, EventArgs e)
    {
        peringatan.Visible = false;
        bool          statusBerhasil = false;
        PenggunaLogin pengguna       = (PenggunaLogin)Session["PenggunaLogin"];
        string        IDPenerimaanPOProduksiBahanBaku = string.Empty;
        string        IDTransferBahanBaku             = string.Empty;
        TBPenerimaanPOProduksiBahanBaku penerimaan    = null;

        try
        {
            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                TBPOProduksiBahanBaku poProduksiBahanBaku = db.TBPOProduksiBahanBakus.FirstOrDefault(item => item.IDPOProduksiBahanBaku == DropDownListIDPOProduksi.SelectedValue);

                bool penerimaanSesuai = true;

                EntitySet <TBPenerimaanPOProduksiBahanBakuDetail> daftarDetail = new EntitySet <TBPenerimaanPOProduksiBahanBakuDetail>();

                int baris = 0;

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

                    Label   LabelIDBahanBaku             = (Label)item.FindControl("LabelIDBahanBaku");
                    TextBox TextBoxSisaPesanan           = (TextBox)item.FindControl("TextBoxSisaPesanan");
                    TextBox TextBoxJumlahDatang          = (TextBox)item.FindControl("TextBoxJumlahDatang");
                    TextBox TextBoxJumlahTerima          = (TextBox)item.FindControl("TextBoxJumlahTerima");
                    TextBox TextBoxJumlahTolakKeSupplier = (TextBox)item.FindControl("TextBoxJumlahTolakKeSupplier");

                    if (TextBoxJumlahDatang.Text.ToDecimal() > 0)
                    {
                        if (TextBoxJumlahDatang.Text.ToDecimal() >= TextBoxJumlahTerima.Text.ToDecimal())
                        {
                            TBPOProduksiBahanBakuDetail poProduksiBahanBakuDetail = poProduksiBahanBaku.TBPOProduksiBahanBakuDetails.FirstOrDefault(data => data.IDBahanBaku == LabelIDBahanBaku.Text.ToInt());

                            daftarDetail.Add(new TBPenerimaanPOProduksiBahanBakuDetail()
                            {
                                TBBahanBaku           = poProduksiBahanBakuDetail.TBBahanBaku,
                                TBSatuan              = poProduksiBahanBakuDetail.TBSatuan,
                                BiayaTambahan         = poProduksiBahanBakuDetail.BiayaTambahan,
                                HargaPokokKomposisi   = poProduksiBahanBakuDetail.HargaPokokKomposisi,
                                TotalHPP              = poProduksiBahanBakuDetail.TotalHPP,
                                HargaSupplier         = poProduksiBahanBakuDetail.HargaSupplier,
                                PotonganHargaSupplier = poProduksiBahanBakuDetail.PotonganHargaSupplier,
                                TotalHargaSupplier    = poProduksiBahanBakuDetail.TotalHargaSupplier,
                                Datang          = TextBoxJumlahDatang.Text.ToDecimal(),
                                Diterima        = TextBoxJumlahTerima.Text.ToDecimal(),
                                TolakKeSupplier = TextBoxJumlahTolakKeSupplier.Text.ToDecimal(),
                                Sisa            = TextBoxJumlahTerima.Text.ToDecimal() <= TextBoxSisaPesanan.Text.ToDecimal() ? TextBoxSisaPesanan.Text.ToDecimal() - TextBoxJumlahTerima.Text.ToDecimal() : 0
                            });
                        }
                        else
                        {
                            LabelPeringatan.Text = "Jumlah diterima lebih besar dari jumlah datang, baris ke-" + baris.ToString();
                            peringatan.Visible   = true;
                            penerimaanSesuai     = false;
                            break;
                        }
                    }
                }

                if (penerimaanSesuai == true)
                {
                    TBStokBahanBaku[] daftarStokBahanBaku = db.TBStokBahanBakus.Where(data => data.IDTempat == pengguna.IDTempat).ToArray();

                    db.Proc_InsertPenerimaanPOProduksiBahanBaku(ref IDPenerimaanPOProduksiBahanBaku, poProduksiBahanBaku.IDPOProduksiBahanBaku, poProduksiBahanBaku.IDSupplier, pengguna.IDTempat, pengguna.IDPengguna, DateTime.Parse(TextBoxTanggalPenerimaan.Text).AddHours(DateTime.Now.Hour).AddMinutes(DateTime.Now.Minute));

                    penerimaan = db.TBPenerimaanPOProduksiBahanBakus.FirstOrDefault(item => item.IDPenerimaanPOProduksiBahanBaku == IDPenerimaanPOProduksiBahanBaku);

                    penerimaan.IDPenggunaTerima = penerimaan.IDPenggunaDatang;
                    penerimaan.TanggalTerima    = penerimaan.TanggalDatang;
                    penerimaan.TBPenerimaanPOProduksiBahanBakuDetails = daftarDetail;
                    penerimaan.TotalDatang                = penerimaan.TBPenerimaanPOProduksiBahanBakuDetails.Sum(item => item.Datang);
                    penerimaan.TotalDiterima              = penerimaan.TBPenerimaanPOProduksiBahanBakuDetails.Sum(item => item.Diterima);
                    penerimaan.TotalTolakKeSupplier       = penerimaan.TBPenerimaanPOProduksiBahanBakuDetails.Sum(item => item.TolakKeSupplier);
                    penerimaan.TotalSisa                  = penerimaan.TBPenerimaanPOProduksiBahanBakuDetails.Sum(item => item.Sisa);
                    penerimaan.SubtotalBiayaTambahan      = penerimaan.TBPenerimaanPOProduksiBahanBakuDetails.Sum(item => item.BiayaTambahan * item.Diterima);
                    penerimaan.SubtotalTotalHPP           = penerimaan.TBPenerimaanPOProduksiBahanBakuDetails.Sum(item => item.TotalHPP * item.Diterima);
                    penerimaan.SubtotalTotalHargaSupplier = penerimaan.TBPenerimaanPOProduksiBahanBakuDetails.Sum(item => item.TotalHargaSupplier * item.Diterima);
                    penerimaan.Grandtotal                 = penerimaan.SubtotalTotalHPP + penerimaan.SubtotalTotalHargaSupplier;
                    penerimaan.EnumStatusPenerimaan       = (int)PilihanEnumStatusPenerimaanPO.Terima;
                    penerimaan.Keterangan                 = TextBoxKeterangan.Text;

                    foreach (var item in penerimaan.TBPenerimaanPOProduksiBahanBakuDetails)
                    {
                        TBPOProduksiBahanBakuDetail poProduksiBahanBakuDetail = poProduksiBahanBaku.TBPOProduksiBahanBakuDetails.FirstOrDefault(data => data.IDBahanBaku == item.IDBahanBaku);
                        poProduksiBahanBakuDetail.Sisa = item.Sisa;

                        TBStokBahanBaku stokBahanBaku = daftarStokBahanBaku.FirstOrDefault(data => data.IDBahanBaku == item.IDBahanBaku);

                        StokBahanBaku_Class.PengaturanJumlahStokPenerimaanPOBahanBaku(db, penerimaan.TanggalTerima.Value, pengguna.IDPengguna, pengguna.IDTempat, stokBahanBaku, (item.TotalHPP + item.TotalHargaSupplier), item.TBSatuan, item.Datang, item.TolakKeSupplier, item.TBPenerimaanPOProduksiBahanBaku.TBPOProduksiBahanBaku.IDPOProduksiBahanBaku + " - #" + item.TBPenerimaanPOProduksiBahanBaku.IDPenerimaanPOProduksiBahanBaku);
                    }

                    poProduksiBahanBaku.TBPenerimaanPOProduksiBahanBakus.Add(penerimaan);

                    db.SubmitChanges();

                    statusBerhasil = true;
                }
                else
                {
                    peringatan.Visible = true;
                }
            }
        }
        catch (Exception ex)
        {
            if (statusBerhasil != true)
            {
                using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
                {
                    penerimaan = db.TBPenerimaanPOProduksiBahanBakus.FirstOrDefault(item => item.IDPenerimaanPOProduksiBahanBaku == IDPenerimaanPOProduksiBahanBaku);
                    if (penerimaan != null)
                    {
                        db.TBPenerimaanPOProduksiBahanBakuDetails.DeleteAllOnSubmit(penerimaan.TBPenerimaanPOProduksiBahanBakuDetails);
                        db.TBPenerimaanPOProduksiBahanBakus.DeleteOnSubmit(penerimaan);
                        db.SubmitChanges();

                        IDPenerimaanPOProduksiBahanBaku = string.Empty;
                    }
                }
            }
            LogError_Class LogError = new LogError_Class(ex, "Penerimaan Produksi Ke Supplier (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");
            }
        }
    }
Пример #23
0
    private void LoadProyeksi(DataClassesDatabaseDataContext db, string IDProyeksi)
    {
        PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"];

        TextBoxIDProyeksi.Text = IDProyeksi;
        TextBoxPegawai.Text    = pengguna.NamaLengkap;

        TBSupplier supplier = null;

        if (DropDownListSupplier.SelectedValue == "0")
        {
            HiddenFieldTax.Value = "0";
            LabelTax.Text        = "Tax (0%)";
        }
        else
        {
            supplier             = db.TBSuppliers.FirstOrDefault(item => item.IDSupplier == DropDownListSupplier.SelectedValue.ToInt());
            HiddenFieldTax.Value = supplier.PersentaseTax.ToString();
            LabelTax.Text        = "Tax (" + (supplier.PersentaseTax * 100).ToFormatHarga() + "%)";
        }

        var proyeksiKomposisi = db.TBProyeksiKomposisis.Where(item => item.IDProyeksi == IDProyeksi &&
                                                              item.BahanBakuDasar == true &&
                                                              (DropDownListSupplier.SelectedValue != "0" ? db.TBHargaSuppliers.Where(item2 => item2.IDSupplier == DropDownListSupplier.SelectedValue.ToInt()).Any(item2 => item2.TBStokBahanBaku.IDBahanBaku == item.IDBahanBaku) : true))
                                .GroupBy(item => new
        {
            item.TBBahanBaku
        })
                                .Select(item => new
        {
            item.Key,
            Sisa = item.Sum(x => x.Sisa),
        }).OrderBy(data => data.Key.TBBahanBaku.Nama);

        TBStokBahanBaku[] daftarStokBahanBaku = db.TBStokBahanBakus.AsEnumerable().Where(item => item.IDTempat == pengguna.IDTempat && proyeksiKomposisi.Any(data => data.Key.TBBahanBaku.IDBahanBaku == item.IDBahanBaku)).OrderBy(item => item.TBBahanBaku.Nama).ToArray();
        DropDownListStokBahanBaku.DataSource     = daftarStokBahanBaku.Select(item => new { item.IDStokBahanBaku, item.TBBahanBaku.Nama }).ToArray();
        DropDownListStokBahanBaku.DataTextField  = "Nama";
        DropDownListStokBahanBaku.DataValueField = "IDStokBahanBaku";
        DropDownListStokBahanBaku.DataBind();

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

        foreach (var item in proyeksiKomposisi.Where(item => item.Sisa > 0))
        {
            TBStokBahanBaku stokBahanBaku = daftarStokBahanBaku.FirstOrDefault(data => data.IDBahanBaku == item.Key.TBBahanBaku.IDBahanBaku);

            POProduksiDetail_Model detail = new POProduksiDetail_Model();
            detail.IDBahanBaku         = stokBahanBaku.TBBahanBaku.IDBahanBaku;
            detail.IDSatuan            = stokBahanBaku.TBBahanBaku.IDSatuanKonversi;
            detail.IDStokBahanBaku     = stokBahanBaku.IDStokBahanBaku;
            detail.Kode                = stokBahanBaku.TBBahanBaku.KodeBahanBaku;
            detail.BahanBaku           = stokBahanBaku.TBBahanBaku.Nama;
            detail.Satuan              = stokBahanBaku.TBBahanBaku.TBSatuan1.Nama;
            detail.HargaPokokKomposisi = 0;
            detail.BiayaTambahan       = 0;
            detail.TotalHPP            = detail.BiayaTambahan + detail.HargaPokokKomposisi;
            detail.Harga               = supplier == null ? 0 : supplier.TBHargaSuppliers.FirstOrDefault(data => data.IDStokBahanBaku == stokBahanBaku.IDStokBahanBaku) == null ? 0 : supplier.TBHargaSuppliers.FirstOrDefault(data => data.IDStokBahanBaku == stokBahanBaku.IDStokBahanBaku).Harga.Value;
            detail.PotonganHarga       = 0;
            detail.TotalHarga          = detail.Harga - detail.PotonganHarga;
            detail.Jumlah              = item.Sisa / stokBahanBaku.TBBahanBaku.Konversi.Value;
            detail.Sisa                = detail.Jumlah;

            ViewStateListDetail.Add(detail);
        }
        ViewState["ViewStateListDetail"] = ViewStateListDetail;

        LoadData();

        decimal subtotal = LabelTotalSubtotal.Text.ToDecimal();
        decimal tax      = subtotal * HiddenFieldTax.Value.ToDecimal();

        TextBoxTax.Text        = tax.ToFormatHarga();
        TextBoxGrandtotal.Text = (subtotal + tax).ToFormatHarga();

        CariHargaSupplierVendor();
    }
Пример #24
0
    public static void PengaturanJumlahStokPenerimaanPOBahanBaku(DataClassesDatabaseDataContext db, DateTime tanggal, int idPengguna, int idTempat, TBStokBahanBaku stokBahanBaku, decimal hargaBeli, TBSatuan satuanPODetail, decimal jumlahDatang, decimal jumlahTolakKeSupplier, string keterangan)
    {
        if (stokBahanBaku != null)
        {
            #region Konversi Ke Satuan Stok Bahan Baku
            if (satuanPODetail != stokBahanBaku.TBBahanBaku.TBSatuan)
            {
                jumlahDatang          *= stokBahanBaku.TBBahanBaku.Konversi.Value;
                jumlahTolakKeSupplier *= stokBahanBaku.TBBahanBaku.Konversi.Value;
                hargaBeli             /= stokBahanBaku.TBBahanBaku.Konversi.Value;
            }
            #endregion

            if (jumlahDatang - jumlahTolakKeSupplier > 0)
            {
                stokBahanBaku.HargaBeli = HitungRataRataHargaBeli(stokBahanBaku.Jumlah.Value, stokBahanBaku.HargaBeli.Value, (jumlahDatang - jumlahTolakKeSupplier), hargaBeli);
            }


            if (jumlahDatang > 0)
            {
                stokBahanBaku.Jumlah += jumlahDatang;

                db.TBPerpindahanStokBahanBakus.InsertOnSubmit(new TBPerpindahanStokBahanBaku {
                    IDJenisPerpindahanStok = 31, IDWMS = Guid.NewGuid(), TBStokBahanBaku = stokBahanBaku, IDTempat = idTempat, IDPengguna = idPengguna, TBSatuan = stokBahanBaku.TBBahanBaku.TBSatuan, Tanggal = tanggal, HargaBeli = hargaBeli, Jumlah = jumlahDatang, Keterangan = "Penerimaan PO #" + keterangan
                });
            }

            if (jumlahTolakKeSupplier > 0)
            {
                stokBahanBaku.Jumlah -= jumlahTolakKeSupplier;

                db.TBPerpindahanStokBahanBakus.InsertOnSubmit(new TBPerpindahanStokBahanBaku {
                    IDJenisPerpindahanStok = 32, IDWMS = Guid.NewGuid(), TBStokBahanBaku = stokBahanBaku, IDTempat = idTempat, IDPengguna = idPengguna, TBSatuan = stokBahanBaku.TBBahanBaku.TBSatuan, Tanggal = tanggal, HargaBeli = hargaBeli, Jumlah = jumlahTolakKeSupplier, Keterangan = "Penerimaan PO Tolak Ke Vendor #" + keterangan
                });
            }
        }
    }
Пример #25
0
    public static void PengaturanJumlahStokPenerimaanPOBahanBakuTolakKeGudang(DataClassesDatabaseDataContext db, DateTime tanggal, int idPengguna, int idTempat, TBStokBahanBaku stokBahanBaku, decimal hargaBeli, TBSatuan satuanPODetail, decimal jumlahTolakKeGudang, string keterangan)
    {
        if (stokBahanBaku != null)
        {
            #region Konversi Ke Satuan Stok Bahan Baku
            if (satuanPODetail != stokBahanBaku.TBBahanBaku.TBSatuan)
            {
                jumlahTolakKeGudang *= stokBahanBaku.TBBahanBaku.Konversi.Value;
                hargaBeli           /= stokBahanBaku.TBBahanBaku.Konversi.Value;
            }
            #endregion

            if (jumlahTolakKeGudang > 0)
            {
                stokBahanBaku.Jumlah -= jumlahTolakKeGudang;

                db.TBPerpindahanStokBahanBakus.InsertOnSubmit(new TBPerpindahanStokBahanBaku
                {
                    IDJenisPerpindahanStok = 3,
                    IDWMS           = Guid.NewGuid(),
                    TBStokBahanBaku = stokBahanBaku,
                    IDTempat        = idTempat,
                    IDPengguna      = idPengguna,
                    TBSatuan        = stokBahanBaku.TBBahanBaku.TBSatuan,
                    Tanggal         = tanggal,
                    HargaBeli       = hargaBeli,
                    Jumlah          = jumlahTolakKeGudang,
                    Keterangan      = keterangan
                });
            }
        }
    }
Пример #26
0
 public static void InsertPerpindahanStok(DataClassesDatabaseDataContext db, int idJenisPerindahanStok, TBStokBahanBaku stokBahanBaku, int idTempat, int idPengguna, int idSatuan, DateTime tanggal, decimal hargaBeli, decimal jumlah, string keterangan)
 {
     db.TBPerpindahanStokBahanBakus.InsertOnSubmit(new TBPerpindahanStokBahanBaku
     {
         IDWMS = Guid.NewGuid(),
         IDJenisPerpindahanStok = idJenisPerindahanStok,
         TBStokBahanBaku        = stokBahanBaku,
         IDTempat   = idTempat,
         IDPengguna = idPengguna,
         IDSatuan   = idSatuan,
         Tanggal    = tanggal,
         HargaBeli  = hargaBeli,
         Jumlah     = jumlah,
         Keterangan = keterangan
     });
 }
Пример #27
0
    //public static void InsertStokBahanBakuDetail(DataClassesDatabaseDataContext db, string kodeStokBahanBaku, int idStokBahanBaku, int idSupplier, DateTime tanggalDaftar, decimal hargaBeli, decimal jumlah)
    //{
    //    db.TBStokBahanBakuDetails.InsertOnSubmit(new TBStokBahanBakuDetail
    //    {
    //        KodeStokBahanBaku = kodeStokBahanBaku,
    //        IDStokBahanBaku = idStokBahanBaku,
    //        IDSupplier = idSupplier,
    //        TanggalDaftar = tanggalDaftar,
    //        HargaBeli = hargaBeli,
    //        Jumlah = jumlah,
    //        Aktif = true
    //    });
    //}

    //public static string InsertStokBahanBakuDetailSP(DataClassesDatabaseDataContext db, TBStokBahanBaku stokBahanBaku, int idSupplier, string kodeStokBahanBaku, DateTime tanggalDaftar, decimal hargaBeli, decimal jumlah, bool satuanBesar)
    //{
    //    #region Konversi Ke Satuan Stok Bahan Baku
    //    if (satuanBesar == true)
    //    {
    //        jumlah *= stokBahanBaku.TBBahanBaku.Konversi.Value;
    //        hargaBeli /= stokBahanBaku.TBBahanBaku.Konversi.Value;
    //    }
    //    #endregion

    //    db.Proc_InsertStokBahanBakuDetail(ref kodeStokBahanBaku, stokBahanBaku.IDStokBahanBaku, idSupplier, tanggalDaftar, hargaBeli, jumlah);

    //    return kodeStokBahanBaku;
    //}
    #endregion

    #region UPDATE
    public static TBStokBahanBaku UpdateBertambahBerkurang(DataClassesDatabaseDataContext db, DateTime tanggal, int idPengguna, TBStokBahanBaku stokBahanBaku, decimal jumlahStok, decimal hargaBeli, bool satuanBesar, EnumJenisPerpindahanStok enumJenisPerpindahanStok, string keterangan)
    {
        if (stokBahanBaku != null)
        {
            if (jumlahStok > 0)
            {
                //MENCARI JENIS PERPINDAHAN STOK
                TBJenisPerpindahanStok JenisPerpindahanStok = db.TBJenisPerpindahanStoks.FirstOrDefault(item => item.IDJenisPerpindahanStok == (int)enumJenisPerpindahanStok);

                if (JenisPerpindahanStok != null)
                {
                    #region Konversi Ke Satuan Stok Bahan Baku
                    if (satuanBesar == true)
                    {
                        jumlahStok *= stokBahanBaku.TBBahanBaku.Konversi.Value;
                        hargaBeli  /= stokBahanBaku.TBBahanBaku.Konversi.Value;
                    }
                    #endregion

                    decimal hargaBeliPerpindahanStok = 0;
                    if ((bool)JenisPerpindahanStok.Status)
                    {
                        hargaBeliPerpindahanStok = hargaBeli;
                        stokBahanBaku.HargaBeli  = HitungRataRataHargaBeli(stokBahanBaku.Jumlah.Value, stokBahanBaku.HargaBeli.Value, jumlahStok, hargaBeli);
                        stokBahanBaku.Jumlah    += jumlahStok;
                    }
                    else
                    {
                        hargaBeliPerpindahanStok = stokBahanBaku.HargaBeli.Value;
                        stokBahanBaku.Jumlah    -= jumlahStok;
                    }

                    //MENCATAT DI PERPINDAHAN STOK PRODUK
                    InsertPerpindahanStok(
                        db: db,
                        idJenisPerindahanStok: JenisPerpindahanStok.IDJenisPerpindahanStok,
                        stokBahanBaku: stokBahanBaku,
                        idTempat: stokBahanBaku.IDTempat.Value,
                        idPengguna: idPengguna,
                        idSatuan: stokBahanBaku.TBBahanBaku.IDSatuan,
                        tanggal: tanggal,
                        hargaBeli: hargaBeliPerpindahanStok,
                        jumlah: jumlahStok,
                        keterangan: keterangan);
                }
            }
        }

        return(stokBahanBaku);
    }
Пример #28
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");
            }
        }
    }
Пример #29
0
    protected void ButtonExport_Click(object sender, EventArgs e)
    {
        PenggunaLogin Pengguna = (PenggunaLogin)Session["PenggunaLogin"];

        string NamaWorksheet = "Bahan Baku";

        #region Default
        string NamaFile = "Laporan " + NamaWorksheet + " " + DateTime.Now.ToString("d MMMM yyyy hh.mm.ss") + ".xlsx";
        string Folder   = Server.MapPath("~/file_excel/" + NamaWorksheet + "/Export/");

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

        string Path  = Folder + NamaFile;
        string Judul = "Laporan " + NamaWorksheet + " " + Pengguna.Store + " - " + Pengguna.Tempat + " " + DateTime.Now.ToString("d MMMM yyyy");

        FileInfo newFile = new FileInfo(Path);
        #endregion

        using (ExcelPackage package = new ExcelPackage(newFile))
        {
            ExcelWorksheet worksheet = package.Workbook.Worksheets.Add(NamaWorksheet);

            worksheet.Cells[1, 1].Value  = "No.";
            worksheet.Cells[1, 2].Value  = "Kode";
            worksheet.Cells[1, 3].Value  = "Bahan Baku";
            worksheet.Cells[1, 4].Value  = "Satuan Besar";
            worksheet.Cells[1, 5].Value  = "Konversi";
            worksheet.Cells[1, 6].Value  = "Satuan Kecil";
            worksheet.Cells[1, 7].Value  = "Berat";
            worksheet.Cells[1, 8].Value  = "Jumlah (Satuan Besar)";
            worksheet.Cells[1, 9].Value  = "Harga Beli per Satuan Besar";
            worksheet.Cells[1, 10].Value = "Jumlah Minimum (Satuan Besar)";
            worksheet.Cells[1, 11].Value = "Kategori";
            worksheet.Cells[1, 12].Value = "Keterangan";

            int index = 2;

            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                TBStokBahanBaku[] daftarStokBahanBaku = db.TBStokBahanBakus.Where(item => item.IDTempat == Pengguna.IDTempat).ToArray();
                foreach (var item in db.TBBahanBakus.OrderBy(item => item.Nama).ToArray())
                {
                    TBStokBahanBaku stokBahanBaku = daftarStokBahanBaku.FirstOrDefault(data => data.IDBahanBaku == item.IDBahanBaku);

                    //No
                    worksheet.Cells[index, 1].Value = index - 1;
                    worksheet.Cells[index, 1].Style.Numberformat.Format = "@";

                    //Kode
                    worksheet.Cells[index, 2].Value = item.KodeBahanBaku;
                    worksheet.Cells[index, 2].Style.Numberformat.Format = "@";

                    //Bahan Baku
                    worksheet.Cells[index, 3].Value = item.Nama;
                    worksheet.Cells[index, 3].Style.Numberformat.Format = "@";

                    //Satuan Besar
                    worksheet.Cells[index, 4].Value = item.TBSatuan1.Nama;
                    worksheet.Cells[index, 4].Style.Numberformat.Format = "@";

                    //Konversi
                    worksheet.Cells[index, 5].Value = item.Konversi.Value;
                    if (item.Konversi.ToFormatHarga().Contains(","))
                    {
                        worksheet.Cells[index, 5].Style.Numberformat.Format = "#,##0.00";
                    }
                    else
                    {
                        worksheet.Cells[index, 5].Style.Numberformat.Format = "#,##0";
                    }

                    //Satuan Kecil
                    worksheet.Cells[index, 6].Value = item.TBSatuan.Nama;
                    worksheet.Cells[index, 6].Style.Numberformat.Format = "@";

                    //Berat
                    worksheet.Cells[index, 7].Value = item.Berat.Value;
                    if (item.Berat.ToFormatHarga().Contains(","))
                    {
                        worksheet.Cells[index, 4].Style.Numberformat.Format = "#,##0.00";
                    }
                    else
                    {
                        worksheet.Cells[index, 4].Style.Numberformat.Format = "#,##0";
                    }

                    //Jumlah
                    decimal jumlah = stokBahanBaku != null ? (stokBahanBaku.Jumlah.Value / stokBahanBaku.TBBahanBaku.Konversi.Value) : 0;
                    worksheet.Cells[index, 8].Value = jumlah;
                    if (jumlah.ToFormatHarga().Contains(","))
                    {
                        worksheet.Cells[index, 8].Style.Numberformat.Format = "#,##0.00";
                    }
                    else
                    {
                        worksheet.Cells[index, 8].Style.Numberformat.Format = "#,##0";
                    }

                    //Harga Beli
                    decimal hargaBeli = stokBahanBaku != null ? (stokBahanBaku.HargaBeli.Value * stokBahanBaku.TBBahanBaku.Konversi.Value) : 0;
                    worksheet.Cells[index, 9].Value = hargaBeli;
                    if (hargaBeli.ToFormatHarga().Contains(","))
                    {
                        worksheet.Cells[index, 9].Style.Numberformat.Format = "#,##0.00";
                    }
                    else
                    {
                        worksheet.Cells[index, 9].Style.Numberformat.Format = "#,##0";
                    }

                    //Jumlah Minimum
                    decimal jumlahMinimum = stokBahanBaku != null ? (stokBahanBaku.JumlahMinimum.Value / stokBahanBaku.TBBahanBaku.Konversi.Value) : 0;
                    worksheet.Cells[index, 10].Value = jumlahMinimum;
                    if (jumlahMinimum.ToFormatHarga().Contains(","))
                    {
                        worksheet.Cells[index, 10].Style.Numberformat.Format = "#,##0.00";
                    }
                    else
                    {
                        worksheet.Cells[index, 10].Style.Numberformat.Format = "#,##0";
                    }

                    //Kategori
                    worksheet.Cells[index, 11].Value = item.TBRelasiBahanBakuKategoriBahanBakus.Count > 0 ? StokBahanBaku_Class.GabungkanSemuaKategoriBahanBaku(db, null, item) : "";
                    worksheet.Cells[index, 11].Style.Numberformat.Format = "@";

                    //Keterangan
                    worksheet.Cells[index, 12].Value = item.Deskripsi;
                    worksheet.Cells[index, 12].Style.Numberformat.Format = "@";

                    index++;
                }
            }

            using (var range = worksheet.Cells[1, 1, 1, 12])
            {
                range.Style.Font.Bold = true;
            }

            #region Default
            worksheet.Cells.AutoFitColumns(0);

            worksheet.HeaderFooter.OddHeader.CenteredText    = "&16&\"Tahoma,Regular Bold\"" + Judul;
            worksheet.HeaderFooter.OddFooter.LeftAlignedText = "Print : " + Pengguna.NamaLengkap + " - " + Pengguna.Tempat + " - " + DateTime.Now.ToString("d MMMM yyyy hh:mm");

            worksheet.HeaderFooter.OddFooter.RightAlignedText = "WIT. Warehouse Management System - " + string.Format("Page {0} of {1}", ExcelHeaderFooter.PageNumber, ExcelHeaderFooter.NumberOfPages);

            package.Workbook.Properties.Title    = NamaWorksheet;
            package.Workbook.Properties.Author   = "WIT. Warehouse Management System";
            package.Workbook.Properties.Comments = Judul;

            package.Workbook.Properties.Company = "WIT. Warehouse Management System";
            package.Save();
            #endregion
        }

        ButtonExport.Visible = false;
        LinkDownload.Visible = true;
        LinkDownload.HRef    = "/file_excel/" + NamaWorksheet + "/Export/" + NamaFile;
    }
Пример #30
0
    public static void PerbaharuiHargaBeli(DataClassesDatabaseDataContext db, int idTempat, int idBahanBaku)
    {
        TBStokBahanBaku stokBahanBaku = db.TBStokBahanBakus.FirstOrDefault(item => item.IDTempat == idTempat && item.IDBahanBaku == idBahanBaku);

        stokBahanBaku.HargaBeli = (HitungHargaPokokProduksi(db, idTempat, stokBahanBaku.TBBahanBaku) / stokBahanBaku.TBBahanBaku.Konversi.Value);
    }