예제 #1
0
    private ListItemCollection CariSatuan(TBBahanBaku bahanBaku)
    {
        ListItemCollection daftarSatuan = new ListItemCollection();

        daftarSatuan.Add(new ListItem(bahanBaku.TBSatuan1.Nama));
        if (bahanBaku.IDSatuanKonversi != bahanBaku.IDSatuan)
        {
            daftarSatuan.Add(new ListItem(bahanBaku.TBSatuan.Nama));
        }

        return(daftarSatuan);
    }
예제 #2
0
    public void Barcode(DataClassesDatabaseDataContext db, int idTempat, TBBahanBaku bahanBaku)
    {
        int    idBahanBaku = bahanBaku.IDBahanBaku;
        string kode        = "";

        do
        {
            kode = DateTime.Now.ToString("yyMM") + idTempat.ToString() + idBahanBaku.ToString();
            idBahanBaku++;
        } while (db.TBBahanBakus.FirstOrDefault(item => item.KodeBahanBaku == kode) != null);

        bahanBaku.KodeBahanBaku = kode;

        db.SubmitChanges();
    }
예제 #3
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";
                }
            }
        }
    }
예제 #4
0
    protected void DropDownListBahanBaku_SelectedIndexChanged(object sender, EventArgs e)
    {
        using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
        {
            TBBahanBaku bahanBaku = db.TBBahanBakus.FirstOrDefault(item => item.IDBahanBaku == Parse.Int(DropDownListBahanBaku.SelectedValue));
            LabelSatuan.Text = bahanBaku.TBSatuan.Nama;
            RepeaterKomposisiBahanBaku.DataSource = bahanBaku.TBKomposisiBahanBakus.Select(item => new
            {
                BahanBaku = item.TBBahanBaku1.Nama,
                Jumlah    = item.Jumlah,
                Satuan    = item.TBBahanBaku1.TBSatuan.Nama
            }).OrderBy(item => item.BahanBaku);
            RepeaterKomposisiBahanBaku.DataBind();
        }

        TextBoxJumlahBahanBaku.Focus();
        CollapseBiayaProduksi.Attributes.Add("class", "collapse");
        CollapseKomposisiProduk.Attributes.Add("class", "collapse in");
    }
예제 #5
0
    private void LoadData(DataClassesDatabaseDataContext db, TBBahanBaku bahanBaku)
    {
        PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"];

        RepeaterKomposisi.DataSource = bahanBaku.TBKomposisiBahanBakus.Select(item => new
        {
            item.IDBahanBaku,
            item.TBBahanBaku1.Nama,
            Jumlah    = item.Jumlah.ToFormatHarga(),
            Satuan    = item.TBBahanBaku1.TBSatuan.Nama,
            HargaBeli = item.TBBahanBaku1.TBStokBahanBakus.FirstOrDefault(stok => stok.IDBahanBaku == item.IDBahanBaku && stok.IDTempat == pengguna.IDTempat).HargaBeli *item.Jumlah
        }).ToArray();
        RepeaterKomposisi.DataBind();

        RepeaterBiayaProduksi.DataSource = bahanBaku.TBRelasiJenisBiayaProduksiBahanBakus.Select(item => new
        {
            item.IDJenisBiayaProduksi,
            NamaJenisBiayaProduksi = item.TBJenisBiayaProduksi.Nama,
            Jenis         = item.EnumBiayaProduksi == (int)PilihanBiayaProduksi.Persen ? (item.Persentase * 100).ToFormatHarga() + "% dari Komposisi Bahan Baku" : "Nominal",
            BiayaProduksi = item.EnumBiayaProduksi == (int)PilihanBiayaProduksi.Persen ? (item.Persentase * StokBahanBaku_Class.HitungHargaPokokKomposisi(db, pengguna.IDTempat, item.TBBahanBaku)).ToFormatHarga() : item.Nominal.ToFormatHarga()
        }).ToArray();
        RepeaterBiayaProduksi.DataBind();

        decimal hargaKomposisi = StokBahanBaku_Class.HitungHargaPokokKomposisi(db, pengguna.IDTempat, bahanBaku);

        LabelTotalHargaBesarKomposisi.Text = hargaKomposisi.ToFormatHarga();
        LabelSatuanBesarKomposisi.Text     = "/" + bahanBaku.TBSatuan1.Nama;
        LabelTotalHargaKecilKomposisi.Text = (hargaKomposisi / bahanBaku.Konversi).ToFormatHarga();
        LabelSatuanKecilKomposisi.Text     = "/" + bahanBaku.TBSatuan.Nama;


        decimal hargaBiayaProduksi = StokBahanBaku_Class.HitungBiayaProduksi(db, pengguna.IDTempat, bahanBaku);

        LabelTotalHargaBesarBiayaProduksi.Text = hargaBiayaProduksi.ToFormatHarga();
        LabelSatuanBesarBiayaProduksi.Text     = LabelSatuanBesarKomposisi.Text;
        LabelTotalHargaKecilBiayaProduksi.Text = (hargaBiayaProduksi / bahanBaku.Konversi).ToFormatHarga();
        LabelSatuanKecilBiayaProduksi.Text     = LabelSatuanKecilKomposisi.Text;

        LabelHitunganKomposisi.Text     = LabelTotalHargaKecilKomposisi.Text + " " + LabelSatuanKecilKomposisi.Text;
        LabelHitunganBiayaProduksi.Text = (hargaBiayaProduksi / bahanBaku.Konversi).ToFormatHarga() + " " + LabelSatuanKecilKomposisi.Text;
        LabelHargaPokokProduksi.Text    = ((hargaKomposisi + hargaBiayaProduksi) / bahanBaku.Konversi).ToFormatHarga() + " " + LabelSatuanKecilKomposisi.Text;
    }
