//
        // GET: /PaymentTypePerDiemDetails/

        public ActionResult PaymentTypePerDiem(long?contractId, long?serviceTypeId, int paymentTypeId, bool isEdit)
        {
            PaymentTypePerDiemViewModel modelPaymentTypePerDiemViewModel = new PaymentTypePerDiemViewModel();

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

                //Get the Name of User logged in
                PaymentTypePerDiem paymentTypePerDiemList =
                    PostApiResponse <PaymentTypePerDiem>("PaymentTypePerDiem",
                                                         "GetPaymentTypePerDiem",
                                                         paymentTypePerDiemPost);

                modelPaymentTypePerDiemViewModel = AutoMapper.Mapper.Map <PaymentTypePerDiem, PaymentTypePerDiemViewModel>(paymentTypePerDiemList);
            }

            modelPaymentTypePerDiemViewModel.ContractId    = contractId;
            modelPaymentTypePerDiemViewModel.ServiceTypeId = serviceTypeId;
            modelPaymentTypePerDiemViewModel.PaymentTypeId = paymentTypeId;
            modelPaymentTypePerDiemViewModel.IsEdit        = isEdit;
            return(View(modelPaymentTypePerDiemViewModel));
        }
        /// <summary>
        /// Add Edit PaymentType Per Diem Details
        /// </summary>
        /// <param name="paymentTypePerDiemList">PaymentTypePerDiem List</param>
        /// <returns>Inserted Data Count</returns>
        public long AddEditPaymentTypePerDiemDetails(PaymentTypePerDiem paymentTypePerDiemList)
        {
            //Checks if input request is not null
            XmlSerializer     serializer   = new XmlSerializer(paymentTypePerDiemList.GetType());
            StringWriter      stringWriter = new StringWriter();
            XmlWriterSettings settings     = new XmlWriterSettings {
                Indent = true, OmitXmlDeclaration = true
            };
            XmlWriter xmlWriter             = XmlWriter.Create(stringWriter, settings);
            XmlSerializerNamespaces emptyNs = new XmlSerializerNamespaces(new[] { XmlQualifiedName.Empty });

            serializer.Serialize(xmlWriter, paymentTypePerDiemList, emptyNs);
            string finalStrXml = stringWriter.ToString();

            _cmd = _db.GetStoredProcCommand("AddEditPaymentTypePerDiem");
            _db.AddInParameter(_cmd, "@XmlPaymentTypePerDiemData", DbType.String,
                               finalStrXml);
            _db.AddInParameter(_cmd, "@PaymentTypeID ", DbType.Int64, paymentTypePerDiemList.PaymentTypeId);
            _db.AddInParameter(_cmd, "@ContractID", DbType.Int64, paymentTypePerDiemList.ContractId);
            _db.AddInParameter(_cmd, "@ContractServiceTypeID", DbType.Int64, paymentTypePerDiemList.ServiceTypeId);
            _db.AddInParameter(_cmd, "@PaymentTypeDetailsId", DbType.Int64, paymentTypePerDiemList.PaymentTypeDetailId);
            _db.AddInParameter(_cmd, "@UserName", DbType.String, paymentTypePerDiemList.UserName);

            // Retrieve the results of the Stored Procedure in Datatable
            return(long.Parse(_db.ExecuteScalar(_cmd).ToString()));
        }
示例#3
0
        public void GetPaymentTypePerDiemIfNull()
        {
            var mockPaymentTypePerDiemDetails = new Mock <IPaymentTypePerDiemRepository>();

            mockPaymentTypePerDiemDetails.Setup(f => f.GetPaymentTypePerDiem(It.IsAny <PaymentTypePerDiem>())).Returns((PaymentTypePerDiem)null);
            PaymentTypePerDiemLogic target = new PaymentTypePerDiemLogic(mockPaymentTypePerDiemDetails.Object);
            PaymentTypePerDiem      actual = (PaymentTypePerDiem)target.GetPaymentType(null);

            Assert.AreEqual(null, actual);
        }
        public JsonResult Save(PaymentTypePerDiemViewModel listofPaymentTypePerDiem)
        {
            PaymentTypePerDiem paymentTypeModel = AutoMapper.Mapper.Map <PaymentTypePerDiemViewModel, PaymentTypePerDiem>(listofPaymentTypePerDiem);

            //Get the Name of User logged in
            paymentTypeModel.UserName = GetCurrentUserName();
            long noOfRecord = PostApiResponse <long>("PaymentTypePerDiem", "AddEditPaymentTypePerDiem", paymentTypeModel);

            return(noOfRecord > 0 ? Json(new { sucess = true, Id = noOfRecord }) : Json(new { sucess = false }));
        }
示例#5
0
        public void AddPaymentTypePerDiemDetailsIfNull()
        {
            var mockPaymentTypePerDiemDetails = new Mock <IPaymentTypePerDiemRepository>();

            mockPaymentTypePerDiemDetails.Setup(f => f.AddEditPaymentTypePerDiemDetails(It.IsAny <PaymentTypePerDiem>())).Returns(0);
            PaymentTypePerDiemLogic target = new PaymentTypePerDiemLogic(mockPaymentTypePerDiemDetails.Object);

            var  paymentTypeDiemList = new PaymentTypePerDiem();
            long actual = target.AddEditPaymentType(paymentTypeDiemList);

            Assert.AreEqual(0, actual);
        }
