/// <summary>
        /// Gets the payment type cap.
        /// </summary>
        /// <param name="contractId">The contract identifier.</param>
        /// <param name="contractServiceTypeId">The contract service type identifier.</param>
        /// <param name="dtCapTable">The dt cap table.</param>
        /// <returns></returns>
        public static PaymentTypeCap GetPaymentType(long?contractId, long?contractServiceTypeId, DataTable dtCapTable)
        {
            PaymentTypeCap paymentTypeCap = null;

            if (dtCapTable != null && dtCapTable.Rows.Count > 0)
            {
                paymentTypeCap = (from DataRow row in dtCapTable.Rows
                                  where
                                  ((row["ContractId"] != DBNull.Value &&
                                    Convert.ToInt64(row["ContractId"]) == contractId)
                                   ||
                                   (row["contractServiceTypeId"] != DBNull.Value &&
                                    Convert.ToInt64(row["contractServiceTypeId"]) == contractServiceTypeId))
                                  select new PaymentTypeCap
                {
                    ContractId = DBNull.Value == row["ContractId"]
                                          ? (long?)null
                                          : Convert.ToInt64(
                        row["ContractId"]),
                    ServiceTypeId =
                        DBNull.Value == row["ContractServiceTypeID"]
                                              ? (long?)null
                                              : Convert.ToInt64(
                            row["ContractServiceTypeID"]),
                    Threshold = DBNull.Value == row["Threshold"]
                                          ? (double?)null
                                          : Convert.ToDouble(
                        row["Threshold"]),
                    PaymentTypeDetailId = Convert.ToInt64(row["PaymentTypeDetailID"]),
                    PaymentTypeId = (byte)Enums.PaymentTypeCodes.Cap
                }).FirstOrDefault();
            }
            return(paymentTypeCap);
        }
Пример #2
0
        /// <summary>
        /// Payments the type cap details.
        /// </summary>
        /// <param name="contractId">The contract unique identifier.</param>
        /// <param name="serviceTypeId">The service type unique identifier.</param>
        /// <param name="paymentTypeId">The payment type unique identifier.</param>
        /// <param name="isEdit">if set to <c>true</c> [is edit].</param>
        /// <returns></returns>
        public ActionResult PaymentTypeCap(long?contractId, long?serviceTypeId, int paymentTypeId, bool isEdit)
        {
            PaymentTypeCapViewModel modelPaymentTypeCapViewModel = new PaymentTypeCapViewModel();

            if (isEdit)
            {
                PaymentTypeCap paymentTypeCapForPost = new PaymentTypeCap
                {
                    ServiceTypeId = serviceTypeId,
                    ContractId    = contractId,
                    PaymentTypeId = paymentTypeId,
                    UserName      = GetCurrentUserName()
                };

                //Get the Name of User logged in
                PaymentTypeCap medicareIpInfo =
                    PostApiResponse <PaymentTypeCap>("PaymentTypeCap",
                                                     "GetPaymentTypeCap",
                                                     paymentTypeCapForPost);

                modelPaymentTypeCapViewModel = AutoMapper.Mapper.Map <PaymentTypeCap, PaymentTypeCapViewModel>(medicareIpInfo);
            }

            modelPaymentTypeCapViewModel.ContractId    = contractId;
            modelPaymentTypeCapViewModel.ServiceTypeId = serviceTypeId;
            modelPaymentTypeCapViewModel.PaymentTypeId = paymentTypeId;
            modelPaymentTypeCapViewModel.IsEdit        = isEdit;
            return(View(modelPaymentTypeCapViewModel));
        }