예제 #6
0
    public void KategoriBahanBaku(DataClassesDatabaseDataContext db, TBBahanBaku BahanBaku, string listKategori)
    {
        //HAPUS JIKA SUDAH ADA RELASI BAHAN BAKU DENGAN KATEGORI
        if (BahanBaku.TBRelasiBahanBakuKategoriBahanBakus.Count > 0)
        {
            db.TBRelasiBahanBakuKategoriBahanBakus.DeleteAllOnSubmit(BahanBaku.TBRelasiBahanBakuKategoriBahanBakus);
        }

        string[] _tempKategori = listKategori.Replace(" ,", ",").Replace(", ", ",").Split(',');

        foreach (var item in _tempKategori.Distinct())
        {
            var KategoriBahanBaku = CariTambah(db, item);

            BahanBaku.TBRelasiBahanBakuKategoriBahanBakus.Add(new TBRelasiBahanBakuKategoriBahanBaku
            {
                TBKategoriBahanBaku = KategoriBahanBaku
            });
        }
    }
예제 #7
0
    public TBBahanBaku Ubah(DataClassesDatabaseDataContext db, TBBahanBaku BahanBaku, string satuanKecil, string satuanBesar, decimal konversi)
    {
        #region SATUAN KECIL
        var SatuanKecil = db.TBSatuans.FirstOrDefault(item => item.Nama.ToLower() == satuanKecil.ToLower());

        if (SatuanKecil == null)
        {
            TBSatuan satuan = new TBSatuan {
                Nama = satuanKecil
            };
            BahanBaku.TBSatuan = satuan;
            db.TBSatuans.InsertOnSubmit(satuan);
        }
        #endregion

        #region SATUAN BESAR
        TBSatuan SatuanBesar;
        if (satuanKecil.ToLower() != satuanBesar.ToLower())
        {
            SatuanBesar = db.TBSatuans.FirstOrDefault(item => item.Nama.ToLower() == satuanBesar.ToLower());

            if (SatuanBesar == null)
            {
                TBSatuan satuan = new TBSatuan {
                    Nama = satuanBesar
                };
                BahanBaku.TBSatuan1 = satuan;
                db.TBSatuans.InsertOnSubmit(satuan);
            }
        }
        else
        {
            BahanBaku.TBSatuan1 = SatuanKecil;
        }
        #endregion

        BahanBaku.Konversi = konversi;

        return(BahanBaku);
    }
