Ejemplo n.º 1
0
        public void Save(MES_M202_Task task, List <MES_M202_Task_Detail> taskdtllist)
        {
            tb_Sys_User tempUser = appCacheService.GetItem("user") as tb_Sys_User;

            var existtask = this.GetById(task.Id);

            if (existtask == null)
            {
                task.CompCode   = tempUser.CompCode;
                task.CreateDt   = DateTime.Now;
                task.CreateUser = tempUser.UserName;
                task.Validate();
                this.MES_M202_TaskRepository.Add(task);
            }
            else
            {
                task.ModifyDt   = DateTime.Now;
                task.ModifyUser = tempUser.UserName;
                task.Validate();
                this.MES_M202_TaskRepository.SetValues(task, existtask);
            }
            foreach (var taskdtl in taskdtllist)
            {
                var existtaskdtl = MES_M202_TaskDetailRepository.GetByID(taskdtl.Id);
                var planDetail   = planDetailRepository.GetByID(taskdtl.PlanDetailId.ToGuidOrNull());
                if (existtaskdtl == null)
                {
                    taskdtl.CompCode   = tempUser.CompCode;
                    taskdtl.CreateDt   = DateTime.Now;
                    taskdtl.CreateUser = tempUser.UserName;
                    taskdtl.TaskNo     = task.TaskNo;
                    taskdtl.Validate();
                    this.MES_M202_TaskDetailRepository.Add(taskdtl);
                    planDetail.FQty += taskdtl.JobQty ?? 0;
                }
                else
                {
                    taskdtl.ModifyDt   = DateTime.Now;
                    taskdtl.ModifyUser = tempUser.UserName;
                    taskdtl.Validate();
                    planDetail.FQty += taskdtl.JobQty ?? 0 - existtaskdtl.JobQty ?? 0;
                    this.MES_M202_TaskDetailRepository.SetValues(taskdtl, existtaskdtl);
                }
            }

            this.runtimeService.Commit();
        }