Campos adicionales

¿Cómo se usan?

Actualmente, en la tabla encabezado existe un campo llamado XML (varchar(8000)) que anteriormente era usado para guardar la estructura xml del comprobante, sin embargo esta operación se descontinuó. Para no modificar la actual estructura se decidió usar dicho campo para guardar una cadena de texto que contenga un arreglo de valores serializados con JSON, que es un formato ligero y de facil manejo. Si desea saber mas de la serialización JSON puede ver el siguiente enlace: JSON (www.es.Wikipedia.org).

Estructura de los datos JSON que se pueden guardar en el campo XML de encabezado

[//--inicio del arreglo on colección
    {
      "place": 0, 
      "label": "",
      "value": "",
      "campo_sust": "",
      "pdf": 0,
      "fc": 1,
      "codigo_xml": "",
      "pcd": 1
    }
]//--final del arreglo on colección
                

Campos

place: es un enetero del 0 al 7, representa el segmento de la factura donde estará ubicado.

  • 0=Datos del emisor
  • 1=Datos de la factura (donde aparece el tipo de moneda, factor de cambio, fecha, medio de pago...)
  • 2=Datos del receptor
  • 3=Bajo la lista de items de factura
  • 4=En la totalización de la factura
  • 5=Otras observaciones adicionales
  • 6=No es un segmento, indica que se debe hacer una sustitución, se usa solo si campo_sust tiene el valor "CodigoPais""
  • 7=En la referencia

label: Etiqueta del campo. Puede estar vacío.

value: Valor del campo.

campo_sust: Cuando se requiera sustituir algún valor de aquellos que ya contiene el comprobante electrónico. Por ahora el único valor posible es "CodigoPais" del telefono del receptor

pdf: Es un entero para mostrar o no el campo en la factura PDF, 1=Mostrar , 0= No mostrar

fc: No es un campo, es una orden para mostrar o no el factor de cambio, 1=Mostrar , 0= No mostrar

codigo_xml: Por defecto vacío. Si se especifíca un valor se incluirá tambien este valor en el XML, especificamente en el espacio "OtrosTexto" de la estructura establecida por hacienda. En el caso de tener un valor se incluirá con el codigo especificado aca y con el valor especificado en el campo "value"

pcd: Es un entero para mostrar o no los campos provincia, canton y distrito, 1=Mostrar , 0= No mostrar


Ejemplo:

        
            [
                //NO MOSTRAR FACTOR DE CAMBIO
                {
                  
                    "fc":0,
                  
                },
                //NO MOSTRAR PROVINCIA, CANTON Y DISTRITO
                {
                  
                    "pcd":0,
                  
                },
                //CAMPO EN DATOS DEL EMISOR
                {
                    "place":0,
                    "label":"",
                    "value":"450060-CODPOS",
                    "campo_sust":"",
                    "pdf":1,                 
                    "codigo_xml":""
                 
                },
                //2 CAMPOS EN DATOS DE FACTURA
                {
                    "place":1,
                    "label":"Orden de compra",
                    "value":"000003655",
                    "campo_sust":"",
                    "pdf":1,                
                    "codigo_xml":""
                   
                },
                {
                    "place":1,
                    "label":"Vendedor",
                    "value":"Gabriel Leon",
                    "campo_sust":"",
                    "pdf":1,           
                    "codigo_xml":""
                },
                //CAMPO EN DATOS DEL RECEPTOR
                {
                    "place":2,
                    "label":"Dirección de envío",
                    "value":"Calle Americas, 50 mts Norte y 100 mts Este de CC plaza estrella ",
                    "campo_sust":"",
                    "pdf":1,
                    "codigo_xml":""                    
                },
                //NOTA BAJO EL DETALLE DE FACTURA
                {
                    "place":3,
                    "label":"",
                    "value":"Todos los items gravados estan asegurados",
                    "campo_sust":"",
                    "pdf":1,                    
                    "codigo_xml":""
                },
                //CAMPO EN TOTALIZACIÓN
                
                {
                    "place":4,
                    "label":"Costo de Transporte",
                    "value":"2500.36",
                    "campo_sust":"",
                    "pdf":1,                   
                    "codigo_xml":""
                   
                },
                //CAMPO EN OBSERVACIONES 
                {
                    "place":5,
                    "label":"Numero de factura ERP",
                    "value":"AX0000256",
                    "campo_sust":"",
                    "pdf":1,                  
                    "codigo_xml":""
                   
                },
                //SUSTITUCIÓN DEL CODIGO DE PAIS DEL RECEPTOR
                {
                    "place":6,
                    "label":"",
                    "value":"+58",
                    "campo_sust":"CodigoPais",
                    "pdf":1,                  
                    "codigo_xml":""
                  
                },
                //CAMPO EN DATOS DE REFERENCIA
                {
                    "place":7,
                    "label":"Adicional de ref",
                    "value":"Valor adicional para referencia",
                    "campo_sust":"",
                    "pdf":1,                   
                    "codigo_xml":""
                },
                //CAMPO PARA XML
                {
                    "place":0,
                    "label":"",
                    "value":"ODC00001",
                    "campo_sust":"",
                    "pdf":0,
                    "codigo_xml":"ODC"
                },
                //CAMPO PARA XML
                {
                    "place":0,
                    "label":"",
                    "value":"4566541",
                    "campo_sust":"",
                    "pdf":0,                   
                    "codigo_xml":"CodigoVendedor"
                },
                //CAMPO PARA XML
                {
                    "place":0,
                    "label":"",
                    "value":"33211478",
                    "campo_sust":"",
                    "pdf":0,                    
                    "codigo_xml":"CodigoProveedor"
                }
                
            ]
        
        
Los tres últimos campos adicionales no aparecerán en la factura PDF pero si en el XML

Resultado:

Factura PDF

XML

Archivo XML