示例#1
0
  public void run() throws MainAppException {
    logger.info("Corriendo...");

    __loadConfig();

    __loadExcelReader();

    File dbfFile = __loadDbfWriter();

    __loadProviderId();

    logger.info("Id del proveedor: " + providerId);

    logger.info("Modificando " + dbfFile.getAbsolutePath());

    try {
      __alterDbf();
    } catch (ExcelReaderException e1) {
      logger.error(
          "Ocurrió un error durante la modificación del archivo dbf "
              + configuration.getDbfFilePath(),
          e1);
      throw new MainAppException(e1);
    }

    try {
      dbfWriter.close();
    } catch (DbfManagerException e) {
      logger.error("Ocurrió un error durante el cierre/ actualización del archivo DBF.", e);
      throw new MainAppException(e);
    }
  } // run
示例#2
0
  private void __alterDbf() throws ExcelReaderException {
    RowRecordIterator rowRecordIterator = excelReader.rowRecordIterator();
    int parsedRecords = 0;
    ValueEqualsRecordPredicate predicate =
        new ValueEqualsLenientRecordPredicateBuilder("CODIGOPROV", providerId).buildStandard();

    while (rowRecordIterator.hasNext()) {
      RowRecord rowRecord = (RowRecord) rowRecordIterator.next();

      try {
        if (rowRecord.isEmpty()) {
          continue;
        }

        Object o_articulo = rowRecord.get(ARTICULO_KEY);
        Object o_preciouni = rowRecord.get(PRECIOUNI_KEY);
        if (StringUtils.nullOrEmpty(o_articulo) || StringUtils.nullOrEmpty(o_preciouni)) {
          continue;
        }

        String s_articulo = o_articulo.toString();
        logger.info("Analizando registro xls " + (parsedRecords++) + " :: " + rowRecord.toString());

        predicate.put(ARTICULO_KEY, s_articulo);
        dbfWriter.setPredicate(predicate);

        //				Double d_preciouni = MoneyUtils.parsePriceAsDouble(o_preciouni);
        Double d_preciouni =
            MoneyUtils.parsePriceAsDouble(o_preciouni, configuration.getNumberLocale());
        dbfWriter.updateRecords(PRECIOUNI_KEY, d_preciouni, true);

      } catch (Exception e) {
        logger.error(
            "Error al leer/actualizar el registro "
                + rowRecord.toString()
                + "::excepcion::"
                + e.toString());
      }
    } // while (rowRecordIterator.hasNext())

    if (parsedRecords == 0) {
      logger.error("NO SE ENCONTRARON REGISTROS VALIDOS EN EL EXCEL. ");
      logger.error("VERIFIQUE FORMATO DEL ARCHIVO EXCEL Y TITULOS DE LAS COLUMNAS. ");
    }
  } // __alterDbf
示例#3
0
 private File __loadDbfWriter() throws MainAppException {
   File dbfFile = new File(configuration.getDbfFilePath());
   logger.info("Cargando archivo " + dbfFile.getAbsolutePath());
   this.dbfWriter = new DbfPredicateWriter(dbfFile);
   try {
     dbfWriter.open();
   } catch (DbfManagerException e) {
     String msg = "Ocurrió un error durante la apertura del archivo DBF.";
     logger.error(msg, e);
     throw new MainAppException(msg);
   }
   return dbfFile;
 }