De Touch&Sale

Saltar a: navegación, buscar

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: separador (dato, título, ancho texto)
-imprime una línea separadora condicional,
-formada por caracteres ------------ con el valor indicado en título, centrado
hasta completar la cantidad de caracteres indicada por ancho texto.
-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=2]/valor/entidad/nombre,'- RECETA -',24)%>
si existen recetas, imprime el separador -------- RECETA --------


  • 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

Métodos marzo 2021

-nuevos métodos disponibles para plantillas.


  • format: separador (dato, título, ancho texto)
-imprime una línea separadora condicional,
-formada por caracteres ------------ con el valor indicado en título, centrado
hasta completar la cantidad de caracteres indicada por ancho texto.
-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=2]/valor/entidad/nombre,'- RECETA -',24)%>
si existen recetas, imprime el separador -------- RECETA --------


  • format:anchopagina()
-devuelve la cantidad de caracteres del ancho de la página seteados en el motor.
se utiliza como complemento de otros métodos para alinear las impresiones.
-por ejemplo:
<%@format:centerpad('--','- RECETA -',format:anchopagina())%>
imprime el texto -------- RECETA --------, centrándolo al valor obtenido


  • format:semianchopagina()
-devuelve la mitad de los de caracteres del ancho de la página seteados en el motor.
se utiliza como complemento de otros métodos para alinear las impresiones de texto en doble ancho.
-por ejemplo:
<%@format:textodobleancho(format:separador(obtNombreObraSocial(),'- RECETA -',format:semianchopagina()))%>
-si existe Obra Social, se imprime ---- RECETA ----, en letras de doble tamaño,
-centrándolo a la mitad del ancho de la página.


En las plantillas PDF se implementa el corte de papel:
  • format:cortepapel()
-ahora se permite el corte de la impresión del PDF en mitad de la plantilla,
-tal como se produce en las impresoras térmicas o matriciales comunes.
<%=format:cortepapel()%>


Métodos abril 2021 - (plantillas v4 y v5)

-métodos de caracter Original/Duplicado/etc. de la impresión de documentos.

  • format:obtNumeroCopia(parametro[1])
-registra el número de copia del documento impreso,
dentro de la secuencia de copias indicadas al generarlo.
-por ejemplo:
<%=format:rightpad('COPIA NUMERO  : ',format:obtNumeroCopia(parametro[1]))%>
- COPIA NUMERO  : 1
- COPIA NUMERO  : 2
- COPIA NUMERO  : 3


  • format:obtCaracterCopia(parametro[1])
-registra el carácter de original o copia del documento impreso,
dentro de la secuencia de copias indicadas al generarlo.
-por ejemplo:
<%=format:rightpad('ES COMPROBANTE : ',format:obtCaracterCopia(parametro[1]))%>
- ES COMPROBANTE : ORIGINAL
- ES COMPROBANTE : DUPLICADO
- ES COMPROBANTE : TRIPLICADO


  • Imprimir si un documento es una COPIA
-se pueden combinar métodos ya indicados de la siguiente forma:
<%=format:datoCondicional(format:obtNumeroCopia(parametro[1])!="1",'ES COPIA')%>
- si el documento NO es el original, se imprimirá
- ES COPIA


  • Descripción del nombre de Recargos en Tarjetas según el parámetro TEXTO_RECARGOS
Métodos:
<%&format:rightpad('Descripción p/Recargos v1: ',obtNombreDtoRgoTarjeta())%>
<%&format:rightpad('Descripción p/Recargos v2: ',obtEntidadDtoRgoTarjeta())%>
Se pueden combinar de la siguiente manera:
<%&concat('? ',concat(obtNombreDtoRgoTarjeta(),' ',format:string(obtNombreFormaPagoTarjeta())),'?<',format:lpad(format:string(-obtDescuentoTarjeta()),9),'>?')%>
-
<%&concat('? ',concat(obtEntidadDtoRgoTarjeta(),' ',format:string(obtNombreFormaPagoTarjeta())),'?<',format:lpad(format:string(obtRecargoTarjeta()),9),'>?')%>


-métodos exclusivos para Recetas.

  • Imprimir el Código de la Farmacia para la Obra Social.
