public PaymentModel SavePGTransaction(PaymentModel objPaymentModel) { try { AVOAIALifeEntities Context = new AVOAIALifeEntities(); tblPolicy objtblpolicy = new tblPolicy(); objtblpolicy = Context.tblPolicies.Where(a => a.ProposalNo == objPaymentModel.ProposalNo).FirstOrDefault(); if (objtblpolicy != null) { tblPolicyPaymentMap policyPaymentMap = new tblPolicyPaymentMap(); policyPaymentMap.CreatedDate = DateTime.Now; tblPayment payment = new tblPayment(); payment.CreatedDate = DateTime.Now; payment.TxnNo = objPaymentModel.TransactionNo; payment.PaidAmount = Convert.ToDecimal(objPaymentModel.PayableAmount); payment.ChequeSubmission = false; payment.ReceiptNo = "NOTACK"; payment.PayerType = objPaymentModel.ReqId; if (payment.PaymentID == decimal.Zero) { Context.tblPayments.Add(payment); } policyPaymentMap.Premium = objtblpolicy.tblProposalPremiums.FirstOrDefault().AnnualPremium; policyPaymentMap.PaidAmount = 0; policyPaymentMap.PendingAmount = policyPaymentMap.Premium - policyPaymentMap.PaidAmount; policyPaymentMap.tblPayment = payment; policyPaymentMap.tblPolicy = objtblpolicy; if (policyPaymentMap.PolicyPaymentMapID == decimal.Zero) { Context.tblPolicyPaymentMaps.Add(policyPaymentMap); } } Context.SaveChanges(); return(objPaymentModel); } catch (Exception ex) { throw ex; } }
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; } }
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; } }