/** Ejecuta la sentencia SQL. */ public void execute( Short codFuncion, String descripcion, Short codModulo, String nivelAuditoria, String regVigente, String reqAutorizacion) throws SQLException { try { modify.setUsername(Sesion.getDbUsuario()); modify.setPassword(Sesion.getDbClave()); modify.setParameter("codFuncion", codFuncion); modify.setParameter("descripcion", descripcion); modify.setParameter("codModulo", codModulo); modify.setParameter("nivelAuditoria", nivelAuditoria); modify.setParameter("regVigente", regVigente); modify.setParameter("reqAutorizacion", reqAutorizacion); modify.execute(); } // Liberar recursos del objeto modify. finally { modify.close(); } }
/** Crea una instancia DBModify e inicializa sus propiedades. */ protected void initializer() { modify = new DBModify(); try { modify.setDriverName(Sesion.getDbClaseLocal()); modify.setUrl(Sesion.getDbUrlLocal()); modify.setCommand( "INSERT INTO funcion ( codfuncion, descripcion, codmodulo, nivelauditoria, regvigente, actualizacion, reqautorizacion ) VALUES ( :codFuncion, :descripcion, :codModulo, :nivelAuditoria, :regVigente, CURRENT_TIMESTAMP, :reqAutorizacion )"); DBParameterMetaData parmMetaData = modify.getParameterMetaData(); parmMetaData.setParameter( 1, "codFuncion", java.sql.DatabaseMetaData.procedureColumnIn, java.sql.Types.SMALLINT, Short.class); parmMetaData.setParameter( 2, "descripcion", java.sql.DatabaseMetaData.procedureColumnIn, java.sql.Types.VARCHAR, String.class); parmMetaData.setParameter( 3, "codModulo", java.sql.DatabaseMetaData.procedureColumnIn, java.sql.Types.SMALLINT, Short.class); parmMetaData.setParameter( 4, "nivelAuditoria", java.sql.DatabaseMetaData.procedureColumnIn, java.sql.Types.CHAR, String.class); parmMetaData.setParameter( 5, "regVigente", java.sql.DatabaseMetaData.procedureColumnIn, java.sql.Types.CHAR, String.class); parmMetaData.setParameter( 6, "reqAutorizacion", java.sql.DatabaseMetaData.procedureColumnIn, java.sql.Types.CHAR, String.class); } catch (SQLException ex) { ex.printStackTrace(); } }
/** Ejecuta la sentencia SQL. */ public void execute( String codPerfil, Short codModulo, Short codFuncion, String habilitado, String autorizado) throws SQLException { try { modify.setUsername(Sesion.getDbUsuario()); modify.setPassword(Sesion.getDbClave()); modify.setParameter("codPerfil", codPerfil); modify.setParameter("codFuncion", codFuncion); modify.setParameter("habilitado", habilitado); modify.setParameter("autorizado", autorizado); modify.setParameter("codModulo", codModulo); modify.execute(); } // Liberar recursos del objeto modify. finally { modify.close(); } }
/** Crea una instancia DBModify e inicializa sus propiedades. */ protected void initializer() { modify = new DBModify(); try { modify.setDriverName(Sesion.getDbClaseLocal()); modify.setUrl(Sesion.getDbUrlLocal()); modify.setCommand( "INSERT INTO funcionperfil ( codperfil, codfuncion, habilitado, autorizado, actualizacion, codmodulo ) VALUES ( :codPerfil, :codFuncion, :habilitado, :autorizado, CURRENT_TIMESTAMP, :codModulo )"); DBParameterMetaData parmMetaData = modify.getParameterMetaData(); parmMetaData.setParameter( 1, "codPerfil", java.sql.DatabaseMetaData.procedureColumnIn, java.sql.Types.CHAR, String.class); parmMetaData.setParameter( 2, "codFuncion", java.sql.DatabaseMetaData.procedureColumnIn, java.sql.Types.SMALLINT, Short.class); parmMetaData.setParameter( 3, "habilitado", java.sql.DatabaseMetaData.procedureColumnIn, java.sql.Types.CHAR, String.class); parmMetaData.setParameter( 4, "autorizado", java.sql.DatabaseMetaData.procedureColumnIn, java.sql.Types.CHAR, String.class); parmMetaData.setParameter( 5, "codModulo", java.sql.DatabaseMetaData.procedureColumnIn, java.sql.Types.SMALLINT, Short.class); } catch (SQLException ex) { ex.printStackTrace(); } }
/* * 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"); } }
/** * 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 crearDetalleFiscal() { if (logger.isDebugEnabled()) { logger.debug("crearDetalleFiscal() - start"); } DecimalFormat precio = new DecimalFormat("#,##0.00"); DecimalFormat cantidad = new DecimalFormat("#,##0"); int[] transacciones = MediadorBD.obtenerTransaccionesDiarias( Sesion.getCaja().getFechaUltRepZ(), Sesion.getCaja().getNumero()); double[] ventas = MediadorBD.obtenerTransacciones( Sesion.getCaja().getFechaUltRepZ(), Sesion.getCaja().getNumero(), Sesion.VENTA); double[] anulaciones = MediadorBD.obtenerTransacciones( Sesion.getCaja().getFechaUltRepZ(), Sesion.getCaja().getNumero(), Sesion.ANULACION); double[] devoluciones = MediadorBD.obtenerTransacciones( Sesion.getCaja().getFechaUltRepZ(), Sesion.getCaja().getNumero(), Sesion.DEVOLUCION); int nroVtas = MediadorBD.obtenerNumTransacciones(Sesion.getCaja().getFechaUltRepZ(), Sesion.VENTA); int nroDev = MediadorBD.obtenerNumTransacciones(Sesion.getCaja().getFechaUltRepZ(), Sesion.DEVOLUCION); int nroAnul = MediadorBD.obtenerNumTransacciones(Sesion.getCaja().getFechaUltRepZ(), Sesion.ANULACION); Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal( centrar("Contador de Transacciones", columnasImpresoraFiscal), 0); Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal( crearLineaDeDivision(columnasImpresoraFiscal), 0); Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal( justificar("Contador Final: ", String.valueOf(transacciones[1]), columnasImpresoraFiscal), 0); Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal( justificar("Contador Inicial: ", "(-)" + transacciones[0], columnasImpresoraFiscal), 0); Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal( justificar( "Nro. Transacciones: ", String.valueOf(transacciones[1] - transacciones[0]), columnasImpresoraFiscal), 0); Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal( crearLineaDeDivision(columnasImpresoraFiscal), 0); Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal( centrar("Consolidado de Transacciones", columnasImpresoraFiscal), 0); Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal( crearLineaDeDivision(columnasImpresoraFiscal), 0); Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal( justificar("Vtas Exentas Brutas", precio.format(ventas[2]), columnasImpresoraFiscal), 0); Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal( justificar("Vtas Gravables Brutas", precio.format(ventas[0]), columnasImpresoraFiscal), 0); Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal( justificar( "Tota_ Ventas Brutas" + alinearDerecha("(" + cantidad.format(nroVtas) + ")", 6), precio.format(ventas[0] + ventas[2]), columnasImpresoraFiscal), 0); Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal( justificar("Tot. Imp. Vtas Brutas", precio.format(ventas[1]), columnasImpresoraFiscal), 0); Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal( justificar( "Anulaciones " + alinearDerecha("(" + cantidad.format(nroAnul) + ")", 11), precio.format(anulaciones[0] + anulaciones[2]), columnasImpresoraFiscal), 0); Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal( justificar( "Devoluciones " + alinearDerecha("(" + cantidad.format(nroDev) + ")", 11), precio.format(devoluciones[0] + devoluciones[2]), columnasImpresoraFiscal), 0); Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal( justificar( "Tot. Anul + Dev" + alinearDerecha("(" + cantidad.format(nroAnul + nroDev) + ")", 9), precio.format(anulaciones[0] + anulaciones[2] + devoluciones[0] + devoluciones[2]), columnasImpresoraFiscal), 0); Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal( justificar( "Tot. Imp. Asoc. Anul + Dev", precio.format(anulaciones[1] + devoluciones[1]), columnasImpresoraFiscal), 0); Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal( alinearDerecha(crearLineaDeDivision(columnasImpresoraFiscal - 15), columnasImpresoraFiscal), 0); Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal( justificar( "Venta Neta", precio.format( ventas[0] + ventas[2] - (anulaciones[0] + anulaciones[2]) - (devoluciones[0] + devoluciones[2])), columnasImpresoraFiscal), 0); Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal( alinearDerecha(crearLineaDeDivision(columnasImpresoraFiscal - 15), columnasImpresoraFiscal), 0); Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal( justificar( " Ventas Exentas Netas", precio.format(ventas[2] - anulaciones[2] - devoluciones[2]), columnasImpresoraFiscal), 0); Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal( justificar( " Ventas Gravables Netas", precio.format(ventas[0] - anulaciones[0] - devoluciones[0]), columnasImpresoraFiscal), 0); Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal( justificar( " Impuesto Neto", precio.format(ventas[1] - anulaciones[1] - devoluciones[1]), columnasImpresoraFiscal), 0); Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal( alinearDerecha(crearLineaDeDivision(columnasImpresoraFiscal - 15), columnasImpresoraFiscal), 0); Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal( justificar( "Venta Tota_ Neta", precio.format( ventas[0] + ventas[2] - (anulaciones[0] + anulaciones[2]) - (devoluciones[0] + devoluciones[2]) + ventas[1] - anulaciones[1] - devoluciones[1]), columnasImpresoraFiscal), 0); Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal( crearLineaDeDivision(columnasImpresoraFiscal), 0); Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal( centrar("Detalle de Formas De Pago", columnasImpresoraFiscal), 0); Vector<FormaDePago> formasDePago = ManejoPagosFactory.getInstance().cargarTodasFormasDePago(); Vector<Integer> transaccionesDeVenta = MediadorBD.obtenerNumeroDeTransacciones( Sesion.getCaja().getFechaUltRepZ(), Sesion.getCaja().getNumero(), Sesion.VENTA); Vector<Integer> transaccionesDeAnulacion = MediadorBD.obtenerNumeroDeTransacciones( Sesion.getCaja().getFechaUltRepZ(), Sesion.getCaja().getNumero(), Sesion.ANULACION); Vector<Integer> transaccionesDeDevolucion = MediadorBD.obtenerNumeroDeTransacciones( Sesion.getCaja().getFechaUltRepZ(), Sesion.getCaja().getNumero(), Sesion.DEVOLUCION); String wherePositivo = ""; String whereNegativo = ""; for (int j = 0; j < transaccionesDeVenta.size(); j++) { if (j == 0) wherePositivo = "(p.numtransaccion = " + ((Integer) transaccionesDeVenta.elementAt(j)).intValue(); else wherePositivo += " or p.numtransaccion = " + ((Integer) transaccionesDeVenta.elementAt(j)).intValue(); } if (!wherePositivo.equalsIgnoreCase("")) wherePositivo += ")"; for (int j = 0; j < transaccionesDeAnulacion.size(); j++) { if (j == 0) whereNegativo = "(p.numtransaccion = " + ((Integer) transaccionesDeAnulacion.elementAt(j)).intValue(); else whereNegativo += " or p.numtransaccion = " + ((Integer) transaccionesDeAnulacion.elementAt(j)).intValue(); } for (int j = 0; j < transaccionesDeDevolucion.size(); j++) { if ((j == 0) && (whereNegativo.equals(""))) whereNegativo = "(p.numtransaccion = " + ((Integer) transaccionesDeDevolucion.elementAt(j)).intValue(); else whereNegativo += " or p.numtransaccion = " + ((Integer) transaccionesDeDevolucion.elementAt(j)).intValue(); } if (!whereNegativo.equals("")) whereNegativo += ")"; // Obtenemos el monto dado por vuelto para restárselo al efectivo double vuelto = 0; if (!wherePositivo.equalsIgnoreCase("")) vuelto = MediadorBD.obtenerVueltos(wherePositivo); // Obtenemos el monto dado por vuelto para restárselo al efectivo double vueltoNegativo = 0; if (!whereNegativo.equalsIgnoreCase("")) vueltoNegativo = MediadorBD.obtenerVueltos(whereNegativo); // Por cada Forma de Pago for (int i = 0; i < formasDePago.size(); i++) { FormaDePago pago = (FormaDePago) formasDePago.elementAt(i); double positivo = 0; double negativo = 0; if (!wherePositivo.equalsIgnoreCase("")) positivo = MediadorBD.obtenerPagosDeTransacciones(wherePositivo, pago.getCodigo()); if (!whereNegativo.equalsIgnoreCase("")) negativo = MediadorBD.obtenerPagosDeTransacciones(whereNegativo, pago.getCodigo()); if ((pago.getCodigo().equalsIgnoreCase("1111111111")) || (pago.getCodigo().equalsIgnoreCase("01"))) { negativo += vuelto; positivo += vueltoNegativo; } Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal(pago.getNombre(), 0); Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal( justificar(" POSITIVO", precio.format(positivo), columnasImpresoraFiscal), 0); Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal( justificar(" NEGATIVO", precio.format(-negativo), columnasImpresoraFiscal), 0); Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal( justificar(" NETO: ", precio.format(positivo - negativo), columnasImpresoraFiscal), 0); } Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal( crearLineaDeDivision(columnasImpresoraFiscal), 0); if (logger.isDebugEnabled()) { logger.debug("crearDetalleFiscal() - 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"); } }
/** * Crea el detalle de la factura. En el vector de lineas se agregan las lineas generadas. * * @param ventaActual Venta a partir de la cual se generara el detalle. * @param lineas Vector de las lineas actuales de la factura. */ private static void crearDetallesFiscal(Apartado apartado) { if (logger.isDebugEnabled()) { logger.debug("crearDetallesFiscal(Apartado) - start"); } DecimalFormat precio = new DecimalFormat("#,##0.00"); DecimalFormat cantidad = new DecimalFormat("#0.00"); DetalleServicio detalleActual; // Para cada detalle de la venta for (int i = 0; i < apartado.getDetallesServicio().size(); i++) { detalleActual = (DetalleServicio) apartado.getDetallesServicio().elementAt(i); int longitudCodigo = Sesion.getLongitudCodigoInterno(); if (!(longitudCodigo > -1)) longitudCodigo = Control.getLONGITUD_CODIGO(); // Se chequea la longitud del código del producto para que salga en el reporte igual que como // en la interfaz String codProd = detalleActual.getProducto().getCodProducto().toString(); int longitud = codProd.length(); if ((Sesion.getLongitudCodigoInterno() > -1) && (longitud > Sesion.getLongitudCodigoInterno())) { codProd = codProd.substring(codProd.length() - Sesion.getLongitudCodigoInterno()); codProd = centrar(codProd, Control.getLONGITUD_CODIGO()); String codP = codProd; for (int j = 0; j < Control.getLONGITUD_CODIGO() - codProd.length(); j++) { codP = codP + " "; } codProd = codP; } Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal( justificar( alinearDerecha(codProd, longitudCodigo) + " " + detalleActual.getProducto().getDescripcionCorta(), "1 " + detalleActual.getProducto().getAbreviadoUnidadVenta(), columnasImpresoraFiscal - 1), 0); if (!detalleActual.getCondicionVenta().equals(Sesion.condicionNormal)) { // Si se ha aplicado alguna rebaja (Promocion, Empaque, Cambio de Precio) se especifica Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal( " PR:" + precio.format(detalleActual.getProducto().getPrecioRegular()) + " " + detalleActual.getCondicionVenta() + ":" + precio.format(detalleActual.getPrecioFinal()), 0); } Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal( alinearDerecha(cantidad.format(detalleActual.getCantidad()), 9) + alinearDerecha(precio.format(detalleActual.getPrecioFinal()), 15) + alinearDerecha( precio.format(detalleActual.getCantidad() * detalleActual.getPrecioFinal()), 16), 0); } Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal( crearLineaDeDivision(columnasImpresoraFiscal), 0); if (logger.isDebugEnabled()) { logger.debug("crearDetallesFiscal(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"); } }