示例#1
0
        public async Task <MaterialHead> Save(MaterialHead value, Guid?index)
        {
            var result = await appContext.MaterialHead.AddAsync(value);

            //save material
            await appContext.SaveChangesAsync();

            //
            return(result.Entity);
        }
示例#2
0
        public async Task <Material> Save(Material value, MaterialHead valueHead, Guid?id)
        {
            //get branchId
            value.BranchId     = value.CreatedBy.GetBranchOfCurrentUser(this.appContext);
            valueHead.BranchId = value.BranchId;

            var item = this.appContext.Material.FirstOrDefault(p => p.MaterialId == id);

            if (item != null)
            {
                item.GrpMaterialId = value.GrpMaterialId;
                item.MaterialCode  = value.MaterialCode;
                item.MaterialName  = value.MaterialName;
                item.Note          = value.Note;
                item.UnitId        = value.UnitId;

                var itemHead = this.appContext.MaterialHead.FirstOrDefault(p => p.MaterialId == id);
                itemHead.Price         = valueHead.Price;
                itemHead.Note          = valueHead.Note;
                itemHead.NumberHourse  = valueHead.NumberHourse;
                itemHead.PriceAfterVAT = valueHead.PriceAfterVAT;
                itemHead.SellPrice     = valueHead.SellPrice;
                itemHead.SpBeCourse    = valueHead.SpBeCourse;
                itemHead.SpEnCourse    = valueHead.SpEnCourse;

                itemHead.MaskPassCourse = valueHead.MaskPassCourse;
                itemHead.CalBeCourse    = valueHead.CalBeCourse;
                itemHead.CalEnCourse    = valueHead.CalEnCourse;
                itemHead.DocumentId     = valueHead.DocumentId;
            }

            else
            {
                var result = await appContext.Material.AddAsync(value);

                await appContext.MaterialHead.AddAsync(valueHead);

                item = result.Entity;
            }
            await appContext.SaveChangesAsync();

            return(item);
        }
示例#3
0
        public async Task <bool> SaveClone(Branch[] values, Guid userId)
        {
            try
            {
                foreach (var itemHead in values)
                {
                    var itemExistD = this.appContext.MaterialBranch.FirstOrDefault(
                        p => p.MaterialId == itemHead.MaterialId &&
                        p.BranchId == itemHead.BranchId);

                    if (itemExistD != null)
                    {
                        //itemExistD.IsDeleted = !itemHead.IsExist;
                    }
                    else
                    {
                        // true: clone data
                        if (itemHead.IsExist == true)
                        {
                            itemExistD = new MaterialBranch
                            {
                                MaterialBranchId = Guid.NewGuid(),
                                BranchId         = itemHead.BranchId,
                                MaterialId       = itemHead.MaterialId,
                                CreatedBy        = userId,
                                CreatedDate      = DateTime.Now,
                                UpdatedBy        = userId,
                                UpdatedDate      = DateTime.Now,
                                IsDeleted        = !itemHead.IsExist
                            };


                            var mate = this.appContext.Material.FirstOrDefault(p => p.MaterialId == itemHead.MaterialId);
                            if (mate != null)
                            {
                                // clone grpMaterial
                                var grpIdNew          = Guid.NewGuid();
                                var typeMaterialIdNew = Guid.NewGuid();
                                var grp    = this.appContext.GrpMaterial.FirstOrDefault(p => p.GrpMaterialId == mate.GrpMaterialId);
                                var grpNew = new GrpMaterial
                                {
                                    GrpMaterialId   = grpIdNew,
                                    GrpMaterialCode = grp.GrpMaterialCode,
                                    BranchId        = itemHead.BranchId,
                                    GrpMaterialName = grp.GrpMaterialName,
                                    Note            = grp.Note,
                                    CreatedBy       = userId,
                                    UpdatedBy       = userId,
                                    TypeMaterialId  = typeMaterialIdNew,
                                    CreatedDate     = DateTime.Now,
                                    UpdatedDate     = DateTime.Now
                                };
                                await appContext.GrpMaterial.AddAsync(grpNew);

                                // clone typeMaterial
                                var type = this.appContext.TypeMaterial.FirstOrDefault(p => p.TypeMaterialId == grp.TypeMaterialId);

                                var typeNew = new TypeMaterial
                                {
                                    TypeMaterialId   = typeMaterialIdNew,
                                    TypeMaterialCode = type.TypeMaterialCode,
                                    BranchId         = itemHead.BranchId,
                                    TypeMaterialName = type.TypeMaterialName,
                                    Note             = type.Note,
                                    CreatedBy        = userId,
                                    UpdatedBy        = userId,
                                    CreatedDate      = DateTime.Now,
                                    UpdatedDate      = DateTime.Now,
                                    IsLearning       = true,
                                    IsDocument       = type.IsDocument,
                                    IsTest           = type.IsTest,
                                };
                                await appContext.TypeMaterial.AddAsync(typeNew);

                                // clone material
                                var materialIdNew = Guid.NewGuid();
                                var mateNew       = new Material
                                {
                                    MaterialId    = materialIdNew,
                                    MaterialCode  = mate.MaterialCode,
                                    GrpMaterialId = grpIdNew,
                                    MaterialName  = mate.MaterialName,
                                    BranchId      = itemHead.BranchId,
                                    Note          = mate.Note,
                                    CreatedBy     = userId,
                                    UpdatedBy     = userId,
                                    CreatedDate   = DateTime.Now,
                                    UpdatedDate   = DateTime.Now
                                };
                                await appContext.Material.AddAsync(mateNew);

                                // clone material
                                var mateH    = this.appContext.MaterialHead.FirstOrDefault(p => p.MaterialId == mate.MaterialId);
                                var mateHNew = new MaterialHead
                                {
                                    MaterialHeadId    = Guid.NewGuid(),
                                    MaterialId        = materialIdNew,
                                    SellPrice         = mateH.SellPrice,
                                    SellPriceAfterVAT = mateH.SellPriceAfterVAT,
                                    Price             = mateH.Price,
                                    VAT                = 0,
                                    PriceAfterVAT      = mateH.PriceAfterVAT,
                                    WholePrice         = mateH.WholePrice,
                                    WholePriceAfterVAT = mateH.WholePriceAfterVAT,
                                    BranchId           = Guid.NewGuid(),
                                    CalBeCourse        = mateH.CalBeCourse,
                                    CalEnCourse        = mateH.CalEnCourse,
                                    SpBeCourse         = mateH.SpBeCourse,
                                    SpEnCourse         = mateH.SpEnCourse,
                                    NumberHourse       = mateH.NumberHourse,
                                    DocumentId         = mateH.DocumentId,
                                    MaskPassCourse     = mateH.MaskPassCourse,
                                    CreatedDate        = DateTime.Now,
                                    UpdatedDate        = DateTime.Now,
                                    CreatedBy          = userId,
                                    UpdatedBy          = userId,
                                };
                                await appContext.Material.AddAsync(mateNew);
                            }
                            await appContext.MaterialBranch.AddAsync(itemExistD);
                        }
                    }
                }
                return(await appContext.SaveChangesAsync() > 0);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }