Advertisement
AbiMulya

Prepaid Deduct Service

Sep 15th, 2020
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 7.01 KB | None | 0 0
  1.         @Override
  2.         protected OperationResult doInBackground(Integer... integers) {
  3.             byte uid[] = new byte[16];
  4.             byte uidLen[] = new byte[1];
  5.             int bankType[] = new int[1];
  6.             int cardType[] = new int[1];
  7.             final int balance[] = new int[1];
  8.             final String cardNumber[] = new String[1];
  9.             final String report[] = new String[1];
  10.             final int errorCode[] = new int[1];
  11.             int amount = integers[0];
  12.             Date date = new Date();
  13.             String StrDate = new SimpleDateFormat("yyyyMMddHHmmss", Locale.getDefault()).format(date);
  14.             OperationResult result;
  15.  
  16.  
  17.             if (myReader.findCard(TIMED_OUT, uid, uidLen, cardType)) {
  18.                 publishProgress(PROGRESS_CARD_DETECTED);
  19.                 try {
  20.                     result = new DeductOperationResult(true, String.format(Locale.getDefault(), "Success \nBalance:%d ", balance[0]));
  21. //                    if (myReader.readerGetBalance(cardType[0], StrDate, bankType, balance, cardNumber, errorCode)) {
  22.                     if (myReader.readerGetBalance(cardType[0], StrDate, bankType, balance, cardNumber, errorCode)) {
  23.                         Log.d("cardNumber", cardNumber[0]);
  24.                         int balanceBeforeDeductValue = balance[0];
  25.                         PreferenceManagers.setDataWithSameKey("BalanceSebelum", String.valueOf(balanceBeforeDeductValue), getContext());
  26.                         String balanceBeforeDeduct = PreferenceManagers.getData("BalanceSebelum", getContext());
  27.                         String balanceAfterDeduct = PreferenceManagers.getData("BalanceSesudah", getContext());
  28.                         String failedCard = "";
  29.                         boolean isHasFailedCard = PreferenceManagers.hasData("lastFailedCard", getContext());
  30.                         failedCard = PreferenceManagers.getData("lastFailedCard", getContext());
  31.                         if (isHasFailedCard)
  32.                             failedCard = PreferenceManagers.getData("lastFailedCard", getContext());
  33.                         if (isHasFailedCard && failedCard.equalsIgnoreCase(cardNumber[0])) {
  34.                             failedCard = PreferenceManagers.getData("lastFailedCard", getContext());
  35.                             Log.d("LastFailedCard", failedCard);
  36.                             if(Integer.parseInt(balanceAfterDeduct) < Integer.parseInt(balanceBeforeDeduct)){
  37.                                 Log.d("Status Saldo", "Saldo Terpotong");
  38.                             }else{
  39.                                 PreferenceManagers.setDataWithSameKey("lastFailedCard", cardNumber[0], getContext());
  40.                                 Log.d("Status Saldo", "Saldo Belum Terpotong");
  41.                                 if (myReader.readerDeduct(cardType[0], StrDate, amount, bankType, balance, cardNumber, report, errorCode)) {
  42.                                     result = new DeductOperationResult(true, String.format(Locale.getDefault(), "Success \nBalance:%d ", balance[0]));
  43.                                     String number = cardNumber[0];
  44.                                     myReader.beep();
  45.                                     ((DeductOperationResult) result).setAmount(amount);
  46.                                     ((DeductOperationResult) result).setBalance(balance[0]);
  47.                                     ((DeductOperationResult) result).setBankType(bankType[0]);
  48.                                     ((DeductOperationResult) result).setCardNumber(number);
  49.                                     ((DeductOperationResult) result).setCardNumber(cardNumber[0]);
  50.                                     ((DeductOperationResult) result).setErrorCode(errorCode[0]);
  51.                                     ((DeductOperationResult) result).setReport(report[0]);
  52.                                     ((DeductOperationResult) result).setUid(uid);
  53.                                     ((DeductOperationResult) result).setUidLen(uidLen[0]);
  54.                                     PreferenceManagers.setDataWithSameKey("BalanceSesudah",String.valueOf( ((DeductOperationResult) result).getBalance()), getContext());
  55.                                     Log.d("balance sebelum", ""+ balanceBeforeDeduct);
  56.                                     Log.d("balance sesudah", ""+  ((DeductOperationResult) result).getBalance());
  57.                                     Log.e("errorCode0", String.format(Locale.getDefault(), "%04X", errorCode[0]));
  58.                                 } else {
  59.                                     result = new DeductOperationResult(true, String.format(Locale.getDefault(), "Success \nBalance:%d ", balance[0]));
  60.                                     Log.e("errorCode1", String.format(Locale.getDefault(), "%04X", errorCode[0]));
  61.                                     ((DeductOperationResult) result).setCardNumber(cardNumber[0]);
  62.                                     ((DeductOperationResult) result).setBalance(balance[0]);
  63.                                     ((DeductOperationResult) result).setErrorCode(errorCode[0]);
  64.                                     PreferenceManagers.setDataWithSameKey("BalanceSesudah",String.valueOf( ((DeductOperationResult) result).getBalance()), getContext());
  65.                                     Log.d("balance sebelum", ""+ balanceBeforeDeduct);
  66.                                     Log.d("balance sesudah", ""+  ((DeductOperationResult) result).getBalance());
  67.                                 }
  68.                             }
  69.                         }else{
  70.                             Log.e("error", "Different card, before " + failedCard + " after " + cardNumber[0]);
  71.                         }
  72.                     }else{
  73.                         Log.e("errorCode2", String.format(Locale.getDefault(), "%04X", errorCode[0]));
  74.                         result = new DeductOperationResult(false, String.format(Locale.getDefault(), "Failed \nError:%04X ", errorCode[0]));
  75.                         ((DeductOperationResult) result).setErrorCode(errorCode[0]);
  76.                         Log.d("balance4", ""+  ((DeductOperationResult) result).getBalance());
  77.                     }
  78. //                        }
  79.                     /*} else {
  80.                         Log.e("errorCode2", String.format(Locale.getDefault(), "%04X", errorCode[0]));
  81.                         result = new DeductOperationResult(false, String.format(Locale.getDefault(), "Failed \nError:%04X ", errorCode[0]));
  82.                         ((DeductOperationResult) result).setErrorCode(errorCode[0]);
  83.                     }*/
  84.                 } catch (Exception e) {
  85.                     Log.e("errorCode3", e.getMessage());
  86.                     result = new DeductOperationResult(false, e.getMessage());
  87.                     ((DeductOperationResult) result).setErrorCode(0);
  88.                 }
  89.             } else {
  90.                 Log.e("errorCode4", "TimeOut");
  91.                 result = new DeductOperationResult(false, "Timeout");
  92.                 ((DeductOperationResult) result).setErrorCode(0);
  93.             }
  94.             return result;
  95.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement