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.
- 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.
- -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.
- -convierte cualquier tipo de dato en string.
- -devuelve la parte entera del número ingresado, convertido en string.
- -devuelve la longitud del dato ingresado, convertido en string.
- -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")
- -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.
- -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 ----------
- -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.
- -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"
Funciones definidas para cada tipo de dispositivo (Plantillas v3)[editar]
Estos comandos actúan sólo si el dispositivo lo permite.
- -envía un comando de inicialización a la impresora que la configura a sus valores iniciales.
- -envía un comando de normalización de la letra, a sus valores iniciales.
- -imprime en negrita (o enfatizado) el valor string del dato recibido.
- vuelve a las condiciones iniciales al finalizar la línea.
- -imprime en cursiva (o en itálica) el valor string del dato recibido.
- vuelve a las condiciones iniciales al finalizar la línea.
- -imprime con letra subrayada el valor string del dato recibido.
- vuelve a las condiciones iniciales al finalizar la línea.
- -imprime con letra condensada el valor string del dato recibido.
- vuelve a las condiciones iniciales al finalizar la línea.
- -imprime con letra expandida a lo ancho el valor string del dato recibido.
- vuelve a las condiciones iniciales al finalizar la línea.
- -imprime con letra expandida en alto el valor string del dato recibido.
- vuelve a las condiciones iniciales al finalizar la línea.
- -envía un comando de corte parcial de la cinta de papel.
- -envía un comando de corte total de la cinta de papel.
- -envía los comandos de configuración previos para imprimir un código de barras.
- imprime el código de barras del valor del dato recibido.
- vuelve a las condiciones iniciales al finalizar la línea.
- Ejemplos para obtener el número de autorizacción de cada receta y coseguro.
<%@format:rightpad('AUTORIZACIO1: ',operacionesValor[valor/tipoValor/id=2 and valor/tipoReceta/id=1]/valor/numeroAutorizacion)%>
<%@format:rightpad('AUTORIZACIO2: ',operacionesValor[valor/tipoValor/id=2 and valor/tipoReceta/id=2]/valor/numeroAutorizacion)%>
<%@format:rightpad('AUTORIZACIO3: ',operacionesValor[valor/tipoValor/id=2 and valor/tipoReceta/id=3]/valor/numeroAutorizacion)%>
<%@format:rightpad('AUTORIZACIO4: ',operacionesValor[valor/tipoValor/id=2 and valor/tipoReceta/id=4]/valor/numeroAutorizacion)%>
Funciones de jxpath[editar]
- string concat (string, string, string, ...)
- -devuelve la concatenación de sus argumentos.
- -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
- -devuelve el valor absoluto de su argumento numérico.
objeto
|
atributo
|
función
|
tabla
|
método
|
nuevo método
|
Farmacia
|
Razón Social
|
<%=
|
operacion_valor
|
valor/nodoCreacion/razonSocial
|
obtRazonSocialFarmacia()
|
Farmacia
|
Razón Social 2
|
<%=
|
operacion_valor
|
valor/nodoCreacion/razonSocialLinea2
|
obtRazonSocialFarmaciaLinea2()
|
Farmacia
|
Dirección
|
<%=
|
operacion_valor
|
valor/nodoCreacion/direcciones[1]
|
obtDireccion1Farmacia()
|
Farmacia
|
Tel.
|
<%=
|
operacion_valor
|
valor/nodoCreacion/telefonosConcatenados
|
obtTelefonoFarmacia()
|
Farmacia
|
C.U.I.T.
|
<%=
|
operacion_valor
|
valor/nodoCreacion/cuit
|
obtCuitFarmacia()
|
Farmacia
|
I.V.A.
|
<%=
|
operacion_valor
|
valor/nodoCreacion/objSituacionIVA/nombre
|
obtSituacionIvaFarmacia()
|
Farmacia
|
I.Br.
|
<%=
|
operacion_valor
|
valor/nodoCreacion/ingresosBrutos
|
obtIngresosBrutosFarmacia()
|
Cliente
|
Nombre
|
<%=
|
operacion_valor
|
valor/entidad/nombre
|
obtNombreCliente()
|
Cliente
|
Apellido
|
<%=
|
operacion_valor
|
valor/entidad/apellido
|
obtApellidoCliente()
|
Cliente
|
Dirección
|
<%=
|
operacion_valor
|
valor/entidad/direcciones[1]
|
obtDireccion1Cliente()
|
Cliente
|
Entre Calles
|
<%=
|
operacion_valor
|
valor/entidad/entreCalle
|
obtEntreCallesCliente()
|
Cliente
|
Teléfono
|
<%=
|
operacion_valor
|
valor/entidad/telefonosConcatenados
|
obtTelefonoCliente()
|
Afiliado
|
Nombre
|
<%@
|
operacion
|
operacionesValor[valor/tipoValor/id=2]/valor/nombreAfiliado
|
obtNombreAfiliado()
|
Afiliado
|
Nro
|
<%@
|
operacion
|
operacionesValor[valor/tipoValor/id=2]/valor/numeroAfiliado
|
obtNumeroAfiliado()
|
Valor
|
Fecha
|
<%=
|
operacion_valor
|
valor/fechaCreacion
|
obtFechaCreacion()
|
Valor
|
Número
|
<%=
|
operacion_valor
|
valor/codificacion
|
obtNumeroComprobante()
|
Producto
|
Nombre
|
<%#
|
item_valor
|
producto/nombreCorto
|
|
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)
|
|
Valor
|
TOTAL
|
<%=
|
operacion_valor
|
valor/valoresConcepto[subTipoValorCpto/concepto/id=501]/monto
|
obtPrecioFinal()
|
Valor
|
OBRAS SOCIALES
|
<%@
|
operacion
|
operacionesValor[valor/tipoValor/id=2]/valor/montoPrincipal
|
|
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
|
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()
|
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[editar]
objeto
|
atributo
|
función
|
tabla
|
método
|
nuevo método
|
valor
|
Número C.A.E.
|
<%=
|
operacion_valor
|
valor/numeroAutorizacion
|
|
valor
|
Vencimiento C.A.E.
|
<%=
|
operacion_valor
|
valor/fechaAdicional
|
|
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),'>')%>>
|
|
|
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))%>%>