예제 #8
0
    private void TambahKategori(TBBahanBaku bahanBaku, DataClassesDatabaseDataContext db)
    {
        //reset kategori produk
        var kategori = db.TBRelasiBahanBakuKategoriBahanBakus.Where(item => item.TBBahanBaku == bahanBaku).ToArray();

        if (kategori.Count() > 0)
        {
            db.TBRelasiBahanBakuKategoriBahanBakus.DeleteAllOnSubmit(kategori);
        }

        foreach (ListItem item in CheckBoxListKategori.Items)
        {
            if (item.Selected)
            {
                db.TBRelasiBahanBakuKategoriBahanBakus.InsertOnSubmit(new TBRelasiBahanBakuKategoriBahanBaku
                {
                    TBBahanBaku         = bahanBaku,
                    IDKategoriBahanBaku = item.Value.ToInt()
                });
            }
        }
    }
예제 #9
0
    protected void DropDownListBahanBaku_SelectedIndexChanged(object sender, EventArgs e)
    {
        using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
        {
            PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"];

            TBBahanBaku bahanBaku = db.TBBahanBakus.FirstOrDefault(item => item.IDBahanBaku == DropDownListBahanBaku.SelectedValue.ToInt());
            DropDownListSatuan.Items.Clear();
            DropDownListSatuan.DataBind();
            DropDownListSatuan.Items.Insert(0, new ListItem {
                Text = bahanBaku.TBSatuan1.Nama, Value = bahanBaku.IDSatuanKonversi.ToString()
            });

            if (bahanBaku.TBSatuan != bahanBaku.TBSatuan1)
            {
                DropDownListSatuan.Items.Insert(1, new ListItem {
                    Text = bahanBaku.TBSatuan.Nama, Value = bahanBaku.IDSatuan.ToString()
                });
            }
            HiddenFieldHargaBeli.Value = bahanBaku.TBStokBahanBakus.FirstOrDefault(item => item.IDTempat == pengguna.IDTempat).HargaBeli.ToString();
            HiddenFieldKonversi.Value  = bahanBaku.Konversi.ToString();
        }
    }
예제 #10
0
    public TBBahanBaku Tambah(DataClassesDatabaseDataContext db, TBSatuan satuanKecil,
                              TBSatuan satuanBesar, string kodeBahanBaku, string nama, decimal konversi, string deskripsi)
    {
        var BahanBaku = new TBBahanBaku
        {
            //IDProduk
            IDWMS         = Guid.NewGuid(),
            TBSatuan      = satuanKecil, //IDWarna
            TBSatuan1     = satuanBesar, //IDPemilikProduk
            TanggalDaftar = DateTime.Now,
            TanggalUpdate = DateTime.Now,
            Urutan        = db.TBBahanBakus.Count() + 1,
            KodeBahanBaku = kodeBahanBaku,
            Nama          = nama,
            Berat         = 0,
            Konversi      = konversi,
            Deskripsi     = deskripsi
        };

        db.TBBahanBakus.InsertOnSubmit(BahanBaku);

        return(BahanBaku);
    }
예제 #11
0
    public static void DeleteBahanBaku(DataClassesDatabaseDataContext db, int idBahanBaku)
    {
        TBBahanBaku bahanBaku = db.TBBahanBakus.FirstOrDefault(item => item.IDBahanBaku == idBahanBaku);

        if (bahanBaku.TBAtributPilihanBahanBakus.Count == 0 &&
            bahanBaku.TBKomposisiBahanBakus.Count == 0 &&
            bahanBaku.TBKomposisiBahanBakus1.Count == 0 &&
            bahanBaku.TBKomposisiKombinasiProduks.Count == 0 &&
            bahanBaku.TBPenerimaanPOProduksiBahanBakuDetails.Count == 0 &&
            bahanBaku.TBPengirimanPOProduksiBahanBakuDetails.Count == 0 &&
            bahanBaku.TBPengirimanPOProduksiProdukDetails.Count == 0 &&
            bahanBaku.TBPOProduksiBahanBakuDetails.Count == 0 &&
            bahanBaku.TBPOProduksiBahanBakuKomposisis.Count == 0 &&
            bahanBaku.TBPOProduksiProdukKomposisis.Count == 0 &&
            bahanBaku.TBProyeksiKomposisis.Count == 0 &&
            bahanBaku.TBRelasiBahanBakuKategoriBahanBakus.Count == 0 &&
            bahanBaku.TBRelasiJenisBiayaProduksiBahanBakus.Count == 0 &&
            bahanBaku.TBStokBahanBakus.Count == 0 &&
            bahanBaku.TBTransferBahanBakuDetails.Count == 0)
        {
            db.TBBahanBakus.DeleteOnSubmit(bahanBaku);
        }
    }
