De Touch&Sale
Contenido
- 1 1. Sintaxis de Plantilla (Tags)
- 2 2. Funciones de Dispositivo
- 3 3. Variables y Propiedades de Ítem
- 4 4. Funciones format:
- 4.1 format:abonaCon(montoEfectivo, abonaCon, n)
- 4.2 format:alignRight(titulo, dato) / format:alignRight(titulo, dato, ancho)
- 4.3 format:alignRightDtoRgo(titulo, dato) / format:alignRightDtoRgo(template, titulo, dato)
- 4.4 format:alltrim(texto)
- 4.5 format:anchopagina()
- 4.6 format:ascii(número)
- 4.7 format:avanzarLineas(value) / format:avanzarLineas(value, cantMaximaLineas)
- 4.8 format:bigdecimal(value)
- 4.9 format:cgoAfilCob(total, montoCobertura)
- 4.10 format:coalesce(value1, value2)
- 4.11 format:coalesceNum(value1, value2)
- 4.12 format:concatenar(nroCampo, strDatos) — forma v1
- 4.13 format:concatenar(strDatos) — forma v2
- 4.14 format:concatNoNull(value1, value2)
- 4.15 format:cortepapel() — plantillas v5 PDF
- 4.16 format:cpad(texto, longitud [, caracter])
- 4.17 format:datoCondicional(condicion, dato)
- 4.18 format:enlazar(strDatos) — forma v1
- 4.19 format:enlazar(valor1, valor2) — forma v2
- 4.20 format:esNulo(value)
- 4.21 format:imprimirbarcode(valor [, alineacion]) — plantillas v5 PDF
- 4.22 format:imprimircode128(valor [, alineacion]) — plantillas v5 PDF
- 4.23 format:imprimircode39h(valor [, alineacion]) — plantillas v5 PDF
- 4.24 format:imprimircode39l(valor [, alineacion]) — plantillas v5 PDF
- 4.25 format:imprimirCodigoDeBarras(valor [, alineacion]) — plantillas v5 PDF
- 4.26 format:imprimirEAN13(valor) — plantillas v5 PDF
- 4.27 format:imprimirfree3of9(valor [, alineacion]) — plantillas v5 PDF
- 4.28 format:integer(número)
- 4.29 format:irLinea(número)
- 4.30 format:leftpad / rightpad / centerpad(dato) — 1 parámetro
- 4.31 format:leftpad / rightpad / centerpad(titulo, dato) — 2 parámetros
- 4.32 format:leftpad / rightpad(titulo, dato, número) — 3 parámetros
- 4.33 format:lefttrim(value)
- 4.34 format:len(objeto)
- 4.35 format:longDate(fecha)
- 4.36 format:longDateTime(fecha)
- 4.37 format:lowerCase(value)
- 4.38 format:lpad(texto, longitud [, caracter]) / rpad / cpad
- 4.39 format:nonull(objeto)
- 4.40 format:noRepetir(nombre, cantidadBase)
- 4.41 format:obtCaracterCopia(parametro[1])
- 4.42 format:obtcodigo(objeto)
- 4.43 format:obtcodigosinguion(objeto)
- 4.44 format:obtNumeroCopia(parametro[1])
- 4.45 format:obtTipoComprobante(tipoOperacion)
- 4.46 format:param(value)
- 4.47 format:reemplazarParametro(linea, args[])
- 4.48 format:reemplazarTexto(titulo, template)
- 4.49 format:redondear(value, decimales, modo)
- 4.50 format:righttrim(value)
- 4.51 format:roundingUP(value)
- 4.52 format:semianchopagina()
- 4.53 format:separador() — sin parámetros
- 4.54 format:separador(dato) — 1 parámetro
- 4.55 format:separador(dato, titulo) — 2 parámetros
- 4.56 format:separador(dato, titulo, anchoTexto) — 3 parámetros
- 4.57 format:separadorDoble()
- 4.58 format:shortDate(fecha)
- 4.59 format:string(objeto)
- 4.60 format:stringData(value)
- 4.61 format:stringDataNoVacio(value)
- 4.62 format:stringNoVacio(número)
- 4.63 format:stringNoVacioDto(número)
- 4.64 format:stringtransf(objeto1, objeto2, objeto3)
- 4.65 format:textodobleancho(objeto) — plantillas v5 PDF
- 4.66 format:unirtodo(titulo, subtitulo, dato) / format:unirtodo(titulo, subtitulo, dato, ancho)
- 4.67 format:unirtodo(dato1, dato2) — 2 parámetros
- 4.68 format:upperCase(value)
- 4.69 format:vuelto(montoEfectivo, abonaCon, n)
- 5 5. Pseudo-métodos obt*() — TemplateUtil.java
- 5.1 Afiliado
- 5.2 Bono
- 5.3 Cheque / CH Terceros
- 5.4 Cliente
- 5.5 Convenio
- 5.6 Cuenta Corriente
- 5.7 Efectivo
- 5.8 Factura Electrónica (Referencias Electrónicas)
- 5.9 Farmacia (Nodo)
- 5.10 Producto / Ítem
- 5.11 Prototipos / Datos Adicionales
- 5.12 Puesto de Venta
- 5.13 Receta / Cobertura / Obra Social
- 5.14 Recargos y Descuentos de Tarjeta (DtoRgo)
- 5.15 Tarjeta
- 5.16 Valor / Comprobante
- 5.17 Vendedor
- 5.18 Liquidaciones (Plantillas v4)
- 6 6. Funciones JXPath
- 7 7. Tabla de Caracteres Especiales
- 8 8. Ejemplos y Prototipos
1. Sintaxis de Plantilla (Tags)
Delimitadores propios del motor de plantillas. Ninguno requiere el prefijo format:.
| Tag | Nombre | Descripción |
|---|---|---|
/ |
Línea en blanco | Imprime una línea en blanco. |
<%= ... %> |
OperacionValor | Devuelve el objeto OperacionValor a imprimir (tabla operacion_valor).
|
<%& ... %> # |
operacionesValor | Itera sobre OperacionValor.operacion.operacionesValor devolviendo objetos OperacionValor (tabla operacion_valor).
|
<%@ ... %> # |
Operacion | Devuelve OperacionValor.operacion, clase Operacion (tabla operacion).
|
<%# ... %> # |
itemsValor | Itera sobre OperacionValor.valor.itemsValor devolviendo objetos ItemValor/ItemFactura/ItemConvenio/etc (tabla item_valor).
|
<%$ ... %> # |
valoresConcepto | Itera sobre OperacionValor.valor.valoresConcepto devolviendo objetos ValorConcepto (tabla valor_conceptos).
|
<%+ ... %> # |
prototipos | Itera sobre la colección de Prototipos de los valores o de los ítems. |
<%! ... %> ! |
comentarios | Los datos incluidos sirven para orientar al usuario de la plantilla, pero no salen impresos. Ej: <%! ** Modelo 2 ** %>
|
<< ... >> |
Eliminación de renglón | Si la ausencia del dato a imprimir tiene que eliminar el renglón actual, se encierra la función entre << y >>. Ej: <<%=...%>>
|
2. Funciones de Dispositivo
Actúan solo si el dispositivo lo soporta. Se usan directamente, sin prefijo format:.
Vuelven a las condiciones iniciales al finalizar la línea (salvo inicializar, normalizar, cortepapel y cortetotalpapel).
| Función | Descripción |
|---|---|
codigobarras(objeto) |
Envía los comandos de configuración previos e imprime el código de barras del valor recibido. |
condensado(objeto) |
Imprime con letra condensada. |
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. |
cursiva(objeto) |
Imprime en cursiva (itálica). |
inicializar() |
Envía un comando de inicialización que configura la impresora a sus valores iniciales. |
negrita(objeto) |
Imprime en negrita (enfatizado). |
normalizar() |
Envía un comando de normalización de la letra a sus valores iniciales. |
subrayado(objeto) |
Imprime con letra subrayada. |
textodoblealto(objeto) |
Imprime con letra expandida en alto. |
textodobleancho(objeto) |
Imprime con letra expandida a lo ancho. Ver también format:textodobleancho().
|
3. Variables y Propiedades de Ítem
Valores accesibles desde el contexto de la plantilla, sin prefijo format:.
| Variable / Propiedad | Contexto | Descripción |
|---|---|---|
cantidadFilas |
<%= / operacion |
Cantidad de líneas de productos de un comprobante de venta. |
cantidadProductos |
<%= / operacion |
Total de productos de un comprobante de venta. |
cantidadTroqueles |
<%# / item_valor |
Cantidad de líneas con productos cubiertos en una receta. Se usa para calcular el espacio para pegar troqueles. |
espacioTroquel |
operacion/OS | Configuración de la Obra Social. Si imprime troqueles devuelve 1, si no devuelve 0.
|
lineasEnBlancoXcm |
parámetro de nodo | Valor del parámetro ESPACIOS_EN_BLANCO_POR_CENTIMETRO. Si no existe, devuelve 2.5.
|
Propiedades SinIvaPlantilla (en <%# item_valor %>)
Estos atributos poseen la propiedad de que:
- Si el comprobante discrimina IVA (Factura o N/C "A"): traen el valor sin el IVA incluido.
- Si el comprobante no discrimina IVA: devuelven el valor total, con el impuesto acumulado.
| Propiedad |
|---|
descuentoAfiliadoSinIVAPlantilla
|
descuentoAfiliadoTotalSinIVAPlantilla
|
descuentoConvenioSinIVAPlantilla
|
descuentoSinIvaPlantilla
|
precioUnitarioSinIvaPlantilla
|
recargoConvenioSinIVAPlantilla
|
totalSinIvaPlantilla
|
Métodos asociados:
| Método | Descripción |
|---|---|
obtTotalCubierto1raCoberturaSinIvaPlantilla() |
Importe cubierto por la 1ra. cobertura, sin IVA (condicional). |
obtTotalCubierto2daCoberturaSinIvaPlantilla() |
Importe cubierto por la 2da. cobertura, sin IVA (condicional). |
4. Funciones format:
Implementadas en TemplateUtilVersion1, TemplateUtilVersion2, ..., TemplateUtilVersion5Pdf.
Se invocan con el prefijo format: dentro de las expresiones de plantilla.
format:abonaCon(montoEfectivo, abonaCon, n)
Devuelve el primer parámetro mayor que cero, formateado a n decimales.
format:alignRight(titulo, dato) / format:alignRight(titulo, dato, 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.
alignRight("Total OSP", "50,12") => "Total OSP____________________50,12"
format:alignRightDtoRgo(titulo, dato) / format:alignRightDtoRgo(template, titulo, dato)
- 2 params: Actúa como
alignRight(), pero sidato < 0inserta un signo"-". - 3 params: Igual al anterior, pero agrega un
templatecon términos de reemplazo segúnreemplazarTexto().
format:alltrim(texto)
Devuelve el texto indicado, borrando los espacios en blanco a izquierda y a derecha.
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 impresiones.
<%@format:centerpad('--','- RECETA -',format:anchopagina())%>
format:ascii(número)
Devuelve el código ASCII del número ingresado, convertido en string.
format:avanzarLineas(value) / format:avanzarLineas(value, cantMaximaLineas)
Agrega la cantidad de líneas en blanco indicada por value (se toma la parte entera).
El segundo parámetro limita la cantidad máxima de filas a avanzar.
<%=format:avanzarLineas(cantidadTroqueles*3)%> <%=format:avanzarLineas(cantidadTroqueles*3, cantMaximaLineas)%>
format:bigdecimal(value)
Devuelve el BigDecimal correspondiente al parámetro indicado, contemplando iterables.
format:cgoAfilCob(total, montoCobertura)
- Si existe la Cobertura (
montoCobertura > 0): devuelvetotal - montoCobertura. - Si no existe (
montoCobertura = 0): devuelve cero (no se imprime ningún dato).
format:coalesce(value1, value2)
Devuelve como respuesta el primer parámetro no nulo.
format:coalesceNum(value1, value2)
Devuelve como respuesta el primer parámetro no nulo, en formato numérico.
format:concatenar(nroCampo, strDatos) — forma v1
Concatena los valores del string de datos separados por |, ajusta la longitud del campo indicado por el primer parámetro, hasta completar el Ancho Máximo del motor.
format:concatenar(2, " 1|ADALAT 30| 44,00| 44,00")
format:concatenar(strDatos) — forma v2
Concatena valores separados por |, tomados de a 3, de la forma ajuste<d,i>|longitud|campo.
format:concatenar("d|20|ADALAT 30|i|12|44,00|i|12|44,00")
=> "ADALAT 30__________________44,00_______44,00"
format:concatNoNull(value1, value2)
Si ambos parámetros son no nulos, devuelve un String concatenándolos.
format:cortepapel() — plantillas v5 PDF
Permite el corte de la impresión del PDF en mitad de la plantilla, tal como se produce en impresoras térmicas o matriciales comunes.
<%=format:cortepapel()%>
format:cpad(texto, longitud [, caracter])
Ver format:lpad / rpad / cpad.
format:datoCondicional(condicion, dato)
Si se cumple condicion, devuelve dato; sino, un string vacío.
format:datoCondicional((valor/numeroAutorizacion="4"),'A.') => "A." o ""
Uso para detectar copia:
<%=format:datoCondicional(format:obtNumeroCopia(parametro[1])!="1",'ES COPIA')%>
format:enlazar(strDatos) — forma v1
Concatena los 2 valores del string separados por |, ajusta el 1er campo al Ancho Máximo del motor.
format:enlazar("A c/Afil. d/aplicar Cob. 1a. :| 40,00")
format:enlazar(valor1, valor2) — forma v2
Si los valores no son nulos, devuelve la concatenación de ambos parámetros ajustada al ancho de página.
format:enlazar("A c/Afil. d/aplicar Cob. 1ra.: "," 40,00")
format:esNulo(value)
Similar al método isNull(), contemplando iterables.
format:imprimirbarcode(valor [, alineacion]) — plantillas v5 PDF
Imprime código de barras con fuente BarCode font. Alineación: 'L'/'I' (izquierda, defecto), 'R'/'D' (derecha), 'C' (centro).
format:imprimircode128(valor [, alineacion]) — plantillas v5 PDF
Imprime código de barras Code128.
<%@format:imprimircode128('1234567890','C')%>
format:imprimircode39h(valor [, alineacion]) — plantillas v5 PDF
Imprime código de barras Code39 Hoch.
format:imprimircode39l(valor [, alineacion]) — plantillas v5 PDF
Imprime código de barras Code39 Logitogo.
format:imprimirCodigoDeBarras(valor [, alineacion]) — plantillas v5 PDF
Selecciona el tipo de código de barras según el parámetro de nodo CODIGO_BARRA_PLANTILLA.
Formato del parámetro: CODE39H,R (tipo, alineación). Código por defecto: CODE128,C.
format:imprimirEAN13(valor) — plantillas v5 PDF
Imprime código EAN-13 (troqueles).
<%#format:imprimirEAN13(obtCodigoBarraProducto())%>
format:imprimirfree3of9(valor [, alineacion]) — plantillas v5 PDF
Imprime código de barras Code 3of9.
format:integer(número)
Devuelve la parte entera del número ingresado, convertida en string.
format:irLinea(número)
Avanza la posición a imprimir hasta la línea indicada por el parámetro.
format:leftpad / rightpad / centerpad(dato) — 1 parámetro
Rellena por izquierda / derecha / centra el texto, siempre con espacios en blanco, hasta completar el Ancho Máximo del motor de impresión.
format:leftpad / rightpad / centerpad(titulo, dato) — 2 parámetros
- Si
datoes nulo: no imprime nada. - Si
datono es nulo: concatenatitulo + datoy rellena/centra hasta el Ancho Máximo del motor.
format:leftpad / rightpad(titulo, dato, número) — 3 parámetros
- Si
datoes nulo: no imprime nada. - Si
datono es nulo: concatenatitulo + datoy rellena hasta Ancho Máximo menosnúmero.
format:lefttrim(value)
Si el valor no es nulo, recorta los espacios en blanco de la izquierda.
format:lefttrim(" A cargo Afiliado") => "A cargo Afiliado"
format:len(objeto)
Devuelve la longitud del dato ingresado, convertido en string.
format:longDate(fecha)
Devuelve la fecha en el formato longDate definido en application.
format:longDateTime(fecha)
Devuelve la fecha y hora en el formato dd/mm/yyyy hh:mm:ss, definido en application.
format:lowerCase(value)
Devuelve un String con el lower-case del objeto.
format:lowerCase('Valor para Cambiar') => 'valor para cambiar'
format:lpad(texto, longitud [, caracter]) / rpad / cpad
Rellena a izquierda (lpad) / derecha (rpad) / centra (cpad) el texto, hasta la longitud indicada.
- Si
longitud < len(texto): corta el texto. - Si no se especifica
caracter: rellena con espacios.
format:nonull(objeto)
- Si el valor no es nulo: imprime su valor string.
- Si el valor es nulo: imprime un string vacío
"".
format:noRepetir(nombre, cantidadBase)
En ocasiones se recibe un nombre o descripción repetido varias veces y se desea mostrar uno solo.
-
nombre: el dato a mostrar. -
cantidadBase: número mínimo de caracteres a mostrar sin repetición (ej:5).
format:obtCaracterCopia(parametro[1])
Registra el carácter de Original/Duplicado/etc. del documento impreso dentro de la secuencia de copias.
<%=format:rightpad('ES COMPROBANTE : ',format:obtCaracterCopia(parametro[1]))%>
=> ES COMPROBANTE : ORIGINAL
=> ES COMPROBANTE : DUPLICADO
=> ES COMPROBANTE : TRIPLICADO
format:obtcodigo(objeto)
Formatea el objeto (codificación del comprobante 0001-0001234) para imprimir como Código de Barras.
format:obtcodigosinguion(objeto)
Igual que obtcodigo pero sin el guión separador.
format:obtNumeroCopia(parametro[1])
Registra el número de copia del documento impreso dentro de la secuencia de copias.
<%=format:rightpad('COPIA NUMERO : ',format:obtNumeroCopia(parametro[1]))%>
=> COPIA NUMERO : 1 / 2 / 3
format:obtTipoComprobante(tipoOperacion)
Dado el tipo de operación, devuelve un string con el respectivo tipo de comprobante.
format:obtTipoComprobante(obtTipoOperacion()) => "FACTURA", "TICKET", etc.
format:param(value)
Devuelve un String con el valor de un parámetro general, dado su nombre.
format:param('IMPRIMIR_DATOS_PRESCRIPCION') => 'true' o 'false'
format:reemplazarParametro(linea, args[])
Reemplaza los parámetros de linea por los métodos indicados en args.
El render() (v4 en adelante) puede recibir una lista de parámetros desde el programa.
args[1] = "separador()"; args[2] = "cortepapel()"; <%=format:parametro[2]%> => <%=format:separador()%>
format:reemplazarTexto(titulo, template)
Devuelve un texto donde se reemplazó el titulo de acuerdo al patrón template.
Los patrones se separan por | en pares buscar|reemplazar.
titulo: "RECARGO POR FORMA DE PAGO EFECTIVO POS" template: "DESC.||RECARGO|DIF.PRC.| POR|POR|FORMA||DE || PAGO|PAGO EN|POS||*|" resultado: "DIF.PRC.POR PAGO EN EFECTIVO"
format:redondear(value, decimales, modo)
Devuelve un String del parámetro value. Si es numérico, aplica el redondeo indicado.
value=123.6977887, decimales=0, modo="up" format:redondear(value, 0, "up") => "124"
format:righttrim(value)
Si el valor no es nulo, recorta los espacios en blanco de la derecha.
format:righttrim("A cargo Afiliado ") => "A cargo Afiliado"
format:roundingUP(value)
Devuelve un String del parámetro value. Si es numérico, devuelve el entero mayor (redondeo hacia arriba).
value=5895.195741 format:roundingUP(value) => "5.896"
format:semianchopagina()
Devuelve la mitad de los caracteres del ancho de página del motor. Se usa como complemento para alinear impresiones en doble ancho.
<%@format:textodobleancho(format:separador(obtNombreObraSocial(),'- RECETA -',format:semianchopagina()))%>
format:separador() — sin parámetros
Imprime una línea separadora de caracteres ---...--- hasta el Ancho Máximo del motor.
format:separador(dato) — 1 parámetro
Imprime el separador ---...--- solo si dato no es nulo.
format:separador(dato, titulo) — 2 parámetros
Imprime el separador con titulo centrado, solo si dato no es nulo.
<%@format:separador(operacionesValor[valor/tipoValor/id=1]/valor/entidad/nombre,'- BONO -')%> => ---------- BONO ----------
format:separador(dato, titulo, anchoTexto) — 3 parámetros
Igual al anterior, pero el ancho total lo define anchoTexto en lugar del motor.
<%@format:separador(operacionesValor[valor/tipoValor/id=2]/valor/entidad/nombre,'- RECETA -',24)%> => -------- RECETA --------
format:separadorDoble()
Imprime una línea separadora de caracteres ===...=== hasta el Ancho Máximo del motor.
format:shortDate(fecha)
Devuelve la fecha en el formato shortDate definido en application.
format:string(objeto)
Convierte cualquier tipo de dato en string.
format:stringData(value)
Devuelve el parámetro sin puntos ".".
format:stringData("1.235.459,78") => "1235459,78"
format:stringDataNoVacio(value)
Devuelve el parámetro sin puntos ".". Si value es null, devuelve "0,00".
format:stringNoVacio(número)
Devuelve el número ingresado convertido en string. Si el valor es nulo, devuelve "0,00".
format:stringNoVacioDto(número)
Devuelve el número ingresado convertido en string. Si el valor es nulo, devuelve "-0,00".
format:stringtransf(objeto1, objeto2, objeto3)
Devuelve objeto1, donde las ocurrencias de objeto2 son reemplazadas por objeto3.
Internamente usa StringUtils.replace().
format:textodobleancho(objeto) — plantillas v5 PDF
Imprime con letra expandida a lo ancho. Equivalente al comando de dispositivo textodobleancho() pero usable como wrapper en plantillas PDF.
<%@format:textodobleancho(format:separador(obtNombreObraSocial(),'- RECETA -',format:semianchopagina()))%>
format:unirtodo(titulo, subtitulo, dato) / format:unirtodo(titulo, subtitulo, dato, 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:unirtodo(dato1, dato2) — 2 parámetros
Devuelve la concatenación incondicional de ambos parámetros.
format:upperCase(value)
Devuelve un String con el upper-case del objeto.
format:upperCase('Valor para Cambiar') => 'VALOR PARA CAMBIAR'
format:vuelto(montoEfectivo, abonaCon, n)
Devuelve (abonaCon - montoEfectivo) o cero, formateado a n decimales.
5. Pseudo-métodos obt*() — TemplateUtil.java
Organizados por entidad. La columna Función indica el tag de contexto, Tabla la tabla de origen y Atributo el XPath equivalente.
Afiliado
| Método | Función | Tabla | Atributo |
|---|---|---|---|
obtNombreAfiliado() |
<%@ |
operacion | operacionesValor[valor/tipoValor/id=2]/valor/nombreAfiliado
|
obtNumeroAfiliado() |
<%@ |
operacion | operacionesValor[valor/tipoValor/id=2]/valor/numeroAfiliado
|
Bono
| Método | Función | Tabla | Atributo |
|---|---|---|---|
obtAcumuladoBono() |
<%@ |
operacion | operacionesValor[valor/tipoValor/id=1]/valor/valoresConcepto[subTipoValorCpto/concepto/id=503 and subTipoValorCpto/visiblePos=1]/monto
|
obtNombreBono() |
<%@ |
operacion | operacionesValor[valor/tipoValor/id=1]/valor/entidad/nombre
|
obtPuntajeBono() |
<%@ |
operacion | operacionesValor[valor/tipoValor/id=1]/valor/valoresConcepto[subTipoValorCpto/concepto/id=500 and subTipoValorCpto/visiblePos=1]/monto
|
Cheque / CH Terceros
| Método | Función | Tabla | Atributo |
|---|---|---|---|
obtDescuentoChequeTerceros() |
<%& |
operacionesValor | operacionesValor[valor/tipoValor/id=5 and valor/anulacion!='A']/valor/descuentoFPPlantilla
|
obtImporteFormaPagoChequeTerceros() |
<%@ |
operacion | operacionesValor[valor/tipoValor/id=5]/valor/montoPrincipal
|
obtImporteFormaPagoChequeTercerosVenta() |
<%& |
operacionesValor | sum(valor[tipoValor/id=5 and anulacion!='A']/montoPrincipal)
|
obtNombreFormaPagoChequeTerceros() |
<%= |
operacion_valor | valor[tipoValor/id=5]/entidad/nombre
|
obtRecargoChequeTerceros() |
<%& |
operacionesValor | operacionesValor[valor/tipoValor/id=5 and valor/anulacion!='A']/valor/recargoFPPlantilla
|
Cliente
| Método | Función | Tabla | Atributo |
|---|---|---|---|
obtApellidoCliente() |
<%= |
operacion_valor | valor/entidad/apellido
|
obtCodigoCliente() |
<%= |
operacion_valor | valor/entidad/codigo
|
obtCuitCliente() |
<%= |
operacion_valor | valor/entidad/cuit
|
obtDireccion1Cliente() |
<%= |
operacion_valor | valor/entidad/direcciones[1]
|
obtEntreCallesCliente() |
<%= |
operacion_valor | valor/entidad/entreCalle
|
obtNombreCliente() |
<%= |
operacion_valor | valor/entidad/nombre
|
obtObservacionCliente() |
<%= |
operacion_valor | valor/entidad/observacion
|
obtObservacionesCliente() |
<%= |
operacion_valor | valor/entidad/observaciones
|
obtObservacionesCliente1raLinea() |
<%= |
operacion_valor | valor/entidad/observacionesCliente1raLinea
|
obtObservacionesCliente2daLinea() |
<%= |
operacion_valor | valor/entidad/observacionesCliente2daLinea
|
obtObservacionesCliente3raLinea() |
<%= |
operacion_valor | valor/entidad/observacionesCliente3raLinea
|
obtRazonSocialCliente() |
<%= |
operacion_valor | valor/entidad/razonSocial
|
obtSituacionIvaCliente() |
<%= |
operacion_valor | valor/entidad/objSituacionIVA/nombre
|
obtTelefonoCliente() |
<%= |
operacion_valor | valor/entidad/telefonosConcatenados
|
Cliente (eventual)
| Método | Función | Tabla | Atributo |
|---|---|---|---|
obtDocumentoClienteEven() |
<%= |
operacion_valor | valor/documentoCliente
|
obtDomicilioClienteEven() |
<%= |
operacion_valor | valor/domicilioCliente
|
obtNombreClienteEven() |
<%= |
operacion_valor | valor/nombreCliente
|
Cliente (secundario)
| Método | Función | Tabla | Atributo |
|---|---|---|---|
obtNombreClienteSecundario() |
<%= |
operacion_valor | valor/entidadSecundaria/nombre
|
Cliente Envío
| Método | Función | Tabla | Atributo |
|---|---|---|---|
obtDireccionEnvio() |
<%= |
operacion_valor | valor/direccionSeleccionada
|
obtObservacionEnvio() |
<%= |
operacion_valor | valor/observaciones
|
obtTelefonoEnvio() |
<%= |
operacion_valor | valor/telefonoSeleccionado
|
Convenio
| Método | Función | Tabla | Atributo |
|---|---|---|---|
obtDescuentoConvenio() |
<%& |
operacionesValor | operacionesValor[valor/tipoValor/id=211 and valor/anulacion!='A']/valor/descuentoFPPlantilla
|
obtDtoGeneralConvenio() |
<%@ |
operacion | operacionesValor[valor/tipoValor/id=211]/valor/descuentoGeneral
|
obtImporteFormaPagoConvenio() |
<%= |
operacion_valor | sum(valor[tipoValor/id=211]/montoPrincipal)
|
obtImporteFormaPagoConvenioVenta() |
<%& |
operacionesValor | valor[tipoValor/id=211 and anulacion!='A']/montoPrincipal
|
obtNombreFormaPagoConvenio() |
<%= |
operacion_valor | valor[tipoValor/id=211]/entidad/nombre
|
obtRecargoConvenio() |
<%& |
operacionesValor | operacionesValor[valor/tipoValor/id=211 and valor/anulacion!='A']/valor/recargoFPPlantilla
|
Cuenta Corriente
| Método | Función | Tabla | Atributo |
|---|---|---|---|
obtDescuentoCtaCte() |
<%@ |
operacion | operacionesValor[valor/tipoValor/id=22 and valor/anulacion!='A']/valor/descuentoFPPlantilla
|
obtDtoGeneralCtaCte() |
<%@ |
operacion | operacionesValor[valor/tipoValor/id=22]/valor/descuentoGeneral
|
obtImporteFormaPagoCtaCte() |
<%@ |
operacion | operacionesValor[valor/tipoValor/id=22]/valor/montoPrincipal
|
obtImporteFormaPagoCtaCteVenta() |
<%@ |
operacion | operacionesValor[valor/tipoValor/id=22 and valor/anulacion!='A']/valor/montoPrincipal
|
obtRecargoCtaCte() |
<%@ |
operacion | operacionesValor[valor/tipoValor/id=22 and valor/anulacion!='A']/valor/recargoFPPlantilla
|
obtSaldoActual() |
<%@ |
operacion | operacionesValor/saldoActualComprobante
|
obtSaldoActualMasVenta() |
<%@ |
operacion | operacionesValor/saldoActualMasVenta
|
Cuota Cuenta Corriente
| Método | Función | Tabla | Atributo |
|---|---|---|---|
obtDescuentoCuotasCtaCte() |
<%& |
operacionesValor | valor[tipoValor/id=21 and anulacion!='A']/valor/descuentoFPPlantilla
|
obtDtoGeneralCuotaCtaCte() |
<%@ |
operacion | operacionesValor[valor/tipoValor/id=21]/valor/descuentoGeneral
|
obtImporteFormaPagoCuotaCteCte() |
<%@ |
operacion | operacionesValor[valor/tipoValor/id=21]/valor/montoPrincipal
|
obtImporteFormaPagoCuotaCteCteVenta() |
<%& |
operacionesValor | sum(valor[tipoValor/id=21 and anulacion!='A']/montoPrincipal)
|
obtNombreFormaPagoCuotaCteCte() |
<%= |
operacion_valor | valor[tipoValor/id=21]/entidad/nombre
|
obtRecargoCuotasCtaCte() |
<%& |
operacionesValor | valor[tipoValor/id=21 and anulacion!='A']/valor/recargoFPPlantilla
|
Efectivo
| Método | Función | Tabla | Atributo |
|---|---|---|---|
obtDescuentoEfectivo() |
<%@ |
operacion | operacionesValor[valor/tipoValor/id=3 and valor/anulacion!='A']/valor/descuentoFPPlantilla
|
obtImporteFormaPagoEfectivo() |
<%@ |
operacion | operacionesValor[valor/tipoValor/id=3]/valor/montoPrincipal
|
obtImporteFormaPagoEfectivoVenta() |
<%@ |
operacion | operacionesValor[valor/tipoValor/id=3 and valor/anulacion!='A']/valor/montoPrincipal
|
obtRecargoEfectivo() |
<%@ |
operacion | operacionesValor[valor/tipoValor/id=3 and valor/anulacion!='A']/valor/recargoFPPlantilla
|
Factura Electrónica (Referencias Electrónicas)
| Método | Función | Tabla | Atributo |
|---|---|---|---|
obtFechaAdicional() |
<%= |
operacion_valor | valor/fechaAdicional
|
obtFechaReferenciaElectronica() |
<%= |
operacion_valor | valor/fechaAutorizacion
|
obtFechaVencimiento() |
<%= |
operacion_valor | valor/fechaVencimiento
|
obtFormaAutorizacionFE() |
<%= |
operacion_valor | valor/formaAutorizacion
|
obtMarcaCAEA() |
<%= |
operacion_valor | valor/marcaCAEA
|
obtReferenciaElectronica() |
<%= |
operacion_valor | valor/numeroAutorizacion
|
Ejemplo de uso para C.A.E. / C.A.E.A.:
<%=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()%>
Farmacia (Nodo)
| Método | Función | Tabla | Atributo |
|---|---|---|---|
obtCuitFarmacia() |
<%= |
operacion_valor | valor/nodoCreacion/cuit
|
obtDireccion0Farmacia() |
<%= |
operacion_valor | valor/nodoCreacion/direcciones[0]
|
obtDireccion1Farmacia() |
<%= |
operacion_valor | valor/nodoCreacion/direcciones[1]
|
obtFechaInicioActividades() |
<%= |
operacion_valor | valor/nodoCreacion/inicioDeActividades
|
obtIngresosBrutosFarmacia() |
<%= |
operacion_valor | valor/nodoCreacion/ingresosBrutos
|
obtRazonSocialFarmacia() |
<%= |
operacion_valor | valor/nodoCreacion/razonSocial
|
obtRazonSocialFarmaciaLinea2() |
<%= |
operacion_valor | valor/nodoCreacion/razonSocialLinea2
|
obtSituacionIvaFarmacia() |
<%= |
operacion_valor | valor/nodoCreacion/objSituacionIVA/nombre
|
obtTelefono0Farmacia() |
<%= |
operacion_valor | valor/nodoCreacion/telefonos[0]/numero
|
obtTelefono1Farmacia() |
<%= |
operacion_valor | valor/nodoCreacion/telefonos[1]/numero
|
obtTelefonoFarmacia() |
<%= |
operacion_valor | valor/nodoCreacion/telefonosConcatenados
|
Producto / Ítem
| Método | Función | Tabla | Atributo |
|---|---|---|---|
obtCodigoBarraProducto() |
<%# |
item_valor | producto/codigoBarra
|
obtNombreProducto() |
<%# |
item_valor | producto/nombreCorto
|
Descuentos de ítem (propiedades directas, sin método):
| Propiedad | Descripción |
|---|---|
descuento |
Descuento de ítem |
descuentoAfiliado |
Descuento Automático/Forzado |
descuentoGeneral |
Descuento General (manual) |
Prototipos / Datos Adicionales
| Método / Propiedad | Contexto | Descripción |
|---|---|---|
obtCabeceraDatoCodificado() |
<%+ |
Dato codificado de prototipos de cabecera |
obtCabeceraNombreDatoCodificado() |
<%+ |
Nombre del dato codificado de prototipos de cabecera |
obtDatoCodificado() |
<%+ |
Dato codificado del prototipo (dato)
|
obtNombreDatoCodificado() |
<%+ |
prototipoDetalle/datoCodificado/nombre
|
obtNombreDePrototipoDetalle() |
<%+ |
prototipoDetalle/nombre
|
obtNombrePrototipoDePrototipoDatoAdicional() |
<%+ |
prototipoDatoAdicional/prototipo/nombre
|
obtNombrePrototipoDePrototipoDetalle() |
<%+ |
prototipoDetalle/prototipo/nombre
|
obtNumeroLineaDePrototipoDatoAdicional() |
<%+ |
prototipoDatoAdicional/numeroLinea
|
obtPieDatoCodificado() |
<%+ |
Dato codificado de prototipos de pie de página |
obtPieNombreDatoCodificado() |
<%+ |
Nombre del dato codificado de prototipos de pie de página |
Puesto de Venta
| Método | Función | Tabla | Atributo |
|---|---|---|---|
obtPuestoVenta() |
<%= |
operacion_valor | operacion/puestoVenta/nombre
|
Receta / Cobertura / Obra Social
| Método | Función | Tabla | Atributo |
|---|---|---|---|
obtAutorizacionObraSocial() |
<%= |
operacion_valor | operacionesValor[valor/tipoValor/id=2]/valor/numeroAutorizacion
|
obtCodigoFarmaciaOS() |
<%= |
operacion_valor | — |
obtCodigoFarmacia1raOS() … obtCodigoFarmacia7maOS() |
<%= |
operacion_valor | — |
obtDtoGeneralBono() |
<%@ |
operacion | operacionesValor[valor/tipoValor/id=1]/valor/descuentoGeneral
|
obtDtoGeneralReceta() |
<%@ |
operacion | operacionesValor[valor/tipoValor/id=2]/valor/descuentoGeneral
|
obtFechaReceta() |
<%= |
operacion_valor | valor[tipoValor/id=2]/fechaEmision
|
obtImporteCobertura() |
<%& |
operacionesValor | valor[tipoValor/id=2 and anulacion!='A']/montoPrincipal
|
obtImporteFormaPagoObraSocial() |
<%@ |
operacion | operacionesValor[valor/tipoValor/id=2]/valor/montoPrincipal
|
obtImporteReceta() |
<%& |
operacionesValor | valor[tipoValor/id=2 and anulacion!='A']/itemsConvenio/descuentoAfiliado
|
obtNombre1raCobertura() |
<%# |
item_valor | itemConvenio1raCobertura/convenio/entidad/nombre
|
obtNombre1raObraSocial() |
<%# |
item_valor | itemConvenio1raCobertura/convenio/obraSocial/nombre
|
obtNombre2daCobertura() |
<%# |
item_valor | itemConvenio2daCobertura/convenio/entidad/nombre
|
obtNombre2daObraSocial() |
<%# |
item_valor | itemConvenio2daCobertura/convenio/obraSocial/nombre
|
obtNombre3raCobertura() |
<%# |
item_valor | itemConvenio3raCobertura/convenio/entidad/nombre
|
obtNombre3raObraSocial() |
<%# |
item_valor | itemConvenio3raCobertura/convenio/obraSocial/nombre
|
obtNombre4taObraSocial() |
<%# |
item_valor | itemConvenio4taCobertura/convenio/obraSocial/nombre
|
obtNombre5taObraSocial() |
<%# |
item_valor | itemConvenio5taCobertura/convenio/obraSocial/nombre
|
obtNombre6taObraSocial() |
<%# |
item_valor | itemConvenio6taCobertura/convenio/obraSocial/nombre
|
obtNombre7maObraSocial() |
<%# |
item_valor | itemConvenio7maCobertura/convenio/obraSocial/nombre
|
obtNombreCobertura() |
<%= |
operacion_valor | valor[tipoValor/id=2]/entidad/obraSocial/nombreCorto
|
obtNombreLargoCobertura() |
<%= |
operacion_valor | valor[tipoValor/id=2]/entidad/nombre
|
obtNombreObraSocial() |
<%@ |
operacion | operacionesValor[valor/tipoValor/id=2]/valor/entidad/nombre
|
obtNumeroCobertura() |
<%= |
operacion_valor | .[valor/tipoValor/id=2]/numeroCobertura
|
obtNumeroCoberturaVenta() |
<%& |
operacionesValor | .[valor/tipoValor/id=2 and valor/anulacion!='A']/numeroCobertura
|
obtNumeroReceta() |
<%= |
operacion_valor | valor[tipoValor/id=2]/codificacion
|
obtPorcentaje1raCobertura() |
<%# |
item_valor | itemConvenio1raCobertura/porcentajeCobertura
|
obtPorcentaje2daCobertura() |
<%# |
item_valor | itemConvenio2daCobertura/porcentajeCobertura
|
obtPorcentaje3raCobertura() |
<%# |
item_valor | itemConvenio3raCobertura/porcentajeCobertura
|
obtRecetaImporteDescuento() |
<%# |
item_valor | itemsReceta/descuento
|
obtRecetaPorcentajeCobertura() |
<%# |
item_valor | itemsReceta/porcentajeCobertura
|
obtRecetaPrecioUnitario() |
<%# |
item_valor | producto/codigoBarra
|
obtSaldoAfiliado() |
<%= |
operacion_valor | .[valor/tipoValor/id=2]/saldoAfiliado
|
obtSaldoAfiliadoVenta() |
<%& |
operacionesValor | .[valor/tipoValor/id=2 and valor/anulacion!='A']/saldoAfiliadoSinDto
|
obtSumaMontoTotalCubierto() |
<%# |
item_valor | sum(itemsReceta/montoTotalCubierto)
|
obtTotalCubierto1raCobertura() |
<%# |
item_valor | itemConvenio1raCobertura/montoTotalCubierto
|
obtTotalCubierto2daCobertura() |
<%# |
item_valor | itemConvenio2daCobertura/montoTotalCubierto
|
obtTotalCubierto3raCobertura() |
<%# |
item_valor | itemConvenio3raCobertura/montoTotalCubierto
|
Convenios de Ítem
| Método | Función | Tabla | Atributo |
|---|---|---|---|
obtNombre1erConvenio() |
<%# |
item_valor | itemConvenio1/valor/subTipoValor/nombre
|
obtNombre2doConvenio() |
<%# |
item_valor | itemConvenio2/valor/subTipoValor/nombre
|
obtNombre3erConvenio() |
<%# |
item_valor | itemConvenio3/valor/subTipoValor/nombre
|
obtNombre4toConvenio() |
<%# |
item_valor | itemConvenio4/valor/subTipoValor/nombre
|
obtNombre5toConvenio() |
<%# |
item_valor | itemConvenio5/valor/subTipoValor/nombre
|
obtSumaDescuentos1erConvenio() |
<%# |
item_valor | itemConvenio1/sumaDescuentosSinIvaPlantilla
|
obtSumaDescuentos2doConvenio() |
<%# |
item_valor | itemConvenio2/sumaDescuentosSinIvaPlantilla
|
obtSumaDescuentos3erConvenio() |
<%# |
item_valor | itemConvenio3/sumaDescuentosSinIvaPlantilla
|
obtSumaDescuentos4toConvenio() |
<%# |
item_valor | itemConvenio4/sumaDescuentosSinIvaPlantilla
|
obtSumaDescuentos5toConvenio() |
<%# |
item_valor | itemConvenio5/sumaDescuentosSinIvaPlantilla
|
obtSumaRecargos1erConvenio() |
<%# |
item_valor | itemConvenio1/rgoConvenioSinIVAPlantilla
|
obtSumaRecargos2doConvenio() |
<%# |
item_valor | itemConvenio2/rgoConvenioSinIVAPlantilla
|
obtSumaRecargos3erConvenio() |
<%# |
item_valor | itemConvenio3/rgoConvenioSinIVAPlantilla
|
obtSumaRecargos4toConvenio() |
<%# |
item_valor | itemConvenio4/rgoConvenioSinIVAPlantilla
|
obtSumaRecargos5toConvenio() |
<%# |
item_valor | itemConvenio5/rgoConvenioSinIVAPlantilla
|
Receta Digital — Datos Originales de Prescripción
| Propiedad / Método | Contexto | Descripción |
|---|---|---|
cantidadPrescripta |
<%# item_valor |
Cantidad prescripta por el profesional |
productoPrescrito/descripcion |
<%# item_valor |
Nombre del producto prescrito (Receta Digital) |
prescripcionMedica |
<%# item_valor |
Nombre de la droga prescrita |
descripcionRecetaDigital |
<%# item_valor |
Descripción combinada (alias de acceso) |
Ejemplo de uso con impresión opcional (controlada por parámetro):
<%#concat(
format:datoCondicional(
(format:param('IMPRIMIR_DATOS_PRESCRIPCION')='true') and
(format:coalesce(productoPrescrito/descripcion,prescripcionMedica)!=),
format:concatenar(2,concat(
format:rpad(format:integer(cantidadPrescripta),2),'|',
format:rpad(format:coalesce(productoPrescrito/descripcion,prescripcionMedica),30)
))
)
)%>
Recargos y Descuentos de Tarjeta (DtoRgo)
| Método | Descripción |
|---|---|
obtDescuentoTarjeta() |
Descuento por forma de pago Tarjeta en Venta |
obtEntidadDtoRgoTarjeta() |
Nombre de la entidad para Recargos/Descuentos de Tarjeta (v2) |
obtNombreDtoRgoTarjeta() |
Nombre descriptivo para Recargos/Descuentos de Tarjeta (v1) |
obtNombreFormaPagoTarjeta() |
Nombre de la forma de pago de la Tarjeta |
obtRecargoTarjeta() |
Recargo por forma de pago Tarjeta en Venta |
Tarjeta
| Método | Función | Tabla | Atributo |
|---|---|---|---|
obtDtoGeneralTarjeta() |
<%@ |
operacion | operacionesValor[valor/tipoValor/id=9]/valor/descuentoGeneral
|
obtImporteFormaPagoTarjeta() |
<%= |
operacion_valor | sum(valor[tipoValor/id=9]/montoPrincipal)
|
obtImporteFormaPagoTarjetaVenta() |
<%& |
operacionesValor | .[valor/tipoValor/id=9 and valor/anulacion!='A']/montoPrincipal
|
obtNombreFormaPagoTarjeta() |
<%= |
operacion_valor | valor[tipoValor/id=9]/entidadSaldable/nombre
|
obtNombrePlanPagoTarjeta() |
<%& |
operacionesValor | .[valor/tipoValor/id=9]/planPago/nombre
|
Valor / Comprobante
| Método | Función | Tabla | Atributo |
|---|---|---|---|
obtDtoGeneral() |
<%@ |
operacion | comprobante/descuentoGeneral
|
obtDtoGeneralChequePropio() |
<%@ |
operacion | operacionesValor[valor/tipoValor/id=4]/valor/descuentoGeneral
|
obtFechaCreacion() |
<%= |
operacion_valor | valor/fechaCreacion
|
obtFechaEmision() |
<%= |
operacion_valor | valor/fechaEmision
|
obtImpuestosProductosExentos() |
<%= |
operacion_valor | valor/valoresConcepto[contains('1703 1783',subTipoValorCpto/id) and valor/letraFactura='A']/monto
|
obtImpuestosProductosIVA1050() |
<%= |
operacion_valor | valor/valoresConcepto[contains('1705 1785',subTipoValorCpto/id) and valor/letraFactura='A']/monto
|
obtImpuestosProductosIVA2100() |
<%= |
operacion_valor | valor/valoresConcepto[contains('1706 1786',subTipoValorCpto/id) and valor/letraFactura='A']/monto
|
obtImpuestosProductosIVA2700() |
<%= |
operacion_valor | valor/valoresConcepto[contains('2287 2284',subTipoValorCpto/id) and valor/letraFactura='A']/monto
|
obtLetraFactura() |
<%= |
operacion_valor | valor/letraFactura
|
obtNumeroComprobante() |
<%= |
operacion_valor | valor/codificacion
|
obtPercepcionesIngresosBrutos() |
<%= |
operacion_valor | valor/valoresConcepto[subTipoValorCpto/concepto/id=516 and subTipoValorCpto/visiblePos=1]/monto
|
obtPrecioFinal() |
<%= |
operacion_valor | valor/valoresConcepto[subTipoValorCpto/concepto/id=501]/monto
|
obtPrecioFinalTodoCte() |
<%= |
operacion_valor | valor/valoresConcepto[subTipoValorCpto/concepto/id=501]/monto
|
obtTipoOperacion() |
<%= |
operacion_valor | operacion/tipoOperacion
|
obtTotalExento() |
<%= |
operacion_valor | valor/valoresConcepto[subTipoValorCpto/concepto/id=503 and subTipoValorCpto/visiblePos=1]/monto
|
obtTotalGravado() |
<%= |
operacion_valor | valor/valoresConcepto[subTipoValorCpto/concepto/id=541]/monto
|
obtTotalPercepcionesIIBB() |
<%= |
operacion_valor | valor/valoresConcepto[subTipoValorCpto/concepto/id=516 and subTipoValorCpto/visiblePos=1]/monto
|
obtValorCteFechaEmision() |
<%= |
operacion_valor | valor/comprobante/fechaEmision
|
obtValorCteNumero() |
<%= |
operacion_valor | valor/comprobante/codificacion
|
obtValorCteVendedor() |
<%= |
operacion_valor | valor/comprobante/objusuariocreacion/alias
|
obtValorMontoPrincipal() |
<%= |
operacion_valor | valor/montoPrincipal
|
Vendedor
| Método | Función | Tabla | Atributo |
|---|---|---|---|
obtVendedor() |
<%= |
operacion_valor | valor/objUsuarioCreacion/alias
|
Liquidaciones (Plantillas v4)
Sin método obt* definido — acceso directo por XPath.
| Atributo | Función | Tabla | Descripción |
|---|---|---|---|
entidadLiquidacion |
<%@ |
operacion_valor | Nombre del cliente del recibo |
fechaLiquidacion |
<%@ |
operacion_valor | Fecha de liquidación |
codificacion |
<%* |
item_liquidacion | Número del comprobante |
entidad |
<%* |
item_liquidacion | Nombre del cliente |
fechaEmision |
<%* |
item_liquidacion | Fecha de emisión del comprobante |
fechaVencimiento |
<%* |
item_liquidacion | Fecha de vencimiento de la cuota |
monto |
<%* |
item_liquidacion | Importe de la cuota |
subTipoValorCpto/nombre |
<%$ |
conceptos | Concepto total de liquidación |
monto |
<%$ |
conceptos | Importe total de liquidación |
6. Funciones JXPath
Funciones XPath estándar disponibles en las expresiones de plantilla.
| Función | Descripción |
|---|---|
abs(object) |
Devuelve el valor absoluto del argumento numérico. (Plantillas v4) |
concat(string, string, ...) |
Devuelve la concatenación de sus argumentos. |
sum(node-set) |
Devuelve la suma de los valores de los nodos del set, convertidos a número. |
7. Tabla de Caracteres Especiales
Para la obtención de la sintaxis completa de comandos, referirse a los manuales de cada modelo de impresora.
| Modelos | Hex / Unicode | ASCII | Descripción |
|---|---|---|---|
| Bematech, Epson | \u001B |
ESC | Inicio de comando (protocolo) |
| Bematech, Epson | \u001B@ |
ESC @ | Inicializa la impresora |
| Bematech | \u001Btn |
ESC t n | Selecciona página de código: n=2 (850), n=3 (437), n=4 (860), n=5 (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 espacio entre líneas |
| 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 |
8. Ejemplos y Prototipos
Ajuste de renglones condicionales
Para que una línea no se imprima si el dato es nulo, colocar el contenido entre << y >>:
| Fuera del Concat | Dentro del Concat |
|---|---|
<<%@concat('Afil.: <', format:rpad(...,25), '>')%>> |
<<%@concat('--- Afil.: <', format:rpad(...,25), '>')%>>
|
Troqueles en Recetas
<%=format:avanzarLineas(round(ceiling(cantidadProductos div 4) * espacioTroquel * lineasEnBlancoXcm * 5))%>
-
ceiling(cantidadProductos div 4): 1–4 productos → 1 fila, 5–8 → 2 filas, etc. -
espacioTroquel: 1 si imprime troqueles, 0 si no. -
lineasEnBlancoXcm: parámetroESPACIOS_EN_BLANCO_POR_CENTIMETRO(defecto: 2.5). -
5: los 5 cm que miden los troqueles.
Códigos de Farmacia por Obra Social
<%=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 7ma OS : ', obtCodigoFarmacia7maOS())%>
Número de Autorización por Receta (múltiples tipos)
<%=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)%>
Prototipos — Datos Adicionales
XPaths directos:
<%=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))%>%>
Usando pseudo-funciones:
<%=format:rpad(obtNumeroComprobante(),13)
<%+concat('-', format:string(obtNombreDatoCodificado()), ' : ',
format:string(obtDatoCodificado()), ' : ',
format:string(obtNombreDePrototipoDetalle()), ' : ',
format:string(obtNombrePrototipoDePrototipoDetalle()), ' : ',
format:string(obtNombrePrototipoDePrototipoDatoAdicional()), ' : ',
format:string(obtNumeroLineaDePrototipoDatoAdicional()))%>%>
Prototipos — Impresión de todos los imprimibles
NombreDato: Dato (cabecera, detalle, pie):
<%=format:cpad('dummy',0)<%+concat(format:string(obtNombreDatoCodificado()),': ',format:string(obtDatoCodificado()))%>%>
<%=format:cpad('dummy',0)<%+concat(format:concatNoNull(format:string(obtCabeceraNombreDatoCodificado()),': ',format:string(obtCabeceraDatoCodificado()))%>%>
<%=format:cpad('dummy',0)<%+concat(format:concatNoNull(format:string(obtPieNombreDatoCodificado()),': ',format:string(obtPieDatoCodificado()))%>>
Solo Dato:
<%=format:cpad('dummy',0)<%+concat('',format:string(obtDatoCodificado()))%>%>
<%=format:cpad('dummy',0)<%+concat('',format:string(obtCabeceraDatoCodificado()))%>%>
<%=format:cpad('dummy',0)<%+concat('',format:string(obtPieDatoCodificado())%>%>