Beispiel #1
0
        public async Task <ActionResult> FundTransfer(MoneyTransferModelView objval)
        {
            try
            {
                const string agentId    = "395Y36706";
                var          db         = new DBContext();
                var          Mem_IDval  = long.Parse(CurrentMerchant.MEM_ID.ToString());
                var          remitterid = Session["MerchantDMRId"].ToString();
                if (objval.Amount > 0)
                {
                    var remitterInfo = (from remitt in db.TBL_REMITTER_BENEFICIARY_INFO join dmrremitter in db.TBL_DMR_REMITTER_INFORMATION on remitt.RemitterID equals dmrremitter.RemitterID
                                        where remitt.MEM_ID == CurrentMerchant.MEM_ID
                                        select new
                    {
                        remitterMobile = remitt.Mobile
                    }).FirstOrDefault();

                    ////var PaymentValidation1 = MoneyTransferAPI.BeneficiaryAccountVerification(objval.RemitterMobileNo, objval.BeneficiaryAccount, objval.BeneficiaryIFSC, agentId);
                    var    PaymentValidation = MoneyTransferAPI.FundTransfer(objval.RemitterMobileNo, objval.BeneficiaryID, agentId, objval.Amount.ToString(), objval.PaymentMode);
                    string errorcode         = string.IsNullOrEmpty(PaymentValidation.statuscode.Value) ? PaymentValidation.statuscode.Value : PaymentValidation.statuscode.Value;//res.res_code;
                    //string errorcode = "TXN";
                    if (errorcode == "TXN")
                    {
                        var      ipat_id     = PaymentValidation.data.ipay_id;
                        var      ref_no      = PaymentValidation.data.ref_no;
                        TimeSpan timeval     = new TimeSpan();
                        var      opr_id      = PaymentValidation.data.opr_id;
                        var      Name        = PaymentValidation.data.name;
                        var      OpeningAmt  = PaymentValidation.data.opening_bal;
                        var      amount      = PaymentValidation.data.amount;
                        var      charged_amt = PaymentValidation.data.charged_amt;
                        var      locked_amt  = PaymentValidation.data.locked_amt;
                        var      bank_alias  = PaymentValidation.data.bank_alias;
                        var      msg         = PaymentValidation.status.Value;
                        var      msgcode     = PaymentValidation.statuscode.Value;
                        TBL_DMR_FUND_TRANSFER_DETAILS objfund = new TBL_DMR_FUND_TRANSFER_DETAILS()
                        {
                            IPAY_ID            = ipat_id,
                            REF_NO             = ref_no,
                            OPR_ID             = opr_id,
                            NAME               = Name,
                            OPENING_BAL        = Convert.ToDecimal(OpeningAmt),
                            AMOUNT             = Convert.ToDecimal(amount),
                            CHARGED_AMT        = Convert.ToDecimal(charged_amt),
                            LOCKED_AMT         = Convert.ToDecimal(locked_amt),
                            BANK_ALIAS         = bank_alias,
                            STATUS             = msg,
                            STATUSCODE         = msgcode,
                            TXNDATE            = DateTime.Now,
                            BANKREFNO          = "",
                            REMARKS            = "",
                            MEM_ID             = Mem_IDval,
                            VERIFICATIONSTATUS = "",
                            REFUNF_ALLOWED     = 0,
                            REMITTER_ID        = remitterid
                        };
                        db.TBL_DMR_FUND_TRANSFER_DETAILS.Add(objfund);
                        await db.SaveChangesAsync();

                        var    checkPaymentStatus = MoneyTransferAPI.FundTransferStatus(ipat_id.Value);
                        string ipayval            = ipat_id.Value;
                        string checktransfer      = string.IsNullOrEmpty(checkPaymentStatus.statuscode.Value) ? checkPaymentStatus.statuscode.Value : checkPaymentStatus.statuscode.Value;//res.res_code;
                        if (checktransfer == "TXN")
                        {
                            var updatetransstatus = await db.TBL_DMR_FUND_TRANSFER_DETAILS.Where(x => x.IPAY_ID == ipayval).FirstOrDefaultAsync();

                            if (updatetransstatus != null)
                            {
                                updatetransstatus.VERIFICATIONSTATUS = checkPaymentStatus.status.Value;
                                updatetransstatus.REQ_DATE           = Convert.ToDateTime(checkPaymentStatus.data.req_dt.Value);
                                updatetransstatus.NAME            = checkPaymentStatus.data.beneficiary_name.Value;
                                db.Entry(updatetransstatus).State = System.Data.Entity.EntityState.Modified;
                                await db.SaveChangesAsync();

                                CommissionDistributionHelper objComm = new CommissionDistributionHelper();

                                string valueDMRComm = objComm.DistributeCommission(long.Parse(Mem_IDval.ToString()), "DMR", decimal.Parse(objval.Amount.ToString()), decimal.Parse(charged_amt.ToString()), decimal.Parse(OpeningAmt.ToString()), "DMI", "DMR");
                            }
                        }
                        ViewBag.message = checkPaymentStatus.status.Value;

                        return(RedirectToAction("FundTransferSuccess", "MerchantDMRDashboard", new { area = "Merchant", TransID = Encrypt.EncryptMe(ipayval.ToString()) }));
                        //return RedirectToAction("FundTransferSuccess", "MerchantDMRDashboard", new { area = "Merchant", TransID = "12345" });
                    }
                    else
                    {
                        ViewBag.message = PaymentValidation.status;
                        return(View());
                    }
                }
                else
                {
                    ViewBag.message = "Enter Some Amount";
                    return(View());
                }
            }
            catch (Exception ex)
            {
                Logger.Error("Controller:-  MerchantDMRDashboard(Merchant), method:- FundTransfer(POST) Line No:- 674", ex);
                throw ex;
            }
        }
        public async Task <JsonResult> DistributeCommission(string slnval = "")
        {
            initpage();////
            try
            {
                var db = new DBContext();
                if (slnval != null)
                {
                    long ID_Val = 0;
                    long.TryParse(slnval, out ID_Val);
                    string CommType   = string.Empty;
                    var    membercomm = db.TBL_INSTANTPAY_RECHARGE_RESPONSE.FirstOrDefault(x => x.ID == ID_Val);
                    if (membercomm.RechargeType == "Prepaid-Mobile" || membercomm.RechargeType == "Postpaid-Mobile")
                    {
                        CommType = "MOBILE";
                    }
                    else if (membercomm.RechargeType == "DMR")
                    {
                        CommType = "DMR";
                    }
                    else
                    {
                        CommType = "UTILITY";
                    }
                    CommissionDistributionHelper objComm = new CommissionDistributionHelper();
                    bool checkComm = await objComm.AllMemberCommissionDistribution(membercomm.Mem_ID, CommType, membercomm.Trans_Amt, membercomm.Trans_Amt, membercomm.Trans_Amt, membercomm.Sp_Key, "Mobile Recharge", membercomm.IpAddress, membercomm.CORELATIONID);

                    if (checkComm == true)
                    {
                        var ApiResponse = db.TBL_INSTANTPAY_RECHARGE_RESPONSE.FirstOrDefault(x => x.CORELATIONID == membercomm.CORELATIONID);
                        ApiResponse.Ipay_Id              = membercomm.Ipay_Id;
                        ApiResponse.AgentId              = "";
                        ApiResponse.Opr_Id               = membercomm.Sp_Key;
                        ApiResponse.AccountNo            = membercomm.AccountNo;
                        ApiResponse.Sp_Key               = membercomm.Sp_Key;
                        ApiResponse.Trans_Amt            = decimal.Parse(membercomm.Trans_Amt.ToString());
                        ApiResponse.Charged_Amt          = decimal.Parse(membercomm.Trans_Amt.ToString());
                        ApiResponse.Opening_Balance      = decimal.Parse(membercomm.Trans_Amt.ToString());
                        ApiResponse.DateVal              = System.DateTime.Now;
                        ApiResponse.Status               = membercomm.Status;
                        ApiResponse.Res_Code             = membercomm.Status;
                        ApiResponse.res_msg              = membercomm.res_msg;
                        ApiResponse.RechargeType         = membercomm.RechargeType;
                        ApiResponse.RechargeResponse     = membercomm.RechargeResponse;
                        ApiResponse.ERROR_TYPE           = "SUCCESS";
                        ApiResponse.ISREVERSE            = "Yes";
                        ApiResponse.ISCOMMISSIONDISBURSE = "Yes";
                        db.Entry(ApiResponse).State      = System.Data.Entity.EntityState.Modified;
                        db.SaveChanges();
                        return(Json("Commission Distributed Successfully", JsonRequestBehavior.AllowGet));
                    }
                    else
                    {
                        return(Json("Issue arises on commission distribution.", JsonRequestBehavior.AllowGet));
                    }
                }
                else
                {
                    return(Json("Issue arises on commission distribution.", JsonRequestBehavior.AllowGet));
                }
            }
            catch (Exception ex)
            {
                return(Json("Issue arises on commission distribution.", JsonRequestBehavior.AllowGet));

                throw ex;
            }
        }