public IHttpActionResult Get(string projectId) { var entity = ClosureMemo.Get(projectId); bool editable = false; var storeStatus = StoreBasicInfo.Search(s => s.StoreCode == entity.USCode).Select(s => s.statusName).FirstOrDefault(); if (storeStatus == "Closed") { editable = false; } else { if (TaskWork.Count(e => e.ReceiverAccount == ClientCookie.UserCode && e.SourceCode == FlowCode.Closure && e.TypeCode == FlowCode.Closure_Memo && e.RefID == projectId) > 0) { if (entity.Id == Guid.Empty) { editable = true; } else { if (entity.ClosureDate.Value < DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd") + " 00:00") && entity.ClosureNature == ClosureNatureType.Permanent) { editable = false; } else { editable = true; } } } else { editable = true; } } var isActor = ProjectUsers.IsRole(projectId, ClientCookie.UserCode, ProjectUserRoleCode.AssetActor); return(Ok(new { Entity = entity, Editable = editable, IsActor = isActor })); }
public IHttpActionResult Save(ClosureMemo entity) { using (TransactionScope tranScope = new TransactionScope()) { if (entity.Id != Guid.Empty) { ClosureMemo.Update(entity); } else { entity.Id = Guid.NewGuid(); entity.CreateTime = DateTime.Now; entity.Creator = ClientCookie.UserCode; ClosureMemo.Add(entity); } ClosureInfo closure = ClosureInfo.GetByProjectId(entity.ProjectId); closure.ActualCloseDate = entity.ClosureDate; closure.Update(); ProjectInfo.FinishNode(entity.ProjectId, FlowCode.Closure_Memo, NodeCode.Closure_ClosureMemo_Input); tranScope.Complete(); } return(Ok()); }