Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Producto

Solucoes_espanhol
SolucaoTOTVS Backoffice

Línea de producto: 

Linhas_totvs_espanhol
LinhaLínea Protheus

Segmento:

Segmentos_totvs_espanhol
SegmentoBackoffice

Módulo:SIGAFAT - Facturación
Función:
RutinaNombreFecha
MATA486Documentos Electrónicos.1819/0304/2022
LOCXNFNotas Fiscales.18/0304/2022
LOCXEQUFunciones Genéricas para documentos fiscales para Ecuador.18/0304/2022
M486XFUNEQFunciones Genéricas de Facturación Electrónica de Ecuador.18/0304/2022
LOCXFUNAFunciones generales de documentos fiscales.18/0304/2022
LOCXNF2Funciones Genéricas para Documentos fiscales.18/0304/2022
FATGRECU.INIScript de generación de los archivos XML para Guías de Remisión de Venta.30/03/2022
FATGDECU.INIScript de generación de los archivos XML para Guías de Remisión de Devolución.1819/0304/2022
País:Ecuador (Pacote ATUSX: 010341)
Ticket:12744531
Requisito/Story/Issue (informe el requisito vinculado):DMINA-14415

...

Se habilita para el país Ecuador el filtrado para los tipos de documento de tipo Guía de Remisión Normal (RFN), Guía de Remisión de Transferencia (RTS) y Remisión de Devolución (RFD).

En la función encargada de Obtener información de los documentos (M486GETTSS), se habilita los tipos de documento Guía de Remisión Normal (RFN), Guía de Remisión de Transferencia (RTS) y Remisión de Devolución (RFD) al momento de consultar el estado de un documento mediante la opción "Monitor".

Se realizan ajustes en la función encargada de Obtener los documentos dentro del rango informado por el usuario (M486VLDDOC), para obtener correctamente los documentos de tipo Guía de Remisión Normal (RFN) y Guía de Remisión de Transferencia (RTS) para el país Ecuador.

...

En la función  que Detona la generación del archivo XML para documento electrónicos (CFDGerXml), se habilita el uso del Script de generación de los archivos XML para Guías de Remisión de Devolución (FATGDECU.INI) utilizando el parámetro MV_CFDFTGD para obtener la ruta de la estructura que tendrá el XML para el país Ecuador. 

Se realiza el ajuste para habilitar el uso del Script de generación de los archivos XML para Guías de Remisión de Venta (FATGRECU.INI) utilizando el parámetro MV_CFDFTGR para obtener la ruta de la estructura que tendrá el XML para el documento Guía de Remisión de Transferencia (especie "RTS").

...

En la función que Monta el browse para los documentos fiscales (LocxDlgNF), se agrega el tipo de documento Remisión de Devolución (tipo documento 51) para agregar los nuevos campos (tabla Documentos de Entrada - SF1) utilizados en la trasmisión de Guías de Remisión.

...

En la función para obtener datos adicionales para documentos a partir de campos Num. de Doc. (DOC) y SERIE (LxExAdic), se realiza ajuste para agregar los tipos de documento Guía de Remisión de Transferencia (especie "RTS"), Remisión de Devolución (especie "RFD") y Guía de Remisión Normal (especie "RFN") para obtener el Punto de Emisión (FP_PTOEMIS) y el Establecimiento (FP_ESTABL) informados en la tabla Control de Formularios - SFP

...

En la función utilizada para agregar campos al encabezado de Notas Fiscales para el país Ecuador (LxCposEqu), se realiza ajuste para agregar los campos necesarios para la trasmisión electrónica de guías de remisión para los tipos de documento Guía de Remisión de Transferencia (especie "RTS"), Remisión de Devolución (especie "RFD") y Guía de Remisión Normal (especie "RFN").

...

Painel
titleBGColorlightblue
borderStyledashed
titleFATGDECU.INI

[XXX POSICIONAMENTOS]
(PRE) If(AllTrim(SF1->F1_ESPECIE) <> "NDI", SA1->(MSSeek(xFilial("SA1") + SF1->F1_FORNECE + SF1->F1_LOJA)) , .T.)
(PRE) (AI0->(MSSeek(xFilial("AI0") + SF1->F1_FORNECE + SF1->F1_LOJA)) , .T.)

