Пример #1
0
        public override void Finish(TaskWorkStatus status, TaskWork task)
        {
            using (var scope = new TransactionScope())
            {
                switch (status)
                {
                case TaskWorkStatus.K2ProcessApproved:
                    ProjectInfo.FinishNode(this.ProjectId, FlowCode.Closure_WOCheckList, NodeCode.Closure_WOCheckList_Approve, ProjectStatus.Finished);
                    //ProjectInfo.UpdateProjectStatus(this.ProjectId, FlowCode.Closure_WOCheckList, ProjectStatus.Finished);
                    //如果是从ClosurePackage Edit之后撤回Task的,添加ClosurePackage的Task
                    if (TaskWork.Count(i => i.RefID == task.RefID && i.TypeCode == FlowCode.Closure_ClosurePackage && i.Status == TaskWorkStatus.Cancel) > 0)
                    {
                        if (ProjectInfo.Any(e => e.ProjectId == task.RefID && e.Status == ProjectStatus.Finished && e.FlowCode == FlowCode.Closure_LegalReview))
                        {
                            var package = new ClosurePackage();
                            package.GeneratePackageTask(task.RefID);
                        }
                    }
                    //如果是从ExecutiveSummary Edit之后撤回Task的,添加ExecutiveSummary的Task
                    else if (TaskWork.Count(i => i.RefID == task.RefID && i.TypeCode == FlowCode.Closure_ExecutiveSummary && i.Status == TaskWorkStatus.Cancel) > 0)
                    {
                        var executiveSummary = new ClosureExecutiveSummary();
                        executiveSummary.GenerateExecutiveSummaryTask(task.RefID);
                    }
                    break;
                }

                scope.Complete();
            }
        }
Пример #2
0
        public static int UpdateEntity(ClosureTool entity)
        {
            if (!entity.CreateTime.HasValue)
            {
                entity.CreateTime = DateTime.Now;
            }
            if (string.IsNullOrEmpty(entity.CreateUserAccount))
            {
                entity.CreateUserAccount = ClientCookie.UserCode;
            }

            entity.LastUpdateTime         = DateTime.Now;
            entity.LastUpdateUserAccount  = ClientCookie.UserCode;
            entity.LastUpdateUserNameENUS = ClientCookie.UserNameENUS;
            entity.LastUpdateUserNameZHCN = ClientCookie.UserNameZHCN;

            if (entity.IsOptionOffered.HasValue && !entity.IsOptionOffered.Value)
            {
                entity.LeaseTerm              = null;
                entity.Investment             = null;
                entity.NPVRestaurantCashflows = null;
                entity.Yr1SOI         = null;
                entity.IRR            = null;
                entity.CompAssumption = null;
                entity.CashflowGrowth = null;
            }

            var result = Update(entity);

            var closureInfo = ClosureInfo.GetByProjectId(entity.ProjectId);

            if (closureInfo != null)
            {
                closureInfo.UpdateRelocation(entity.IsOptionOffered ?? false);
            }

            var closurePackage = ClosurePackage.Get(entity.ProjectId);

            if (closurePackage != null)
            {
                closurePackage.UpdateRelocation(entity.IsOptionOffered ?? false);
            }

            return(result);
        }
Пример #3
0
        public override void Finish(TaskWorkStatus status, TaskWork task)
        {
            switch (status)
            {
            case TaskWorkStatus.K2ProcessApproved:
                ProjectInfo.FinishNode(this.ProjectId, FlowCode.Closure_LegalReview, NodeCode.Closure_LegalReview_LegalConfirm, ProjectStatus.Finished);
                //ProjectInfo.UpdateProjectStatus(this.ProjectId, FlowCode.Closure_LegalReview, ProjectStatus.Finished);
                if (ProjectInfo.Any(e => e.ProjectId == ProjectId &&
                                    e.Status == ProjectStatus.Finished &&
                                    e.FlowCode == FlowCode.Closure_ExecutiveSummary))
                {
                    var package = new ClosurePackage();
                    package.GeneratePackageTask(ProjectId);
                    package.GeneratePackage(ProjectId);
                }

                break;
            }
        }
