De Touch&Sale
Contenido
- 1 Funciones propias
- 2 Nuevas funciones definidas (Plantillas v4)
- 3 Modificaciones diciembre 2019
- 4 Nuevos métodos enero 2020
- 5 Métodos junio 2020
- 6 Funciones definidas para cada tipo de dispositivo (Plantillas v3)
- 7 Funciones de jxpath
- 8 Métodos
- 9 Nuevos Métodos
- 10 Nuevos Métodos del 12-02-2020
- 11 Métodos para Liquidaciones: Plantillas v4
- 12 Referencias Electrónicas del Comprobante - 18-01-2021
- 13 Caracteres
- 14 Ejemplo Modelo
- 15 Ejemplos Prototipos
Funciones propias
- / = imprime línea en blanco.
- <%= --------- %>
- OperacionValor: Devuelve el objeto OperacionValor a imprimir (tabla operacion_valor).
- <%& --------- %> #
- operacionesValor: Itera sobre la colección OperacionValor.operacion.operacionesValor devolviendo objetos OperacionValor (tabla operacion_valor).
- <%@ --------- %> #
- Operacion: Devuelve el objeto OperacionValor.operacion, clase Operacion (tabla operacion).
- <%# --------- %> #
- itemsValor: Itera sobre la colección OperacionValor.valor.itemsValor devolviendo objetos ItemValor/ItemFactura/ItemConvenio/etc (tabla item_valor).
- <%$ --------- %> #
- valoresConcepto: Itera sobre la colección OperacionValor.valor.valoresConcepto devolviendo objetos ValorConcepto (tabla valor_conceptos).
- <%+ --------- %> #
Itera sobre la colección de Prototipos de los valores o de los items.
- <%! ** Modelo 2 ** %> !
- comentarios: Los datos incluídos sirven para orientar al usuario de la plantilla, pero no salen impresos.
- format: lpad / rpad / cpad (texto a imprimir, longitud a rellenar, [caracter de relleno])
- rellena a izquierda / derecha / centra texto.
- -si la longitud a rellenar es menor que la longitud del texto a imprimir, entonces corta el texto.
- -si no se especifica ningún caracter de relleno, entonces completa con espacios.
- format: alltrim (texto a imprimir)
- -devuelve el texto indicado, borrando los espacios en blanco a izquierda y a derecha.
- format: longDate (fecha)
- -devuelve la fecha en el formato longDate definido en application.
- format: shortDate (fecha)
- -devuelve la fecha en el formato shortDate definido en application.
- format: longDateTime (fecha)
- -devuelve la fecha y la hora en el formato dd/mm/yyyy hh:mm:ss, definido en application.
- format: string (objeto)
- -convierte cualquier tipo de dato en string.
- format: integer (número)
- -devuelve la parte entera del número ingresado, convertido en string.
- format: len (objeto)
- -devuelve la longitud del dato ingresado, convertido en string.
- format: ascii (número)
- -devuelve el código ASCii del número ingresado, convertido en string.
- format: stringNoVacio (número)
- -devuelve el número ingresado, convertido en string.
- -si el valor es nulo, devuelve el texto 0,00.
- format: stringNoVacioDto (número)
- -devuelve el número ingresado, convertido en string.
- -si el valor es nulo, devuelve el texto -0,00.
- format: leftpad / rightpad / centerpad (dato a imprimir)
- -rellena por izquierda / derecha / centra el texto del dato ingresado,
- siempre con espacios en blanco,
- hasta completar la cantidad de caracteres indicada como Ancho Máximo en el motor de impresión.
- format: leftpad / rightpad / centerpad (título, dato)
- -si el valor de dato es nulo,
- -no imprime texto alguno.
- -si el valor de dato no es nulo,
- -concatena los valores título y dato,
- -rellena por izquierda / derecha / centra el texto completo,
- siempre con espacios en blanco,
- hasta completar la cantidad de caracteres indicada como Ancho Máximo en el motor de impresión.
- format: leftpad / rightpad (título, dato, número)
- -si el valor de dato es nulo,
- -no imprime texto alguno.
- -si el valor de dato no es nulo,
- -concatena los valores título y dato,
- -rellena por izquierda / derecha el texto completo,
- siempre con espacios en blanco,
- hasta completar la cantidad de caracteres indicada como Ancho Máximo en el motor de impresión menos el valor indicado en el parámetro número.
- format: concatenar (número de campo, string de datos serializados)
- -concatena los valores del string de datos separados por |,
- ajusta la longitud del campo indicado por el primer parámetro,
- hasta completar la cantidad de caracteres indicada como Ancho Máximo en el motor de impresión.
- -por ejemplo:
- format:concatenar(2, " 1|ADALAT 30| 44,00| 44,00")
- format: enlazar (string de 2 datos serializados)
- -concatena los 2 valores del string de datos separados por |,
- ajusta la longitud del 1er. campo hasta completar la cantidad de caracteres
- indicada como Ancho Máximo en el motor de impresión.
- -por ejemplo:
- format:enlazar("A c/Afil. d/aplicar Cob. 1a. :| 40,00")
- format: separador ()
- -imprime una línea separadora formada por caracteres --------------
- hasta completar la cantidad de caracteres indicada como Ancho Máximo en el motor de impresión.
- format: separador (dato)
- -imprime una línea separadora condicional,
- -formada por caracteres ------------
- hasta completar la cantidad de caracteres indicada como Ancho Máximo en el motor de impresión.
- -la condición viene dada por el valor contenido en dato,
- si es nulo, el separador no se imprime.
- -por ejemplo:
- <%@format:separador(operacionesValor[valor/tipoValor/id=1]/valor/entidad/nombre)%>
- si existen bonos, imprime el separador --------------------------
- format: separador (dato, título)
- -imprime una línea separadora condicional,
- -formada por caracteres ------------ con el valor indicado en título, centrado
- hasta completar la cantidad de caracteres indicada como Ancho Máximo en el motor de impresión.
- -la condición viene dada por el valor contenido en dato,
- si es nulo, el separador no se imprime.
- -por ejemplo:
- <%@format:separador(operacionesValor[valor/tipoValor/id=1]/valor/entidad/nombre,'- BONO -')%>
- si existen bonos, imprime el separador ---------- BONO ----------
- format: nonull (objeto)
- -si el valor del dato recibido no es nulo, imprime su valor string
- -si el valor del dato recibido es nulo, imprime un string vacío: ""
- format: cgoAfilCob (total, montoCobertura)
- -si existe la Cobertura (montoCobertura > 0),
- devuelve el importe que resta para el Afiliado: total - montoCobertura
- -si no existe la Cobertura (montoCobertura = 0),
- devuelve cero, con lo que no se imprime ningún dato.
- format: irLinea (número)
- -avanza la posición a imprimir hasta la línea indicada por el parámetro.
Nuevas funciones definidas (Plantillas v4)
- format: stringtransf (objeto1,objeto2,objeto3)
- -Devuelve el objeto1, donde los objeto2, son reemplazados por objeto3.
- Método replace() de StringUtils.
- format: obtcodigo (objeto)
- -Se formatea el objeto (codificación del comprobante 0001-0001234)
- para imprimir como Código de Barras.
- format: obtcodigosinguion (objeto)
- -Se formatea el objeto (codificación del comprobante 0001-0001234)
- para imprimir como Código de Barras, sin el guión separador.
NOTA: SI LA AUSENCIA DEL DATO A IMPRIMIR TIENE QUE ELIMINAR EL RENGLÓN ACTUAL SE TIENE QUE ENCERRAR ENTRE MAYOR Y MENOR LA FUNCIÓN. EJ: <<%=....%>>
Modificaciones diciembre 2019
- -se controla que los datos recibidos por los métodos no sean nulos.
- -se crean nuevos métodos disponibles para plantillas.
- format:concatenar (string de datos serializados)
- -concatena los valores del string de datos separados por |, tomados de a 3,
- ajusta las longitudes de los datos, ajustados a derecha o a izquierda, hasta el valor indicado:
- de la forma "|ajuste1<d,i>|long.1|campo 1|ajuste2<d,i>|long.2|campo 2 ..."
- -por ejemplo:
- format:concatenar("d|20|ADALAT 30|i|12|44,00|i|12|44,00")
- devuelve "ADALAT 30__________________44,00_______44,00"
- format:enlazar (string valor1,string valor2)
- -Si los valores NO son nulos, devuelve la concatenación de ambos parámetros y
- lo ajusta al ancho de la página indicada en el motor de impresión como Ancho Máximo.
- -por ejemplo:
- format:enlazar("A c/Afil. d/aplicar Cob. 1ra.: "," 40,00")
- format:lefttrim (Object value)
- -Si el valor NO es nulo, recorta los espacios en blanco de la izquierda.
- -por ejemplo:
- format:lefttrim(" A cargo Afiliado")
- devuelve "A cargo Afiliado"
- format:righttrim (Object value)
- -Si el valor NO es nulo, recorta los espacios en blanco de la derecha.
- -por ejemplo:
- format:lefttrim("A cargo Afiliado ")
- devuelve "A cargo Afiliado"
- format:datoCondicional (Object condicion,String dato)
- -Si se cumple condicion, devuelve el dato,
- sino un string vacío
- -por ejemplo:
- format:datoCondicional((valor/numeroAutorizacion="4"),'A.')
- devuelve "A." o ""
- format:obtTipoComprobante (Object tipoOperacion)
- -Dado el tipo de operación, devuelve un string con el respectivo tipo de comprobante
- -por ejemplo:
- format:obtTipoComprobante(obtTipoOperacion())
- devuelve "FACTURA", "TICKET", etc.
- Métodos y valores indicados con el sufijo SinIvaPlantilla
- -estos métodos y valores de ítem_valor <%# poseen la propiedad de que:
- si el comprobante discrimina IVA (Factura o N/C "A"), traen el valor sin el IVA incluído.
- si NO discrimina IVA, devuelven el valor total, con el impuesto acumulado.
- -obtTotalCubierto1raCoberturaSinIvaPlantilla()
- -obtTotalCubierto2daCoberturaSinIvaPlantilla()
- -precioUnitarioSinIvaPlantilla
- -totalSinIvaPlantilla
- -descuentoSinIvaPlantilla
- -descuentoAfiliadoSinIVAPlantilla
- -descuentoConvenioSinIVAPlantilla
- -recargoConvenioSinIVAPlantilla
- -descuentoAfiliadoTotalSinIVAPlantilla
Nuevos métodos enero 2020
- -nuevos métodos disponibles para plantillas.
- format:reemplazarParametro((String linea,String[] args)
- -reemplaza los parámetros de linea por los métodos indicados en args
- el render(), a partir de la versión 4, puede recibir una lista de parámetros
- -que se indican desde el programa
- args[1] = "separador()";
- args[2] = "cortepapel()";
- - y en la plantilla:
- <%=format:parametro[2]%> se reemplaza por: <%=format:separador()%>
- format:abonaCon((Object montoEfectivo, Object abonaCon, int n)
- -Devuelve el primer parámetro mayor que cero, formateado a n decimales
- format:vuelto((Object montoEfectivo, Object abonaCon, int n)
- -Devuelve (abonaCon-montoEfectivo) o un cero, formateado a n decimales
- format:coalesce((Object value1, Object value2)
- -Devuelve como respuesta el primer parámetro NO nulo
- format:coalesceNum((Object value1, Object value2)
- -Devuelve como respuesta el primer parámetro NO nulo, en formato numérico
- format:bigdecimal((Object value)
- -Devuelve el BigDecimal correspondiente al parámetro indicado, contemplando iterables
- format:esNulo((Object value)
- -Similar al método isNull(), contemplando iterables
- format:concatNoNull((Object value1, Object value2)
- -Si ambos parámetros son NO nulos, devuelve un String concatenándolos
- format:unirtodo((String titulo, String subtitulo, String dato)
- format:unirtodo((String titulo, String subtitulo, String dato, int ancho)
- -Si los valores NO son nulos, devuelve la concatenación de los parámetros
- Ajusta titulo + dato al ancho indicado o al del motor
- format:alignRight((String titulo, String dato)
- format:alignRight((String titulo, String dato, int ancho)
- -Si los valores NO son nulos, devuelve la concatenación de los parámetros
- Imprime titulo y ajusta dato a la derecha del ancho indicado o al del motor
- ej: alignRight("Total OSP", "50,12") => "Total OSP____________________50,12"
- format:alignRightDtoRgo((String titulo, String dato)
- -Actúa como alignRight(), pero si dato < 0, inserta un signo "-"
- format:alignRightDtoRgo((String template, String titulo, String dato)
- -Actúa como alignRightDtoRgo(), pero le agrega un template con términos de reemplazo
- de acuerdo al método reemplazarTexto() siguiente
- format:reemplazarTexto((String titulo, String template)
- -Devuelve un texto donde se reemplazó el titulo de acuerdo a lo indicado en el patrón template
- Ejemplo:
- titulo: String con textos a reemplazar = "RECARGO POR FORMA DE PAGO EFECTIVO POS"
- template: String con patrones de reemplazo = "DESC.||RECARGO|DIF.PRC.| POR|POR|FORMA||DE || PAGO|PAGO EN|POS||*|" separados por "|"
- reemplazarTexto(titulo, template) -> "DIF.PRC.POR PAGO EN EFECTIVO"
- format:stringData((Object value)
- -Devuelve el parámetro sin puntos "."
- Ejemplo: stringData("1.235.459,78") => "1235459,78"
- format:stringDataNoVacio((Object value)
- -Devuelve el parámetro sin puntos "."
- Si value es null, devuelve "0,00"
Métodos junio 2020
- -nuevos métodos disponibles para plantillas.
- format:avanzarLineas((Object value)
- -Se agrega la cantidad de líneas en blanco que indica el parámetro
- value, que debe ser un valor numérico
- del que se toma la parte entera.
- Espacio para los Troqueles en una Receta
- cantidadTroqueles
- indica la cantidad de líneas con productos cubiertos en una receta
- en combinación con el anterior método, se utiliza para dejar los
- espacios suficientes para pegar los troqueles en el cupón receta
- <%=format:avanzarLineas(cantidadTroqueles*3)%>
- el 3 es un factor de multiplicación arbitrario
- cantidadFilas
- indica la cantidad de líneas de productos de un comprobante de venta
- cantidadProductos
- indica el total de productos de un comprobante de venta
Funciones definidas para cada tipo de dispositivo (Plantillas v3)
Estos comandos actúan sólo si el dispositivo lo permite.
- inicializar ()
- -envía un comando de inicialización a la impresora que la configura a sus valores iniciales.
- normalizar ()
- -envía un comando de normalización de la letra, a sus valores iniciales.
- negrita (objeto)
- -imprime en negrita (o enfatizado) el valor string del dato recibido.
- vuelve a las condiciones iniciales al finalizar la línea.
- cursiva (objeto)
- -imprime en cursiva (o en itálica) el valor string del dato recibido.
- vuelve a las condiciones iniciales al finalizar la línea.
- subrayado (objeto)
- -imprime con letra subrayada el valor string del dato recibido.
- vuelve a las condiciones iniciales al finalizar la línea.
- condensado (objeto)
- -imprime con letra condensada el valor string del dato recibido.
- vuelve a las condiciones iniciales al finalizar la línea.
- textodobleancho (objeto)
- -imprime con letra expandida a lo ancho el valor string del dato recibido.
- vuelve a las condiciones iniciales al finalizar la línea.
- textodoblealto (objeto)
- -imprime con letra expandida en alto el valor string del dato recibido.
- vuelve a las condiciones iniciales al finalizar la línea.
- cortepapel ()
- -envía un comando de corte parcial de la cinta de papel.
- cortetotalpapel ()
- -envía un comando de corte total de la cinta de papel.
- codigobarras (objeto)
- -envía los comandos de configuración previos para imprimir un código de barras.
- imprime el código de barras del valor del dato recibido.
- vuelve a las condiciones iniciales al finalizar la línea.
- Ejemplos para obtener el número de autorizacción de cada receta y coseguro.
<%@format:rightpad('AUTORIZACIO1: ',operacionesValor[valor/tipoValor/id=2 and valor/tipoReceta/id=1]/valor/numeroAutorizacion)%> <%@format:rightpad('AUTORIZACIO2: ',operacionesValor[valor/tipoValor/id=2 and valor/tipoReceta/id=2]/valor/numeroAutorizacion)%> <%@format:rightpad('AUTORIZACIO3: ',operacionesValor[valor/tipoValor/id=2 and valor/tipoReceta/id=3]/valor/numeroAutorizacion)%> <%@format:rightpad('AUTORIZACIO4: ',operacionesValor[valor/tipoValor/id=2 and valor/tipoReceta/id=4]/valor/numeroAutorizacion)%>
Funciones de jxpath
- string concat (string, string, string, ...)
- -devuelve la concatenación de sus argumentos.
- number sum (node-set)
- -devuelve la suma, para cada nodo del set de nodos del argumento, del resultado de convertir los valores string del nodo a números.
Nuevo método para Plantillas v4
- string abs (object)
- -devuelve el valor absoluto de su argumento numérico.
Métodos
objeto | atributo | función | tabla | método | nuevo método |
Farmacia | Razón Social | <%= | operacion_valor | valor/nodoCreacion/razonSocial | obtRazonSocialFarmacia() |
Farmacia | Razón Social 2 | <%= | operacion_valor | valor/nodoCreacion/razonSocialLinea2 | obtRazonSocialFarmaciaLinea2() |
Farmacia | Dirección | <%= | operacion_valor | valor/nodoCreacion/direcciones[1] | obtDireccion1Farmacia() |
Farmacia | Tel. | <%= | operacion_valor | valor/nodoCreacion/telefonosConcatenados | obtTelefonoFarmacia() |
Farmacia | C.U.I.T. | <%= | operacion_valor | valor/nodoCreacion/cuit | obtCuitFarmacia() |
Farmacia | I.V.A. | <%= | operacion_valor | valor/nodoCreacion/objSituacionIVA/nombre | obtSituacionIvaFarmacia() |
Farmacia | I.Br. | <%= | operacion_valor | valor/nodoCreacion/ingresosBrutos | obtIngresosBrutosFarmacia() |
Cliente | Nombre | <%= | operacion_valor | valor/entidad/nombre | obtNombreCliente() |
Cliente | Apellido | <%= | operacion_valor | valor/entidad/apellido | obtApellidoCliente() |
Cliente | Dirección | <%= | operacion_valor | valor/entidad/direcciones[1] | obtDireccion1Cliente() |
Cliente | Entre Calles | <%= | operacion_valor | valor/entidad/entreCalle | obtEntreCallesCliente() |
Cliente | Teléfono | <%= | operacion_valor | valor/entidad/telefonosConcatenados | obtTelefonoCliente() |
Afiliado | Nombre | <%@ | operacion | operacionesValor[valor/tipoValor/id=2]/valor/nombreAfiliado | obtNombreAfiliado() |
Afiliado | Nro | <%@ | operacion | operacionesValor[valor/tipoValor/id=2]/valor/numeroAfiliado | obtNumeroAfiliado() |
Valor | Fecha | <%= | operacion_valor | valor/fechaCreacion |
obtFechaCreacion() |
Valor | Número | <%= | operacion_valor | valor/codificacion | obtNumeroComprobante() |
Producto | Nombre | <%# | item_valor | producto/nombreCorto |
obtNombreProducto() |
Producto | Descuento de ítem | <%# | item_valor | descuento | * descuento * |
Producto | Descuento Automático/Forzado | <%# | item_valor | descuentoAfiliado | * descuentoAfiliado * |
Producto | Descuento General (manual) | <%# | item_valor | descuentoGeneral | * descuentoGeneral * |
Receta | O. Social | <%# | item_valor | sum(itemsReceta/montoTotalCubierto) |
obtSumaMontoTotalCubierto() |
Valor | TOTAL | <%= | operacion_valor | valor/valoresConcepto[subTipoValorCpto/concepto/id=501]/monto | obtPrecioFinal() |
Valor | OBRAS SOCIALES | <%@ | operacion | operacionesValor[valor/tipoValor/id=2]/valor/montoPrincipal |
obtImporteFormaPagoObraSocial() |
Valor | CUENTA CORRIENTE | <%@ | operacion | operacionesValor[valor/tipoValor/id=22]/valor/montoPrincipal | obtImporteFormaPagoCtaCte() |
Valor | CUOTA CUENTA CORRIENTE | <%@ | operacion | operacionesValor[valor/tipoValor/id=21]/valor/montoPrincipal | obtImporteFormaPagoCuotaCteCte() |
Valor | TARJETA | <%@ | operacion | operacionesValor[valor/tipoValor/id=9]/valor/montoPrincipal | obtImporteFormaPagoTarjeta() |
Valor | CHEQUE TERCEROS | <%@ | operacion | operacionesValor[valor/tipoValor/id=5]/valor/montoPrincipal | obtImporteFormaPagoChequeTerceros() |
Valor | EFECTIVO | <%@ | operacion | operacionesValor[valor/tipoValor/id=3]/valor/montoPrincipal | obtImporteFormaPagoEfectivo() |
Valor | Exento | <%= | operacion_valor | valor/valoresConcepto[subTipoValorCpto/concepto/id=503 and subTipoValorCpto/visiblePos=1]/monto | obtTotalExento() |
Valor | Gravado | <%= | operacion_valor | valor/valoresConcepto[subtipoValorCpto/concepto/id=541]/monto | obtTotalGravado() |
Valor | Perc.II.BB. | <%= | operacion_valor | valor/valoresConcepto[subTipoValorCpto/concepto/id=516 and subTipoValorCpto/visiblePos=1]/monto | obtTotalPercepcionesIIBB() |
Vendedor | Nombre | <%= | operacion_valor | valor/objUsuarioCreacion/alias | obtVendedor() |
Puesto | Nombre | <%= | operacion_valor | operacion/puestoVenta/nombre | obtPuestoVenta() |
Nuevos Métodos
objeto | atributo | función | tabla | método | nuevo método |
Valor | Fecha de Emisión | <%= | operacion_valor | valor/fechaEmision | obtFechaEmision() |
Cliente (eventual) | Domicilio | <%= | operacion_valor | valor/domicilioCliente | obtDomicilioClienteEven() |
Cliente (eventual) | Documento | <%= | operacion_valor | valor/documentoCliente | obtDocumentoClienteEven() |
Cliente (eventual) | Nombre | <%= | operacion_valor | valor/nombreCliente | obtNombreClienteEven() |
Cliente (secundario) | Nombre | <%= | operacion_valor | valor/entidadSecundaria/nombre | obtNombreClienteSecundario() |
Cliente | Código | <%= | operacion_valor | valor/entidad/codigo | obtCodigoCliente() |
Cliente Envío | Dirección | <%= | operacion_valor | valor/direccionSeleccionada | obtDireccionEnvio() |
Cliente Envío | Teléfono | <%= | operacion_valor | valor/telefonoSeleccionado | obtTelefonoEnvio() |
Cliente Envío | Observaciones | <%= | operacion_valor | valor/observaciones | obtObservacionEnvio() |
Valor | OBRAS SOCIALES | <%@ | operacion | operacionesValor[valor/tipoValor/id=2]/valor/entidad/nombre | obtNombreObraSocial() |
Receta | Nombre OSP | <%= | operacion_valor | valor[tipoValor/id=2]/entidad/obraSocial/nombreCorto | obtNombreCobertura() |
Receta | Nombre OSP | <%= | operacion_valor | valor[tipoValor/id=2]/entidad/nombre | obtNombreLargoCobertura() |
Receta | Número | <%= | operacion_valor | valor[tipoValor/id=2]/codificacion | obtNumeroReceta() |
Receta | Fecha | <%= | operacion_valor | valor[tipoValor/id=2]/fechaEmision | obtFechaReceta() |
Receta | Nombre 1ra. OSP | <%# | item_valor | itemConvenio1raCobertura/convenio/entidad/nombre | obtNombre1raCobertura() |
Receta | Importe 1ra. OSP | <%# | item_valor | itemConvenio1raCobertura/montoTotalCubierto | obtTotalCubierto1raCobertura() |
Receta | Porcentaje 1ra. OSP | <%# | item_valor | itemConvenio1raCobertura/porcentajeCobertura | obtPorcentaje1raCobertura() |
Receta | Nombre 2da. OSP | <%# | item_valor | itemConvenio2daCobertura/convenio/entidad/nombre | obtNombre2daCobertura() |
Receta | Importe 2da. OSP | <%# | item_valor | itemConvenio2daCobertura/montoTotalCubierto | obtTotalCubierto2daCobertura() |
Receta | Porcentaje 2da. OSP | <%# | item_valor | itemConvenio2daCobertura/porcentajeCobertura | obtPorcentaje2daCobertura() |
Receta | Nombre 3ra. OSP | <%# | item_valor | itemConvenio3raCobertura/convenio/entidad/nombre | obtNombre3raCobertura() |
Receta | Importe 3ra. OSP | <%# | item_valor | itemConvenio3raCobertura/montoTotalCubierto | obtTotalCubierto3raCobertura() |
Receta | Porcentaje 3ra. OSP | <%# | item_valor | itemConvenio3raCobertura/porcentajeCobertura | obtPorcentaje3raCobertura() |
Receta | Nro.Autorización | <%@ | operacion | operacionesValor[valor/tipoValor/id=2]/valor/numeroAutorizacion | obtAutorizacionObraSocial() |
Valor | Dto.Comprobante | <%@ | operacion | comprobante/descuentoGeneral | obtDtoGeneral() |
Valor | Dto.Bono | <%@ | operacion | operacionesValor[valor/tipoValor/id=1]/valor/descuentoGeneral | obtDtoGeneralBono() |
Valor | Dto.Receta | <%@ | operacion | operacionesValor[valor/tipoValor/id=2]/valor/descuentoGeneral | obtDtoGeneralReceta() |
Valor | Dto.Billete | <%@ | operacion | operacionesValor[valor/tipoValor/id=3]/valor/descuentoGeneral | obtDtoGeneralEfectivo() |
Valor | Dto.CH/Propio | <%@ | operacion | operacionesValor[valor/tipoValor/id=4]/valor/descuentoGeneral | obtDtoGeneralChequePropio() |
Valor | Dto.CH/Tercero | <%@ | operacion | operacionesValor[valor/tipoValor/id=5]/valor/descuentoGeneral | obtDtoGeneralChequeTercero() |
Valor | Dto.Tarjeta | <%@ | operacion | operacionesValor[valor/tipoValor/id=9]/valor/descuentoGeneral | obtDtoGeneralTarjeta() |
Valor | Dto.Cuota Cta.Cte. | <%@ | operacion | operacionesValor[valor/tipoValor/id=21]/valor/descuentoGeneral | obtDtoGeneralCuotaCtaCte() |
Valor | Dto.Cta.Cte. | <%@ | operacion | operacionesValor[valor/tipoValor/id=22]/valor/descuentoGeneral | obtDtoGeneralCtaCte() |
Valor | Descuento Convenio | <%@ | operacion | operacionesValor[valor/tipoValor/id=211]/valor/descuentoGeneral | obtDtoGeneralConvenio() |
Valor | Vendedor | <%= | operacion_valor | valor/comprobante/objusuariocreacion/alias | obtValorCteVendedor() |
Valor | Numero | <%= | operacion_valor | valor/comprobante/codificacion | obtValorCteNumero() |
Valor | Fecha Emisión | <%= | operacion_valor | valor/comprobante/fechaEmision | obtValorCteFechaEmision() |
Valor | Fecha Creación | <%= | operacion_valor | valor/fechaCreacion | obtFechaCreacion() |
Valor | Importe | <%= | operacion_valor | valor/montoPrincipal | obtValorMontoPrincipal() |
Valor | Letra Factura | <%= | operacion_valor | valor/letraFactura | obtLetraFactura() |
Farmacia | Dirección | <%= | operacion_valor | valor/nodoCreacion/direcciones[0] | obtDireccion0Farmacia() |
Farmacia | Teléfono | <%= | operacion_valor | valor/nodoCreacion/telefonos[0]/numero | obtTelefono0Farmacia() |
Farmacia | Teléfono | <%= | operacion_valor | valor/nodoCreacion/telefonos[1]/numero | obtTelefono1Farmacia() |
Cliente | Situación IVA | <%= | operacion_valor | valor/entidad/objSituacionIVA/nombre | obtSituacionIvaCliente() |
Cliente | Cuit | <%= | operacion_valor | valor/entidad/cuit | obtCuitCliente() |
Producto | Nombre Corto | <%# | item_valor | producto/nombreCorto | obtNombreProducto() |
Producto | Código Barra | <%# | item_valor | producto/codigoBarra | obtCodigoBarraProducto() |
Receta | Precio Unidad | <%# | item_valor | producto/codigoBarra | obtRecetaPrecioUnitario() |
Receta | Porcentaje Cobertura | <%# | item_valor | itemsReceta/porcentajeCobertura | obtRecetaPorcentajeCobertura() |
Receta | Importe Cobertura | <%# | item_valor | itemsReceta/descuento | obtRecetaImporteDescuento() |
Valor | Importe | <%= | operacion_valor | valor/valoresConcepto[subTipoValorCpto/concepto/id=501]/monto | obtPrecioFinal() |
Receta | Número Cobertura | <%= | operacion_valor | .[valor/tipoValor/id=2]/numeroCobertura | obtNumeroCobertura() |
Receta | Saldo Afiliado | <%= | operacion_valor | .[valor/tipoValor/id=2]/saldoAfiliado | obtSaldoAfiliado() |
Convenio | Nombre Forma Pago | <%= | operacion_valor | valor[tipoValor/id=211]/entidad/nombre | obtNombreFormaPagoConvenio() |
Convenio | Importe Forma Pago | <%= | operacion_valor | sum(valor[tipoValor/id=211]/montoPrincipal) | obtImporteFormaPagoConvenio() |
Cuota Cta Cte | Nombre Forma Pago | <%= | operacion_valor | valor[tipoValor/id=21]/entidad/nombre | obtNombreFormaPagoCuotaCteCte() |
Cuota Cta Cte | Importe Forma Pago | <%= | operacion_valor | sum(valor[tipoValor/id=21]/montoPrincipal) | obtImporteFormaPagoCuotaCteCte() |
CH/Tercero | Nombre Forma Pago | <%= | operacion_valor | valor[tipoValor/id=5]/entidad/nombre | obtNombreFormaPagoChequeTerceros() |
CH/Tercero | Importe Forma Pago | <%= | operacion_valor | sum(valor[tipoValor/id=5]/montoPrincipal) | obtImporteFormaPagoChequeTerceros() |
Tarjeta | Nombre Forma Pago | <%= | operacion_valor | valor[tipoValor/id=9]/entidadSaldable/nombre | obtNombreFormaPagoTarjeta() |
Tarjeta | Importe Forma Pago | <%= | operacion_valor | sum(valor[tipoValor/id=9]/montoPrincipal) | obtImporteFormaPagoTarjeta() |
Bono | Nombre | <%@ | operacion | operacionesValor[valor/tipoValor/id=1]/valor/entidad/nombre | obtNombreBono() |
Bono | Puntaje | <%@ | operacion | operacionesValor[valor/tipoValor/id=1]/valor/valoresConcepto[subTipoValorCpto/concepto/id=500 and subTipoValorCpto/visiblePos=1]/monto | obtPuntajeBono() |
Bono | Acumulado | <%@ | operacion | operacionesValor[valor/tipoValor/id=1]/valor/valoresConcepto[subTipoValorCpto/concepto/id=503 and subTipoValorCpto/visiblePos=1]/monto | obtAcumuladoBono() |
Valor | Vendedor | <%= | operacion_valor | valor/comprobante/objusuariocreacion/alias | obtValorCteVendedor() |
Valor | Numero | <%= | operacion_valor | valor/comprobante/codificacion | obtValorCteNumero() |
Valor | Fecha Emisión | <%= | operacion_valor | valor/comprobante/fechaEmision | obtValorCteFechaEmision() |
Valor | Fecha Creación | <%= | operacion_valor | valor/fechaCreacion | obtFechaCreacion() |
Valor | Importe | <%= | operacion_valor | valor/montoPrincipal | obtValorMontoPrincipal() |
Valor | Letra Factura | <%= | operacion_valor | valor/letraFactura | obtLetraFactura() |
Farmacia | Dirección | <%= | operacion_valor | valor/nodoCreacion/direcciones[0] | obtDireccion0Farmacia() |
Farmacia | Teléfono | <%= | operacion_valor | valor/nodoCreacion/telefonos[0]/numero | obtTelefono0Farmacia() |
Farmacia | Teléfono | <%= | operacion_valor | valor/nodoCreacion/telefonos[1]/numero | obtTelefono1Farmacia() |
Cliente | Situación IVA | <%= | operacion_valor | valor/entidad/objSituacionIVA/nombre | obtSituacionIvaCliente() |
Cliente | Cuit | <%= | operacion_valor | valor/entidad/cuit | obtCuitCliente() |
Producto | Nombre Corto | <%# | item_valor | producto/nombreCorto | obtNombreProducto() |
Producto | Código Barra | <%# | item_valor | producto/codigoBarra | obtCodigoBarraProducto() |
Receta | Precio Unidad | <%# | item_valor | producto/codigoBarra | obtRecetaPrecioUnitario() |
Receta | Porcentaje Cobertura | <%# | item_valor | itemsReceta/porcentajeCobertura | obtRecetaPorcentajeCobertura() |
Valor | Tipo Operacion | <%= | operacion_valor | operacion/tipoOperacion | obtTipoOperacion() |
Nuevos Métodos del 12-02-2020
objeto | atributo | función | tabla | método | nuevo método |
Valor | Fecha de Emisión | <%= | operacion_valor | valor/fechaEmision | obtFechaEmision() |
Farmacia | Inicio de Actividades | <%= | operacion_valor | valor/nodoCreacion/inicioDeActividades | obtFechaInicioActividades() |
Farmacia | Razón Social | <%= | operacion_valor | valor/entidad/razonSocial | obtRazonSocialCliente() |
Valor | Nombre Tarjeta | <%& | operacionesValor | valor[tipoValor/id=9]/entidadSaldable/nombre | obtNombreFormaPagoTarjeta() |
Valor | Nombre Plan Pagos Tarjeta | <%& | operacionesValor | .[valor/tipoValor/id=9]/planPago/nombre | obtNombrePlanPagoTarjeta() |
Valor | Descuento Cuotas Cta.Cte. | <%& | operacionesValor | valor[tipoValor/id=21 and anulacion!='A']/valor/descuentoFPPlantilla | obtDescuentoCuotasCtaCte() |
Valor | Importe Recetas | <%& | operacionesValor | valor[tipoValor/id=2 and anulacion!='A']/itemsConvenio/descuentoAfiliado | obtImporteReceta() |
Valor | Importe Coberturas | <%& | operacionesValor | valor[tipoValor/id=2 and anulacion!='A']/montoPrincipal | obtImporteCobertura() |
Valor | Importe Cuotas Cta.Cte. Venta | <%& | operacionesValor | sum(valor[tipoValor/id=21 and anulacion!='A']/montoPrincipal) | obtImporteFormaPagoCuotaCteCteVenta() |
Valor | Importe Cheques Tercero Venta | <%& | operacionesValor | sum(valor[tipoValor/id=5 and anulacion!='A']/montoPrincipal) | obtImporteFormaPagoChequeTercerosVenta() |
Valor | Importe Convenios Venta | <%& | operacionesValor | valor[tipoValor/id=211 and anulacion!='A']/montoPrincipal | obtImporteFormaPagoConvenioVenta() |
Valor | Precio Final Comrobantes | <%= | operacion_valor | valor/valoresConcepto[subTipoValorCpto/concepto/id=501]/monto | obtPrecioFinalTodoCte() |
Valor | Impuestos Productos Exentos | <%= | operacion_valor | valor/valoresConcepto[contains('1703 1783',subTipoValorCpto/id) and valor/letraFactura='A']/monto | obtImpuestosProductosExentos() |
Valor | Impuestos Productos IVA 10,5% | <%= | operacion_valor | valor/valoresConcepto[contains('1705 1785',subTipoValorCpto/id) and valor/letraFactura='A']/monto | obtImpuestosProductosIVA1050() |
Valor | Impuestos Productos IVA 21,0% | <%= | operacion_valor | valor/valoresConcepto[contains('1706 1786',subTipoValorCpto/id) and valor/letraFactura='A']/monto | obtImpuestosProductosIVA2100() |
Valor | Impuestos Productos IVA 27,0% | <%= | operacion_valor | valor/valoresConcepto[contains('2287 2284',subTipoValorCpto/id) and valor/letraFactura='A']/monto | obtImpuestosProductosIVA2700() |
Valor | Percepciones Ingresos Brutos | <%= | operacion_valor | valor/valoresConcepto[subTipoValorCpto/concepto/id=516 and subTipoValorCpto/visiblePos=1]/monto | obtPercepcionesIngresosBrutos() |
Producto | Nombre Primera Obra Social | <%# | item_valor | itemConvenio1raCobertura/convenio/obraSocial/nombre | obtNombre1raObraSocial() |
Producto | Nombre Segunda Obra Social | <%# | item_valor | itemConvenio2daCobertura/convenio/obraSocial/nombre | obtNombre2daObraSocial() |
Producto | Nombre Tercera Obra Social | <%# | item_valor | itemConvenio3raCobertura/convenio/obraSocial/nombre | obtNombre3raObraSocial() |
Producto | Nombre Cuarta Obra Social | <%# | item_valor | itemConvenio4taCobertura/convenio/obraSocial/nombre | obtNombre4taObraSocial() |
Producto | Nombre Quinta Obra Social | <%# | item_valor | itemConvenio5taCobertura/convenio/obraSocial/nombre | obtNombre5taObraSocial() |
Producto | Nombre Sexta Obra Social | <%# | item_valor | itemConvenio6taCobertura/convenio/obraSocial/nombre | obtNombre6taObraSocial() |
Producto | Nombre Séptima Obra Social | <%# | item_valor | itemConvenio7maCobertura/convenio/obraSocial/nombre | obtNombre7maObraSocial() |
Producto | Nombre Primer Convenio | <%# | item_valor | itemConvenio1/valor/subTipoValor/nombre | obtNombre1erConvenio() |
Producto | Nombre Segundo Convenio | <%# | item_valor | itemConvenio2/valor/subTipoValor/nombre | obtNombre2doConvenio() |
Producto | Nombre Tercer Convenio | <%# | item_valor | itemConvenio3/valor/subTipoValor/nombre | obtNombre3erConvenio() |
Producto | Nombre Cuarto Convenio | <%# | item_valor | itemConvenio4/valor/subTipoValor/nombre | obtNombre4toConvenio() |
Producto | Nombre Quinto Convenio | <%# | item_valor | itemConvenio5/valor/subTipoValor/nombre | obtNombre5toConvenio() |
Producto | Importe Dtos. Primer Convenio | <%# | item_valor | itemConvenio1/sumaDescuentosSinIvaPlantilla | obtSumaDescuentos1erConvenio() |
Producto | Importe Dtos. Segundo Convenio | <%# | item_valor | itemConvenio2/sumaDescuentosSinIvaPlantilla | obtSumaDescuentos2doConvenio() |
Producto | Importe Dtos. Tercer Convenio | <%# | item_valor | itemConvenio3/sumaDescuentosSinIvaPlantilla | obtSumaDescuentos3erConvenio() |
Producto | Importe Dtos. Cuarto Convenio | <%# | item_valor | itemConvenio4/sumaDescuentosSinIvaPlantilla | obtSumaDescuentos4toConvenio() |
Producto | Importe Dtos. Quinto Convenio | <%# | item_valor | itemConvenio5/sumaDescuentosSinIvaPlantilla | obtSumaDescuentos5toConvenio() |
Producto | Importe Rgos. Primer Convenio | <%# | item_valor | itemConvenio1/rgoConvenioSinIVAPlantilla | obtSumaRecargos1erConvenio() |
Producto | Importe Rgos. Segundo Convenio | <%# | item_valor | itemConvenio2/rgoConvenioSinIVAPlantilla | obtSumaRecargos2doConvenio() |
Producto | Importe Rgos. Tercer Convenio | <%# | item_valor | itemConvenio3/rgoConvenioSinIVAPlantilla | obtSumaRecargos3erConvenio() |
Producto | Importe Rgos. Cuarto Convenio | <%# | item_valor | itemConvenio4/rgoConvenioSinIVAPlantilla | obtSumaRecargos4toConvenio() |
Producto | Importe Rgos. Quinto Convenio | <%# | item_valor | itemConvenio5/rgoConvenioSinIVAPlantilla | obtSumaRecargos5toConvenio() |
Valor | Número de Cobertura | <%& | operacionesValor | .[valor/tipoValor/id=2 and valor/anulacion!='A']/numeroCobertura | obtNumeroCoberturaVenta() |
Valor | Importe Saldo Afiliado | <%& | operacionesValor | .[valor/tipoValor/id=2 and valor/anulacion!='A']/saldoAfiliadoSinDto | obtSaldoAfiliadoVenta() |
Valor | Importe Tarjetas Venta | <%& | operacionesValor | .[valor/tipoValor/id=9 and valor/anulacion!='A']/montoPrincipal | obtImporteFormaPagoTarjetaVenta() |
Valor | Descuento Tarjetas Venta | <%& | operacionesValor | .[valor/tipoValor/id=9 and valor/anulacion!='A']/valor/descuentoFPPlantilla | obtDescuentoTarjeta() |
Valor | Descuento Efectivo Venta | <%@ | operacion | operacionesValor[valor/tipoValor/id=3 and valor/anulacion!='A']/valor/descuentoFPPlantilla | obtDescuentoEfectivo() |
Valor | Descuento CH/Terceros Venta | <%& | operacionesValor | operacionesValor[valor/tipoValor/id=5 and valor/anulacion!='A']/valor/descuentoFPPlantilla | obtDescuentoChequeTerceros() |
Valor | Descuento Cuentas Corriente Venta | <%@ | operacion | operacionesValor[valor/tipoValor/id=22 and valor/anulacion!='A']/valor/descuentoFPPlantilla | obtDescuentoCtaCte() |
Valor | Descuento Convenios Venta | <%& | operacionesValor | operacionesValor[valor/tipoValor/id=211 and valor/anulacion!='A']/valor/descuentoFPPlantilla | obtDescuentoConvenio() |
Valor | Importe Efectivo Venta | <%@ | operacion | operacionesValor[valor/tipoValor/id=3 and valor/anulacion!='A']/valor/montoPrincipal | obtImporteFormaPagoEfectivoVenta() |
Valor | Importe Cuentas Corriente Venta | <%@ | operacion | operacionesValor[valor/tipoValor/id=22 and valor/anulacion!='A']/valor/montoPrincipal | obtImporteFormaPagoCtaCteVenta() |
Valor | Recargo Efectivo Venta | <%@ | operacion | operacionesValor[valor/tipoValor/id=3 and valor/anulacion!='A']/valor/recargoFPPlantilla | obtRecargoEfectivo() |
Valor | Recargo CH/Terceros Venta | <%& | operacionesValor | operacionesValor[valor/tipoValor/id=5 and valor/anulacion!='A']/valor/recargoFPPlantilla | obtRecargoChequeTerceros() |
Valor | Recargo Cuentas Corriente Venta | <%@ | operacion | operacionesValor[valor/tipoValor/id=22 and valor/anulacion!='A']/valor/recargoFPPlantilla | obtRecargoCtaCte() |
Valor | Recargo Convenios Venta | <%& | operacionesValor | operacionesValor[valor/tipoValor/id=211 and valor/anulacion!='A']/valor/recargoFPPlantilla | obtRecargoConvenio() |
Valor | Recargo Cuotas Cta.Cte. Venta | <%& | operacionesValor | valor[tipoValor/id=21 and anulacion!='A']/valor/recargoFPPlantilla | obtRecargoCuotasCtaCte() |
Valor | Recargo Tarjetas Venta | <%& | operacionesValor | .[valor/tipoValor/id=9 and valor/anulacion!='A']/valor/recargoFPPlantilla | obtRecargoTarjeta() |
Métodos para Liquidaciones: Plantillas v4
objeto | atributo | función | tabla | método | nuevo método |
Recibo a Cliente | Nombre del Cliente | <%@ | operacion_valor | entidadLiquidacion | |
Recibo a Cliente | Fecha de Liquidación | <%@ | operacion_valor | fechaLiquidacion | |
Listado de Comprobantes | Número del Comprobante | <%* | item_liquidacion | codificacion | |
Listado de Comprobantes | Fecha Vencimiento | <%* | item_liquidacion | fechaVencimiento | |
Listado de Comprobantes | Importe de la Cuota | <%* | item_liquidacion | monto | |
Listado de Comprobantes | Fecha de Emisión | <%* | item_liquidacion | fechaEmision | |
Listado de Comprobantes | Nombre del Cliente | <%* | item_liquidacion | entidad | |
Recibo a Cliente | Concepto Total de Liquidación | <%$ | conceptos | subTipoValorCpto/nombre | |
Recibo a Cliente | Importe Total de Liquidación | <%$ | conceptos | monto |
Referencias Electrónicas del Comprobante - 18-01-2021
objeto | atributo | función | tabla | método | nuevo método |
valor | Forma Autorización F.E. | <%= | operacion_valor | valor/formaAutorizacion |
obtFormaAutorizacionFE() |
valor | Número C.A.E. | <%= | operacion_valor | valor/numeroAutorizacion |
obtReferenciaElectronica() |
valor | Vencimiento C.A.E. | <%= | operacion_valor | valor/fechaAutorizacion |
obtFechaReferenciaElectronica() |
valor | Marca C.A.E.A. | <%= | operacion_valor | valor/marcaCAEA |
obtMarcaCAEA() |
valor | Fecha de Vencimiento | <%= | operacion_valor | valor/fechaVencimiento |
obtFechaVencimiento() |
valor | Fecha de Vencimiento | <%= | operacion_valor | valor/fechaAdicional |
obtFechaAdicional() |
Para discriminar si la referencia electrónica correponde a un Código de Autorización Electrónico C.A.E. o a un Código de Autorización Electrónico Anticipado C.A.E.A, disponer de los métodos indicados de la siguiente manera:
<%=concat(format:enlazar(concat('C.A.E.',format:string(obtMarcaCAEA())),': ',format:rpad(obtReferenciaElectronica(),15),25),format:rightpad('Vto.:',format:rpad(format:shortDate(obtFechaReferenciaElectronica()),11)))%>
Caracteres
Para la obtención de la sintaxis de comandos se debe recurrir a los manuales de cada modelo de impresora fiscal.
A modo de ejemplo se transcriben algunos de los caracteres más usados:
modelo impresora | HEXA | ASCII | descripción |
Bematech
Epson |
\u001B | ESC | Por definición del protocolo, todo comando empieza con 1B |
Bematech
Epson |
\u001B@ | ESC @ | Inicializa la impresora |
Bematech | \u001Btn | ESC t n | Selecciona la página de código n:
n = 2 (PÁGINA DE CÓDIGO 850 – Falla) n = 3 (PÁGINA DE CÓDIGO 437) n = 4 (PÁGINA DE CÓDIGO 860) n = 5 (PÁGINA DE CÓDIGO 858) |
Bematech | \u001Bln | ESC l n | Programa el margen izquierdo para la columna n |
Epson | \u001Bl | ESC l | Posiciona margen izquierdo |
Bematech
Epson |
\u000E | SO | Selecciona expandido por una línea |
Bematech | \u0014 | DC4 | Cancela modo expandido de una línea |
Bematech
Epson |
\u000F | SI | Selecciona modo condensado |
Bematech
Epson |
\u0012 | DC2 | Cancela modo condensado |
Bematech | \u001BE | ESC SO | Selecciona expandido por una línea |
Bematech | \u001BF | ESC SI | Selecciona modo condensado |
Epson | \u001BF | ESC F | Cancela modo enfatizado |
Bematech
Epson |
\u001Bm | ESC m | Realiza un corte parcial de papel |
Epson | \u001BM | ESC M | Selecciona el ancho elite |
Epson | \u001B0 | ESC 0 | Selecciona 1/8 de pulgada de línea de espacio |
Epson | \u001B- | ESC - | Selecciona/cancela modo subrayado |
Epson | \u001BW | ESC W | Selecciona/cancela el modo expandido |
Hasar Epson | \u001B!\u0008 | ESC ! 8 | Selecciona modo enfatizado |
Ejemplo Modelo
Hagamos un seguimiento, línea a línea, de la plantilla Factura Bematech MP4000 TH (45) cargada en zWeb:
1) \u001B@\u001Bt2\u001Bl\u0001
- ESC @ = inicializa la impresora;
- ESC t 2 = selecciona la página de código 850;
- ESC l 1 = programa el margen iazquierdo para la columna 1.
2) \u000E<%=format:rpad((valor/nodoCreacion/razonSocial),19)%>
- SO = selecciona expandido por una línea;
- Busca en la tabla operacion_valor la Factura;
- Imprime 19 caracteres de la Razón Social del Nodo Creación de la Factura,
- si tiene más de 19 caracteres: los corta,
- si tiene menos: completa a derecha con espacios.
3) \u0014\u000F<%=format:rpad((valor/nodoCreacion/razonSocialLinea2),42)%>
DC4 = cancela modo expandido de una línea;
- SI = selecciona modo condensado;
- Busca en la tabla operacion_valor la Factura;
- Imprime 42 caracteres de la Razón Social 2a línea del Nodo Creación de la Factura,
- si tiene más de 42 caracteres: los corta,
- si tiene menos: completa a derecha con espacios.
4) \u000F<%=format:rpad((valor/nodoCreacion/direcciones[1]),42)%>
- SI = selecciona modo condesado;
- Busca en la tabla operacion_valor la Factura;
- Imprime 42 caracteres de la 1er Dirección del Nodo Creación de la Factura,
- si tiene más de 42 caracteres: los corta,
- si tiene menos: completa a derecha con espacios.
5) \u000FTel.: <%=format:rpad((valor/nodoCreacion/telefonosConcatenados),42)%>
- SI = selecciona modo condensado;
- Busca en la tabla operacion_valor la Factura;
- Imprime 42 caracteres con los Teléfonos del Nodo Creación de la Factura,
- si ocupan más de 42 caracteres: los corta,
- si ocupan menos: completa a derecha con espacios.
6) \u000FC.U.I.T. : <%=format:rpad((valor/nodoCreacion/cuit),30)%>
- SI = selecciona modo condensado;
- Imprime el texto 'C.U.I.T. : ';
- Busca en la tabla operacion_valor la Factura;
- Imprime 30 caracteres del CUIT del Nodo Creación de la Factura,
- si tiene más de 30 caracteres: los corta,
- si tiene menos: completa a derecha con espacios.
7) \u000FI.V.A. : <%=format:rpad((valor/nodoCreacion/objSituacionIVA/nombre),30)%>
- SI = selecciona modo condensado;
- Imprime el texto 'I.V.A. : ';
- Busca en la tabla operacion_valor la Factura;
- Imprime 30 caracteres del nombre de la Situación de IVA del Nodo Creación de la Factura,
- si tiene más de 30 caracteres: los corta,
- si tiene menos: completa a derecha con espacios.
8) \u000FI.Br. : <%=format:rpad((valor/nodoCreacion/ingresosBrutos),30)%>
- SI = selecciona modo condensado;
- Imprime el texto 'I.Br. : ';
- Busca en la tabla operacion_valor la Factura;
- Imprime 30 caracteres del nombre del nro. de Ingresos Brutos del Nodo Creación de la Factura,
- si tiene más de 30 caracteres: los corta,
- si tiene menos: completa a derecha con espacios.
9) /
- Imprime una línea en blanco.
10) \u000FCliente : <%=format:rpad((valor/entidad/nombre),30)%>
- SI = selecciona modo condensado;
- Imprime el texto 'Cliente : ';
- Busca en la tabla operacion_valor la Factura;
- Imprime 30 caracteres del Nombre del Cliente asociado a la Factura,
- si tiene más de 30 caracteres: los corta,
- si tiene menos: completa a derecha con espacios.
11) \u000F<%=format:rpad((valor/entidad/apellido),30)%>
- SI = selecciona modo condensado;
- Busca en la tabla operacion_valor la Factura;
- Imprime 30 caracteres del Apellido del Cliente asociado a la Factura,
- si tiene más de 30 caracteres: los corta,
- si tiene menos: completa a derecha con espacios.
12) \u000FDireccion: <%=format:rpad((valor/entidad/direcciones[1]),30)%>
- SI = selecciona modo condensado;
- Imprime el texto 'Direccion: ';
- Busca en la tabla operacion_valor la Factura;
- Imprime 30 caracteres de la 1er Dirección del Cliente asociado a la Factura,
- si tiene más de 30 caracteres: los corta,
- si tiene menos: completa a derecha con espacios.
13) \u000FTelefono.: <%=format:rpad((valor/entidad/telefonosConcatenados)</span<,30)%>
- SI = selecciona modo condensado;
- Busca en la tabla operacion_valor la Factura;
- Imprime 30 caracteres con los Teléfonos del Cliente asociado la Factura,
- si ocupan más de 30 caracteres: los corta,
- si ocupan menos: completa a derecha con espacios.
14) \u000F<%@concat('Afiliado: <',format:rpad((operacionesValor[valor/tipoValor/id=2]/valor/nombreAfiliado),20),'>
\u000FNro. <',format:lpad((operacionesValor[valor/tipoValor/id=2]/valor/numeroAfiliado),12),'>')%>
- SI = selecciona modo condensado;
- Busca en la tabla operacion la Receta;
- Imprime la concatenación de los textos:
- - 'Afiliado: '
- - 20 caracteres del Nombre del Afiliado de la Receta,
- si tiene más de 20 caracteres: los corta,
- si tiene menos: completa a derecha con espacios.
- - 'Nro. '
- - 12 caracteres del Número del Afiliado de la Receta,
- si tiene más de 12 caracteres: los corta,
- si tiene menos: completa a izquierda con espacios.
15) \u000FFecha : <%=format:rpad(format:longDate((valor/fechaCreacion)),20)%>
- SI = selecciona modo condensado;
- Busca en la tabla operacion_valor la Factura;
- Convierte la Fecha Creación de la Factura a longDate;
- Imprime 20 caracteres de la fecha obtenida,
- si tiene más de 20 caracteres: los corta,
- si tiene menos: completa a derecha con espacios.
16) \u0012\u001BE FACTURA <%=format:rpad((valor/letraFactura),1)%> - <%=format:rpad((valor/codificacion),13)%>\u001BF
- DC2 = cancela modo condensado;
- ESC SO = selecciona expandido por una línea;
- Imprime el texto ' FACTURA ';
- Busca en la tabla operacion_valor la Factura;
- Imprime la Letra de la Factura (1 caracter);
- Imprime el texto ' - '
- Busca en la tabla operacion_valor la Factura;
- Imprime 13 caracteres del Número de la Factura,
- si tiene más de 13 caracteres: los corta,
- si tiene menos: completa a derecha con espacios.
17) \u0012------------------------------------------
- DC2 = cancela el modo condensado;
- Imprime el texto '------------------------------------------'.
18) \u000F Cant Descripcion P Unit. P.Total
- SI = selecciona modo condensado;
- Imprime el texto 'Cant Descripcion P Unit. P.Total'.
19) \u0012------------------------------------------
- DC2 = cancela el modo condensado;
- Imprime el texto '------------------------------------------'.
20) \u000F<%#concat(format:lpad(format:string((cantidad)),6),' ',format:rpad((producto/nombreCorto),23),' ',format:lpad(format:string((precioUnitario)),12),' ',format:lpad(format:string((total)),12),'
\u000F Descuento <',format:lpad(format:string((descuentoGeneral)),12),'>
\u000F O. Social <',format:lpad(format:string(sum(itemsReceta/precioUnitario)),12),'>')%>
- SI = selecciona modo condensado;
- Comienza a iterar sobre la tabla item_valor y, para cada Ítem de la Factura, imprime la concatenación de los textos:
- - 6 caracteres (completados a izquierda con espacios) de la Cantidad convertida a texto.
- - espacio en blanco
- - 23 caracteres (completados a derecha con espacios) del Nombre Corto del Producto.
- - espacio en blanco
- - 12 caracteres (completados a izquierda con espacios) del Precio Unitario convertido a texto.
- - espacio en blanco
- - 12 caracteres (completados a izquierda con espacios) del Total convertido a texto.
- - 'Descuento '
- - 12 caracteres (completados a izquierda con espacios) del Descuento General convertido a texto.
- - 'O. Social '
- - 12 caraceteres (completados a izquierda con espacios) de la suma de los precios Unitarios de los Ítems de la Receta convertida a texto.
21) \u0012------------------------------------------
- DC2 = cancela el modo condensado;
- Imprime el texto '------------------------------------------'.
22) \u0012\u001BE TOTAL <%=format:lpad(format:string((valor/valoresConcepto[subTipoValorCpto/concepto/id=501]/monto)),12)%>\u001BF
- DC2 = cancela modo condensado;
- ESC SO = selecciona expandido por una línea;
- Imprime el texto 'TOTAL ';
- Busca en la tabla operacion_valor la Factura;
- Imprime 12 caracteres del Monto convertido a texto del subTipoValorConcepto tipo Total Neto de la Factura,
- si tiene más de 12 caracteres: los corta,
- si tiene menos: completa a izquierda con espacios;
- ESC SI = selecciona modo condensado.
23) \u000FOBRAS SOCIALES <%@format:lpad(format:string((operacionesValor[valor/tipoValor/id=2]/valor/montoPrincipal)),10)%>
- SI = selecciona modo condensado;
- Imprime el texto 'OBRAS SOCIALES ';
- Busca en la tabla operacion la Receta;
- Imprime 10 caracteres del Monto convertido a texto del subTipoValor Concepto Principal de la Receta,
- si tiene más de 10 caracteres: los corta,
- si tiene menos: completa a izquierda con espacios.
24) \u000FCUENTA CORRIENTE <%@format:lpad(format:string((operacionesValor[valor/tipoValor/id=22]/valor/montoPrincipal)),10)%>
- SI = selecciona modo condensado;
- Imprime el texto 'CUENTA CORRIENTE ';
- Busca en la tabla operacion la Cuenta Corriente;
- Imprime 10 caracteres del Monto convertido a texto del subTipoValor Concepto Principal de la Cuenta Corriente,
- si tiene más de 10 caracteres: los corta,
- si tiene menos: completa a izquierda con espacios.
25) \u000FCUOTA CUENTA CORRIENTE <%@format:lpad(format:string((operacionesValor[valor/tipoValor/id=21]/valor/montoPrincipal)),10)%>
- SI = selecciona modo condensado;
- Imprime el texto 'CUOTA CUENTA CORRIENTE ';
- Busca en la tabla operacion la Cuota de Cuenta Corriente;
- Imprime 10 caracteres del Monto convertido a texto del subTipoValor Concepto Principal de la Cuota de Cuenta Corriente,
- si tiene más de 10 caracteres: los corta,
- si tiene menos: completa a izquierda con espacios.
26) \u000F<%@concat(format:rpad((operacionesValor[valor/tipoValor/id=9]/valor/entidadSaldable/nombre),33),format:lpad(format:string((operacionesValor[valor/tipoValor/id=9]/valor/montoPrincipal)),10))%>
- SI = selecciona modo condensado;
- Busca en la tabla operacion la Cuota de Tarjeta;
- Imprime la concatenación de los textos:
- - 33 caracteres (completados a derecha con espacios) del Nombre de la Entidad Saldable de la Cuota de Tarjeta.
- - 10 caracteres (completados a izquierda con espacios) del Monto convertido a texto del subTipoValorConcepto Principal de la Cuota de Tarjeta.
27) \u000FCHEQUE TERCEROS <%@format:lpad(format:string((operacionesValor[valor/tipoValor/id=5]/valor/montoPrincipal)),10)%>
- SI = selecciona modo condensado;
- Imprime el texto 'CHEQUE TERCEROS ';
- Busca en la tabla operacion el Cheque de Terceros;
- Imprime 10 caracteres del Monto convertido a texto del subTipoValor Concepto Principal del Cheque de Terceros,
- si tiene más de 10 caracteres: los corta,
- si tiene menos: completa a izquierda con espacios.
28) \u000FEFECTIVO <%@format:lpad(format:string((operacionesValor[valor/tipoValor/id=3]/valor/montoPrincipal)),10)%>
- SI = selecciona modo condensado;
- Imprime el texto 'EFECTIVO ';
Busca en la tabla operacion el Billete;
- Imprime 10 caracteres del Monto convertido a texto del subTipoValor Concepto Principal del Billete,
- si tiene más de 10 caracteres: los corta,
- si tiene menos: completa a izquierda con espacios.
29) \u0012------------------------------------------
- DC2 = cancela el modo condensado;
- Imprime el texto '------------------------------------------'.
30) \u000FExento : <%=concat(format:lpad(format:string((valor/valoresConcepto[subTipoValorCpto/concepto/id=503 and subTipoValorCpto/visiblePos=1]/monto)),10),' Gravado: ',format:lpad(format:string((valor/valoresConcepto[subTipoValorCpto/concepto/id=541]/monto)),10))%>
- SI = selecciona modo condensado;
- Imprime el texto 'Exento : ';
- Busca en la tabla operacion_valor la Factura;
- Imprime la concatenación de los textos:
- - 10 caracteres (completados a izquierda con espacios) del Monto convertido a texto del subTipoValorConcepto Visible en T&S de tipo Total Bruto No Gravado.
- - ' Gravado: '
- - 10 caracteres (completados a izquierda con espacios) del Monto convertido a texto del subTipoValorConcepto de tipo Total Bruto Gravado POS.
31) \u000FVendedor : <%=format:rpad((valor/objUsuarioCreacion/alias),30)%>
- SI = selecciona modo condensado;
- Imprime el texto 'Vendedor : ';
- Busca en la tabla operacion_valor la Factura;
- Imprime 30 caracteres del Alias del Usuario Creación de la Factura,
- si tiene más de 30 caracteres: los corta,
- si tiene menos: completa a derecha con espacios.
32) \u000FPuesto : <%=format:rpad((operacion/puestoVenta/nombre),30)%>
- SI = selecciona modo condensado;
- Imprime el texto 'Puesto : ';
- Busca en la tabla operacion_valor la operación de Venta;
- Imprime 30 caracteres del Nombre del Puesto de Venta,
- si tiene más de 30 caracteres: los corta,
- si tiene menos: completa a derecha con espacios.
33) \u0012------------------------------------------
- DC2 = cancela el modo condensado;
- Imprime el texto '------------------------------------------'.
34) \u000F(comprobante sin valor fiscal)
- DC2 = cancela el modo condensado;
- Imprime el texto '(comprobante sin valor fiscal)'.
35) \u001Bw
- ESC 119 = corte total.
36) AJUSTE EN LAS PLANTILLAS: Forma de armar la plantilla para que aparezcan solo la lineas de puntos necesarios
Ejemplos Prototipos
XPaths para DATOS ADICIONALES:
- <%=format:rpad(obtNumeroComprobante(),13)<%+concat('-', format:string(prototipoDetalle/datoCodificado/nombre), ' : ', format:string(dato), ' : ', format:string(prototipoDetalle/nombre), ' : ', format:string(prototipoDetalle/prototipo/nombre), ' : ', format:string(prototipoDatoAdicional/prototipo/nombre), ' : ', format:string(prototipoDatoAdicional/numeroLinea))%>%>
PseudoFunciones para DATOS ADICIONALES:
- <%=format:rpad(obtNumeroComprobante(),13)<%+concat('-', format:string(obtNombreDatoCodificado()), ' : ', format:string(obtDatoCodificado()), ' : ', format:string(obtNombreDePrototipoDetalle()), ' : ', format:string(obtNombrePrototipoDePrototipoDetalle()), ' : ', format:string(obtNombrePrototipoDePrototipoDatoAdicional()), ' : ', format:string(obtNumeroLineaDePrototipoDatoAdicional()))%>%>
DATOS ADICIONALES para Valor de la OV a imprimir:
- <%=format:rpad(obtNumeroComprobante(),13)<%+concat('-', format:string(prototipoDetalle/datoCodificado/nombre), ' : ', format:string(dato))%>%>
DATOS ADICIONALES para Valor de la OV a imprimir:
- <%=format:rpad(obtNumeroComprobante(),13)<%+concat('-', format:string(obtNombreDatoCodificado()), ' : ', format:string(obtDatoCodificado()))%>%>
DATOS ADICIONALES para Valor de la OV en la que estoy parado:
- <%&format:rpad(obtNumeroComprobante(),13)<%+concat(' - ', format:string(prototipoDetalle/datoCodificado/nombre), ' : ', format:string(dato))%>%>