Exemplo n.º 1
0
  private static List<ReconcilationDTO> getDTO(String line, List<Order> orders) {
    List<ReconcilationDTO> result = new ArrayList<ReconcilationDTO>();

    String[] parts = StringUtil.split(line, "|");
    if (parts != null) {
      if (parts[0].equals("1")) {
        try {
          int count = 0;
          for (String part : parts) {
            if (part.contains("FS")) {
              part =
                  part.replace("FS ", "FS")
                      .replace("AND ", "")
                      .replace("-", " ")
                      .replace("REF:", "")
                      .replace(",", " ");
              String as[] = StringUtil.split(part, " ");
              for (String documentNumber : as) {
                if (documentNumber != null && documentNumber.trim().length() > 0) {
                  ReconcilationDTO dto = new ReconcilationDTO();
                  dto.setRefNumber(documentNumber.trim());
                  result.add(dto);
                }
              }
            }
          }

          if (result.size() == 0) {
            ReconcilationDTO dto = new ReconcilationDTO();
            dto.setRefNumber("");
            dto.setComment("No reference number");
            dto.setName(line);
            result.add(dto);
          }

          for (String part : parts) {
            if (part.toLowerCase().contains("bank")) {
              for (ReconcilationDTO dto : result) dto.setBank(part);
            } else if (part.equalsIgnoreCase("MUR")) {
              for (ReconcilationDTO dto : result) dto.setAmount(parts[count + 1]);
            } else if (count == 3) {
              for (ReconcilationDTO dto : result) dto.setName(part);
            } else if (count == 2) {
              for (ReconcilationDTO dto : result) dto.setAccountNumber(part);
            }

            count = count + 1;
          }
          Order order = null;
          if (result.size() > 0) order = searchFromCode(orders, result.get(0).getRefNumber());

          if (order != null) {
            for (ReconcilationDTO dto : result) {
              dto.setComment(dto.getComment() + " Order found");
              dto.setOk(true);
            }
          } else {
            for (ReconcilationDTO dto : result) {
              dto.setComment(dto.getComment() + " Order not found");
              dto.setOk(false);
            }
          }
        } catch (Exception e) {
          for (ReconcilationDTO dto : result) {
            dto.setComment("Cannot parse line");
            dto.setName(line);
          }
        }
      }
    }
    return result;
  }