예제 #12
0
    public void BahanBakuData(TBBahanBaku BahanBaku, Repeater RepeaterAtribut)
    {
        //ATRIBUT PILIHAN
        var AtributPilihan = BahanBaku.TBAtributPilihanBahanBakus
                             .Select(item => new
        {
            item.TBAtributPilihan.TBAtribut.IDAtribut,
            item.TBAtributPilihan.Nama
        })
                             .ToArray();

        //MUNCUL KE REPEATER
        RepeaterAtribut.DataSource = db.TBAtributs
                                     .Where(item => item.IDAtributGrup == (int)GrupAtribut.BahanBaku)
                                     .ToArray()
                                     .Select(item => new
        {
            item.IDAtribut,
            item.Nama,
            item.Pilihan,
            Value = AtributPilihan.FirstOrDefault(item2 => item2.IDAtribut == item.IDAtribut) != null ? AtributPilihan.FirstOrDefault(item2 => item2.IDAtribut == item.IDAtribut).Nama : ""
        });
        RepeaterAtribut.DataBind();
    }
예제 #13
0
    public static string GabungkanSemuaKategoriBahanBaku(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);
    }
예제 #14
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"];
                TextBoxIDProyeksi.Text        = string.Empty;
                TextBoxPegawai.Text           = pengguna.NamaLengkap;
                TextBoxTanggal.Text           = DateTime.Now.ToString("d MMMM yyyy");
                TextBoxTanggalPengiriman.Text = DateTime.Now.ToString("d MMMM yyyy");

                Pengguna dmPengguna = new Pengguna();
                DropDownListPenggunaPIC.DataSource     = dmPengguna.CariBawahanSemua(db.TBPenggunas.FirstOrDefault(item => item.IDPengguna == pengguna.IDPengguna)).OrderBy(item => item.LevelJabatan).ThenBy(item => item.NamaLengkap);
                DropDownListPenggunaPIC.DataTextField  = "NamaLengkap";
                DropDownListPenggunaPIC.DataValueField = "IDPengguna";
                DropDownListPenggunaPIC.DataBind();
                DropDownListPenggunaPIC.Items.Insert(0, new ListItem {
                    Text = pengguna.NamaLengkap, Value = pengguna.IDPengguna.ToString()
                });

                TBBahanBaku[] daftarBahanBaku = db.TBBahanBakus.OrderBy(item => item.Nama).ToArray();

                if (daftarBahanBaku.Count() == 0)
                {
                    ButtonSimpanBahanBaku.Enabled = false;
                }
                else
                {
                    TBBahanBaku bahanBaku = daftarBahanBaku.FirstOrDefault();

                    DropDownListBahanBaku.DataSource     = daftarBahanBaku;
                    DropDownListBahanBaku.DataTextField  = "Nama";
                    DropDownListBahanBaku.DataValueField = "IDBahanBaku";
                    DropDownListBahanBaku.DataBind();

                    DropDownListSatuan.Items.Clear();
                    DropDownListSatuan.DataBind();
                    DropDownListSatuan.Items.Insert(0, new ListItem {
                        Text = bahanBaku.TBSatuan1.Nama, Value = bahanBaku.IDSatuanKonversi.ToString()
                    });

                    if (bahanBaku.TBSatuan != bahanBaku.TBSatuan1)
                    {
                        DropDownListSatuan.Items.Insert(1, new ListItem {
                            Text = bahanBaku.TBSatuan.Nama, Value = bahanBaku.IDSatuan.ToString()
                        });
                    }
                    HiddenFieldHargaBeli.Value = bahanBaku.TBStokBahanBakus.FirstOrDefault(item => item.IDTempat == pengguna.IDTempat).HargaBeli.ToString();
                    HiddenFieldKonversi.Value  = bahanBaku.Konversi.ToString();
                }

                TBJenisBiayaProduksi[] daftarjenisBiayaProduksi = db.TBJenisBiayaProduksis.OrderBy(item => item.Nama).ToArray();
                if (daftarjenisBiayaProduksi.Count() == 0)
                {
                    ButtonSimpanBiayaTambahan.Enabled = false;
                }
                else
                {
                    DropDownListJenisBiayaProduksi.DataSource     = db.TBJenisBiayaProduksis.Select(item => new { item.IDJenisBiayaProduksi, item.Nama }).OrderBy(item => item.Nama).ToArray();
                    DropDownListJenisBiayaProduksi.DataTextField  = "Nama";
                    DropDownListJenisBiayaProduksi.DataValueField = "IDJenisBiayaProduksi";
                    DropDownListJenisBiayaProduksi.DataBind();
                }

                ViewState["ViewStateListDetail"]        = new List <POProduksiDetail_Model>();
                ViewState["ViewStateListKomposisi"]     = new List <POProduksiKomposisi_Model>();
                ViewState["ViewStateListBiayaTambahan"] = new List <POProduksiBiayaTambahan_Model>();

                if (!string.IsNullOrEmpty(Request.QueryString["baru"]))
                {
                    LoadPOLama(db, Request.QueryString["baru"]);
                }
                else if (!string.IsNullOrEmpty(Request.QueryString["edit"]))
                {
                    LoadPOLama(db, Request.QueryString["edit"]);
                }
                else if (!string.IsNullOrEmpty(Request.QueryString["proy"]) && !string.IsNullOrEmpty(Request.QueryString["level"]))
                {
                    LoadProyeksi(db, Request.QueryString["proy"], Request.QueryString["level"]);
                }
                else
                {
                    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
                    {
                        LabelSatuan.Text = "/" + daftarStokBahanBaku.FirstOrDefault(item => item.IDStokBahanBaku == DropDownListStokBahanBaku.SelectedValue.ToInt()).TBBahanBaku.TBSatuan1.Nama;
                    }
                }
            }
        }
    }