[XXX INICIALIZACION]
(PRE) SD1->(DbSetOrder(1))
(PRE) SB1->(DbSetOrder(1))
(PRE) SYA->(DbSetOrder(1))
(PRE) SC6->(DbSetOrder(1))
(PRE) SE4->(DbSetOrder(1)) 
(PRE) CTO->(DbSetOrder(1)) 
(PRE) SAH->(DbSetOrder(1))
(PRE) SA1->(DbSetOrder(1))
(PRE) DA3->(DbSetOrder(1))
(PRE) SA4->(DbSetOrder(1))

(PRE) _aTotal[002] := chr(13) + chr(10)
(PRE) _aTotal[003] := "99999999999999.99"
(PRE) _aTotal[004] := {"SD1",""}
(PRE) _aTotal[006] := M486NOMARC(SF1->F1_FILIAL, SF1->F1_DOC, SF1->F1_SERIE, SF1->F1_FORNECE, SF1->F1_LOJA)
(PRE) _aTotal[007] := SuperGetMV("MV_CFDIAMB",.F.,"1")
(PRE) _aTotal[009] := TamSX3("F1_DOC")[1]
(PRE) _aTotal[012] := Iif(!Empty(SF1->F1_DOCMAN) .Or. !Empty(SF1->F1_SERMAN),fgetDocEqu(SF1->F1_FILIAL, SF1->F1_DOCMAN, SF1->F1_SERMAN,"NF"),"")
(PRE) lDocSust     := !Empty(_aTotal[012])
(PREREG) FsQuery(_aTotal[004],1,"D1_DOC='" + SF1->F1_DOC + "' AND D1_SERIE='" + SF1->F1_SERIE + "' AND D1_FORNECE='" + SF1->F1_FORNECE + "' AND D1_LOJA='" + SF1->F1_LOJA + "'","SD1->D1_DOC=SF1->F1_DOC .AND. SD1->D1_SERIE=SF1->F1_SERIE .AND. SD1->D1_FORNECE=SF1->F1_FORNECE .AND. SD1->D1_LOJA=SF1->F1_LOJA","D1_ITEM") .And. .T.

[XXX EMISOR]
(PREREG) (_aTotal[001] := '<?xml version="1.0" encoding="UTF-8" ?>' + _aTotal[002],.T.) 
(PREREG) (_aTotal[001] += '<guiaRemision id="comprobante" version="1.0.0">' + _aTotal[002],.T.) 
(PREREG) (_aTotal[001] += '    <infoTributaria>' + _aTotal[002],.T.)
(PREREG) (_aTotal[001] += '        <ambiente>' + _aTotal[007] + '</ambiente>' + _aTotal[002],.T.)
(PREREG) (_aTotal[001] += '        <tipoEmision>' + "1" + '</tipoEmision>' + _aTotal[002],.T.)
(PREREG) (_aTotal[001] += '        <razonSocial>' + Alltrim(SM0->M0_NOMECOM) + '</razonSocial>' + _aTotal[002],.T.)
(PREREG) (_aTotal[001] += IIF(_aTotal[018],'        <nombreComercial>' + Alltrim(SM0->M0_NOME) + '</nombreComercial>'+ _aTotal[002],"") ,.T.)
(PREREG) (_aTotal[001] += '        <ruc>' + Alltrim(SM0->M0_CGC) + '</ruc>' + _aTotal[002],.T.) 
(PREREG) (_aTotal[001] += '        <codDoc>06</codDoc>' + _aTotal[002],.T.) 
(PREREG) (_aTotal[001] += '        <estab>' + Alltrim(SF1->F1_ESTABL) + '</estab>' + _aTotal[002],.T.)
(PREREG) (_aTotal[001] += '        <ptoEmi>' + Alltrim(SF1->F1_PTOEMIS) + '</ptoEmi>' + _aTotal[002],.T.)
(PREREG) (_aTotal[001] += '        <secuencial>' + Alltrim(Substr(SF1->F1_DOC,(_aTotal[009]-8),9)) + '</secuencial>' + _aTotal[002],.T.)
(PREREG) (_aTotal[001] += '        <dirMatriz>' + Alltrim(SM0->M0_ENDENT) + " " + Alltrim(SM0->M0_COMPENT) + '</dirMatriz>' + _aTotal[002],.T.)
(PREREG) (_aTotal[001] += '    </infoTributaria>',.T.)
(PREREG) ENCODEUTF8(_aTotal[001])