Пример #4
0
        /// <summary>
        /// Edit准备
        /// </summary>
        /// <param name="projectId"></param>
        /// <returns></returns>
        public bool PreEdit(string projectId)
        {
            //如果流程已经到了ClosurePackage审批环节就不能Edit
            if (ProjectInfo.IsFlowStarted(projectId, FlowCode.Closure_ClosurePackage))
            {
                return(false);
            }
            else
            {
                #region Package撤回
                var needWidthDraw = TaskWork.Count(i => i.TypeCode == FlowCode.Closure_ClosurePackage && i.RefID == projectId && i.Status == TaskWorkStatus.UnFinish) > 0;
                if (needWidthDraw)
                {
                    //任务取消
                    var taskList = TaskWork.Search(i => i.TypeCode == FlowCode.Closure_ClosurePackage && i.RefID == projectId && i.Status != TaskWorkStatus.Cancel).ToArray();
                    foreach (var taskItem in taskList)
                    {
                        taskItem.Status = TaskWorkStatus.Cancel;
                    }
                    if (taskList.Length > 0)
                    {
                        TaskWork.Update(taskList);
                    }

                    //Package数据isHistory置成true
                    var package = ClosurePackage.Search(i => i.ProjectId == projectId && i.IsHistory == false).ToArray();
                    foreach (var pacItem in package)
                    {
                        pacItem.IsHistory             = true;
                        pacItem.LastUpdateTime        = DateTime.Now;
                        pacItem.LastUpdateUserAccount = ClientCookie.UserCode;
                    }
                    if (package.Length > 0)
                    {
                        ClosurePackage.Update(package);
                    }
                }
                #endregion

                return(true);
            }
        }
Пример #5
0
        public override void Finish(TaskWorkStatus status, TaskWork task)
        {
            using (var scope = new TransactionScope())
            {
                switch (status)
                {
                case TaskWorkStatus.K2ProcessApproved:
                    ProjectInfo.FinishNode(this.ProjectId, FlowCode.Closure_ExecutiveSummary, NodeCode.Closure_ExecutiveSummary_Generate, ProjectStatus.Finished);
                    if (ProjectInfo.Any(e => e.ProjectId == ProjectId &&
                                        e.Status == ProjectStatus.Finished &&
                                        e.FlowCode == FlowCode.Closure_LegalReview))
                    {
                        var package = new ClosurePackage();
                        package.GeneratePackageTask(ProjectId);
                        package.GeneratePackage(ProjectId);
                    }
                    break;
                }

                scope.Complete();
            }
        }
