コード例 #1
0
  private List<Double> captureSelectedBlock() {
    int startIndex = FileUtils.findIndexBySingleValue(lines, "Transaction\\s+History");
    int endIndex = FileUtils.findIndexBySingleValue(lines, "^\\s*Totals");

    List<Double> mainList = new ArrayList<>();
    List<String> selected = new ArrayList<>();

    List<String> list = FileUtils.getSelectedBlockByIndex(lines, startIndex, endIndex);
    for (String s : list) {
      String result = FileUtils.getResultFromPattern("^\\s*\\d{1,2}/\\d{1,2}\\s+", s);
      if (!result.startsWith("NoMatch")) {
        if (selected.size() > 0) {
          if (selected.get(selected.size() - 1).startsWith(result)) {
            selected.set(selected.size() - 1, s);
          } else {
            selected.add(s);
          }
        } else {
          selected.add(s);
        }
      }
    }
    for (int a = 0; a < selected.size(); a++) {
      String[] line = selected.get(a).split(" ");
      if (line.length > 1) {
        mainList.add(
            FileUtils.convertStringToDouble(
                FileUtils.getDollarSignRemovedValue(
                    FileUtils.getBracketRemovedValue(line[line.length - 1]))));
      }
    }

    return mainList;
  }
コード例 #2
0
  private double extractAmountFromKeywordListAndReturnSum() {
    List<Double> list = new ArrayList<>();
    List<String> datelist = new ArrayList<>();
    int count = 0;
    double sum = 0;
    for (int a = 0; a < this.selectedBlock.size(); a++) {

      String value = FileUtils.getLastElementFromArray(this.selectedBlock.get(a));
      value = FileUtils.getDollarSignRemovedValue(value);
      double d = FileUtils.convertStringToDouble(value);
      String[] temp = this.selectedBlock.get(a).trim().split(" ");
      datelist.add(temp[0]);
      list.add(d);
    }
    for (int a = 0; a < list.size(); a++) {
      double d = list.get(a);
      if (d < 3000) {

        ++count;
      } else {
        keywordAmount.add(d);
        keywordDate.add(datelist.get(a));
        keywordDescription.add(keyDescription.get(a));
        sum += d;
      }
    }
    setNoOfValuesLessThan3000(count);
    return sum;
  }
コード例 #3
0
 private double findOnlineTransferFromSum() {
   List<String> list = captureOnlineTransferFromRecords();
   double sum = 0;
   for (String s : list) {
     String value = FileUtils.getSecondLastElementFromArray(s);
     value = FileUtils.getDollarSignRemovedValue(value);
     double d = FileUtils.convertStringToDouble(value);
     sum += d;
   }
   return sum;
 }
コード例 #4
0
 private List<Double> captureAmountFromSelectedRecords() {
   List<Double> main = new ArrayList<>();
   for (String s : this.filteredBlock) {
     String result = FileUtils.getResultFromPattern("Refund|REFUND|Return", s);
     if (!result.startsWith("NoMatch")) {
       String[] temp = s.split("\\s+");
       main.add(
           FileUtils.convertStringToDouble(
               FileUtils.getDollarSignRemovedValue(temp[temp.length - 1])));
     }
   }
   return main;
 }
コード例 #5
0
 private double captureAverageLedgerBalance() {
   double d = 0;
   for (String s : lines) {
     String result = FileUtils.getResultFromPattern("Average\\s+Ledger\\s+Balance*", s);
     if (!result.startsWith("NoMatch")) {
       String[] temp = s.split("\\s+");
       d =
           FileUtils.convertStringToDouble(
               FileUtils.getDollarSignRemovedValue(
                   FileUtils.getNegativeSignDetectedValue(temp[3])));
       break;
     }
   }
   return d;
 }
コード例 #6
0
  private double captureTotalDeposits() {
    String result = "";
    double d = 0;
    for (String s : lines) {
      if (s.contains("Credits (+)")) {
        result = s;
        break;
      }
    }
    if (result.length() > 1) {
      String[] temp = result.split("\\s+");
      String dd = FileUtils.getDollarSignRemovedValue(temp[temp.length - 1]);
      d = FileUtils.convertStringToDouble(dd);
    }

    return d;
  }