[XXX RECEPTOR]
(PREREG) (SA4->(MSSeek(xFilial("SA4")+SF1->F1_TRANSP)) , .T.)
(PREREG) (DA3->(MSSeek(xFilial("DA3")+SF1->F1_VEICUL1)) , .T.)
(PREREG) (_aTotal[001] := '    <infoGuiaRemision>' + _aTotal[002],.T.)
(PREREG) (_aTotal[001] += '        <dirEstablecimiento>' + Alltrim(SA1->A1_END) + '</dirEstablecimiento>' + _aTotal[002],.T.)
(PREREG) (_aTotal[001] += '        <dirPartida>' + Alltrim(SA1->A1_END) + '</dirPartida>' + _aTotal[002],.T.)
(PREREG) (_aTotal[001] += '        <razonSocialTransportista>' + Alltrim(SA4->A4_NOME) + '</razonSocialTransportista>' + _aTotal[002],.T.)
(PREREG) (_aTotal[001] += '        <tipoIdentificacionTransportista>' + Alltrim(SA4->A4_TIPOTRA) + '</tipoIdentificacionTransportista>' + _aTotal[002],.T.)
(PREREG) (_aTotal[001] += '        <rucTransportista>' + Alltrim(SA4->A4_CGC) + '</rucTransportista>' + _aTotal[002],.T.)
(PREREG) (IIf (!Empty(_aTotal[008]), _aTotal[001] += '        <contribuyenteEspecial>' + Alltrim(_aTotal[008]) + '</contribuyenteEspecial>' + _aTotal[002], ""),.T.)
(PREREG) (_aTotal[001] += '        <obligadoContabilidad>SI</obligadoContabilidad >' + _aTotal[002],.T.) 
(PREREG) (_aTotal[001] += '        <fechaIniTransporte>' + cValtoChar(SF1->F1_FECDSE) + '</fechaIniTransporte >' + _aTotal[002],.T.)
(PREREG) (_aTotal[001] += '        <fechaFinTransporte>' + cValtoChar(SF1->F1_FECANTF) + '</fechaFinTransporte>' + _aTotal[002],.T.)
(PREREG) (_aTotal[001] += '        <placa>' + Alltrim(DA3->DA3_PLACA) + '</placa>' + _aTotal[002],.T.)
(PREREG) (_aTotal[001] += '    </infoGuiaRemision>' + _aTotal[002],.T.)
(PREREG) (_aTotal[001] += '    <destinatarios>',.T.)
(PREREG) ENCODEUTF8(_aTotal[001])

[XXX DESTINATARIO]
(PRE) lDocSust         := !Empty(_aTotal[012])
(PREREG) (_aTotal[001] := '         <destinatario>' + _aTotal[002],.T.)
(PREREG) (_aTotal[001] += '                <identificacionDestinatario>' + Alltrim(SA1->A1_CGC) + '</identificacionDestinatario>' + _aTotal[002],.T.)
(PREREG) (_aTotal[001] += '                <razonSocialDestinatario>' + Alltrim(SA1->A1_NOME) + '</razonSocialDestinatario>' + _aTotal[002],.T.)
(PREREG) (_aTotal[001] += '                <dirDestinatario>' + Alltrim(SA1->A1_ENDENT) + '</dirDestinatario>' + _aTotal[002],.T.)
(PREREG) (_aTotal[001] += '                <motivoTraslado>' + Alltrim(SF1->F1_OBS) + '</motivoTraslado>' + _aTotal[002],.T.)
(PREREG) (_aTotal[001] += Iif(!Empty(SA1->A1_CODLOC),'                <codEstabDestino>'+SA1->A1_CODLOC + '</codEstabDestino>' + _aTotal[002],""),.T.)
(PREREG) (_aTotal[001] += Iif(!Empty(Alltrim(SF1->F1_RUTDOC)),'                <ruta>' + Alltrim(SF1->F1_RUTDOC) + '</ruta>' + _aTotal[002],""),.T.)
(PREREG) (_aTotal[001] += Iif(lDocSust,'                <codDocSustento>01</codDocSustento>' + _aTotal[002],""),.T.)
(PREREG) (_aTotal[001] += Iif(lDocSust,'                <numDocSustento>' + Alltrim(_aTotal[012][3])+"-"+ Alltrim(_aTotal[012][2])+"-" + IIf(Len(Alltrim(_aTotal[012][1])) > 9, Alltrim(Substr(_aTotal[012][1],(_aTotal[009]-8),9)), Alltrim(_aTotal[012][1])) + '</numDocSustento>' + _aTotal[002],""),.T.)
(PREREG) (_aTotal[001] += Iif(lDocSust .And. !Empty(_aTotal[012][4]) ,'                <numAutDocSustento>' + _aTotal[012][4] + '</numAutDocSustento>' + _aTotal[002],""),.T.)
(PREREG) (_aTotal[001] += Iif(lDocSust,'                <fechaEmisionDocSustento>' + _aTotal[012][5] + '</fechaEmisionDocSustento>' + _aTotal[002],""),.T.)
(PREREG) (_aTotal[001] += '               <detalles>'+ _aTotal[002],.T.)
(PREREG) ENCODEUTF8(_aTotal[001])