예제 #15
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";
                }
            }
        }
    }
예제 #16
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");
        }
    }
예제 #17
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);
            }
        }
    }
예제 #18
0
 public static decimal HitungHargaPokokProduksi(DataClassesDatabaseDataContext db, int idTempat, TBBahanBaku bahanBaku)
 {
     return(HitungHargaPokokKomposisi(db, idTempat, bahanBaku) + HitungBiayaProduksi(db, idTempat, bahanBaku));
 }
예제 #19
0
    public static decimal HitungBiayaProduksi(DataClassesDatabaseDataContext db, int idTempat, TBBahanBaku bahanBaku)
    {
        var listBiayaProduksi = bahanBaku.TBRelasiJenisBiayaProduksiBahanBakus.ToArray();

        decimal hasil = 0;

        foreach (var item in listBiayaProduksi)
        {
            PilihanBiayaProduksi biayaProduksi = (PilihanBiayaProduksi)item.EnumBiayaProduksi;

            switch (biayaProduksi)
            {
            case PilihanBiayaProduksi.TidakAda:
                hasil = hasil + 0;
                break;

            case PilihanBiayaProduksi.Persen:
                hasil = hasil + (item.Persentase.Value * HitungHargaPokokKomposisi(db, idTempat, bahanBaku));
                break;

            case PilihanBiayaProduksi.Harga:
                hasil = hasil + item.Nominal.Value;
                break;
            }
        }

        return(hasil);
    }
예제 #20
0
    public static decimal HitungHargaPokokKomposisi(DataClassesDatabaseDataContext db, int idTempat, TBBahanBaku bahanBaku)
    {
        decimal hargaBeli = 0;

        foreach (var komposisi in bahanBaku.TBKomposisiBahanBakus.ToArray())
        {
            hargaBeli = hargaBeli + (komposisi.TBBahanBaku1.TBStokBahanBakus.FirstOrDefault(item => item.IDTempat == idTempat && item.IDBahanBaku == komposisi.IDBahanBaku).HargaBeli.Value *komposisi.Jumlah.Value);
        }

        return(hargaBeli);
    }
예제 #21
0
    private void KurangSubKomposisiBahanBaku(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);

            komposisiDetail.JumlahPemakaian = komposisiDetail.JumlahPemakaian - subItem.Jumlah.Value * jumlahBahanWIP;
            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 * jumlahBahanWIP), daftarStokBahanBaku, Level + 1);
            }
        }
    }
예제 #22
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);
    }