-se dispone de los siguientes formatos:
<%=format:rightpad('Código en la OSP  : ',operacionesValor[valor/tipoValor/id=2]/valor/codigoFarmaciaOS)%>
<%=format:rightpad('Código s/Obra Social: ',obtCodigoFarmaciaOS())%>
<%=format:rightpad('Código en la 1er OS : ',obtCodigoFarmacia1raOS())%>
<%=format:rightpad('Código en la 2da OS : ',obtCodigoFarmacia2daOS())%>
...
<%=format:rightpad('Código en la 7ma OS : ',obtCodigoFarmacia7maOS())%>

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 junio 2021 - (plantillas v5 - PDF)

- Métodos para la impresión de Códigos de Barra (1D)


  • Se dispone de cinco tipos de códigos de barras:
-Desde las plantillas se invocan con los siguientes métodos:
.Code128
<%@format:imprimircode128('1234567890')%>
.Code39 Hoch'
<%@format:imprimircode39h('1234567890')%>
.Code39 Logitogo
<%@format:imprimircode39l('1234567890')%>
.BarCode font
<%@format:imprimirbarcode('1234567890')%>
.Code 3of9
<%@format:imprimirfree3of9('1234567890')%>
  • Se pueden modificar su alineación:
-a la izquierda (por defecto)
<%@format:imprimircode128('1234567890')%>
-a la derecha
<%@format:imprimircode128('1234567890','R')%>
-centrado
<%@format:imprimircode128('1234567890','C')%>
-Ejemplos:
Impresión centrada de los diferentes tipos de código de barra con el número de afiliado de una Receta:
- <%@format:imprimircode128(format:string( obtNumeroAfiliado()), 'C' )%>
- <%@format:imprimircode39h(format:string( obtNumeroAfiliado()), 'C' )%>
- <%@format:imprimircode39l(format:string( obtNumeroAfiliado()), 'C' )%>
- <%@format:imprimirbarcode(format:string( obtNumeroAfiliado()), 'C' )%>
- <%@format:imprimirfree3of9(format:string( obtNumeroAfiliado(), 'C' )%>


- Selección del método para la impresión de Códigos de Barra (1D) por Parámetro del nodo

  • El utlizan los métodos:
<%@format:imprimirCodigoDeBarras('1234567890')%>
<%@format:imprimirCodigoDeBarras('1234567890','R')%>
<%@format:imprimirCodigoDeBarras('1234567890','L')%>
-Según el parámetro: CODIGO_BARRA_PLANTILLA
se selecciona la fuente del código de barra a imprimir y su alineación,
de la forma: CODE39H,R
que indica codificación CODE39 HOCH, alineado a la derecha 'R' (puede ser 'D')
para el alineado a la izquierda se envía el parámetro 'L' (puede ser 'I')
El código por defecto es CODE128,C


  • Impresión de los Troqueles:
<%#format:imprimirEAN13( obtCodigoBarraProducto() )%>

Más funciones de junio 2021

- Métodos para el avance de la cinta de papel para pegar troqueles en las Recetas.

  • Objetivo:
-agregar 5cm de papel cada 4 Productos en las Recetas de Obra Social configuradas para tal fin.


  • Método:
-<%=format:avanzarLineas(round(ceiling(cantidadProductos div 4 ) * espacioTroquel * lineasEnBlancoXcm * 5 ) )%>


-donde:
ceiling (cantidadProductos div 4 )
es lo que hace que 1, 2, 3, ó 4 productos, devuelva 1 fila de troqueles.
5, 6, 7 u 8 productos, 2 filas
y así.
espacioTroquel representa la configuración de la Obra Social
Si imprime, devuelve 1
Si NO imprime, devuelve 0
lineasEnBlancoXcm devuelve lo que indica el parámetro del nodo.
Si no existe, devuelve el valor por defecto = 2.5
ESPACIOS_EN_BLANCO_POR_CENTIMETRO es el parámetro.
El 5 representan los 5cm que miden los troqueles.

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()
Cliente Observaciones\n del cliente <%= operacion_valor valor/entidad/observacion obtObservacionCliente()
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_valor 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/fechaAdicional

obtFechaAdicional()

valor Marca C.A.E.A. <%= operacion_valor valor/marcaCAEA

obtMarcaCAEA()

valor Fecha de Vencimiento <%= operacion_valor valor/fechaVencimiento

obtFechaVencimiento()

valor Fecha Adicional <%= operacion_valor valor/fechaAdicional

obtFechaAdicional()


valor Fecha de Autorizacion <%= operacion_valor valor/fechaAutorizacion

obtFechaReferenciaElectronica()


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:

<%=format:separador(obtReferenciaElectronica(),'--- REFERENCIA ELECTRONICA ---')%> <%=concat(format:enlazar(concat('C.A.E.',format:string(obtMarcaCAEA())),': ',format:rpad(obtReferenciaElectronica(),15), 25),format:rightpad('Vto.:',format:rpad(format:shortDate(obtFechaAdicional()),11)))%> <%=format:separador()%>

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

Fuera del Concat Dentro del Concat
---------------------------------------- <<%@concat('Afil. : <',format:rpad(operacionesValor[valor/tipoValor/id=2]/valor/nombreAfiliado,25),'>

Numero: <',format:rpad(operacionesValor[valor/tipoValor/id=2]/valor/numeroAfiliado,25),'>')%>>

<<%@concat('---------------------------------------- Afil. : <',format:rpad(operacionesValor[valor/tipoValor/id=2]/valor/nombreAfiliado,25),'>

Numero: <',format:rpad(operacionesValor[valor/tipoValor/id=2]/valor/numeroAfiliado,25),'>')%>>

V201.png V301.png

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))%>%>


Prototipos (agosto 2021)

Impresión de todos los prototipos imprimibles:

<%=format:cpad('qq',0)<%+concat(format:string(obtNombreDatoCodificado()),' : ',format:string(obtDatoCodificado()))%>%>
<%=format:cpad('qq',0)<%+concat(,format:string(obtDatoCodificado()))%>%>

Impresión de los prototipos imprimibles de cabecera:

<%=format:cpad('qq',0)<%+concat(format:string(obtNombreDatoCodificado()),' : ',format:string(obtCabeceraDatoCodificado()))%>%>
<%=format:cpad('qq',0)<%+concat(,format:string(obtCabeceraDatoCodificado()))%>%>

Impresión de los prototipos imprimibles de pie de página:

<%=format:cpad('qq',0)<%+concat(format:string(obtNombreDatoCodificado()),' : ',format:string(obtPieDatoCodificado()))%>%>
<%=format:cpad('qq',0)<%+concat(,format:string(obtPieDatoCodificado()))%>%>

Funciones propias[editar]

  • / = 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: separador (dato, título, ancho texto)
-imprime una línea separadora condicional,
-formada por caracteres ------------ con el valor indicado en título, centrado
hasta completar la cantidad de caracteres indicada por ancho texto.
-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=2]/valor/entidad/nombre,'- RECETA -',24)%>
si existen recetas, imprime el separador -------- RECETA --------


  • 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)[editar]

  • 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[editar]