[SD1 DETALLE]
(PREREG) (SB1->(MSSeek(xFilial("SB1") + SD1->D1_COD)),.T.)
(PREREG) (_aTotal[001] := '                   <detalle>'+ _aTotal[002],.T.)
(PREREG) (_aTotal[001] += '                        <codigoInterno>' + Alltrim(SD1->D1_COD) + '</codigoInterno>' + _aTotal[002],.T.)
(PREREG) (_aTotal[001] += '                        <codigoAdicional>' + Alltrim(SD1->D1_COD) + '</codigoAdicional>' + _aTotal[002],.T.)
(PREREG) (_aTotal[001] += '                        <descripcion>' + Alltrim(SB1->B1_DESC) + '</descripcion>' + _aTotal[002],.T.)
(PREREG) (_aTotal[001] += '                        <cantidad>' + Alltrim(TRANSFORM(SD1->D1_QUANT,_aTotal[003])) + '</cantidad>' + _aTotal[002],.T.)
(PREREG) (_aTotal[001] += '                </detalle>'+ _aTotal[002],.T.)
(PREREG) ENCODEUTF8(_aTotal[001])

[XXX INFOADICIONAL]
(PREREG) (_aTotal[001] := '            </detalles>'+ _aTotal[002],.T.)
(PREREG) (_aTotal[001] += '         </destinatario>' + _aTotal[002],.T.)
(PREREG) (_aTotal[001] += '    </destinatarios>' + _aTotal[002],.T.)
(PREREG) (_aTotal[001] += '    <infoAdicional>' + _aTotal[002],.T.)
(PREREG) (_aTotal[001] += '        <campoAdicional nombre="Email">' + Alltrim(SA1->A1_EMAIL) + '</campoAdicional>' + _aTotal[002],.T.)
(PREREG) (_aTotal[001] += '        <campoAdicional nombre="TELEFONO">' + Alltrim(SA1->A1_TEL) + '</campoAdicional>' + _aTotal[002],.T.)
(PREREG) (_aTotal[001] += '    </infoAdicional>' + _aTotal[002],.T.)
(PREREG) (_aTotal[001] += ' </guiaRemision>' + _aTotal[002],.T.)
(PREREG) ENCODEUTF8(_aTotal[001])
(POS) FsQuery(_aTotal[004],2)

[XXX FACTURA]
(PRE) _aTotal[094] := _aTotal[006] + ".XML"

(ARQ) _aTotal[094]


...

Configurar los siguientes campos en la tabla SF1 - Encabezado de Fact. de Salida:

AtributoContenido
CampoF1_SERMAN
TipoC - Caracter
Tamaño3
Decimal0
Formato@!
ContextoReal
PropiedadModificar
Grupo de Campos094 - Id de Control dos doc.fiscales
Tit. EspañolSerie Sust.
Desc. EspañolSerie del Doc. Sustento
ObligatorioNo
UsadoNo
Exhibe en BrowseNo
Consulta EstándarDOCSUS
Help

Indica la Serie del Documento Sustento. Al informarse este campo será generado en automático los nodos en el XML:

-codDocSustento

-numDocSustento

-numAutDocSustento

-fechaEmisionDocSustento

AtributoContenido
CampoF1_DOCMAN
TipoC - Caracter
Tamaño13
Decimal0
Formato@!
ContextoReal
Grupo de campos018 - Documento de entrada/salida
PropiedadModificar
Tit. EspañolNo. Doc Sust
Desc. EspañolNo. de Doc. Sustento
ObligatorioNo
UsadoSi
Exhibe en BrowseNo
Help

Indica la Número del Documento Sustento. Al informarse este campo será generado en automático los nodos en el XML:

-codDocSustento

-numDocSustento

-numAutDocSustento

-fechaEmisionDocSustento

...

Documento Técnico de Facturación Electrónica para Ecuador

Documento Técnico de Guías de Remisión con Proveedor Tecnológico STUPENDO para Ecuador


Templatedocumentos