public int Edit(ContractModification contractModificationModel)
        {
            string updateQuery = @"Update ContractModification set 
                                                                    ContractGuid					 = @ContractGuid			    ,
                                                                    ModificationNumber			     = @ModificationNumber			,
                                                                    ModificationType			     = @ModificationType			,
                                                                    AwardAmount				         = @AwardAmount				    ,
                                                                    EnteredDate				         = @EnteredDate				    ,
                                                                    EffectiveDate				     = @EffectiveDate				,
                                                                    POPStart						 = @POPStart					,	
                                                                    POPEnd						     = @POPEnd						,
                                                                    Description					     = @Description					,
                                                                    UploadedFileName				 = @UploadedFileName			,	
                                                                    ModificationTitle				 = @ModificationTitle			,	
                                                                    IsAwardAmount				    = @IsAwardAmount			,	
                                                                    IsFundingAmount				    = @IsFundingAmount			,	
                                                                    IsPop				            = @IsPop			,	
                                                                    FundingAmount				    = @FundingAmount			,	
                                                                    IsTaskModification               =@IsTaskModification,                 
                                                                    UpdatedOn						 = @UpdatedOn					,	
                                                                    UpdatedBy						 = @UpdatedBy					,	
                                                                    IsActive						 = @IsActive					,	
                                                                    IsDeleted                        = @IsDeleted                   
                                                                    where ContractModificationGuid    = @ContractModificationGuid";

            return(_context.Connection.Execute(updateQuery, contractModificationModel));
        }
 private Guid SaveAndNotifyRevenueRepresentative(ContractModification model)
 {
     try
     {
         var revenuedata = _revenueRecognitionService.GetAwardAmountDetail(model.ContractGuid);
         if (revenuedata != null)
         {
             bool isRevenueTriggered = RevenueRecognitionHelper.IsValidForRevenueRecognitionRequest(_configuration, revenuedata.ContractType, revenuedata.AwardAmount, revenuedata.FundingAmount);
             if (isRevenueTriggered)
             {
                 //Adding new revenue recognition for Mods
                 //_contractService.updateContractRevenueRecognitionGuid(model.ContractGuid, revenueRecognitionGuid);
                 Guid revenueRecognitionGuid = AddNewRevenueAndUpdateContractModRevenueGuid(model);
                 return(revenueRecognitionGuid);
             }
         }
         return(Guid.Empty);
     }
     catch (Exception ex)
     {
         var userGuid = UserHelper.CurrentUserGuid(HttpContext);
         EventLogHelper.Error(_eventLogger, new EventLog
         {
             EventGuid   = Guid.NewGuid(),
             Action      = "",
             Application = "ESS",
             EventDate   = DateTime.UtcNow,
             Message     = ex.Message,
             Resource    = ResourceType.Notification.ToString(),
             StackTrace  = ex.StackTrace,
             UserGuid    = userGuid
         });
         return(Guid.Empty);
     }
 }
        public int Add(ContractModification contractModificationModel)
        {
            string insertQuery = @"INSERT INTO [dbo].[ContractModification]
                                                                   (
                                                                    ContractModificationGuid						                    ,
                                                                    ContractGuid						                                ,
                                                                    ModificationNumber							                    ,
                                                                    ModificationType							                    ,
                                                                    AwardAmount				                                        ,
                                                                    EnteredDate				                                    ,
                                                                    EffectiveDate				                                        ,
                                                                    POPStart											            ,
                                                                    POPEnd						                                    ,     
                                                                    Description						                                    ,
                                                                    UploadedFileName						                            ,
                                                                    ModificationTitle						                            ,
                                                                    IsAwardAmount						                            ,
                                                                    IsFundingAmount						                            ,
                                                                    IsPop						                            ,
                                                                    FundingAmount						                            ,
                                                                    IsTaskModification,
                                                                    CreatedOn						                            ,
                                                                    UpdatedOn						                            ,
                                                                    CreatedBy						                            ,
                                                                    UpdatedBy						                            ,
                                                                    IsActive						                            ,
                                                                    IsDeleted                                                   
                                                                    )
                                  VALUES (
                                                                    @ContractModificationGuid						                    ,
                                                                    @ContractGuid						                                ,
                                                                    @ModificationNumber							                    ,
                                                                    @ModificationType							                    ,
                                                                    @AwardAmount				                            ,
                                                                    @EnteredDate				                            ,
                                                                    @EffectiveDate				                            ,
                                                                    @POPStart											            ,
                                                                    @POPEnd						                                    ,     
                                                                    @Description						                                    ,
                                                                    @UploadedFileName						                            ,
                                                                    @ModificationTitle						                            ,
                                                                    @IsAwardAmount						                            ,
                                                                    @IsFundingAmount						                            ,
                                                                    @IsPop						                            ,
                                                                    @FundingAmount						                            ,
                                                                    @IsTaskModification,
                                                                    @CreatedOn						                            ,
                                                                    @UpdatedOn						                            ,
                                                                    @CreatedBy						                            ,
                                                                    @UpdatedBy						                            ,
                                                                    @IsActive						                            ,
                                                                    @IsDeleted                                                   
                                                                )";

            return(_context.Connection.Execute(insertQuery, contractModificationModel));
        }