-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[editar]

-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[editar]

-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

Métodos marzo 2021[editar]

-nuevos métodos disponibles para plantillas.


  • format: separador (dato, título, ancho texto)
-imprime una línea separadora condicional,
-formada por caracteres ------------ con el valor indicado en título, centrado
hasta completar la cantidad de caracteres indicada por ancho texto.
-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=2]/valor/entidad/nombre,'- RECETA -',24)%>
si existen recetas, imprime el separador -------- RECETA --------


  • format:anchopagina()
-devuelve la cantidad de caracteres del ancho de la página seteados en el motor.
se utiliza como complemento de otros métodos para alinear las impresiones.
-por ejemplo:
<%@format:centerpad('--','- RECETA -',format:anchopagina())%>
imprime el texto -------- RECETA --------, centrándolo al valor obtenido


  • format:semianchopagina()
-devuelve la mitad de los de caracteres del ancho de la página seteados en el motor.
se utiliza como complemento de otros métodos para alinear las impresiones de texto en doble ancho.
-por ejemplo:
<%@format:textodobleancho(format:separador(obtNombreObraSocial(),'- RECETA -',format:semianchopagina()))%>
-si existe Obra Social, se imprime ---- RECETA ----, en letras de doble tamaño,
-centrándolo a la mitad del ancho de la página.


En las plantillas PDF se implementa el corte de papel:
  • format:cortepapel()
-ahora se permite el corte de la impresión del PDF en mitad de la plantilla,
-tal como se produce en las impresoras térmicas o matriciales comunes.
<%=format:cortepapel()%>


Métodos abril 2021 - (plantillas v4 y v5)[editar]

-métodos de caracter Original/Duplicado/etc. de la impresión de documentos.

  • format:obtNumeroCopia(parametro[1])
-registra el número de copia del documento impreso,
dentro de la secuencia de copias indicadas al generarlo.
-por ejemplo:
<%=format:rightpad('COPIA NUMERO  : ',format:obtNumeroCopia(parametro[1]))%>
- COPIA NUMERO  : 1
- COPIA NUMERO  : 2
- COPIA NUMERO  : 3


  • format:obtCaracterCopia(parametro[1])
-registra el carácter de original o copia del documento impreso,
dentro de la secuencia de copias indicadas al generarlo.
-por ejemplo:
<%=format:rightpad('ES COMPROBANTE : ',format:obtCaracterCopia(parametro[1]))%>
- ES COMPROBANTE : ORIGINAL
- ES COMPROBANTE : DUPLICADO
- ES COMPROBANTE : TRIPLICADO


  • Imprimir si un documento es una COPIA
-se pueden combinar métodos ya indicados de la siguiente forma:
<%=format:datoCondicional(format:obtNumeroCopia(parametro[1])!="1",'ES COPIA')%>
- si el documento NO es el original, se imprimirá
- ES COPIA


  • Descripción del nombre de Recargos en Tarjetas según el parámetro TEXTO_RECARGOS
Métodos:
<%&format:rightpad('Descripción p/Recargos v1: ',obtNombreDtoRgoTarjeta())%>
<%&format:rightpad('Descripción p/Recargos v2: ',obtEntidadDtoRgoTarjeta())%>
Se pueden combinar de la siguiente manera:
<%&concat('? ',concat(obtNombreDtoRgoTarjeta(),' ',format:string(obtNombreFormaPagoTarjeta())),'?<',format:lpad(format:string(-obtDescuentoTarjeta()),9),'>?')%>
-
<%&concat('? ',concat(obtEntidadDtoRgoTarjeta(),' ',format:string(obtNombreFormaPagoTarjeta())),'?<',format:lpad(format:string(obtRecargoTarjeta()),9),'>?')%>


-métodos exclusivos para Recetas.

  • Imprimir el Código de la Farmacia para la Obra Social.
-se dispone de los siguientes formatos:
<%=format:rightpad('Código en la OSP  : ',operacionesValor[valor/tipoValor/id=2]/valor/codigoFarmaciaOS)%>
<%=format:rightpad('Código s/Obra Social: ',obtCodigoFarmaciaOS())%>
<%=format:rightpad('Código en la 1er OS : ',obtCodigoFarmacia1raOS())%>
<%=format:rightpad('Código en la 2da OS : ',obtCodigoFarmacia2daOS())%>
...
<%=format:rightpad('Código en la 7ma OS : ',obtCodigoFarmacia7maOS())%>

Funciones definidas para cada tipo de dispositivo (Plantillas v3)[editar]

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 junio 2021 - (plantillas v5 - PDF)[editar]

- Métodos para la impresión de Códigos de Barra (1D)


  • Se dispone de cinco tipos de códigos de barras:
-Desde las plantillas se invocan con los siguientes métodos:
.Code128
<%@format:imprimircode128('1234567890')%>
.Code39 Hoch'
<%@format:imprimircode39h('1234567890')%>
.Code39 Logitogo
<%@format:imprimircode39l('1234567890')%>
.BarCode font
<%@format:imprimirbarcode('1234567890')%>
.Code 3of9
<%@format:imprimirfree3of9('1234567890')%>
  • Se pueden modificar su alineación:
