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)); } }
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); }