示例#6
0
        public void AddPaymentTypePerDiemDetailsIfNotNull()
        {
            var mockPaymentTypePerDiemDetails = new Mock <IPaymentTypePerDiemRepository>();

            mockPaymentTypePerDiemDetails.Setup(f => f.AddEditPaymentTypePerDiemDetails(It.IsAny <PaymentTypePerDiem>())).Returns(1);
            PaymentTypePerDiemLogic target = new PaymentTypePerDiemLogic(mockPaymentTypePerDiemDetails.Object);
            PaymentTypePerDiem      objPaymentTypePerVisit = new PaymentTypePerDiem {
                PaymentTypeDetailId = 1
            };
            long actual = target.AddEditPaymentType(objPaymentTypePerVisit);

            Assert.AreEqual(1, actual);
        }
        /// <summary>
        /// Get PaymentType Per Diem Details
        /// </summary>
        /// <param name="paymentTypePerDiemList">PaymentTypePerDiem List</param>
        /// <returns>Inserted Data Count</returns>
        public PaymentTypePerDiem GetPaymentTypePerDiem(PaymentTypePerDiem paymentTypePerDiemList)
        {
            // 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, paymentTypePerDiemList.PaymentTypeId);
            _db.AddInParameter(_cmd, "@ContractID", DbType.Int64, paymentTypePerDiemList.ContractId);
            _db.AddInParameter(_cmd, "@ContractServiceTypeID", DbType.Int64, paymentTypePerDiemList.ServiceTypeId);
            _db.AddInParameter(_cmd, "@ServiceLineTypeId", DbType.Int64, 0);
            _db.AddInParameter(_cmd, "@UserName", DbType.String, paymentTypePerDiemList.UserName);


            // Retrieve the results of the Stored Procedure in Data set
            DataSet paymentTypePerDiemDataSet         = _db.ExecuteDataSet(_cmd);
            List <PerDiemSelection> perDiemSelections = new List <PerDiemSelection>();

            if (paymentTypePerDiemDataSet != null && paymentTypePerDiemDataSet.Tables.Count > 0)
            {
                //populating PerDiem data
                if (paymentTypePerDiemDataSet.Tables[0].Rows != null && paymentTypePerDiemDataSet.Tables[0] != null && paymentTypePerDiemDataSet.Tables[0].Rows.Count > 0)
                {
                    for (int i = 0; i < paymentTypePerDiemDataSet.Tables[0].Rows.Count; i++)
                    {
                        if (paymentTypePerDiemDataSet.Tables[0].Rows[i]["DaysFrom"] != null && paymentTypePerDiemDataSet.Tables[0].Rows[i]["DaysTo"] != null &&
                            paymentTypePerDiemDataSet.Tables[0].Rows[i]["Rate"] != null)
                        {
                            PerDiemSelection perDiemSelection = new PerDiemSelection
                            {
                                DaysFrom = Convert.ToInt32(
                                    paymentTypePerDiemDataSet.Tables[0].Rows[i]["DaysFrom"]),
                                DaysTo = Convert.ToInt32(
                                    paymentTypePerDiemDataSet.Tables[0].Rows[i]["DaysTo"]),
                                Rate = Convert.ToDouble(
                                    paymentTypePerDiemDataSet.Tables[0].Rows[i]["Rate"])
                            };

                            perDiemSelections.Add(perDiemSelection);
                        }
                    }
                    paymentTypePerDiemList.PerDiemSelections   = perDiemSelections;
                    paymentTypePerDiemList.PaymentTypeDetailId = Convert.ToInt64(paymentTypePerDiemDataSet.Tables[0].Rows[0]["PaymentTypeDetailID"]);
                    return(paymentTypePerDiemList);
                }
            }

            //returns response to Business layer
            return(null);
        }