-a la izquierda (por defecto)
<%@format:imprimircode128('1234567890')%>
-a la derecha
<%@format:imprimircode128('1234567890','R')%>
-centrado
<%@format:imprimircode128('1234567890','C')%>
-Ejemplos:
Impresión centrada de los diferentes tipos de código de barra con el número de afiliado de una Receta:
- <%@format:imprimircode128(format:string( obtNumeroAfiliado()), 'C' )%>
- <%@format:imprimircode39h(format:string( obtNumeroAfiliado()), 'C' )%>
- <%@format:imprimircode39l(format:string( obtNumeroAfiliado()), 'C' )%>
- <%@format:imprimirbarcode(format:string( obtNumeroAfiliado()), 'C' )%>
- <%@format:imprimirfree3of9(format:string( obtNumeroAfiliado(), 'C' )%>


- Selección del método para la impresión de Códigos de Barra (1D) por Parámetro del nodo

  • El utlizan los métodos:
<%@format:imprimirCodigoDeBarras('1234567890')%>
<%@format:imprimirCodigoDeBarras('1234567890','R')%>
<%@format:imprimirCodigoDeBarras('1234567890','L')%>
-Según el parámetro: CODIGO_BARRA_PLANTILLA
se selecciona la fuente del código de barra a imprimir y su alineación,
de la forma: CODE39H,R
que indica codificación CODE39 HOCH, alineado a la derecha 'R' (puede ser 'D')
para el alineado a la izquierda se envía el parámetro 'L' (puede ser 'I')
El código por defecto es CODE128,C


  • Impresión de los Troqueles:
<%#format:imprimirEAN13( obtCodigoBarraProducto() )%>

Más funciones de junio 2021 [editar]

- Métodos para el avance de la cinta de papel para pegar troqueles en las Recetas.

  • Objetivo:
-agregar 5cm de papel cada 4 Productos en las Recetas de Obra Social configuradas para tal fin.


  • Método:
-<%=format:avanzarLineas(round(ceiling(cantidadProductos div 4 ) * espacioTroquel * lineasEnBlancoXcm * 5 ) )%>


-donde:
ceiling (cantidadProductos div 4 )
es lo que hace que 1, 2, 3, ó 4 productos, devuelva 1 fila de troqueles.
5, 6, 7 u 8 productos, 2 filas
y así.
espacioTroquel representa la configuración de la Obra Social
Si imprime, devuelve 1
Si NO imprime, devuelve 0
lineasEnBlancoXcm devuelve lo que indica el parámetro del nodo.
Si no existe, devuelve el valor por defecto = 2.5
ESPACIOS_EN_BLANCO_POR_CENTIMETRO es el parámetro.
El 5 representan los 5cm que miden los troqueles.

Funciones de jxpath[editar]

  • 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[editar]

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()
Cliente Observaciones\n del cliente <%= operacion_valor valor/entidad/observacion obtObservacionCliente()
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[editar]

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_valor 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[editar]

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[editar]

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[editar]

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/fechaAdicional

obtFechaAdicional()

valor Marca C.A.E.A. <%= operacion_valor valor/marcaCAEA

obtMarcaCAEA()

valor Fecha de Vencimiento <%= operacion_valor valor/fechaVencimiento

obtFechaVencimiento()

valor Fecha Adicional <%= operacion_valor valor/fechaAdicional

obtFechaAdicional()


valor Fecha de Autorizacion <%= operacion_valor valor/fechaAutorizacion

obtFechaReferenciaElectronica()


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:

<%=format:separador(obtReferenciaElectronica(),'--- REFERENCIA ELECTRONICA ---')%> <%=concat(format:enlazar(concat('C.A.E.',format:string(obtMarcaCAEA())),': ',format:rpad(obtReferenciaElectronica(),15), 25),format:rightpad('Vto.:',format:rpad(format:shortDate(obtFechaAdicional()),11)))%> <%=format:separador()%>

Caracteres[editar]

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[editar]

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

Fuera del Concat Dentro del Concat
---------------------------------------- <<%@concat('Afil. : <',format:rpad(operacionesValor[valor/tipoValor/id=2]/valor/nombreAfiliado,25),'>

Numero: <',format:rpad(operacionesValor[valor/tipoValor/id=2]/valor/numeroAfiliado,25),'>')%>>

<<%@concat('---------------------------------------- Afil. : <',format:rpad(operacionesValor[valor/tipoValor/id=2]/valor/nombreAfiliado,25),'>

Numero: <',format:rpad(operacionesValor[valor/tipoValor/id=2]/valor/numeroAfiliado,25),'>')%>>

V201.png V301.png

Ejemplos Prototipos[editar]

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))%>%>


Prototipos (agosto 2021)[editar]

Impresión de todos los prototipos imprimibles:

<%=format:cpad('qq',0)<%+concat(format:string(obtNombreDatoCodificado()),' : ',format:string(obtDatoCodificado()))%>%>
<%=format:cpad('qq',0)<%+concat(,format:string(obtDatoCodificado()))%>%>

Impresión de los prototipos imprimibles de cabecera:

<%=format:cpad('qq',0)<%+concat(format:string(obtNombreDatoCodificado()),' : ',format:string(obtCabeceraDatoCodificado()))%>%>
<%=format:cpad('qq',0)<%+concat(,format:string(obtCabeceraDatoCodificado()))%>%>

Impresión de los prototipos imprimibles de pie de página:

<%=format:cpad('qq',0)<%+concat(format:string(obtNombreDatoCodificado()),' : ',format:string(obtPieDatoCodificado()))%>%>
<%=format:cpad('qq',0)<%+concat(,format:string(obtPieDatoCodificado()))%>%>

new user message

Funciones propias[editar]

  • / = 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: separador (dato, título, ancho texto)
-imprime una línea separadora condicional,
-formada por caracteres ------------ con el valor indicado en título, centrado
hasta completar la cantidad de caracteres indicada por ancho texto.
-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=2]/valor/entidad/nombre,'- RECETA -',24)%>
si existen recetas, imprime el separador -------- RECETA --------


  • 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)[editar]

  • 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[editar]