Ejemplo n.º 4
0
        private ContractModification MapModsToCoreMods(DMMods mods, Guid userGuid)
        {
            modsEntity = new ContractModification();

            if (string.IsNullOrWhiteSpace(mods.POPStart))
            {
                mods.POPStart = DateTime.UtcNow.ToShortDateString();
            }
            if (string.IsNullOrWhiteSpace(mods.POPEnd))
            {
                mods.POPEnd = DateTime.UtcNow.ToShortDateString();
            }
            if (string.IsNullOrWhiteSpace(mods.AwardAmount))
            {
                mods.AwardAmount = "0";
            }
            if (string.IsNullOrWhiteSpace(mods.FundingAmount))
            {
                mods.FundingAmount = "0";
            }

            modsEntity.ContractModificationGuid = mods.ContractModificationGuid;
            modsEntity.ContractGuid             = mods.ContractGuid;
            modsEntity.ProjectNumber            = mods.ProjectNumber;
            modsEntity.ModificationNumber       = mods.ModNumber;
            modsEntity.ModificationTitle        = mods.ModTitle;
            if (!string.IsNullOrWhiteSpace(mods.POPStart))
            {
                modsEntity.POPStart = DateTime.Parse(mods.POPStart);
            }
            if (!string.IsNullOrWhiteSpace(mods.POPEnd))
            {
                modsEntity.POPEnd = DateTime.Parse(mods.POPEnd);
            }
            if (!string.IsNullOrWhiteSpace(mods.AwardAmount))
            {
                modsEntity.AwardAmount = Decimal.Parse(mods.AwardAmount);
            }
            if (!string.IsNullOrWhiteSpace(mods.FundingAmount))
            {
                modsEntity.FundingAmount = Decimal.Parse(mods.FundingAmount);
            }
            modsEntity.CreatedOn = DateTime.UtcNow;
            modsEntity.IsActive  = true;
            modsEntity.IsDeleted = false;
            modsEntity.CreatedBy = userGuid;
            modsEntity.UpdatedBy = userGuid;
            modsEntity.UpdatedOn = DateTime.UtcNow;
            return(modsEntity);
        }
        private Guid AddNewRevenueAndUpdateContractModRevenueGuid(ContractModification model)
        {
            Guid revenueRecognitionGuid = Guid.NewGuid();
            bool isSaved = _revenueRecognitionService.AddRevenueWithResourceGuid(
                new RevenueRecognition
            {
                RevenueRecognizationGuid = revenueRecognitionGuid,
                ResourceGuid             = model.ContractModificationGuid,
                ContractGuid             = model.ContractGuid,
                UpdatedBy = model.UpdatedBy,
                UpdatedOn = model.UpdatedOn,
                CreatedBy = model.UpdatedBy,
                CreatedOn = model.UpdatedOn
            });

            if (isSaved)
            {
                _contractService.InsertRevenueRecognitionGuid(revenueRecognitionGuid, model.ContractGuid);
                _contractModificationService.InsertRevenueRecognitionGuid(revenueRecognitionGuid, model.ContractGuid);
                AddNotificationMessage(model);
                return(revenueRecognitionGuid);
            }
            return(Guid.Empty);
        }
 public int Edit(ContractModification contractModificationModel)
 {
     return(contractModificationRepository.Edit(contractModificationModel));
 }
 public int Add(ContractModification contractModificationModel)
 {
     return(contractModificationRepository.Add(contractModificationModel));
 }
        private bool AddNotificationMessage(ContractModification model)
        {
            try
            {
                var     notificationModel            = new GenericNotificationViewModel();
                var     notificationTemplatesDetails = new NotificationTemplatesDetail();
                var     userList        = new List <User>();
                var     receiverInfo    = new User();
                Guid?   receiverGuid    = Guid.Empty;
                decimal thresholdAmount = 0.00M;
                string  key             = string.Empty;
                if (model.IsUpdated)
                {
                    key = Infrastructure.Helpers.FormatHelper.ConcatResourceTypeAndAction(EnumGlobal.ResourceType.RevenueRecognition.ToString(),
                                                                                          EnumGlobal.ResourceAction.ContractModUpdate.ToString());
                }
                else
                {
                    key = Infrastructure.Helpers.FormatHelper.ConcatResourceTypeAndAction(EnumGlobal.ResourceType.RevenueRecognition.ToString(),
                                                                                          EnumGlobal.ResourceAction.ContractModCreate.ToString());
                }

                notificationModel.ResourceId              = model.ContractGuid;
                notificationModel.RedirectUrl             = _configuration.GetSection("SiteUrl").Value + ("/contract/Details/" + model.ContractGuid);
                notificationModel.NotificationTemplateKey = key;
                notificationModel.CurrentDate             = CurrentDateTimeHelper.GetCurrentDateTime();
                notificationModel.CurrentUserGuid         = UserHelper.CurrentUserGuid(HttpContext);
                notificationModel.SendEmail = true;


                var keyPersonnels = _contractService.GetKeyPersonnelByContractGuid(model.ContractGuid);

                if (keyPersonnels?.Any() == true)
                {
                    receiverGuid = keyPersonnels.FirstOrDefault(x => x.UserRole == ContractUserRole._contractRepresentative)?.UserGuid;
                    if (receiverGuid != Guid.Empty)
                    {
                        string contractTypeValue = _contractService.GetContractType(model.ContractGuid);

                        thresholdAmount = RevenueRecognitionHelper.GetAmountByContractType(_configuration, contractTypeValue);

                        receiverInfo = _userService.GetUserByUserGuid(receiverGuid ?? Guid.Empty);

                        var    resourcevalue = _resourceAttributeValueService.GetResourceAttributeValueByValue(contractTypeValue);
                        string contracttype  = string.Empty;
                        if (resourcevalue != null)
                        {
                            contracttype = resourcevalue.Name;
                        }

                        if (receiverInfo != null)
                        {
                            userList.Add(receiverInfo);
                            notificationModel.IndividualRecipients = userList;
                        }

                        var keyList = "<ul>";
                        keyList += "<li>" + receiverInfo.DisplayName + " (" + receiverInfo.JobTitle + ")" + "</li>";
                        StringBuilder additionalUser = new StringBuilder(keyList);

                        notificationTemplatesDetails.ContractNumber   = model.ContractNumber;
                        notificationTemplatesDetails.Title            = model.ContractTitle;
                        notificationTemplatesDetails.TaskOrderNumber  = model.ContractNumber;
                        notificationTemplatesDetails.ContractType     = contracttype;
                        notificationTemplatesDetails.ContractTitle    = model.ContractTitle;
                        notificationTemplatesDetails.ProjectNumber    = model.ProjectNumber;
                        notificationTemplatesDetails.AdditionalUser   = additionalUser.ToString();
                        notificationTemplatesDetails.ModNumber        = model.ModificationNumber;
                        notificationTemplatesDetails.ThresholdAmount  = thresholdAmount;
                        notificationTemplatesDetails.Status           = "";
                        notificationModel.NotificationTemplatesDetail = notificationTemplatesDetails;
                        _genericNotificationService.AddNotificationMessage(notificationModel);
                        return(true);
                    }
                }
                return(false);
            }
            catch (Exception ex)
            {
                var userGuid = UserHelper.CurrentUserGuid(HttpContext);
                EventLogHelper.Error(_eventLogger, new EventLog
                {
                    EventGuid   = Guid.NewGuid(),
                    Action      = "Index",
                    Application = "ESS",
                    EventDate   = DateTime.UtcNow,
                    Message     = ex.Message,
                    Resource    = ResourceType.Contract.ToString(),
                    StackTrace  = ex.StackTrace,
                    UserGuid    = userGuid
                });
                return(false);
            }
        }