/*
   * En esta función se realizaron modificaciones referentes a la migración a java 1.6 por jperez
   * Sólo se parametrizó el tipo de dato contenido en los 'Vector'
   * Fecha: agosto 2011
   */
  @SuppressWarnings("unused")
  private static void crearEncabezado(Apartado apartado) {
    if (logger.isDebugEnabled()) {
      logger.debug("crearEncabezado(Apartado) - start");
    }

    SimpleDateFormat formatoFecha = new SimpleDateFormat("dd/MM/yyyy");

    Sesion.crPrinterOperations.enviarString(crearLineaDeDivision(columnasImpresora) + "\n");
    Sesion.crPrinterOperations.activarFuenteImpresionNegrita();
    Sesion.crPrinterOperations.alinear(1);
    Sesion.crPrinterOperations.enviarString("ANULACION APARTADO\n");
    Sesion.crPrinterOperations.initializarPrinter();
    Sesion.crPrinterOperations.activarDocumentoNomal();
    Sesion.crPrinterOperations.enviarString(crearLineaDeDivision(columnasImpresora) + "\n");

    Sesion.crPrinterOperations.enviarString(
        justificar(
                "Apartado N°: " + apartado.getNumServicio(),
                "Fecha: " + formatoFecha.format(apartado.getFechaServicio()),
                columnasImpresora)
            + "\n");
    Sesion.crPrinterOperations.enviarString(
        justificar(
                "Tienda: " + Sesion.getTienda().getNombreSucursal(),
                "Página:" + alinearDerecha("1", 11),
                columnasImpresora)
            + "\n");

    Calendar vencimiento = Calendar.getInstance();
    vencimiento.setTime(apartado.getFechaServicio());
    if (apartado.getTipoVigencia().equalsIgnoreCase("Dia")) {
      vencimiento.add(Calendar.DATE, apartado.getTiempoVigencia());
    } else {
      if (apartado.getTipoVigencia().equalsIgnoreCase("Mes")) {
        vencimiento.add(Calendar.MONTH, apartado.getTiempoVigencia());
      }
    }

    Sesion.crPrinterOperations.enviarString(
        justificar(
                "Emisión: " + formatoFecha.format(apartado.getFechaServicio()),
                "Vence: " + formatoFecha.format(vencimiento.getTime()),
                columnasImpresora)
            + "\n");
    Sesion.crPrinterOperations.enviarString(
        justificar(
                "Fecha Anulación: " + formatoFecha.format(Sesion.getFechaSistema()),
                "Cajero: " + Sesion.getUsuarioActivo().getNumFicha(),
                columnasImpresora)
            + "\n");
    Sesion.crPrinterOperations.enviarString(crearLineaDeDivision(columnasImpresora) + "\n");
    Sesion.crPrinterOperations.enviarString(
        "Cédula ó R.I.F.: " + apartado.getCliente().getCodCliente() + "\n");
    Sesion.crPrinterOperations.enviarString(
        "Cliente: " + apartado.getCliente().getNombreCompleto() + "\n");

    // Picamos la direccion del Cliente
    String inicioLinea = "Dirección: ";
    Vector<String> dir =
        dividirEnLineas(
            columnasImpresora - inicioLinea.length(), apartado.getCliente().getDireccion());
    for (int i = 0; i < dir.size(); i++) {
      if (i == 0) Sesion.crPrinterOperations.enviarString(inicioLinea + dir.elementAt(i) + "\n");
      else
        Sesion.crPrinterOperations.enviarString(
            crearLineaDeDivision(inicioLinea.length(), ' ') + dir.elementAt(i) + "\n");
    }

    // Se imprime el teléfono del cliente
    String codAreaCliente = "";
    String telfCliente = "";
    if (apartado.getCliente().getCodArea() != null)
      codAreaCliente = apartado.getCliente().getCodArea();
    if (apartado.getCliente().getNumTelefono() != null)
      telfCliente = apartado.getCliente().getNumTelefono();
    Sesion.crPrinterOperations.enviarString(
        "Teléfonos: " + codAreaCliente + "-" + telfCliente + "\n");

    Sesion.crPrinterOperations.enviarString(crearLineaDeDivision(columnasImpresora) + "\n");

    if (logger.isDebugEnabled()) {
      logger.debug("crearEncabezado(Apartado) - end");
    }
  }
  /*
   * En esta función se realizaron modificaciones referentes a la migración a java 1.6 por jperez
   * Sólo se parametrizó el tipo de dato contenido en los 'Vector'
   * Fecha: agosto 2011
   */
  private static void crearEncabezadoFiscal(Apartado apartado) {
    if (logger.isDebugEnabled()) {
      logger.debug("crearEncabezadoFiscal(Apartado) - start");
    }

    SimpleDateFormat formatoFecha = new SimpleDateFormat("dd/MM/yyyy");
    Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal(
        justificar(
            "FECHA: " + formatoFecha.format(Sesion.getFechaSistema()),
            "HORA: " + Sesion.getHoraSistema(),
            columnasImpresoraFiscal),
        0);
    Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal(
        crearLineaDeDivision(columnasImpresoraFiscal), 0);
    Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal(
        convertirCadena("Apartado de productos"), 3);
    Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal("ANULACION APARTADO", 1);
    Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal(
        crearLineaDeDivision(columnasImpresoraFiscal), 0);
    Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal(
        justificar(
            "Apartado Nro: " + apartado.getNumServicio(),
            "Fecha: " + formatoFecha.format(apartado.getFechaServicio()),
            columnasImpresoraFiscal),
        0);
    Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal(
        "Tienda: " + Sesion.getTienda().getNombreSucursal(), 0);
    Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal("Página:" + alinearDerecha("1", 11), 0);

    Calendar vencimiento = Calendar.getInstance();
    vencimiento.setTime(apartado.getFechaServicio());
    if (apartado.getTipoVigencia().equalsIgnoreCase("Dia")) {
      vencimiento.add(Calendar.DATE, apartado.getTiempoVigencia());
    } else {
      if (apartado.getTipoVigencia().equalsIgnoreCase("Mes")) {
        vencimiento.add(Calendar.MONTH, apartado.getTiempoVigencia());
      }
    }

    Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal(
        justificar(
            "Emisión: " + formatoFecha.format(apartado.getFechaServicio()),
            "Vence: " + formatoFecha.format(vencimiento.getTime()),
            columnasImpresoraFiscal),
        0);
    Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal(
        justificar(
            "Anulación: " + formatoFecha.format(Sesion.getFechaSistema()),
            "Cajero: " + Sesion.getUsuarioActivo().getNumFicha(),
            columnasImpresoraFiscal),
        0);
    Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal(
        crearLineaDeDivision(columnasImpresoraFiscal), 0);
    Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal(
        "Cédula ó R.I.F.: " + apartado.getCliente().getCodCliente().replace('N', 'V'), 0);
    Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal(
        "Cliente: " + apartado.getCliente().getNombreCompleto(), 0);

    // Picamos la direccion del Cliente
    // String direccion = apartado.getCliente().getDireccion();
    String inicioLinea = "Dirección: ";
    Vector<String> dir =
        dividirEnLineas(
            columnasImpresoraFiscal - inicioLinea.length(), apartado.getCliente().getDireccion());
    for (int i = 0; i < dir.size(); i++) {
      if (i == 0)
        Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal(inicioLinea + dir.elementAt(i), 0);
      else
        Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal(
            crearLineaDeDivision(inicioLinea.length(), ' ') + dir.elementAt(i), 0);
    }

    // Se imprime el teléfono del cliente
    String codAreaCliente = "";
    String telfCliente = "";
    if (apartado.getCliente().getCodArea() != null)
      codAreaCliente = apartado.getCliente().getCodArea();
    if (apartado.getCliente().getNumTelefono() != null)
      telfCliente = apartado.getCliente().getNumTelefono();
    Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal(
        "Teléfonos: " + codAreaCliente + "-" + telfCliente, 0);
    Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal(
        crearLineaDeDivision(columnasImpresoraFiscal), 0);

    if (logger.isDebugEnabled()) {
      logger.debug("crearEncabezadoFiscal(Apartado) - end");
    }
  }