示例#8
0
        public void GetPaymentTypePerDiemIfNotNull()
        {
            var mockPaymentTypePerDiemDetails = new Mock <IPaymentTypePerDiemRepository>();
            //Mock Input
            PaymentTypePerDiem inputData = new PaymentTypePerDiem {
                PaymentTypeId = 7, ContractId = 1432, ServiceTypeId = 0
            };
            //Mock output
            PaymentTypePerDiem result = new PaymentTypePerDiem {
                PerDiemSelections = new List <PerDiemSelection> {
                    new PerDiemSelection {
                        DaysFrom = 1, DaysTo = 5, Rate = 54.34
                    }
                }
            };

            mockPaymentTypePerDiemDetails.Setup(f => f.GetPaymentTypePerDiem(inputData)).Returns(result);
            PaymentTypePerDiemLogic target = new PaymentTypePerDiemLogic(mockPaymentTypePerDiemDetails.Object);
            PaymentTypePerDiem      actual = (PaymentTypePerDiem)target.GetPaymentType(inputData);

            Assert.AreEqual(result, actual);
        }
        /// <summary>
        /// Gets the payment type per case.
        /// </summary>
        /// <param name="contractServiceTypeId">The contract service type identifier.</param>
        /// <param name="dtPerDiem">The dt per case table.</param>
        /// <returns></returns>
        public static PaymentTypePerDiem GetPaymentType(long contractServiceTypeId, DataTable dtPerDiem)
        {
            PaymentTypePerDiem paymentTypePerDiem = null;

            if (dtPerDiem != null && dtPerDiem.Rows.Count > 0)
            {
                paymentTypePerDiem = new PaymentTypePerDiem {
                    PerDiemSelections = new List <PerDiemSelection>()
                };
                foreach (DataRow row in dtPerDiem.Rows)
                {
                    PerDiemSelection perDiemSelection = new PerDiemSelection();
                    if ((Convert.ToInt64(DBNull.Value == row["contractServiceTypeId"] ? (long?)null : Convert.ToInt64(row["contractServiceTypeId"])) == contractServiceTypeId))
                    {
                        perDiemSelection.Rate     = DBNull.Value == row["Rate"] ? (double?)null : Convert.ToDouble(row["Rate"]);
                        perDiemSelection.DaysFrom = DBNull.Value == row["DaysFrom"]
                                ? (int?)null
                            : Convert.ToInt32(row["DaysFrom"]);

                        perDiemSelection.DaysTo = DBNull.Value == row["DaysTo"]
                                ? (int?)null
                            : Convert.ToInt32(row["DaysTo"]);
                        paymentTypePerDiem.PaymentTypeId       = (byte)Enums.PaymentTypeCodes.PerDiem;
                        paymentTypePerDiem.PaymentTypeDetailId = DBNull.Value == row["PaymentTypeDetailID"]
                            ? 0 : Convert.ToInt64(row["PaymentTypeDetailID"]);
                        paymentTypePerDiem.ContractId = DBNull.Value == row["ContractId"]
                                  ? (long?)null
                            : Convert.ToInt64(row["ContractId"]);
                        paymentTypePerDiem.ServiceTypeId = DBNull.Value == row["ContractServiceTypeID"]
                           ? (long?)null
                            : Convert.ToInt64(row["ContractServiceTypeID"]);
                        paymentTypePerDiem.PerDiemSelections.Add(perDiemSelection);
                    }
                }
            }

            return(paymentTypePerDiem);
        }
示例#10
0
 public PaymentTypePerDiem GetPaymentTypePerDiem(PaymentTypePerDiem paymentTypePerDiem)
 {
     return((PaymentTypePerDiem)_paymentTypePerDiemDetailsLogic.GetPaymentType(paymentTypePerDiem));
 }
示例#11
0
 public long AddEditPaymentTypePerDiem(PaymentTypePerDiem paymentTypePerDiemList)
 {
     return(_paymentTypePerDiemDetailsLogic.AddEditPaymentType(paymentTypePerDiemList));
 }
示例#12
0
        public void EvaluateTestWhenSelectionIsEmpty()
        {
            List <PaymentResult> paymentResults = new List <PaymentResult>
            {
                new PaymentResult {
                    ClaimId = 123, ServiceTypeId = 1, Line = 2
                },
                new PaymentResult {
                    ClaimId = 123, Line = 1, ServiceTypeId = 1
                }
            };
            PaymentTypePerDiem paymentTypePerDiem = new PaymentTypePerDiem
            {
                Conditions = new List <ICondition>
                {
                    new Condition
                    {
                        ConditionOperator = (byte)Enums.ConditionOperation.EqualTo,
                        LeftOperands      = new List <string> {
                            "ABCDE"
                        },
                        OperandType  = (byte)Enums.OperandIdentifier.HcpcsCode,
                        RightOperand = "ABCDE"
                    }
                },
                ServiceTypeId = 1,
                ValidLineIds  = new List <int> {
                    1, 2
                },
                HcpcsCode = "ABCDE"
            };
            // 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 <IPaymentTypePerDiemRepository> paymentTypePerDiemRepository = new Mock <IPaymentTypePerDiemRepository>();

            paymentTypePerDiemRepository.Setup(x => x.GetPaymentTypePerDiem(It.IsAny <PaymentTypePerDiem>()))
            .Returns(paymentTypePerDiem);

            var target = new PaymentTypePerDiemLogic(paymentTypePerDiemRepository.Object)
            {
                PaymentTypeBase = paymentTypePerDiem
            };


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

            evaluateableClaim.ClaimId      = 123;
            evaluateableClaim.ClaimTotal   = 100;
            evaluateableClaim.ClaimCharges = new List <ClaimCharge>
            {
                new ClaimCharge
                {
                    Line      = 1,
                    Amount    = 20,
                    RevCode   = "250",
                    HcpcsCode = "ABCDE",
                    Units     = 2
                },
                new ClaimCharge
                {
                    Line      = 2,
                    Amount    = 200,
                    RevCode   = "250",
                    HcpcsCode = "ABCDF",
                    Units     = 2
                }
            };


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

            Mock <ContractBaseLogic> 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, false);

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

            Assert.IsNull(firstOrDefault);
        }