Пример #3
0
        public JsonResult AddEditPaymentTypeCap(PaymentTypeCapViewModel paymentTypeCapInfo)
        {
            PaymentTypeCap pTypeCaP = AutoMapper.Mapper.Map <PaymentTypeCapViewModel, PaymentTypeCap>(paymentTypeCapInfo);

            //Get the Name of User logged in
            pTypeCaP.UserName = GetCurrentUserName();
            long pTypeCapId = PostApiResponse <long>("PaymentTypeCap", "AddEditPaymentTypeCap", pTypeCaP);

            return(pTypeCapId > 0 ? Json(new { sucess = true, Id = pTypeCapId }) : Json(new { sucess = false }));
        }
        public void AddEditPaymentTypeCapDetailsifNotNull()
        {
            _mockPaymentTypeCapRepository = new Mock <IPaymentTypeCapRepository>();
            _mockPaymentTypeCapRepository.Setup(f => f.AddEditPaymentTypeCapDetails(It.IsAny <PaymentTypeCap>())).Returns(1);
            _target = new PaymentTypeCapLogic(_mockPaymentTypeCapRepository.Object);
            PaymentTypeCap objAddEditPaymentTypeCapDetails = new PaymentTypeCap {
                PaymentTypeDetailId = 1
            };

            long actual = _target.AddEditPaymentType(objAddEditPaymentTypeCapDetails);

            Assert.AreEqual(1, actual);
        }
        public void GetPaymentTypeCapDetailsTestifNotNull()
        {
            _mockPaymentTypeCapRepository = new Mock <IPaymentTypeCapRepository>();
            _mockPaymentTypeCapRepository.Setup(f => f.GetPaymentTypeCapDetails(It.IsAny <PaymentTypeCap>()));
            _target = new PaymentTypeCapLogic(_mockPaymentTypeCapRepository.Object);
            PaymentTypeCap objGetPaymentTypeCapDetails = new PaymentTypeCap {
                PaymentTypeDetailId = 1
            };

            PaymentTypeCap actual = (PaymentTypeCap)_target.GetPaymentType(objGetPaymentTypeCapDetails);

            Assert.IsNull(actual);
        }
        public void GetPaymentTypeCapDetailsTestifNull()
        {
            PaymentTypeCap objGetPaymentTypeCapDetails = new PaymentTypeCap {
                Threshold = 1
            };

            _mockPaymentTypeCapRepository = new Mock <IPaymentTypeCapRepository>();
            _mockPaymentTypeCapRepository.Setup(f => f.GetPaymentTypeCapDetails(It.IsAny <PaymentTypeCap>())).Returns(objGetPaymentTypeCapDetails);
            _target = new PaymentTypeCapLogic(_mockPaymentTypeCapRepository.Object);

            PaymentTypeCap actual = (PaymentTypeCap)_target.GetPaymentType(null);

            Assert.AreEqual(1, actual.Threshold);
        }
        /// <summary>
        /// AddEdit PaymentType Cap Details
        /// </summary>
        /// <param name="paymentTypeCap"></param>
        /// <returns></returns>
        public long AddEditPaymentTypeCapDetails(PaymentTypeCap paymentTypeCap)
        {
            //Checks if input request is not null
            if (paymentTypeCap != null)
            {
                // Initialize the Stored Procedure
                _cmd = _db.GetStoredProcCommand("AddEditCAPPayment");
                // Pass parameters to Stored Procedure(i.e., @ParamName), add values for
                _db.AddInParameter(_cmd, "@PaymentTypeDetailID", DbType.Int64, paymentTypeCap.PaymentTypeDetailId);
                _db.AddInParameter(_cmd, "@Threshold ", DbType.Decimal, paymentTypeCap.Threshold);
                _db.AddInParameter(_cmd, "@Percentage ", DbType.Int64, paymentTypeCap.Percentage);
                _db.AddInParameter(_cmd, "@PaymentTypeID ", DbType.Int64, paymentTypeCap.PaymentTypeId);
                _db.AddInParameter(_cmd, "@ContractID", DbType.Int64, paymentTypeCap.ContractId);
                _db.AddInParameter(_cmd, "@ContractServiceTypeID", DbType.Int64, paymentTypeCap.ServiceTypeId);
                _db.AddInParameter(_cmd, "@UserName", DbType.String, paymentTypeCap.UserName);

                // Retrieve the results of the Stored Procedure in Datatable
                return(long.Parse(_db.ExecuteScalar(_cmd).ToString()));
            }

            return(0);
        }
        /// <summary>
        /// Get PaymentType Cap Details
        /// </summary>
        /// <param name="paymentTypeCap"></param>
        /// <returns></returns>
        public PaymentTypeCap GetPaymentTypeCapDetails(PaymentTypeCap paymentTypeCap)
        {
            if (paymentTypeCap != null)
            {
                // Initialize the Stored Procedure
                _cmd = _db.GetStoredProcCommand("GetServiceLinesandPaymentTypes");
                // Pass parameters to Stored Procedure(i.e., @ParamName), add values for
                _db.AddInParameter(_cmd, "@PaymentTypeID ", DbType.Int64, paymentTypeCap.PaymentTypeId);
                _db.AddInParameter(_cmd, "@ContractID", DbType.Int64, paymentTypeCap.ContractId);
                _db.AddInParameter(_cmd, "@ContractServiceTypeID", DbType.Int64, paymentTypeCap.ServiceTypeId);
                _db.AddInParameter(_cmd, "@ServiceLineTypeId", DbType.Int64, 0);
                _db.AddInParameter(_cmd, "@UserName", DbType.String, paymentTypeCap.UserName);

                // Retrieve the results of the Stored Procedure in Datatable
                DataSet paymentTypeCapDataSet = _db.ExecuteDataSet(_cmd);
                if (paymentTypeCapDataSet != null && paymentTypeCapDataSet.Tables.Count > 0)
                {
                    //populating paymentTypeCap data
                    if (paymentTypeCapDataSet.Tables[0].Rows != null && paymentTypeCapDataSet.Tables[0] != null && paymentTypeCapDataSet.Tables[0].Rows.Count > 0)
                    {
                        PaymentTypeCap paymentCap = new PaymentTypeCap
                        {
                            Threshold =
                                DBNull.Value == paymentTypeCapDataSet.Tables[0].Rows[0]["Threshold"]
                                    ? (double?)null
                                    : Convert.ToDouble(paymentTypeCapDataSet.Tables[0].Rows[0]["Threshold"]),
                            Percentage =
                                DBNull.Value == paymentTypeCapDataSet.Tables[0].Rows[0]["Percentage"]
                                    ? (double?)null
                                    : Convert.ToDouble(paymentTypeCapDataSet.Tables[0].Rows[0]["Percentage"]),
                            PaymentTypeDetailId = Convert.ToInt64(paymentTypeCapDataSet.Tables[0].Rows[0]["PaymentTypeDetailID"])
                        };
                        return(paymentCap);
                    }
                }
            }
            return(null);
        }
        public void ContractFilterTest()
        {
            List <PaymentResult> paymentResults = new List <PaymentResult>
            {
                new PaymentResult {
                    ClaimId = 123, Line = 1, AdjudicatedValue = 110, ServiceTypeId = 1
                },
                new PaymentResult {
                    ClaimId = 123, Line = 2, AdjudicatedValue = 110, ServiceTypeId = 1
                },
            };
            PaymentTypeCap paymentTypeCap = new PaymentTypeCap
            {
                Threshold  = 10,
                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,
            };

            // Arrange
            _mockContractServiceTypeLogic = new Mock <IContractServiceTypeLogic>();
            _mockPaymentResultLogic       = new Mock <IPaymentResultLogic>();
            _mockPaymentResultLogic.Setup(
                x =>
                x.Evaluate(It.IsAny <EvaluateableClaim>(), It.IsAny <List <PaymentResult> >(), It.IsAny <bool>(),
                           It.IsAny <bool>())).Returns(paymentResults);
            _mockPaymentTypeCapRepository = new Mock <IPaymentTypeCapRepository>();
            _mockPaymentTypeCapRepository.Setup(x => x.GetPaymentTypeCapDetails(It.IsAny <PaymentTypeCap>()))
            .Returns(paymentTypeCap);

            _target = new PaymentTypeCapLogic(_mockPaymentTypeCapRepository.Object)
            {
                PaymentTypeBase = paymentTypeCap
            };


            // _target.Contract = contract;
            IEvaluateableClaim evaluateableClaim = new EvaluateableClaim();

            evaluateableClaim.ClaimId      = 123;
            evaluateableClaim.Drg          = "ABCDE";
            evaluateableClaim.ClaimTotal   = 100;
            evaluateableClaim.ClaimCharges = new List <ClaimCharge>
            {
                new ClaimCharge
                {
                    Line      = 1,
                    Amount    = 20,
                    HcpcsCode = "300"
                },
                new ClaimCharge
                {
                    Line      = 2,
                    Amount    = 20,
                    HcpcsCode = "301"
                },
                new ClaimCharge
                {
                    Line      = 3,
                    Amount    = 20,
                    HcpcsCode = "302"
                },
                new ClaimCharge
                {
                    Line      = 4,
                    Amount    = 20,
                    HcpcsCode = "303"
                },
                new ClaimCharge
                {
                    Line      = 5,
                    Amount    = 20,
                    HcpcsCode = "304"
                },
                new ClaimCharge
                {
                    Line      = 6,
                    Amount    = 20,
                    HcpcsCode = "ABCDE"
                }
            };


            List <PaymentResult> updatedPaymentResults = new List <PaymentResult>
            {
                new PaymentResult {
                    ClaimId = 123, ContractId = 1, AdjudicatedValue = 110
                },
                new PaymentResult {
                    ClaimId = 123, Line = 1, ContractId = 1, AdjudicatedValue = 110
                }
            };

            _mockContractBaseLogic = new Mock <ContractBaseLogic>();
            _mockContractServiceTypeLogic.Setup(x => x.IsValidServiceType()).Returns(true);
            _mockContractServiceTypeLogic.Setup(x => x.Evaluate(evaluateableClaim, paymentResults, false, false))
            .Returns(updatedPaymentResults);
            _mockContractBaseLogic.SetupAllProperties();

            //Act
            List <PaymentResult> actual = _target.EvaluatePaymentType(evaluateableClaim, paymentResults, false, true);

            // Assert
            Assert.AreEqual(2, actual.Count);
            var firstOrDefault = paymentResults.FirstOrDefault(x => x.AdjudicatedValue != null);

            if (firstOrDefault != null)
            {
                Assert.AreEqual(10, firstOrDefault.AdjudicatedValue);
            }
        }
Пример #10
0
 public PaymentTypeBase GetPaymentTypeCap(PaymentTypeCap paymentTypeCap)
 {
     return(_paymentTypeCapLogic.GetPaymentType(paymentTypeCap));
 }
Пример #11
0
 /// <summary>
 /// AddNew PaymentType Cap
 /// </summary>
 /// <param name="paymentTypeCap"></param>
 /// <returns></returns>
 public long AddEditPaymentTypeCap(PaymentTypeCap paymentTypeCap)
 {
     return(_paymentTypeCapLogic.AddEditPaymentType(paymentTypeCap));
 }