-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[editar]

-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[editar]

-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

Métodos marzo 2021[editar]

-nuevos métodos disponibles para plantillas.


  • format: separador (dato, título, ancho texto)
-imprime una línea separadora condicional,
-formada por caracteres ------------ con el valor indicado en título, centrado
hasta completar la cantidad de caracteres indicada por ancho texto.
-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=2]/valor/entidad/nombre,'- RECETA -',24)%>
si existen recetas, imprime el separador -------- RECETA --------


  • format:anchopagina()
-devuelve la cantidad de caracteres del ancho de la página seteados en el motor.
se utiliza como complemento de otros métodos para alinear las impresiones.
-por ejemplo:
<%@format:centerpad('--','- RECETA -',format:anchopagina())%>
imprime el texto -------- RECETA --------, centrándolo al valor obtenido


  • format:semianchopagina()
-devuelve la mitad de los de caracteres del ancho de la página seteados en el motor.
se utiliza como complemento de otros métodos para alinear las impresiones de texto en doble ancho.
-por ejemplo:
<%@format:textodobleancho(format:separador(obtNombreObraSocial(),'- RECETA -',format:semianchopagina()))%>
-si existe Obra Social, se imprime ---- RECETA ----, en letras de doble tamaño,
-centrándolo a la mitad del ancho de la página.


En las plantillas PDF se implementa el corte de papel:
  • format:cortepapel()
-ahora se permite el corte de la impresión del PDF en mitad de la plantilla,
-tal como se produce en las impresoras térmicas o matriciales comunes.
<%=format:cortepapel()%>


Métodos abril 2021 - (plantillas v4 y v5)[editar]

-métodos de caracter Original/Duplicado/etc. de la impresión de documentos.

  • format:obtNumeroCopia(parametro[1])
-registra el número de copia del documento impreso,
dentro de la secuencia de copias indicadas al generarlo.
-por ejemplo:
<%=format:rightpad('COPIA NUMERO  : ',format:obtNumeroCopia(parametro[1]))%>
- COPIA NUMERO  : 1
- COPIA NUMERO  : 2
- COPIA NUMERO  : 3


  • format:obtCaracterCopia(parametro[1])
-registra el carácter de original o copia del documento impreso,
dentro de la secuencia de copias indicadas al generarlo.
-por ejemplo:
<%=format:rightpad('ES COMPROBANTE : ',format:obtCaracterCopia(parametro[1]))%>
- ES COMPROBANTE : ORIGINAL
- ES COMPROBANTE : DUPLICADO
- ES COMPROBANTE : TRIPLICADO


  • Imprimir si un documento es una COPIA
