/// <summary> /// Gets the type of the payment. /// </summary> /// <param name="contractId">The contract identifier.</param> /// <param name="contractServiceTypeId">The contract service type identifier.</param> /// <param name="medicareSequesterData">The medicare sequester data.</param> /// <returns></returns> // ReSharper disable UnusedParameter.Global - As if Future Medicare Sequester we need to apply at service-type level we don't need to change much logic. public static PaymentTypeMedicareSequester GetPaymentType(long?contractId, long?contractServiceTypeId, DataTable medicareSequesterData) // ReSharper restore UnusedParameter.Global { PaymentTypeMedicareSequester paymentTypeMedicareSequester = null; if (medicareSequesterData != null && medicareSequesterData.Rows.Count > 0) { paymentTypeMedicareSequester = (from DataRow row in medicareSequesterData.Rows where ((row["ContractId"] != DBNull.Value && GetValue <long>(row["ContractId"], typeof(long)) == contractId)) select new PaymentTypeMedicareSequester { ContractId = DBNull.Value == row["ContractId"] ? (long?)null : GetValue <long>( row["ContractId"], typeof(long)), Percentage = GetValue <long>( row["Percentage"], typeof(long)), PaymentTypeDetailId = GetValue <long>(row["PaymentTypeDetailID"], typeof(long)), PaymentTypeId = (byte)Enums.PaymentTypeCodes.MedicareSequester }).FirstOrDefault(); } return(paymentTypeMedicareSequester); }
/// <summary> /// Get Payment Type Medicare Sequester /// </summary> /// <param name="contractId"></param> /// <param name="serviceTypeId"></param> /// <param name="paymentTypeId"></param> /// <param name="isEdit"></param> /// <returns></returns> public ActionResult PaymentTypeMedicareSequester(long?contractId, long?serviceTypeId, int paymentTypeId, bool isEdit) { PaymentTypeMedicareSequesterViewModel paymentTypeMedicareSequesterViewModel = new PaymentTypeMedicareSequesterViewModel(); if (isEdit) { PaymentTypeMedicareSequester paymentTypeMedicareSequester = new PaymentTypeMedicareSequester { ServiceTypeId = serviceTypeId, ContractId = contractId, PaymentTypeId = paymentTypeId, UserName = GetCurrentUserName() }; PaymentTypeMedicareSequester paymentTypeMedicareSequesteViewModelInfo = PostApiResponse <PaymentTypeMedicareSequester>(Constants.PaymentTypeMedicareSequester, Constants.GetPaymentMedicareSequester, paymentTypeMedicareSequester); paymentTypeMedicareSequesterViewModel = AutoMapper.Mapper.Map <PaymentTypeMedicareSequester, PaymentTypeMedicareSequesterViewModel>(paymentTypeMedicareSequesteViewModelInfo); } paymentTypeMedicareSequesterViewModel.ContractId = contractId; paymentTypeMedicareSequesterViewModel.ServiceTypeId = serviceTypeId; paymentTypeMedicareSequesterViewModel.PaymentTypeId = paymentTypeId; paymentTypeMedicareSequesterViewModel.IsEdit = isEdit; return(View(paymentTypeMedicareSequesterViewModel)); }
/// <summary> /// Get Payment Type Medicare Sequester. /// </summary> /// <param name="paymentTypeMedicareSequester"></param> /// <returns></returns> public PaymentTypeMedicareSequester GetPaymentTypeMedicareSequester(PaymentTypeMedicareSequester paymentTypeMedicareSequester) { // Initialize the Stored Procedure _databaseCommand = _databaseObj.GetStoredProcCommand("GetServiceLinesandPaymentTypes"); // Pass parameters to Stored Procedure(i.e., @ParamName), add values for _databaseObj.AddInParameter(_databaseCommand, "@PaymentTypeID ", DbType.Int64, paymentTypeMedicareSequester.PaymentTypeId); _databaseObj.AddInParameter(_databaseCommand, "@ContractID", DbType.Int64, paymentTypeMedicareSequester.ContractId); _databaseObj.AddInParameter(_databaseCommand, "@ContractServiceTypeID", DbType.Int64, paymentTypeMedicareSequester.ServiceTypeId); _databaseObj.AddInParameter(_databaseCommand, "@ServiceLineTypeId", DbType.Int64, 0); _databaseObj.AddInParameter(_databaseCommand, "@UserName", DbType.String, paymentTypeMedicareSequester.UserName); // Retrieve the results of the Stored Procedure in Datatable DataSet paymentTypePerCaseDataSet = _databaseObj.ExecuteDataSet(_databaseCommand); if (paymentTypePerCaseDataSet != null && paymentTypePerCaseDataSet.Tables.Count > 0 && (paymentTypePerCaseDataSet.Tables[0] != null && paymentTypePerCaseDataSet.Tables[0].Rows.Count > 0)) { PaymentTypeMedicareSequester paymentMedicareSequester = new PaymentTypeMedicareSequester { Percentage = GetValue <double?>(paymentTypePerCaseDataSet.Tables[0].Rows[0]["Percentage"], typeof(double)), PaymentTypeDetailId = GetValue <long>(paymentTypePerCaseDataSet.Tables[0].Rows[0]["PaymentTypeDetailID"], typeof(long)) }; return(paymentMedicareSequester); } //returns response to Business layer return(null); }
public JsonResult AddEditPaymentMedicareSequester(PaymentTypeMedicareSequesterViewModel info) { PaymentTypeMedicareSequester medicareSequesterPaymentInfo = AutoMapper.Mapper.Map <PaymentTypeMedicareSequesterViewModel, PaymentTypeMedicareSequester>(info); //Get the Name of User logged in medicareSequesterPaymentInfo.UserName = GetCurrentUserName(); long medicareSequesterId = PostApiResponse <long>(Constants.PaymentTypeMedicareSequester, Constants.AddEditPaymentMedicareSequester, medicareSequesterPaymentInfo); return(medicareSequesterId > 0 ? Json(new { sucess = true, Id = medicareSequesterId }) : Json(new { sucess = false })); }
public void AddNewPaymentTypeMedicareSequesterValueTest() { var mockAddNewPaymentTypeMedicareSequester = new Mock <IPaymentTypeMedicareSequesterRepository>(); mockAddNewPaymentTypeMedicareSequester.Setup(f => f.AddEditPaymentTypeMedicareSequester(It.IsAny <PaymentTypeMedicareSequester>())).Returns(1); PaymentTypeMedicareSequesterLogic target = new PaymentTypeMedicareSequesterLogic(mockAddNewPaymentTypeMedicareSequester.Object); PaymentTypeMedicareSequester paymentTypeMedicareSequester = new PaymentTypeMedicareSequester { PaymentTypeDetailId = 1 }; long actual = target.AddEditPaymentType(paymentTypeMedicareSequester); Assert.AreEqual(1, actual); }
public void GetPaymentTypeMedicareSequesterIfParameterIsNullTest() { //Mock Input PaymentTypeMedicareSequester paymentTypePercentageDiscount = new PaymentTypeMedicareSequester { PaymentTypeId = 0, ContractId = 0, ServiceTypeId = 0 }; //Mock output PaymentTypeMedicareSequester expectedResult = new PaymentTypeMedicareSequester { Percentage = 0, PaymentTypeDetailId = 0 }; var mockGetPaymentTypeMedicareSequester = new Mock <IPaymentTypeMedicareSequesterRepository>(); mockGetPaymentTypeMedicareSequester.Setup(f => f.GetPaymentTypeMedicareSequester(paymentTypePercentageDiscount)).Returns(expectedResult); PaymentTypeMedicareSequesterLogic target = new PaymentTypeMedicareSequesterLogic(mockGetPaymentTypeMedicareSequester.Object); PaymentTypeMedicareSequester actual = (PaymentTypeMedicareSequester)target.GetPaymentType(paymentTypePercentageDiscount); Assert.AreEqual(expectedResult.Percentage, actual.Percentage); Assert.AreEqual(expectedResult.PaymentTypeDetailId, actual.PaymentTypeDetailId); }
//FIXED-2016-R3-S2 : Naming convention of stored procedure parameter is wrong. It should be Pascal naming convention. Eg. @Paymenttypedetailid should be @PaymentTypeDetailID. /// <summary> /// Add and edit payment type Medicare Sequester. /// </summary> /// <param name="paymentTypePerCase">The payment type Medicare Sequester.</param> /// <returns></returns> public long AddEditPaymentTypeMedicareSequester(PaymentTypeMedicareSequester paymentTypePerCase) { //Checks if input request is not null if (paymentTypePerCase != null) { // Initialize the Stored Procedure _databaseCommand = _databaseObj.GetStoredProcCommand("AddEditMedicareSequesterPayment"); // Pass parameters to Stored Procedure(i.e., @ParamName), add values for _databaseObj.AddInParameter(_databaseCommand, "@PaymenTypeDetailId", DbType.Int64, paymentTypePerCase.PaymentTypeDetailId); _databaseObj.AddInParameter(_databaseCommand, "@Percentage", DbType.Decimal, paymentTypePerCase.Percentage); _databaseObj.AddInParameter(_databaseCommand, "@PaymentTypeId", DbType.Int64, paymentTypePerCase.PaymentTypeId); _databaseObj.AddInParameter(_databaseCommand, "@ContractId", DbType.Int64, paymentTypePerCase.ContractId); _databaseObj.AddInParameter(_databaseCommand, "@ContractServiceTypeId", DbType.Int64, paymentTypePerCase.ServiceTypeId); _databaseObj.AddInParameter(_databaseCommand, "@UserName", DbType.String, paymentTypePerCase.UserName); // Retrieve the results of the Stored Procedure in Datatable return(long.Parse(_databaseObj.ExecuteScalar(_databaseCommand).ToString())); } return(0); }
public PaymentTypeMedicareSequester GetPaymentMedicareSequester(PaymentTypeMedicareSequester paymentMedicareSequester) { return((PaymentTypeMedicareSequester)_paymentTypeMedicareSequesterLogic.GetPaymentType(paymentMedicareSequester)); }
public long AddEditPaymentMedicareSequester(PaymentTypeMedicareSequester paymentMedicareSequester) { return(_paymentTypeMedicareSequesterLogic.AddEditPaymentType(paymentMedicareSequester)); }
public void EvaluateIfAdjudicatedValueIsNotNullTest() { List <PaymentResult> paymentResults = new List <PaymentResult> { new PaymentResult { ClaimId = 123, AdjudicatedValue = 350, ClaimTotalCharges = 110, ServiceTypeId = 1 }, new PaymentResult { ClaimId = 123, Line = 1, AdjudicatedValue = 85, ClaimTotalCharges = 110, ServiceTypeId = 1 } }; // Arrange var mockContractServiceTypeLogic = new Mock <IContractServiceTypeLogic>(); var mockPaymentResultLogic = new Mock <IPaymentResultLogic>(); mockPaymentResultLogic.Setup( x => x.Evaluate(It.IsAny <EvaluateableClaim>(), It.IsAny <List <PaymentResult> >(), It.IsAny <bool>(), It.IsAny <bool>())).Returns(paymentResults); Mock <IPaymentTypeMedicareSequesterRepository> paymentTypeMedicareSequesterRepository = new Mock <IPaymentTypeMedicareSequesterRepository>(); paymentTypeMedicareSequesterRepository.Setup(x => x.GetPaymentTypeMedicareSequester(It.IsAny <PaymentTypeMedicareSequester>())) .Returns(new PaymentTypeMedicareSequester()); PaymentTypeMedicareSequester paymentTypeMedicareSequester = new PaymentTypeMedicareSequester { Conditions = new List <ICondition> { new Condition { ConditionOperator = (byte)Enums.ConditionOperation.EqualTo, LeftOperands = new List <string> { "300" }, OperandType = (byte)Enums.OperandIdentifier.HcpcsCode, RightOperand = "300" } }, ServiceTypeId = 1, ValidLineIds = new List <int> { 1, 2 }, HcpcsCode = "ABCDE", ContractId = 1, Percentage = 50 }; _target = new PaymentTypeMedicareSequesterLogic(paymentTypeMedicareSequesterRepository.Object) { PaymentTypeBase = paymentTypeMedicareSequester }; IEvaluateableClaim evaluateableClaim = new EvaluateableClaim { PatientResponsibility = 25 }; evaluateableClaim.ClaimId = 123; evaluateableClaim.ClaimTotal = 100; evaluateableClaim.ClaimCharges = new List <ClaimCharge> { new ClaimCharge { Line = 1, Amount = 20, RevCode = "250" } }; List <PaymentResult> updatedPaymentResults = new List <PaymentResult> { new PaymentResult { ClaimId = 123, ContractId = 1, AdjudicatedValue = 110, ClaimTotalCharges = 110, ServiceTypeId = 1 }, new PaymentResult { ClaimId = 123, Line = 1, ContractId = 1, AdjudicatedValue = 110, ClaimTotalCharges = 110, ServiceTypeId = 1 } }; Mock <ContractBaseLogic> mockContractBaseLogic = new Mock <ContractBaseLogic>(); mockContractServiceTypeLogic.Setup(x => x.Evaluate(evaluateableClaim, paymentResults, false, false)) .Returns(updatedPaymentResults); mockContractBaseLogic.SetupAllProperties(); //Act List <PaymentResult> actual = _target.EvaluatePaymentType(evaluateableClaim, paymentResults, false, false); // Assert Assert.AreEqual(2, actual.Count); var firstOrDefault = paymentResults.FirstOrDefault(); if (firstOrDefault != null) { Assert.AreEqual(162.5, firstOrDefault.MedicareSequesterAmount); } if (firstOrDefault != null) { Assert.AreEqual(187.5, firstOrDefault.AdjudicatedValue); } }