Línea de Producto: | Microsiga Protheus ® SIGAFAT | ||||||||||||||||||||||||||||||||
Segmento: | Mercado Internacional | ||||||||||||||||||||||||||||||||
Módulo: | SIGAFAT | ||||||||||||||||||||||||||||||||
Rutina: |
Clientes de TSS Involucrados
Rutinas TSS Involucradas
| ||||||||||||||||||||||||||||||||
Archivo Iniciales: | |||||||||||||||||||||||||||||||||
Parámetro(s): | MV_SIGNADM MV_SIGNUSR MV_SIGNAWS MV_SIGNPAS MV_TESEXE MV_CFDDOCS | ||||||||||||||||||||||||||||||||
Punto de Entrada: | M485NF M485NCC M485NDC M485NCC M485DOCEXP | ||||||||||||||||||||||||||||||||
Llamados vinculados: | |||||||||||||||||||||||||||||||||
Requisito (ISSUE): | PCREQ-5714, DMINA-4467 (v 12.1.17) | ||||||||||||||||||||||||||||||||
País(es): | Chile | ||||||||||||||||||||||||||||||||
Base(s) de Datos: | Todas | ||||||||||||||||||||||||||||||||
Tablas utilizadas: | SF1– Factura de Entrada SD1– Ítems de facturas de Entrada SF2– Factura de Salida SD2– Ítems de facturas de Salida SFB– Impuestos Variables SB1– Productos SM0– Sucursales SA2– Proveedores SA1– Clientes SFC–TES | ||||||||||||||||||||||||||||||||
Sistema(s) operativo(s): | Windows®/Linux® |
Permitir el envío y recepción de los Documentos fiscales tales como : Factura Electrónica, Factura Exenta, Nota de Crédito y Débito, Guías de despacho y documentos de Exportación (Factura, Nota de crédito y Débito) entre Protheus y TSS.
(Solo para Microsiga Protheus, versiones anteriores a la 12)
Antes de ejecutar el compatibilizador, UPDMODMI es imprescindible:
Atención ¡El siguiente procedimiento debe realizarlo un profesional calificado como Administrador de base de datos (DBA) o su equivalente! La activación indebida de la integridad referencial puede modificar drásticamente la relación entre tablas en la base de datos. Por lo tanto, antes de utilizarla, observe atentamente el siguiente procedimiento: 1. En el Configurador (SIGACFG), verifique si la empresa utiliza Integridad referencial, seleccionando la opción Integridad/Verificación (APCFG60A). 2. Si no hay Integridad referencial activa, se listan en una nueva ventana todas las empresas y sucursales registradas en el sistema y ninguna de estas estará seleccionada. SOLAMENTE en este caso no es necesario ningún otro procedimiento de activación o desactivación de integridad, basta finalizar la verificación y aplicar normalmente el compatibilizador, de acuerdo con las instrucciones. 3. Si la Integridad referencial está activa en todas las empresas y sucursales, se muestra un mensaje en la ventana Verificación de vínculo entre tablas. Confirme el mensaje para que se concluya la verificación, o; 4. Si existe Integridad referencial activa en una o más empresas, que no representan la totalidad, se listan en una nueva ventana todas las empresas y sucursales registradas en el sistema y solamente se seleccionarán las que tienen integridad. Anote las empresas y/o sucursales que tienen la integridad activada y reserve esta anotación para posterior consulta en la reactivación (o incluso, entre en contacto con nuestro Help Desk Framework para informarse sobre los archivos que contienen esta información). 5. En los casos descritos en los ítems “iii” o “iv”, Y SOLO EN ESTOS CASOS, es necesario desactivar dicha integridad, seleccionando la opción Integridad/ Desactivar (APCFG60D). 6. Al desactivar la Integridad referencial, ejecute el compatibilizador, de acuerdo con las instrucciones. 7. Después de aplicar el compatibilizador, la Integridad referencial debe reactivarse, SOLAMENTE CUANDO se haya desactivado, por medio de la opción Integridad/Activar (APCFG60). Para ello, tenga a disposición la información de la(s) empresa(s) y/o sucursal(es) que tenía(n) activación de la integridad, selecciónela(s) nuevamente y confirme la activación.
¡EN CASO DE DUDAS, entre en contacto con el Help Desk Framework! |
Como premisa, es necesario contar con la correcta instalación de TSS versión 2.61 o superior:
- Realizar la instalación del TSS a través del instalador disponible en la sección de download del portal del cliente: https://suporte.totvs.com/download, en la línea de Protheus, buscar por el nombre del instalador TSS. Importante: Si la versión de TSS mencionada en este documento no está disponible para su descarga, deberá solicitar con Help Desk el patch correspondiente con las rutinas de TSS mencionadas en la sección Características del Requisito.
- Verificar la generación del archivo de Schema (DTE_v1.0.xsd) en la pasta de Schemas de TSS creada durante la instalación.
Configuración de procesamiento.
Después de la Instalación, configurar y habilitar el Job de procesamiento de los documentos en el archivo appserver.ini de TSS con las siguientes instrucciones:
; Sección de declaración del Job
[WFSIGNATURECHI]
main= TSSSignatureCHI
environment=sped
;start de job
[onstart]
jobs=WFSIGNATURECHI
En seguida bajar y subir nuevamente el server de TSS.
Acceda al URL configurado para los Web Services de TSS mediante algún Explorador de Internet. Verifique que se encuentre el Web Service TSSSignature en el Index de Servicios Web mostrados.
El URL para conexión con SIGNATURE, deberá probarse de la siguiente manera: En cualquier explorador de Internet coloque la URL proporcionada. Deberá mostrarse la definición del Web Service con los métodos que lo componen.
Orden | 01 | 02 |
Pregunta | ¿Tipo de Documento? | ¿Serie? |
Tipo | C | C |
Tamaño | 1 | 3 |
Objeto | Get | Get |
Consulta Estándar | No aplica | SERNF |
Pre selección | 1 | |
Opciones | Factura. Nota de Débito. Nota de Crédito. Guía Despacho. |
GRUPO: MATA485A
Orden | 01 |
02 |
03 |
Pregunta | ¿Serie de la Factura? |
Grupo
MATA485A
Orden
01
¿Factura Inicial? | ¿Factura Final? | ||
Tipo | C | C | C |
Tamaño |
1 |
13 |
13 |
Objeto |
Get |
Get |
Get |
Consulta Estándar |
SERNF |
No aplica |
No aplica |
Validación |
No aplica |
Pregunta | MATA485A |
Nombre | ¿Factura Final? |
Grupo | MATA485A |
Orden | 03 |
Tipo | C |
Tamaño | 13 |
GRUPO: MATA485B
No aplica | !Empty(MV_PAR03) .And. MV_PAR02<=MV_PAR03 |
GRUPO: MATA485B
Pregunta
MATA485B
Nombre
Orden | 01 | 02 | 03 |
Pregunta |
¿Serie de la Nota de Débito? |
Grupo
MATA485B
Orden
01
Tipo
C
Tamaño
3
Pregunta
MATA485A
Nombre
¿Nota de Débito Inicial? |
Grupo
MATA485A
Orden
02
¿Nota de Débito Final? | ||
Tipo | C | C |
C | ||
Tamaño | 1 | 13 |
13 |
Objeto |
Nombre
Grupo
MATA485B
Orden
03
Tipo
C
Tamaño
Get | Get | Get | |
Consulta Estándar | SERNF | No aplica | No aplica |
Validación | No aplica | No aplica | !Empty(MV_PAR03) .And. MV_PAR02<=MV_PAR03 |
GRUPO: MATA485C
Orden | 01 | 02 | 03 |
Pregunta |
Pregunta
MATA485C
¿Serie de la Nota de Crédito? |
Grupo
MATA485C
Orden
01
¿Nota de Crédito Inicial? | ¿Nota de Crédito Final? | ||
Tipo | C | C | C |
Tamaño |
1 |
13 |
13 |
Nombre
Grupo
MATA485A
Orden
02
Tipo
C
Tamaño
13
Pregunta | MATA485C |
Nombre | ¿Nota de Débito Final? |
Grupo | MATA485C |
Orden | 03 |
Tipo | C |
Tamaño | 13 |
GRUPO: MATA485D
Objeto | Get | Get | Get |
Consulta Estándar | SERNF | No aplica | No aplica |
Validación | No aplica | No aplica | !Empty(MV_PAR03) .And. MV_PAR02<=MV_PAR03 |
GRUPO: MATA485D
Pregunta
MATA485D
Nombre
Orden | 01 | 02 | 03 |
Pregunta |
¿Serie de la Guía de Despacho? |
Grupo
MATA485D
Orden
01
Tipo
C
Tamaño
3
Pregunta
MATA485D
Nombre
¿Guía de Despacho Inicial? |
Grupo
MATA485D
Orden
02
¿Guía de Despacho Final? | |||
Tipo | C | C | C |
Tamaño | 1 | 13 |
13 |
Objeto |
Get |
Nombre
Grupo
MATA485D
Orden
03
Tipo
C
Tamaño
Get | Get | ||
Consulta Estándar | SERNF | No aplica | No aplica |
Validación | No aplica | No aplica | !Empty(MV_PAR03) .And. MV_PAR02<=MV_PAR03 |
2. Creaciónde Campos en el archivo SX3 – Campos:
Campo | F1_FLFTEX |
Tipo | Caracter |
Tamaño | 1 |
Decimal | 0 |
Formato | @! |
Título | Status Trans |
Descripción | Estatus transmisión Elec |
Nivel | 1 |
Utilizado | Si |
Obrigatório | No |
Browse | No |
Opciones | 0=No Enviado; 1=Enviado a TSS; 4=Esperando procesamiento; 5=Rechazado; 6=Autorizado |
When | |
Relación | 0 |
Val. Sistema | |
Help | Indica el estatus del documento una vez que ha sido enviado al TSS |
Campo | F1_FECAUT |
Tipo | Fecha |
Tamaño | 8 |
Decimal | 0 |
Formato | @! |
Título | Fch Aut |
Descripción | Fecha de autorización |
Nivel | 1 |
Utilizado | Si |
Obrigatório | No |
Browse | No |
Opciones | |
When | |
Relación | |
Val. Sistema | |
Help | Fecha de Autorización Digital |
Campo | F1_MOTIVO |
Tipo | Caracter |
Tamaño | 30 |
Decimal | 0 |
Formato | @! |
Título | Motivo |
Descripción | Motivo |
Nivel | 1 |
Utilizado | Si |
Obrigatório | Si |
Browse | No |
Opciones | |
When | |
Relación | |
Val. Sistema | |
Help | Motivo por el que se expide documento. |
Campo | F1_TIPREF |
Tipo | Caracter |
Tamaño | 1 |
Decimal | 0 |
Formato | @! |
Título | Tipo Ref. |
Descripción | Tipo de Referencia |
Nivel | 1 |
Utilizado | Si |
Obrigatório | Si |
Browse | No |
Opciones | 1= Anula Documento de Referencia; 2= Corrige Texto Documento de Referencia; 3=Corrige montos |
When | |
Relación | |
Val. Sistema | |
Help | Tipo de Referencia: |
Campo | F2_FLFTEX |
Tipo | Caracter |
Tamaño | 1 |
Decimal | 0 |
Formato | @! |
Título | Status Trans |
Descripción | Estatus transmisión Elec |
Nivel | 1 |
Utilizado | Si |
Obrigatório | No |
Browse | No |
Opciones | 0=No Enviado; 1=Enviado a TSS; 4=Esperando procesamiento; 5=Rechazado; 6=Autorizado |
When | |
Relación | 0 |
Val. Sistema | |
Help | Indica el estatus del documento una vez que ha sido enviado al TSS |
Campo | F2_FECAUT |
Tipo | Fecha |
Tamaño | 8 |
Decimal | 0 |
Formato | @! |
Título | Fch Aut |
Descripción | Fecha de autorización |
Nivel | 1 |
Utilizado | Si |
Obrigatório | No |
Browse | No |
Opciones | |
When | |
Relación | |
Val. Sistema | |
Help | Fecha de Autorización Digital |
Campo | F2_MOTIVO |
Tipo | Caracter |
Tamaño | 30 |
Decimal | 0 |
Formato | @! |
Título | Motivo |
Descripción | Motivo |
Nivel | 1 |
Utilizado | Si |
Obrigatório | Si |
Browse | No |
Opciones | |
When | |
Relación | |
Val. Sistema | |
Help | Motivo por el que se expide documento. |
Campo | F2_TIPREF |
Tipo | Caracter |
Tamaño | 1 |
Decimal | 0 |
Formato | @! |
Título | Tipo Ref. |
Descripción | Tipo de Referencia |
Nivel | 1 |
Utilizado | Si |
Obrigatório | Si |
Browse | No |
Opciones | 1= Anula Documento de Referencia; 2= Corrige Texto Documento de Referencia; 3=Corrige montos |
When | |
Relación | |
Val. Sistema | |
Help | Tipo de Referencia: |
Campo | F2_ESPREF |
Tipo | Caracter |
Tamaño | 3 |
Decimal | 0 |
Formato | @! |
Título | Especie Ref |
Descripción | Especie Referencia |
Nivel | 1 |
Utilizado | Si |
Obrigatório | Si |
Browse | No |
Opciones | NF=Factura; NCC=Nota de Credito |
When | |
Relación | |
Val. Sistema | |
Help | Especie de la referencia. |
Campo | F2_NFREF |
Tipo | Caracter |
Tamaño | 8 |
Decimal | 0 |
Formato | @! |
Título | Documento Ref |
Descripción | Documento de Referencia |
Nivel | 1 |
Utilizado | Si |
Obrigatório | Si |
Browse | No |
Opciones | |
When | |
Relación | |
Val. Sistema | |
Help | Documento ligado a la Nota de Débito |
Campo | F2_SERREF |
Tipo | Caracter |
Tamaño | 3 |
Decimal | 0 |
Formato | @! |
Título | Serie Ref |
Descripción | Serie Referencia |
Nivel | 1 |
Utilizado | Si |
Obrigatório | Si |
Browse | No |
Opciones | |
When | |
Relación | |
Val. Sistema | MT485VLDNF(M->F2_NFREF, M->F2_SERREF, M->F2_CLIENTE, M->F2_LOJA,M->F2_ESPREF) |
Help | Serie del Documento de Referencia |
Campo | F2_MODVEN |
Tipo | Caracter |
Tamaño | 1 |
Decimal | 0 |
Formato | @! |
Título | Mod. Venta |
Descripción | Modalidad de la Venta |
Nivel | 1 |
Utilizado | Si |
Obrigatorio | No |
Browse | No |
Opciones | 1=FIRME; 2=BAJO COND; 3=CONS-LIBRE; 4=CONS-M.F.; 9=SIN PAGO |
When | |
Relación | '1' |
Val. Sistema | PERTENCE('12349') |
Help | Código de la modalidad de la venta de acuerdo con la SII. Aplica solo para Documentos de Exportación. |
Campo | FB_CODIMP |
Tipo | C |
Tamaño | 3 |
Decimal | 0 |
Picture | @! |
Contexto | Real |
Propiedad | Modificar |
Título | Cod. Impuesto |
Descripción | Código de Impuesto |
Help de Campo | Código del del impuesto según SII |
Lista | |
Inicializa Estd | |
Validación | |
Uso | Usado |
Campo | FB_CODTAR |
Tipo | C |
Tamaño | 5 |
Decimal | 0 |
Picture | @! |
Contexto | Real |
Propiedad | Modificar |
Título | Cod. Tasa |
Descripción | Codigo de Tasa |
Help de Campo | Código de la tasa del impuesto según SII. |
Lista | |
Inicializa Estd | |
Validación | |
Uso | Usado |
3. Modificación de Campos en el archivo SX3 – Campos:
Campo | F1_NUMAUT |
Tipo | Caracter |
Tamaño | 37 |
Decimal | 0 |
Formato | @E 9999999999999999999999999999999999999 |
Título | Núm. Autoriz |
Descripción | Número de Autorización |
Nivel | 1 |
Utilizado | Si |
Obrigatório | No |
Browse | No |
Opciones | |
When | |
Relación | |
Val. Sistema | |
Help | Número de Autorización |
Campo | F2_NUMAUT |
Tipo | Caracter |
Tamaño | 37 |
Decimal | 0 |
Formato | @E 9999999999999999999999999999999999999 |
Título | Núm. Autoriz |
Descripción | Número de Autorización |
Nivel | 1 |
Utilizado | Si |
Obrigatório | No |
Browse | No |
Opciones | |
When | |
Relación | |
Val. Sistema | |
Help | Número de Autorización |
Importante:
El tamaño de los campos que disponen de grupo puede variar de acuerdo con el entorno en uso.
4. Creación de Parámetros en el archivo SX6 – Parámetros:
Nombre de la Variable | MV_SIGNAWS |
Tipo | Caracter |
Descripción | URL de los WebServices del TSS |
Valor Estándar |
Nombre de la Variable | MV_SIGNADM |
Tipo | Caracter |
Descripción | Email del administrador del sistema Signature |
Valor Estándar |
Nombre de la Variable | MV_SIGNUSR |
Tipo | Caracter |
Descripción | Usuario del sistema SIGNATURE |
Valor Estándar |
Nombre de la Variable | MV_SIGNPAS |
Tipo | Caracter |
Descripción | Password del Usuario del sistema SIGNATURE |
Valor Estándar |
Nombre de la Variable | MV_TESEXE |
Tipo | Caracter |
Descripción | TES utilizada para factura Exenta de IVA |
Valor Estándar |
Nombre de la Variable | MV_CFDDOCS |
Tipo | Caracter |
Descripción | Directorio donde se graban las facturas electrónicas |
Valor Estándar |
CONFIGURACIÓN DE PARÁMETROS
Ítems/Carpetas | Descripción |
Nombre: | MV_SIGNADM |
Tipo: | Caracter |
Cont. Esp.: | Ej. admin@totvs,com.br |
Descripción: | Email del administrador del sistema Signature |
Ítems/Carpetas | Descripción |
Nombre: | MV_SIGNUSR |
Tipo: | Caracter |
Cont. Esp.: | Ej. cexfh590-6430-437d-812g-49a590ca5500 |
Descripción: | Usuario del sistema SIGNATURE |
Ítems/Carpetas | Descripción |
Nombre: | MV_SIGNPAS |
Tipo: | Caracter |
Cont. Esp.: | Ej. Tilkkkxv |
Descripción: | Password del Usuario del sistema SIGNATURE |
Ítems/Carpetas | Descripción |
Nombre: | MV_TESEXE |
Tipo: | Caracter |
Cont. Esp.: | 503,506,607 |
Descripción: | TES utilizada para factura Exenta de IVA |
Ítems/Carpetas | Descripción |
Nombre: | MV_CFDDOCS |
Tipo: | Caracter |
Cont. Esp.: | GetSrvProfString('startpath','')+'\cfd\facturas\' |
Descripción: | Directorio donde se graban las facturas electrónicas |
NOTA: MV_SIGNUSR y MV_SIGNPAS son proporcionados al cliente por SIGNATURE, son únicos y confidenciales.
CONFIGURACIÓN DE MENÚS
2. En el Configurador (SIGACFG), acceda a Entornos/Archivo/Menú (CFGX013). Informe la nueva opción de menú del informe el nombre del módulo, conforme las instrucciones a continuación:
Menú | Actualizaciones |
Submenú | Facturación |
Nombre de la Rutina | Transmisión Electrónica |
Programa | MATA485 |
Módulo | Facturación |
Tipo | Función de Protheus |
Procedimiento de Autorización de Documento Electrónico
Podrán generarse los registros correspondientes a cada documento.
En este monitor visualiza la fecha y hora de autorización del documento por la SII. En caso de documentos rechazados, se muestran las observaciones realizadas por la SII y la recomendación correspondiente.
8. Dentro de la funcionalidad del monitor, se encuentra la visualización del XML autorizado por la SII. Para visualizar XML autorizado, dé clic en el botón Schema ubicado en la parte inferior de la opción Monitor. El XML será desplegado siempre y cuando el documento seleccionado haya sido aprobado por la SII, de lo contrario se indica al usuario que la visualización no está disponible.
9. Al salir de la opción monitor con el botón OK, se detona la actualización de todos los documentos con la información obtenida de TSS hacia Protheus. Para el caso de los documentos autorizados, en la carpeta configurada en el parámetro MV_CFDDOCS se genera el XML autorizado y el PDF de representación impresa de cada documento.
Descripción: | M485DOCEXP.- Identificar si el documento es de exportación o no. | ||||||||||||
Ubicación: | Actualizaciones / Facturación/Transmisión Electrónica | ||||||||||||
Eventos: | Transmisión Electrónica | ||||||||||||
Programa Fuente: | NFAEXMLCHI.PRW | ||||||||||||
Función: | NFAEXmlCHI | ||||||||||||
Respuesta: |
|
Ejemplo:
#Include 'Protheus.ch'
User Function M485DOCEXP()
Local lRet :=.F.
Local cFilDoc :=PARAMIXB[1]// Filial
Local cNumDoc :=PARAMIXB[2]// Número de Documento
Local cSerieDoc :=PARAMIXB[3]// Serie
Local cEspDoc :=PARAMIXB[4]// Especie
Local cCodCli :=PARAMIXB[5]// Código de Cliente
Local cCodLoj :=PARAMIXB[6]// código de tienda
If alltrim(cSerieDoc)$"B*E*W*Y"
lRet:=.T.
EndIf
Return lRet
Descripción: | M485NCC.- Adicionar información que no es obligatoria ante la SII para el documento de Nota de Crédito. | ||||||||||||
Ubicación: | Actualizaciones / Facturación/Transmisión Electrónica | ||||||||||||
Eventos: | Transmitir | ||||||||||||
Programa Fuente: | NFAEXMLCHI.PRW | ||||||||||||
Función: | NFAEXmlCHI | ||||||||||||
Respuesta: |
|
Ejemplo:
#Include 'Protheus.ch'
User Function M485NCC()
Local cXML:=""
Local cCRLF :=(chr(13)+chr(10))
Local cFilDoc :=PARAMIXB[1]// Filial
Local cNumDoc :=PARAMIXB[2]// Número de Documento
Local cSerieDoc:=PARAMIXB[3]// Serie
Local cEspDoc :=PARAMIXB[4]// Especie
Local cCodCli :=PARAMIXB[5]// Código de Cliente
Local cCodLoj :=PARAMIXB[6]// código de tienda
cXML+='<Personalizados>'+cCRLF
cXML+=' <campoNumero name="CampoNumerico">1</campoNumero>'+cCRLF
cXML+=' <campoString name="CampoTexto">Esto es un texto</campoString>'+cCRLF
cXML+=' <campoFecha name="CampoTexto">2016-01-31</campoFecha>'+cCRLF
cXML+='</Personalizados>'+cCRLF
Return cXML
Descripción: | M485NDC.- Adicionar información que no es obligatoria ante la SII para el documento de Nota de Débito. | ||||||||||||
Ubicación: | Actualizaciones / Facturación/Transmisión Electrónica | ||||||||||||
Eventos: | Transmitir | ||||||||||||
Programa Fuente: | NFAEXMLCHI.PRW | ||||||||||||
Función: | NFAEXmlCHI | ||||||||||||
Respuesta: |
|
Ejemplo:
#Include 'Protheus.ch'
User Function M485NDC()
Local cXML := ""
Local cCRLF := (chr(13)+chr(10) )
Local cFilDoc := PARAMIXB[1] // Filial
Local cNumDoc := PARAMIXB[2] // Número de Documento
Local cSerieDoc:= PARAMIXB[3] // Serie
Local cEspDoc := PARAMIXB[4] // Especie
Local cCodCli := PARAMIXB[5] // Código de Cliente
Local cCodLoj := PARAMIXB[6] // código de tienda
cXML += '<Personalizados>' + cCRLF
cXML += ' <campoNumero name="CampoNumerico">1</campoNumero>' + cCRLF
cXML += ' <campoString name="CampoTexto">Esto es un texto</campoString>' + cCRLF
cXML += ' <campoFecha name="CampoTexto">2016-01-31</campoFecha>' + cCRLF
cXML += '</Personalizados>' + cCRLF
Return cXML
Descripción: | M485NF.- Adicionar información que no es obligatoria ante la SII para el documento de Factura Electrónica y Guía de Despacho. | ||||||||||||
Ubicación: | Actualizaciones / Facturación/Transmisión Electrónica | ||||||||||||
Eventos: | Transmitir | ||||||||||||
Programa Fuente: | NFAEXMLCHI.PRW | ||||||||||||
Función: | NFAEXmlCHI | ||||||||||||
Respuesta: |
|
Ejemplo:
#Include 'Protheus.ch'
User Function M485NF()
Local cXML := ""
Local cCRLF := (chr(13)+chr(10) )
Local cFilDoc := PARAMIXB[1] // Filial
Local cNumDoc := PARAMIXB[2] // Número de Documento
Local cSerieDoc:= PARAMIXB[3] // Serie
Local cEspDoc := PARAMIXB[4] // Especie
Local cCodCli := PARAMIXB[5] // Código de Cliente
Local cCodLoj := PARAMIXB[6] // código de tienda
cXML += '<Personalizados>' + cCRLF
cXML += ' <campoNumero name="CampoNumerico">1</campoNumero>' + cCRLF
cXML += ' <campoString name="CampoTexto">Esto es un texto</campoString>' + cCRLF
cXML += ' <campoFecha name="CampoTexto">2016-01-31</campoFecha>' + cCRLF
cXML += '</Personalizados>' + cCRLF
Return cXML
Descripción: | M485REFNF.- Referenciar los documentos asociados( Orden de Compra, Guía de Despacho, etc) a la Factura o Guía de Despacho. | ||||||||||||
Ubicación: | Actualizaciones / Facturación/Transmisión Electrónica | ||||||||||||
Eventos: | Transmitir | ||||||||||||
Programa Fuente: | NFAEXMLCHI.PRW | ||||||||||||
Función: | NFAEXmlCHI | ||||||||||||
Respuesta: |
|
Ejemplo:
#Include 'Protheus.ch'
User Function M485REFNF()
Local cXML :=""
Local cCRLF :=(chr(13)+chr(10))
Local cFilDoc :=PARAMIXB[1]// Filial
Local cNumDoc :=PARAMIXB[2]// Número de Documento
Local cSerieDoc:=PARAMIXB[3]// Serie
Local cEspDoc :=PARAMIXB[4]// Especie
Local cCodCli :=PARAMIXB[5]// Código de Cliente
Local cCodLoj :=PARAMIXB[6]// código de tienda
Local cAlias :=getNextAlias()
Local cQuery:=""
Local cGuiaD:=""
Local cPV :=""
Local cPC :=""
Local nJ :=0
Local aArea:=getArea()
Local aRef :={}
Local aGuiaD:={}
Local aPV :={}
Local aPC :={}
Local nK :=0
cQuery:=" SELECT D2_DOC,D2_SERIE,D2_PEDIDO,D2_ÍTEMPV,C6_NUMPCOM,C6_ÍTEMPC "
cQuery+=" FROM "+RetSqlName("SD2")+" SD2, "+RetSqlName("SC6")+" SC6 "
cQuery+=" WHERE SD2.D2_FILIAL='"+xFilial("SD2")+"' AND SD2.D_E_L_E_T_='' "
cquery+=" AND SD2.D2_DOC IN "
cQuery+=" (SELECT D2_REMITO "
cQuery+=" FROM "+RetSqlName("SD2")
cQuery+=" WHERE D2_FILIAL='"+xFilial("SD2")+"' AND D_E_L_E_T_='' "
cquery+=" AND D2_DOC='"+cNumDoc+"' AND D2_SERIE='"+cSerieDoc+"' AND D2_REMITO<>'' GROUP BY D2_REMITO) "
cQuery+=" AND SD2.D2_SERIE='R' AND SC6.C6_FILIAL='"+xFilial("SC6")+"' "
cQuery+= " AND SC6.D_E_L_E_T_='' AND SC6.C6_NUM = SD2.D2_PEDIDO AND SC6.C6_ÍTEM=SD2.D2_ÍTEMPV "
cQuery:=ChangeQuery(cQuery)
DbUseArea(.T.,"TOPCONN",TCGenQry(,,cQuery), cAlias,.T.,.F.)
(cAlias)->(dbgoTop())
If (cAlias)->(Eof())
(cAlias)->(DbCloseArea())
cQuery:=" SELECT D2_DOC,D2_SERIE,D2_PEDIDO,D2_ÍTEMPV,C6_NUMPCOM,C6_ÍTEMPC "
cQuery+=" FROM "+RetSqlName("SD2")+" SD2, "+RetSqlName("SC6")+" SC6 "
cQuery+=" WHERE SD2.D2_FILIAL='"+xFilial("SD2")+"' AND SD2.D_E_L_E_T_='' "
cQuery+=" AND SD2.D2_DOC ='"+cNumDoc+"' AND SD2.D2_SERIE='"+cSerieDoc+"'"
cQuery+=" AND SC6.C6_FILIAL='"+xFilial("SC6")+"' AND SC6.D_E_L_E_T_='' "
cQuery+=" AND SC6.C6_NUM = SD2.D2_PEDIDO AND SC6.C6_ÍTEM=SD2.D2_ÍTEMPV"
cQuery:=ChangeQuery(cQuery)
DbUseArea(.T.,"TOPCONN",TCGenQry(,,cQuery), cAlias,.T.,.F.)
(cAlias)->(dbgoTop())
EndIf
/* llenar aRef de la siguiente manera:
1. Tipo documento REF -> 52 Guia Despacho | 801 Orden de Compra
2. Número de la referenica -> D2_DOC
3. Fecha de Referencia -> D2_EMISSAO con formato AAAA-MM-DDT00:00:00Z
4. Código de Referencia -> Dejar en blanco
5. Razón de la Referencia -> Dejar en blanco o colocar mensaje Genérico
*/
Do While (cAlias)->(!Eof())
If aScan(aGuiaD,{|x|x[1]==(cAlias)->D2_DOC})==0
aAdd(aGuiaD,{(cAlias)->D2_DOC})
aAdd(aRef,{"52",;
(cAlias)->D2_DOC,;
SUBSTR((cAlias)->D2_EMISSAO,0,4)+"-"+SUBSTR((cAlias)->D2_EMISSAO,5,2)+"-"+"T00:00:00Z",;
"",;
""})
EndIf
If aScan(aPC,{|x|x[1]==(cAlias)->C6_NUMPCOM})==0.AND.!Empty((cAlias)->C6_NUMPCOM)
aAdd(aPC,{(cAlias)->C6_NUMPCOM})
aAdd(aRef,{"801",;
(cAlias)->D2_DOC,;
SUBSTR((cAlias)->D2_EMISSAO,0,4)+"-"+SUBSTR((cAlias)->D2_EMISSAO,5,2)+"-"+"T00:00:00Z",;
"",;
""})
EndIf
(cAlias)->(DbSkip()
EndDo
cAlias)->(DbCloseArea())
For nK:=1 to len(aRef)
cXML+=' <Referencia>'+cCRLF
cXML+=' <NroLinRef>'+alltrim(STR(nK))+'</NroLinRef>'+cCRLF
cXML+=' <TpoDocRef>'+aRef[nK,1]+'</TpoDocRef>'+cCRLF
cXML+=' <NumeroRef>'+aRef[nK,2]+'</NumeroRef>'+cCRLF
cXML+=' <FechaRef>'+aRef[nK,3]+'</FechaRef>'+cCRLF
cXML+=' <RazonRef>'+aRef[nK,5]+'</RazonRef>'+cCRLF
cXML+=' </Referencia>'+cCRLF
Next
RestArea(aArea)
Return cXML
Jira | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|