Example #1
0
 bool checkPermis(T_TechProcessVersion obj, int actionUser, bool isOwner)
 {
     if (isOwner)
     {
         return(true);
     }
     return(obj.CreatedUser == actionUser);
 }
        public ResponseBase InsertOrUpdate(TechProcessVersionModel model)
        {
            try
            {
                using (db = new IEDEntities())
                {
                    var result = new ResponseBase();
                    T_TechProcessVersion       version   = null;
                    T_TechProcessVersionDetail verDetail = null;
                    model.Id = 0;
                    if (model.Id == 0)
                    {
                        version = new T_TechProcessVersion();
                        Parse.CopyObject(model, ref version);
                        version.CreatedDate = DateTime.Now;
                        version.CreatedUser = model.ActionUser;

                        if (model.details != null && model.details.Count > 0)
                        {
                            version.T_TechProcessVersionDetail = new Collection <T_TechProcessVersionDetail>();
                            foreach (var item in model.details)
                            {
                                verDetail = new T_TechProcessVersionDetail();
                                Parse.CopyObject(item, ref verDetail);
                                verDetail.T_TechProcessVersion = version;
                                verDetail.CreatedDate          = version.CreatedDate;
                                verDetail.CreatedUser          = version.CreatedUser;
                                version.T_TechProcessVersionDetail.Add(verDetail);
                            }
                        }
                        string query = "update T_TechProcessVersion set IsDeleted = 1 WHERE ParentId =" + version.ParentId;
                        db.Database.ExecuteSqlCommand(query);
                        db.T_TechProcessVersion.Add(version);
                    }
                    else
                    {
                        #region Update
                        version = db.T_TechProcessVersion.FirstOrDefault(x => !x.IsDeleted && x.Id == model.Id);
                        if (version == null)
                        {
                            result.IsSuccess = false;
                            result.Errors.Add(new Error()
                            {
                                MemberName = "Update", Message = "Dữ liệu bạn đang thao tác đã bị xóa hoặc không tồn tại. Vui lòng kiểm tra lại !."
                            });
                            return(result);
                        }
                        else
                        {
                            version.NumberOfWorkers      = model.NumberOfWorkers;
                            version.WorkingTimePerDay    = model.WorkingTimePerDay;
                            version.PacedProduction      = model.PacedProduction;
                            version.TimeCompletePerCommo = model.TimeCompletePerCommo;
                            version.ProOfGroupPerDay     = model.ProOfGroupPerDay;
                            version.ProOfGroupPerHour    = model.ProOfGroupPerHour;
                            version.ProOfPersonPerDay    = model.ProOfPersonPerDay;
                            version.Note           = model.Note;
                            version.UpdatedUser    = model.ActionUser;
                            version.UpdatedDate    = DateTime.Now;
                            version.PricePerSecond = model.PricePerSecond;
                            version.Allowance      = model.Allowance;

                            var details = db.T_TechProcessVersionDetail.Where(x => !x.IsDeleted && x.TechProcessVersionId == model.Id).OrderBy(x => x.Id).ToList();
                            if (details.Count > 0)
                            {
                                model.details = model.details.OrderBy(x => x.Id).ToList();
                                for (int i = 0; i < details.Count(); i++)
                                {
                                    details[i].Percent       = model.details[i].Percent;
                                    details[i].TimeByPercent = model.details[i].TimeByPercent;
                                    details[i].Worker        = model.details[i].Worker;
                                    details[i].Description   = model.details[i].Description;
                                    details[i].UpdatedUser   = model.ActionUser;
                                    details[i].UpdatedDate   = DateTime.Now;
                                }
                            }
                        }
                        #endregion
                    }
                    db.SaveChanges();
                    result.Data      = version.Id;
                    result.IsSuccess = true;

                    return(result);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }