コード例 #1
0
        public ActionResult SaveRevenueRecognition(RevenueRecognitionViewModel model)
        {
            try
            {
                var    loggedUser        = new Guid(HttpContext.User.Identity.Name);
                string userName          = "";
                var    loggedUserDetails = _userService.GetUserByUserGuid(loggedUser);
                if (loggedUserDetails != null)
                {
                    userName = loggedUserDetails.DisplayName;
                }
                DateTime currentdatetime             = CurrentDateTimeHelper.GetCurrentDateTime();
                string   date                        = currentdatetime.ToString("MM/dd/yyyy");
                var      recognitionEntity           = _mapper.Map <RevenueRecognition>(model);
                var      contractExtensionEntityList = _mapper.Map <List <RevenueContractExtension> >(model.ListContractExtension);
                var      obligationEntityList        = _mapper.Map <List <RevenuePerformanceObligation> >(model.ListRevenuePerformanceObligation);
                switch (model.CrudType)
                {
                case CrudType.Create:
                    recognitionEntity.CreatedOn = currentdatetime;
                    recognitionEntity.CreatedBy = loggedUser;
                    recognitionEntity.UpdatedOn = currentdatetime;
                    recognitionEntity.UpdatedBy = loggedUser;
                    recognitionEntity.IsActive  = true;
                    recognitionEntity.IsDeleted = false;
                    model.CrudType = CrudType.Edit;
                    _revenueRecognitionService.UpdateRevenueRecognition(recognitionEntity);

                    //audit log..
                    var additionalInformation    = string.Format("{0} {1} the {2}", User.FindFirst("fullName").Value, CrudTypeForAdditionalLogMessage.Added.ToString(), "Revenue Recognition");
                    var additionalInformationURl = _configuration.GetSection("SiteUrl").Value + ("/Contract/Details/" + recognitionEntity.ContractGuid);
                    var resource = string.Format("{0} </br> GUID:{1}", "Revenue Recognition", recognitionEntity.RevenueRecognizationGuid);
                    AuditLogHandler.InfoLog(_logger, User.FindFirst("fullName").Value, UserHelper.CurrentUserGuid(HttpContext), recognitionEntity, resource, recognitionEntity.RevenueRecognizationGuid, UserHelper.GetHostedIp(HttpContext), "Revenue Recognition Added", Guid.Empty, "Successful", "", additionalInformationURl, additionalInformationURl);
                    //end of log..

                    return(Ok(new { model.CrudType, updatedby = userName, updatedon = date, revenueGuid = recognitionEntity.RevenueRecognizationGuid, isnotify = false, CurrentStage = model.CurrentStage, contractGuid = model.ContractGuid }));

                case CrudType.Edit:
                    var recognitionEntitydata = _revenueRecognitionService.GetDetailsById(model.RevenueRecognizationGuid);
                    recognitionEntity.CreatedBy = recognitionEntitydata.CreatedBy;
                    recognitionEntity.CreatedOn = recognitionEntitydata.CreatedOn;
                    recognitionEntity.UpdatedBy = loggedUser;
                    recognitionEntity.UpdatedOn = currentdatetime;
                    if (!CheckAuthorization(recognitionEntity.ContractGuid, model.IsAccountRepresentive))
                    {
                        throw new Exception("Not an authorized user!!");
                    }
                    switch (model.CurrentStage)
                    {
                    case "#tab_5":
                        recognitionEntity.IsNotify    = true;
                        recognitionEntity.IsCompleted = true;
                        _contractRefactorService.InsertRevenueRecognitionGuid(recognitionEntity.RevenueRecognizationGuid, recognitionEntity.ContractGuid);
                        _contractModificationService.InsertRevenueRecognitionGuid(recognitionEntity.RevenueRecognizationGuid, recognitionEntity.ContractGuid);
                        break;

                    case "#tab_4":
                        var notificationbatch = _notificationBatchService.GetByResourceId(recognitionEntity.RevenueRecognizationGuid);
                        if (notificationbatch == null)
                        {
                            SaveAndNotifyAccountingRepresentative(recognitionEntity);
                        }
                        recognitionEntity.IsNotify = true;
                        _revenueRecognitionService.UpdateIsNotify(recognitionEntity.RevenueRecognizationGuid);
                        break;
                    }
                    _revenueRecognitionService.UpdateRevenueRecognition(recognitionEntity);

                    //audit log..
                    if (!string.IsNullOrEmpty(model.CurrentStage))
                    {
                        if (model.CurrentStage.Equals("#tab_5") || model.CurrentStage.Equals("#tab_4"))
                        {
                            additionalInformation    = string.Format("{0} {1} the {2}", User.FindFirst("fullName").Value, CrudTypeForAdditionalLogMessage.Edited.ToString(), "Revenue Recognition");
                            additionalInformationURl = _configuration.GetSection("SiteUrl").Value + ("/Contract/Details/" + recognitionEntity.ContractGuid);
                            resource = string.Format("{0} </br> GUID:{1}", "Revenue Recognition", recognitionEntity.RevenueRecognizationGuid);
                            AuditLogHandler.InfoLog(_logger, User.FindFirst("fullName").Value, UserHelper.CurrentUserGuid(HttpContext), recognitionEntity, resource, recognitionEntity.RevenueRecognizationGuid, UserHelper.GetHostedIp(HttpContext), "Revenue Recognition Edited", Guid.Empty, "Successful", "", additionalInformationURl, additionalInformationURl);
                        }
                    }
                    //end of log..

                    if (recognitionEntity.IsContractTermExpansion)
                    {
                        SaveContractExtension(contractExtensionEntityList, recognitionEntity.RevenueRecognizationGuid);
                    }
                    SaveObligationEntity(obligationEntityList, recognitionEntity.RevenueRecognizationGuid);
                    return(Ok(new { model.CrudType, revenueGuid = model.RevenueRecognizationGuid, updatedby = userName, updatedon = date, isnotify = true, CurrentStage = model.CurrentStage, contractGuid = model.ContractGuid }));
                }
                return(Ok(new { status = ResponseStatus.success.ToString(), message = "Successfully Added !!", model.CrudType }));
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", ex.Message);
                return(BadRequest(ModelState));
            }
        }
コード例 #2
0
        private RevenueRecognitionViewModel GetContractDetailForExport(Guid id)
        {
            var result        = new RevenueRecognitionViewModel();
            var basicContract = _contractRefactorService.GetBasicContractById(id);
            var keyPersonnel  = _contractRefactorService.GetKeyPersonnelByContractGuid(id);

            if (basicContract != null)
            {
                var entityCode = new EntityCode();
                if (basicContract.ORGID != null && basicContract.ORGID != Guid.Empty)
                {
                    var orgName = _contractRefactorService.GetOrgNameById(basicContract.ORGID);
                    if (orgName != null)
                    {
                        if (orgName.Contains("."))
                        {
                            var splitedValue = orgName.Split(".");
                            entityCode.CompanyCode = splitedValue[0];
                            entityCode.OfficeCode  = splitedValue[1];
                            entityCode.RegionCode  = splitedValue[2];
                            var basicInfo = _contractRefactorService.GetCompanyRegionAndOfficeNameByCode(entityCode);
                            basicContract.CompanyName = basicInfo.CompanyName;
                        }
                    }
                }
                basicContract.CompanyName     = string.IsNullOrEmpty(basicContract.CompanyName) ? "N/A" : basicContract.CompanyName;
                basicContract.ContractNumber  = string.IsNullOrEmpty(basicContract.CompanyName) ? "N/A" : basicContract.ContractNumber;
                basicContract.ContractTitle   = string.IsNullOrEmpty(basicContract.CompanyName) ? "N/A" : basicContract.ContractTitle;
                basicContract.ProjectNumber   = string.IsNullOrEmpty(basicContract.CompanyName) ? "N/A" : basicContract.ProjectNumber;
                result.BasicContractInfoModel = basicContract;
            }
            else
            {
                var basicContractData = new BasicContractInfoModel();
                basicContractData.CompanyName    = "N/A";
                basicContractData.ContractNumber = "N/A";
                basicContractData.ContractTitle  = "N/A";
                basicContractData.ProjectNumber  = "N/A";
                result.BasicContractInfoModel    = basicContractData;
            }

            if (keyPersonnel != null)
            {
                var projectManager    = keyPersonnel.FirstOrDefault(x => x.UserRole == ContractUserRole._projectManager);
                var accountingManager = keyPersonnel.FirstOrDefault(x => x.UserRole == ContractUserRole._accountRepresentative);

                if (projectManager != null)
                {
                    var user = _userService.GetUserByUserGuid(projectManager.UserGuid);
                    result.ProjectManagerName = user.DisplayName;
                }
                else
                {
                    result.ProjectManagerName = "N/A";
                }
                if (accountingManager != null)
                {
                    var user = _userService.GetUserByUserGuid(accountingManager.UserGuid);
                    result.AccountingRepresentativeName = user.DisplayName;
                }
                else
                {
                    result.AccountingRepresentativeName = "N/A";
                }
            }
            else
            {
                result.ProjectManagerName           = "N/A";
                result.AccountingRepresentativeName = "N/A";
            }
            return(result);
        }