-se pueden combinar métodos ya indicados de la siguiente forma:
<%=format:datoCondicional(format:obtNumeroCopia(parametro[1])!="1",'ES COPIA')%>
- si el documento NO es el original, se imprimirá
- ES COPIA


  • Descripción del nombre de Recargos en Tarjetas según el parámetro TEXTO_RECARGOS
Métodos:
<%&format:rightpad('Descripción p/Recargos v1: ',obtNombreDtoRgoTarjeta())%>
<%&format:rightpad('Descripción p/Recargos v2: ',obtEntidadDtoRgoTarjeta())%>
Se pueden combinar de la siguiente manera:
<%&concat('? ',concat(obtNombreDtoRgoTarjeta(),' ',format:string(obtNombreFormaPagoTarjeta())),'?<',format:lpad(format:string(-obtDescuentoTarjeta()),9),'>?')%>
-
<%&concat('? ',concat(obtEntidadDtoRgoTarjeta(),' ',format:string(obtNombreFormaPagoTarjeta())),'?<',format:lpad(format:string(obtRecargoTarjeta()),9),'>?')%>


-métodos exclusivos para Recetas.

  • Imprimir el Código de la Farmacia para la Obra Social.
-se dispone de los siguientes formatos:
<%=format:rightpad('Código en la OSP  : ',operacionesValor[valor/tipoValor/id=2]/valor/codigoFarmaciaOS)%>
<%=format:rightpad('Código s/Obra Social: ',obtCodigoFarmaciaOS())%>
<%=format:rightpad('Código en la 1er OS : ',obtCodigoFarmacia1raOS())%>
<%=format:rightpad('Código en la 2da OS : ',obtCodigoFarmacia2daOS())%>
...
<%=format:rightpad('Código en la 7ma OS : ',obtCodigoFarmacia7maOS())%>

Funciones definidas para cada tipo de dispositivo (Plantillas v3)[editar]

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 junio 2021 - (plantillas v5 - PDF)[editar]

- Métodos para la impresión de Códigos de Barra (1D)


  • Se dispone de cinco tipos de códigos de barras:
-Desde las plantillas se invocan con los siguientes métodos:
.Code128
<%@format:imprimircode128('1234567890')%>
.Code39 Hoch'
<%@format:imprimircode39h('1234567890')%>
.Code39 Logitogo
<%@format:imprimircode39l('1234567890')%>
.BarCode font
<%@format:imprimirbarcode('1234567890')%>
.Code 3of9
<%@format:imprimirfree3of9('1234567890')%>
  • Se pueden modificar su alineación:
