コード例 #1
0
ファイル: PaymentLogic.cs プロジェクト: udit1234567/NewRepo
        public PaymentModel UpdatePGTransaction(PaymentModel objPaymentModel)
        {
            try
            {
                AVOAIALifeEntities Context = new AVOAIALifeEntities();
                tblPayment         payment = Context.tblPayments.Where(a => a.PayerType == objPaymentModel.ReqId).FirstOrDefault();
                if (payment != null)
                {
                    tblPolicyPaymentMap        policyPaymentMap     = payment.tblPolicyPaymentMaps.FirstOrDefault();
                    tblPaymentInstrumentDetail tblPaymentInstrument = new tblPaymentInstrumentDetail();
                    objPaymentModel.TransactionNo         = payment.TxnNo;
                    payment.UpdatedDate                   = DateTime.Now;
                    tblPaymentInstrument.InstrumentAmount = Convert.ToDecimal(objPaymentModel.PayableAmount);
                    tblPaymentInstrument.PaymentMode      = objPaymentModel.SelectedPayment;
                    tblPaymentInstrument.PGResponse       = objPaymentModel.PGResponse;
                    tblPaymentInstrument.RGIPaymentStatus = objPaymentModel.Message;

                    tblPaymentInstrument.InstrumentDate = DateTime.Now;
                    tblPaymentInstrument.UpdatedDate    = DateTime.Now;
                    tblPaymentInstrument.tblPayment     = payment;
                    Context.tblPaymentInstrumentDetails.Add(tblPaymentInstrument);

                    policyPaymentMap.PaidAmount    = Convert.ToDecimal(objPaymentModel.PayableAmount);
                    policyPaymentMap.PendingAmount = policyPaymentMap.Premium - policyPaymentMap.PaidAmount;
                    Context.SaveChanges();

                    if (ConfigurationManager.AppSettings["PublishEnvironment"].ToString() == "SIT" || ConfigurationManager.AppSettings["PublishEnvironment"].ToString() == "UAT")
                    {
                        objPaymentModel.PayableAmount = Convert.ToString(policyPaymentMap.Premium);
                    }

                    tblPolicy objtblpolicy = policyPaymentMap.tblPolicy;
                    string    responseCode = string.Empty;
                    string    responseText = string.Empty;
                    if (!string.IsNullOrEmpty(objPaymentModel.PGResponse))
                    {
                        var resp = objPaymentModel.PGResponse.Split('|');
                        if (resp.Length > 1)
                        {
                            responseCode = resp[0];
                            responseText = resp[1];
                        }
                    }
                    if (objtblpolicy != null && responseCode == "00")
                    {
                        objPaymentModel.QuoteNo    = objtblpolicy.QuoteNo;
                        objPaymentModel.ProposalNo = objtblpolicy.ProposalNo;
                        DialogReceipt dialogReceipt = new DialogReceipt();
                        dialogReceipt.SendDialogOnlinePremium(objPaymentModel);
                        Thread.Sleep(60000);
                        objPaymentModel = AckPaymentandProcess(Context, objPaymentModel, objtblpolicy);
                    }
                    else
                    {
                        objPaymentModel.Error.ErrorMessage = "Your payment was unsuccessful, please check the accuracy of your details and try again " + responseText;
                    }
                }
                return(objPaymentModel);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
コード例 #2
0
ファイル: PaymentLogic.cs プロジェクト: udit1234567/NewRepo
        public PaymentModel SaveProposalPaymentInfo(PaymentModel objPaymentModel)
        {
            try
            {
                AVOAIALifeEntities Context      = new AVOAIALifeEntities();
                tblPolicy          objtblpolicy = new tblPolicy();
                objtblpolicy = Context.tblPolicies.Where(a => a.ProposalNo == objPaymentModel.ProposalNo).FirstOrDefault();

                if (objtblpolicy != null)
                {
                    var     proposalPremium = objtblpolicy.tblProposalPremiums.FirstOrDefault();
                    decimal?actualPremium   = proposalPremium.AnnualPremium + proposalPremium.AdditionalPremium;
                    decimal?payablePremium  = Convert.ToDecimal(objPaymentModel.PayableAmount);
                    if (proposalPremium.AdditionalPremium != null && proposalPremium.AdditionalPremium != 0)
                    {
                        payablePremium = payablePremium + proposalPremium.AnnualPremium;
                    }
                    if (payablePremium < (actualPremium - 100) || (!string.IsNullOrEmpty(objPaymentModel.ChequeNo) && objPaymentModel.chequeAmount < (actualPremium - 100)))
                    {
                        objPaymentModel.Error.ErrorMessage = "Please check the Payable premium and entered amount.";
                    }
                    else
                    {
                        objPaymentModel.QuoteNo = objtblpolicy.QuoteNo;
                        tblPolicyPaymentMap policyPaymentMap = objtblpolicy.tblPolicyPaymentMaps.FirstOrDefault();
                        if (policyPaymentMap == null)
                        {
                            policyPaymentMap             = new tblPolicyPaymentMap();
                            policyPaymentMap.CreatedDate = DateTime.Now;
                        }
                        tblPayment payment = policyPaymentMap.tblPayment;
                        if (payment == null)
                        {
                            payment             = new tblPayment();
                            payment.CreatedDate = DateTime.Now;
                        }
                        tblPaymentInstrumentDetail tblPaymentInstrument = new tblPaymentInstrumentDetail();

                        payment.TxnNo            = objPaymentModel.TransactionNo;
                        payment.PaidAmount       = Convert.ToDecimal(objPaymentModel.PayableAmount);
                        payment.ChequeSubmission = false;
                        payment.ReceiptNo        = "NOTACK";

                        if (payment.PaymentID == decimal.Zero)
                        {
                            Context.tblPayments.Add(payment);
                        }


                        tblPaymentInstrument.InstrumentAmount = Convert.ToDecimal(objPaymentModel.PayableAmount);
                        if (objPaymentModel.SelectedPayment == "othertypes")
                        {
                            tblPaymentInstrument.PaymentMode  = objPaymentModel.PaymentChanel;
                            tblPaymentInstrument.InstrumentNo = objPaymentModel.ChequeNo;
                            tblPaymentInstrument.BankBranch   = objPaymentModel.BranchName;
                        }
                        else
                        {
                            tblPaymentInstrument.PaymentMode = objPaymentModel.SelectedPayment;
                        }

                        tblPaymentInstrument.InstrumentDate = DateTime.Now;
                        tblPaymentInstrument.UpdatedDate    = DateTime.Now;
                        tblPaymentInstrument.tblPayment     = payment;
                        Context.tblPaymentInstrumentDetails.Add(tblPaymentInstrument);

                        policyPaymentMap.Premium       = objtblpolicy.tblProposalPremiums.FirstOrDefault().AnnualPremium;
                        policyPaymentMap.PaidAmount    = Convert.ToDecimal(objPaymentModel.PayableAmount);
                        policyPaymentMap.PendingAmount = policyPaymentMap.Premium - policyPaymentMap.PaidAmount;
                        policyPaymentMap.tblPayment    = payment;
                        policyPaymentMap.tblPolicy     = objtblpolicy;
                        if (policyPaymentMap.PolicyPaymentMapID == decimal.Zero)
                        {
                            Context.tblPolicyPaymentMaps.Add(policyPaymentMap);
                        }
                        Context.SaveChanges();
                        objPaymentModel.PayableAmount = Convert.ToString(actualPremium);
                        objPaymentModel = AckPaymentandProcess(Context, objPaymentModel, objtblpolicy);
                    }
                }

                return(objPaymentModel);
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw ex;
            }
        }