예제 #1
0
        public void Copy(int id)
        {
            //Base
            var material    = _db.Materials.Find(id);
            var newMaterial = new SpecDomain.Model.Material();

            MyReflection.Copy(material, newMaterial);
            newMaterial.Remark = "Copy -- " + newMaterial.Remark;
            _db.Materials.Add(newMaterial);
            _db.SaveChanges();

            //Price
            var price    = _db.MaterialPrices.Find(newMaterial.PriceID);
            var newPrice = new MaterialPrice();

            MyReflection.Copy(price, newPrice);
            newPrice.MaterialID = newMaterial.MaterialID;
            _db.MaterialPrices.Add(newPrice);
            _db.SaveChanges();

            //Update New Material Price
            newMaterial.PriceID          = newPrice.PriceID;
            _db.Entry(newMaterial).State = EntityState.Modified;
            _db.SaveChanges();
        }
예제 #2
0
 private void InitializeNames(SpecDomain.Model.Material material)
 {
     CategoryName0 = CategoryID0 == 0 ? "" : material.MaterialCategory0.CategoryName;
     CategoryName1 = CategoryID1 == 0 ? "" : material.MaterialCategory1.CategoryName;
     CategoryName2 = CategoryID2 == 0 ? "" : material.MaterialCategory2.CategoryName;
     CategoryName3 = CategoryID3 == 0 ? "" : material.MaterialCategory3.CategoryName;
     CategoryName4 = CategoryID4 == 0 ? "" : material.MaterialCategory4.CategoryName;
     MaterialName  = CategoryName1 + " " + CategoryName2 + " " + CategoryName3 + " " + CategoryName4;
 }
예제 #3
0
        public void Insert()
        {
            //Insert Categories if not exist
            var mc0 = new MyMaterialCategory0();

            CategoryID0 = mc0.CreateCategoryID(CategoryID0, 0, CategoryName0);

            var mc1 = new MyMaterialCategory1();

            CategoryID1 = mc1.CreateCategoryID(CategoryID1, CategoryID0, CategoryName1);

            var mc2 = new MyMaterialCategory2();

            CategoryID2 = mc2.CreateCategoryID(CategoryID2, CategoryID1, CategoryName2);

            var mc3 = new MyMaterialCategory3();

            CategoryID3 = mc3.CreateCategoryID(CategoryID3, CategoryID2, CategoryName3);

            var mc4 = new MyMaterialCategory4();

            CategoryID4 = mc4.CreateCategoryID(CategoryID4, CategoryID3, CategoryName4);


            //1. Insert material
            var material = new SpecDomain.Model.Material();

            MyReflection.Copy(this, material);
            _db.Materials.Add(material);
            _db.SaveChanges();


            //2. Insert Price
            var price = new MaterialPrice
            {
                MaterialID         = material.MaterialID,
                UnitID             = UnitID,
                Price              = Price,
                InvoicePriceUnitID = UnitID,
                VenderID           = 0,
                Active             = true
            };

            _db.MaterialPrices.Add(price);
            _db.SaveChanges();

            //3. Update Price
            material.PriceID          = price.PriceID;
            material.UnitID           = price.UnitID;
            material.Price            = Price;
            _db.Entry(material).State = EntityState.Modified;
            _db.SaveChanges();
        }
예제 #4
0
        public DbMaterialCreateNewVm()
        {
            var vm = new FanMaterialCostBases();

            foreach (var fan in vm.Values)
            {
                var material = new SpecDomain.Model.Material()
                {
                    //public int DbItemID { get; set; }
                    //TypeID = 120,
                    //Name = fan.CostItemName,
                    //Unit = fan.Unit,
                    //UnitPrice = fan.UnitPrice,
                };
                _db.Materials.Add(material);
            }

            _db.SaveChanges();
        }
예제 #5
0
        public void Refresh(SpecDomain.Model.Material material)
        {
            //Value
            Value = material;

            //Values
            var db = new SpecificationDbEntities();

            Values = new List <MaterialBase>();
            var materials = db.Materials.Where(x => Value.CategoryID0 > 0 &&
                                               Value.CategoryID0 == x.CategoryID0 &&
                                               (Value.CategoryID1 == 0 || x.CategoryID1 == Value.CategoryID1) &&
                                               (Value.CategoryID2 == 0 || x.CategoryID2 == Value.CategoryID2) &&
                                               (Value.CategoryID3 == 0 || x.CategoryID3 == Value.CategoryID3)
                                               ).OrderBy(x => x.MaterialCategory1.CategoryName)
                            .ThenBy(x => x.MaterialCategory2.CategoryName)
                            .ThenBy(x => x.MaterialCategory3.CategoryName)
                            .ThenBy(x => x.MaterialCategory4.CategoryName)
                            .ToList();

            foreach (var m in materials)
            {
                var mb = new MaterialBase(m);
                Values.Add(mb);
            }

            //Dropdownlist
            var temp0 = db.MaterialCategory0.Where(x => x.CategoryID >= 0)
                        .OrderBy(x => x.CategoryName)
                        .ToList();

            Categories0 = temp0.Select(x => new SelectListItem
            {
                Value = Convert.ToString(x.CategoryID),
                Text  = x.CategoryName
            });
        }
예제 #6
0
 private void InitializePrice(SpecDomain.Model.Material material)
 {
     CurrentPrice = string.Format("{0:C2}", material.Price);
     UnitName     = material.MaterialPriceUnit.UnitName;
 }
예제 #7
0
 public MaterialBase(SpecDomain.Model.Material material)
 {
     MyReflection.Copy(material, this);
     InitializeNames(material);
     InitializePrice(material);
 }
예제 #8
0
 public MaterialDeleteVm(int materialID)
 {
     _material        = _db.Materials.FirstOrDefault(x => x.MaterialID == materialID);
     DeleteValidation = GetValidateResult();
 }