コード例 #7
0
  private void captureSelectedBlockForDebit() {
    List<String> List = new ArrayList<>();
    List<Double> list = new ArrayList<>();
    List<String> datelist = new ArrayList<>();
    List<Double> CheckDailyPaymentAmount = new ArrayList<>();

    for (int x = 0; x < debitBlock.size(); x++) {
      for (int a = 0; a < words.size(); a++) {
        String wordLine = words.get(a).toLowerCase();
        String result = FileUtils.getResultFromPattern(wordLine, debitBlock.get(x).toLowerCase());
        if (!result.startsWith("NoMatch")) {
          for (int R = x; R > 0; R--) {
            if (debitBlock.get(R).matches("^\\s*\\d{1,2}/\\d{1,2}/\\d{1,2}.+")) {
              List.add(debitBlock.get(R));
              dailykeyDescription.add(words.get(a).toLowerCase());
              break;
            }
          }
          break;
        }
      }
    }
    for (int a = 0; a < List.size(); a++) {
      String value = FileUtils.getLastElementFromArray(List.get(a));
      value = FileUtils.getDollarSignRemovedValue(value);
      double d = FileUtils.convertStringToDouble(value);
      String[] temp = List.get(a).trim().split("\\s+");
      datelist.add(temp[0]);
      list.add(d);
    }
    for (int a = 0; a < list.size(); a++) {
      double d = list.get(a);
      if (CheckDailyPaymentAmount.contains(d)) {
        //  if (!DailypaymentkeywordDescription.contains(dailykeyDescription.get(a)))
        //  {
        DailypaymentkeywordAmount.add(d);
        DailypaymentkeywordDate.add(datelist.get(a));
        DailypaymentkeywordDescription.add(dailykeyDescription.get(a));
        //  }
      } else {
        CheckDailyPaymentAmount.add(d);
      }
    }
  }
コード例 #8
0
 private void captureDateDescriptionAmount() {
   List<String> list = this.selectedBlock;
   for (String s : list) {
     String[] temp = s.split("\\s+");
     date.add(temp[0]);
     amount.add(FileUtils.convertStringToDouble(FileUtils.getDollarSignRemovedValue(temp[1])));
     String desc = "";
     for (int a = 2; a < temp.length; a++) {
       desc += temp[a] + " ";
     }
     description.add(desc);
     String res = FileUtils.getResultFromPattern("\\d{7,}", desc);
     if (!res.startsWith("NoMatch")) {
       checkNo.add(FileUtils.getFourDigitAccountNumber(res));
     } else {
       checkNo.add("N/A");
     }
   }
   this.checkNoDuplicateRemoved = FileUtils.removeDuplicateValues(checkNo);
 }
コード例 #9
0
  private void captureOnlineTransferToRecords() {
    List<String> firstLine = new ArrayList<>();
    List<String> secondLine = new ArrayList<>();
    List<Integer> indexFinder = new ArrayList<>();
    List<String> mergedLine = new ArrayList<>();

    for (int a = 0; a < this.selectedBlock.size(); a++) {
      String result =
          FileUtils.getResultFromPattern(
              "ONLINE\\s+BANKING\\s+TRANSFER\\s+TO", this.selectedBlock.get(a));

      if (!result.startsWith("NoMatch")) {
        indexFinder.add(a + 1);
        firstLine.add(this.selectedBlock.get(a));
        String[] temp = this.selectedBlock.get(a).split("\\s+");
        date.add(temp[0]);
        String value =
            FileUtils.getDollarSignRemovedValue(
                FileUtils.getLastElementFromArray(this.selectedBlock.get(a)));
        double d = FileUtils.convertStringToDouble(value);
        amount.add(d);
        String desc = "";
        for (int x = 1; x < temp.length - 1; x++) {
          desc += temp[x] + " ";
        }
        description.add(desc);
      }
    }
    for (int a = 0; a < indexFinder.size(); a++) {
      String val = selectedBlock.get(indexFinder.get(a));

      String result = this.description.get(a) + " " + val;
      String ch = FileUtils.getResultFromPattern("TO\\s+XX+\\d+", result);
      if (!ch.startsWith("NoMatch")) {
        ch = FileUtils.getFourDigitAccountNumber(ch);
        checkNo.add(ch);
      } else {
        checkNo.add("N/A");
      }
    }
  }