Esempio n. 1
0
  /*
   * 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() {
    if (logger.isDebugEnabled()) {
      logger.debug("crearEncabezadoFiscal() - start");
    }

    SimpleDateFormat fecha = new SimpleDateFormat("dd/MM/yyyy");
    SimpleDateFormat hora = new SimpleDateFormat("HH:mm:ss");
    DecimalFormat enteroConCeros = new DecimalFormat("000");

    Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal(
        crearLineaDeDivision(columnasImpresoraFiscal, '*'), 0);
    Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal(Sesion.getTienda().getRazonSocial(), 3);
    Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal(
        crearLineaDeDivision(columnasImpresoraFiscal, '*'), 0);

    String lineaDeDireccion = "";
    if ((Sesion.getTienda().getDireccionFiscal() != null)
        && (!Sesion.getTienda().getDireccionFiscal().equalsIgnoreCase("")))
      lineaDeDireccion += Sesion.getTienda().getDireccionFiscal();
    if ((Sesion.getTienda().getNombreSucursal() != null)
        && (!Sesion.getTienda().getNombreSucursal().equalsIgnoreCase("")))
      lineaDeDireccion += " Sucursal:" + Sesion.getTienda().getNombreSucursal() + ".";
    if ((Sesion.getTienda().getDireccion() != null)
        && (!Sesion.getTienda().getDireccion().equalsIgnoreCase("")))
      lineaDeDireccion += Sesion.getTienda().getDireccion();

    if (!lineaDeDireccion.equalsIgnoreCase("")) {
      Vector<String> nuevasLineasDireccion =
          dividirEnLineas(columnasImpresoraFiscal - 3, lineaDeDireccion);
      for (int i = 0; i < nuevasLineasDireccion.size(); i++)
        Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal(
            centrar((String) nuevasLineasDireccion.elementAt(i), columnasImpresoraFiscal), 0);
    }

    if ((Sesion.getTienda().getNit() != null)
        && (!Sesion.getTienda().getNit().equalsIgnoreCase("")))
      Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal(
          centrar(
              "RIF:" + Sesion.getTienda().getRif() + "   NIT:" + Sesion.getTienda().getNit(),
              columnasImpresoraFiscal),
          0);
    else
      Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal(
          centrar("RIF:" + Sesion.getTienda().getRif(), columnasImpresoraFiscal), 0);

    Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal(
        crearLineaDeDivision(columnasImpresoraFiscal), 0);

    Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal(
        centrar("Reporte de Cierre de Caja", columnasImpresoraFiscal), 0);
    Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal(
        crearLineaDeDivision(columnasImpresoraFiscal), 0);
    Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal(
        justificar(
            "Caja: " + enteroConCeros.format(Sesion.getCaja().getNumero()),
            "Tienda: " + enteroConCeros.format(Sesion.getTienda().getNumero()),
            columnasImpresoraFiscal),
        0);
    Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal(
        justificar(
            "Fecha: " + fecha.format(Sesion.getFechaSistema()),
            "Hora: " + hora.format(Sesion.getHoraSistema()),
            columnasImpresoraFiscal),
        0);
    Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal(
        crearLineaDeDivision(columnasImpresoraFiscal), 0);

    if (logger.isDebugEnabled()) {
      logger.debug("crearEncabezadoFiscal() - 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
   */
  @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");
    }
  }
Esempio n. 3
0
  /**
   * Método imprimirReporte Realiza la impresion de la factura de Venta indicada como parametro.
   *
   * @throws BaseDeDatosExcepcion
   * @throws ConexionExcepcion
   */
  public static void imprimirReporte() throws BaseDeDatosExcepcion, ConexionExcepcion {
    if (logger.isDebugEnabled()) {
      logger.debug("imprimirReporte() - start");
    }

    if (Sesion.impresoraFiscal) {
      // Cadenas de secciones de la factura
      Sesion.crFiscalPrinterOperations.abrirDocumentoNoFiscal();
      // Sesion.crFiscalPrinterOperations.desactivarProximoCorte();

      crearEncabezadoFiscal();
      crearDetalleFiscal();
      Sesion.crFiscalPrinterOperations.cerrarDocumentoNoFiscal();

      try {
        Sesion.imprimiendoReporteZ = true;
        Sesion.reporteZOK = false;
        Sesion.crFiscalPrinterOperations.commit();

        while (Sesion.imprimiendoReporteZ && !Sesion.reporteZOK) {
          try {
            Thread.sleep(500);
          } catch (InterruptedException e) {
          }
        }
        if (Sesion.reporteZOK) {
          Sesion.imprimiendoReporteZ = true;
          Sesion.reporteZOK = false;
          Sesion.crFiscalPrinterOperations.reporteZ();
          /*try {
          	Sesion.crFiscalPrinterOperations.commit();
          } catch (PrinterNotConnectedException e) {
          	logger.error("imprimirFactura(Venta, boolean, boolean)", e);
          }
          //ACTUALIZACION BECO: Impresora fiscal GD4
          while (CR.meVenta.getTransaccionPorImprimir()!=null ||
          		CRFiscalPrinterOperations.isImpresionFiscalEnCurso() ||
          		MaquinaDeEstadoVenta.isDocumentoNoFiscalPorImprimir()) {
          	try {
          		Thread.sleep(500);
          	} catch (InterruptedException e) {
          		// TODO Bloque catch generado automáticamente
          		e.printStackTrace();
          	}
          	if(MaquinaDeEstadoVenta.errorAtencionUsuario){
          		MensajesVentanas.aviso("Hay un documento en curso \nEspere un momento e intente nuevamente");
          	}
          }
          if (Sesion.impresoraFiscal) {
          	MaquinaDeEstadoVenta.setDocumentoNoFiscalPorImprimir(true);
          }*/
          Sesion.crFiscalPrinterOperations.cortarPapel();
          Sesion.crFiscalPrinterOperations.commit();
          while (Sesion.imprimiendoReporteZ && !Sesion.reporteZOK) {
            try {
              Thread.sleep(500);
            } catch (InterruptedException e) {
            }
          }
        }
      } catch (PrinterNotConnectedException e) {
        logger.error("imprimirReporte()", e);
      }
      // while (Sesion.crFiscalPrinterOperations.isImprimiendo()) ;
    } else {
      // Esta Implementaccion no maneja Impresora NoFiscal
    }
    if (Sesion.reporteZOK) {
      Sesion.getCaja().setFechaUltRepZ(Sesion.getFechaSistema());
      Sesion.reporteZOK = true;
      Sesion.imprimiendoReporteZ = false;
    }
    if (logger.isDebugEnabled()) {
      logger.debug("imprimirReporte() - 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");
    }
  }