-a la izquierda (por defecto)
<%@format:imprimircode128('1234567890')%>
-a la derecha
<%@format:imprimircode128('1234567890','R')%>
-centrado
<%@format:imprimircode128('1234567890','C')%>
-Ejemplos:
Impresión centrada de los diferentes tipos de código de barra con el número de afiliado de una Receta:
- <%@format:imprimircode128(format:string( obtNumeroAfiliado()), 'C' )%>
- <%@format:imprimircode39h(format:string( obtNumeroAfiliado()), 'C' )%>
- <%@format:imprimircode39l(format:string( obtNumeroAfiliado()), 'C' )%>
- <%@format:imprimirbarcode(format:string( obtNumeroAfiliado()), 'C' )%>
- <%@format:imprimirfree3of9(format:string( obtNumeroAfiliado(), 'C' )%>


- Selección del método para la impresión de Códigos de Barra (1D) por Parámetro del nodo

  • El utlizan los métodos:
<%@format:imprimirCodigoDeBarras('1234567890')%>
<%@format:imprimirCodigoDeBarras('1234567890','R')%>
<%@format:imprimirCodigoDeBarras('1234567890','L')%>
-Según el parámetro: CODIGO_BARRA_PLANTILLA
se selecciona la fuente del código de barra a imprimir y su alineación,
de la forma: CODE39H,R
que indica codificación CODE39 HOCH, alineado a la derecha 'R' (puede ser 'D')
para el alineado a la izquierda se envía el parámetro 'L' (puede ser 'I')
El código por defecto es CODE128,C


  • Impresión de los Troqueles:
<%#format:imprimirEAN13( obtCodigoBarraProducto() )%>

Más funciones de junio 2021 [editar]

- Métodos para el avance de la cinta de papel para pegar troqueles en las Recetas.

  • Objetivo:
-agregar 5cm de papel cada 4 Productos en las Recetas de Obra Social configuradas para tal fin.


  • Método:
-<%=format:avanzarLineas(round(ceiling(cantidadProductos div 4 ) * espacioTroquel * lineasEnBlancoXcm * 5 ) )%>


-donde:
ceiling (cantidadProductos div 4 )
es lo que hace que 1, 2, 3, ó 4 productos, devuelva 1 fila de troqueles.
5, 6, 7 u 8 productos, 2 filas
y así.
espacioTroquel representa la configuración de la Obra Social
Si imprime, devuelve 1
Si NO imprime, devuelve 0
lineasEnBlancoXcm devuelve lo que indica el parámetro del nodo.
Si no existe, devuelve el valor por defecto = 2.5
ESPACIOS_EN_BLANCO_POR_CENTIMETRO es el parámetro.
El 5 representan los 5cm que miden los troqueles.

Funciones de jxpath[editar]

  • 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[editar]

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()
Cliente Observaciones\n del cliente <%= operacion_valor valor/entidad/observacion obtObservacionCliente()
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[editar]

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_valor 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[editar]

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[editar]

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[editar]

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/fechaAdicional

obtFechaAdicional()

valor Marca C.A.E.A. <%= operacion_valor valor/marcaCAEA

obtMarcaCAEA()

valor Fecha de Vencimiento <%= operacion_valor valor/fechaVencimiento

obtFechaVencimiento()

valor Fecha Adicional <%= operacion_valor valor/fechaAdicional

obtFechaAdicional()


valor Fecha de Autorizacion <%= operacion_valor valor/fechaAutorizacion

obtFechaReferenciaElectronica()


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:

<%=format:separador(obtReferenciaElectronica(),'--- REFERENCIA ELECTRONICA ---')%> <%=concat(format:enlazar(concat('C.A.E.',format:string(obtMarcaCAEA())),': ',format:rpad(obtReferenciaElectronica(),15), 25),format:rightpad('Vto.:',format:rpad(format:shortDate(obtFechaAdicional()),11)))%> <%=format:separador()%>

Caracteres[editar]

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[editar]

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

Fuera del Concat Dentro del Concat
---------------------------------------- <<%@concat('Afil. : <',format:rpad(operacionesValor[valor/tipoValor/id=2]/valor/nombreAfiliado,25),'>

Numero: <',format:rpad(operacionesValor[valor/tipoValor/id=2]/valor/numeroAfiliado,25),'>')%>>

<<%@concat('---------------------------------------- Afil. : <',format:rpad(operacionesValor[valor/tipoValor/id=2]/valor/nombreAfiliado,25),'>

Numero: <',format:rpad(operacionesValor[valor/tipoValor/id=2]/valor/numeroAfiliado,25),'>')%>>

V201.png V301.png

Ejemplos Prototipos[editar]

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))%>%>


Prototipos (agosto 2021)[editar]

Impresión de todos los prototipos imprimibles:

<%=format:cpad('qq',0)<%+concat(format:string(obtNombreDatoCodificado()),' : ',format:string(obtDatoCodificado()))%>%>
<%=format:cpad('qq',0)<%+concat(,format:string(obtDatoCodificado()))%>%>

Impresión de los prototipos imprimibles de cabecera:

<%=format:cpad('qq',0)<%+concat(format:string(obtNombreDatoCodificado()),' : ',format:string(obtCabeceraDatoCodificado()))%>%>
<%=format:cpad('qq',0)<%+concat(,format:string(obtCabeceraDatoCodificado()))%>%>

Impresión de los prototipos imprimibles de pie de página:

<%=format:cpad('qq',0)<%+concat(format:string(obtNombreDatoCodificado()),' : ',format:string(obtPieDatoCodificado()))%>%>
<%=format:cpad('qq',0)<%+concat(,format:string(obtPieDatoCodificado()))%>%>