Пример #6
0
        public void Save(bool pushOrNot)
        {
            using (TransactionScope tranScope = new TransactionScope())
            {
                var projectInfo = ProjectInfo.Get(Id);
                if (projectInfo == null)
                {
                    ProjectId = ProjectInfo.CreateDLProject(Id, FlowCode.Closure, USCode, NodeCode.Start, ClientCookie.UserCode, pushOrNot);

                    var closureInfo = new ClosureInfo();
                    closureInfo.Id                  = Guid.NewGuid();
                    closureInfo.ProjectId           = ProjectId;
                    closureInfo.USCode              = USCode;
                    closureInfo.ActualCloseDate     = CloseDate;
                    closureInfo.ClosureTypeCode     = ClosureTypeCode;
                    closureInfo.ClosureReasonCode   = ClosureReasonCode;
                    closureInfo.ClosureReasonRemark = ClosureReasonRemark;
                    closureInfo.RelocationCode      = RelocationCode;
                    closureInfo.CreateDate          = DateTime.Now;
                    closureInfo.CreateUserAccount   = ClientCookie.UserCode;
                    closureInfo.CreateUserNameENUS  = ClientCookie.UserNameENUS;
                    closureInfo.CreateUserNameZHCN  = ClientCookie.UserNameZHCN;
                    closureInfo.Add();

                    var closurePackage = new ClosurePackage();
                    closurePackage.Id                   = Guid.NewGuid();
                    closurePackage.ProjectId            = ProjectId;
                    closurePackage.RelocationPipelineID = RelocatedPipelineID;
                    closurePackage.IsHistory            = false;
                    closurePackage.CreateUserAccount    = ClientCookie.UserCode;
                    closurePackage.CreateTime           = DateTime.Now;
                    closurePackage.Add();

                    var closureConsInvtChecking = new ClosureConsInvtChecking();
                    closureConsInvtChecking.Id                = Guid.NewGuid();
                    closureConsInvtChecking.ProjectId         = ProjectId;
                    closureConsInvtChecking.IsHistory         = false;
                    closureConsInvtChecking.CreateTime        = DateTime.Now;
                    closureConsInvtChecking.TotalActual       = Closure_WO_Total_Act;
                    closureConsInvtChecking.ClosingCostActual = Closure_ClosingCost_Act;
                    closureConsInvtChecking.Add();

                    var closureMemo = new ClosureMemo();
                    closureMemo.Id            = Guid.NewGuid();
                    closureMemo.ProjectId     = ProjectId;
                    closureMemo.CreateTime    = DateTime.Now;
                    closureMemo.ClosureNature = ClosureNatureType.Permanent;
                    closureMemo.Status        = true;
                    closureMemo.Compensation  = Closure_Compensation_Act;
                    closureMemo.Add();
                }
                else
                {
                    ProjectId            = projectInfo.ProjectId;
                    projectInfo.IsPushed = pushOrNot;
                    projectInfo.Update();

                    var closureInfo = ClosureInfo.FirstOrDefault(i => i.ProjectId == ProjectId);
                    if (closureInfo != null)
                    {
                        closureInfo.ActualCloseDate     = CloseDate;
                        closureInfo.ClosureTypeCode     = ClosureTypeCode;
                        closureInfo.ClosureReasonCode   = ClosureReasonCode;
                        closureInfo.ClosureReasonRemark = ClosureReasonRemark;
                        closureInfo.RelocationCode      = RelocationCode;
                        closureInfo.Update();
                    }
                    else
                    {
                        closureInfo                     = new ClosureInfo();
                        closureInfo.Id                  = Guid.NewGuid();
                        closureInfo.ProjectId           = ProjectId;
                        closureInfo.USCode              = USCode;
                        closureInfo.ActualCloseDate     = CloseDate;
                        closureInfo.ClosureTypeCode     = ClosureTypeCode;
                        closureInfo.ClosureReasonCode   = ClosureReasonCode;
                        closureInfo.ClosureReasonRemark = ClosureReasonRemark;
                        closureInfo.RelocationCode      = RelocationCode;
                        closureInfo.CreateDate          = DateTime.Now;
                        closureInfo.CreateUserAccount   = ClientCookie.UserCode;
                        closureInfo.CreateUserNameENUS  = ClientCookie.UserNameENUS;
                        closureInfo.CreateUserNameZHCN  = ClientCookie.UserNameZHCN;
                        closureInfo.Add();
                    }

                    var closurePackage = ClosurePackage.Get(ProjectId);
                    if (closurePackage != null)
                    {
                        closurePackage.RelocationPipelineID = RelocatedPipelineID;
                        closurePackage.Update();
                    }
                    else
                    {
                        closurePackage                      = new ClosurePackage();
                        closurePackage.Id                   = Guid.NewGuid();
                        closurePackage.ProjectId            = ProjectId;
                        closurePackage.RelocationPipelineID = RelocatedPipelineID;
                        closurePackage.IsHistory            = false;
                        closurePackage.CreateUserAccount    = ClientCookie.UserCode;
                        closurePackage.CreateTime           = DateTime.Now;
                        closurePackage.Add();
                    }

                    var closureConsInvtChecking = ClosureConsInvtChecking.Get(ProjectId);
                    if (closureConsInvtChecking != null)
                    {
                        closureConsInvtChecking.TotalActual       = Closure_WO_Total_Act;
                        closureConsInvtChecking.ClosingCostActual = Closure_ClosingCost_Act;
                        closureConsInvtChecking.Update();
                    }
                    else
                    {
                        closureConsInvtChecking                   = new ClosureConsInvtChecking();
                        closureConsInvtChecking.Id                = Guid.NewGuid();
                        closureConsInvtChecking.ProjectId         = ProjectId;
                        closureConsInvtChecking.IsHistory         = false;
                        closureConsInvtChecking.CreateTime        = DateTime.Now;
                        closureConsInvtChecking.TotalActual       = Closure_WO_Total_Act;
                        closureConsInvtChecking.ClosingCostActual = Closure_ClosingCost_Act;
                        closureConsInvtChecking.Add();
                    }

                    var closureMemo = ClosureMemo.FirstOrDefault(i => i.ProjectId == ProjectId);
                    if (closureMemo != null)
                    {
                        closureMemo.Compensation = Closure_Compensation_Act;
                        closureMemo.Update();
                    }
                    else
                    {
                        closureMemo               = new ClosureMemo();
                        closureMemo.Id            = Guid.NewGuid();
                        closureMemo.ProjectId     = ProjectId;
                        closureMemo.CreateTime    = DateTime.Now;
                        closureMemo.ClosureNature = ClosureNatureType.Permanent;
                        closureMemo.Status        = true;
                        closureMemo.Compensation  = Closure_Compensation_Act;
                        closureMemo.Add();
                    }
                }
                tranScope.Complete();
            }
        }