Beispiel #1
0
        public JsonResult LoadGrid(string sidx, string sord, int rows, int page = 1)
        {
            string getSearchby  = Request["_searchby"];
            string getVal       = Request["_val"];
            string getStartDate = Request["_startDate"];
            string getEndDate   = Request["_endDate"];
            string getTrxType   = Request["_trxType"];

            Params param = new Params()
            {
                Parameter = new Dictionary <string, string>()
            };

            param.RequestTransType = "saldo".Equals(getTrxType) ? "GetSMSTransactionInfoSaldo" :
                                     "mutasi".Equals(getTrxType) ? "GetSMSTransactionInfoMutasi" :
                                     "kupon".Equals(getTrxType) ? "GetSMSTransactionInfoCoupon" :
                                     "payment".Equals(getTrxType) ? "GetSMSTransactionInfoPayment" :
                                     "all".Equals(getTrxType) ? "GetSMSTransactionAll" : string.Empty;

            param.Parameter.Add("mobileNo", getVal);
            param.Parameter.Add("startDate", getStartDate);
            param.Parameter.Add("endDate", getEndDate);

            SMSBCATransaction model = ChannelTransaction.SMSBCA(param);
            var trx = model.Transactions.ToList().Select(x => new
            {
                TransactionDate = x.TransactionDate,
                AccountNumber   = x.AccountNumber,
                TransactionType = x.TransactionType,
                ResponseCode    = x.ResponseCode,
                Amount          = x.Amount,
                ReferenceNumber = x.ReferenceNumber,
                Biller          = x.Biller,
                Receiver        = x.Receiver,
                Total           = x.Total,
                Other           = x.Other
            });

            int pageIndex    = Convert.ToInt32(page) - 1;
            int pageSize     = rows;
            int totalRecords = trx.Count();
            int totalPages   = (int)Math.Ceiling((float)totalRecords / (float)pageSize);

            trx = trx.Skip((page - 1) * pageSize).Take(pageSize);
            var       recordCount = trx.Count();
            JSONTable jTable      = new JSONTable();

            jTable.total   = totalPages;
            jTable.page    = page;
            jTable.records = totalRecords;
            jTable.rows    = trx.ToArray();

            jTable.additional = model.ATMCardHolderName + "<@z>" + model.ATMCardNumber + "<@z>" + model.Status;

            return(Json(jTable, JsonRequestBehavior.AllowGet));
        }
Beispiel #2
0
        public static SMSBCATransaction SMSBCA(Params request)
        {
            SMSBCATransaction transaction = new SMSBCATransaction();
            Params            param       = new Params()
            {
                Parameter = new Dictionary <string, string>()
            };

            try
            {
                param.RequestTransType = request.RequestTransType;
                param.Parameter.Add("CustId", request.Parameter.ContainsKey("mobileNo") ? request.Parameter["mobileNo"].Trim() : string.Empty);
                param.Parameter.Add("StartDate", Formatter.ToStringExact(Convert.ToDateTime(request.Parameter["startDate"]), "MM/dd/yyyy"));
                param.Parameter.Add("EndDate", Formatter.ToStringExact(Convert.ToDateTime(request.Parameter["endDate"]).AddDays(1), "MM/dd/yyyy"));
                param.Parameter.Add("Proses", "GetSMSTransactionInfoSaldo".Equals(param.RequestTransType) ? "SMSBAccGetBalanceRq" :
                                    "GetSMSTransactionInfoMutasi".Equals(param.RequestTransType) ? "SMSBAcctStmtRq" :
                                    "GetSMSTransactionInfoCoupon".Equals(param.RequestTransType) ? "SMSBInqCouponRq" :
                                    "GetSMSTransactionInfoPayment".Equals(param.RequestTransType) ? "SMSBLPGRQ" :
                                    string.Empty);
                param.WSDL = "ESBDBDelimiter";
                ESBData data = EAI.RetrieveESBData(param);
                if (data.Result != null && data.Result.Count > 0)
                {
                    foreach (StringDictionary entry in data.Result)
                    {
                        DateTime? transactionDate = Convert.ToDateTime(entry["createddate"]);
                        string    status          = entry["srvrstatuscode"];
                        SMSBCATRX trx             = new SMSBCATRX();

                        trx.TransactionDate = transactionDate;
                        trx.AccountNumber   = entry["acctidfrom"];
                        trx.TransactionType = Utility.GetDisplayText("TransactionAttributeMapping", "SMS BCA", "Transaction Type", entry["process"]);
                        trx.ResponseCode    = Utility.GetDisplayText("TransactionAttributeMapping", "SMS BCA", "Response Code", status);
                        trx.Amount          = Formatter.GetParsedDouble(entry["amt"], false);

                        /* Payment Menu
                         * 07 12 2016 - LPG
                         * Tanggal Transaksi       createddate                 TransactionDate
                         * No Rekening             acctidfrom                  AccountNumber
                         * No Referensi            refcode                     ReferenceNumber
                         * Jenis Transaksi         process -company_name       TransactionType + string
                         * Nominal (IDR)           amt                         Amount
                         * Status                  srvrstatuscode - rquid      ResponseCode + string
                         * Pembayar                billerid                    Biller
                         * Penerima                authidresponse [0]          Receiver
                         * Jumlah                  authidresponse [1]          Total
                         * Informasi Lain          authidresponse [2]          Other
                         */

                        if ("GetSMSTransactionInfoPayment".Equals(param.RequestTransType))
                        {
                            trx.ReferenceNumber  = entry["refcode"];
                            trx.TransactionType += " - " + entry["company_name"];
                            trx.ResponseCode    += " - " + entry["rquid"];
                            trx.Biller           = entry["billerid"];
                            string[] authidresp = entry["authidresponse"].Split('|');
                            if (authidresp.Length == 3)
                            {
                                trx.Receiver = authidresp[0];
                                trx.Total    = authidresp[1];
                                trx.Other    = authidresp[2].Length == 8 ? Utility.FormatDateAuth(authidresp[2]) : authidresp[2];
                            }
                        }

                        transaction.Transactions.Add(trx);
                    }

                    param.Parameter        = new Dictionary <string, string>();
                    param.RequestTransType = "GetSMSBankingInfoByMobileNo";
                    param.Parameter.Add("CustId", request.Parameter.ContainsKey("mobileNo") ? request.Parameter["mobileNo"].Trim() : string.Empty);
                    param.WSDL = "ESBDBDelimiter";
                    ESBData information = EAI.RetrieveESBData(param);
                    if (information.Result != null && information.Result.Count > 0)
                    {
                        transaction.ATMCardHolderName = information.Result[0]["custname"];
                        transaction.ATMCardNumber     = information.Result[0]["cardnumber"];
                        transaction.Status            = Utility.GetStatusInfo(information.Result[0]["status"]);
                    }
                }
            }
            catch (Exception e)
            {
            }

            return(transaction);
        }