Á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.
MATA462ANGeneración de Remitos.
M486XFUNEQFunciones Genéricas de Facturación Electrónica de Ecuador.
LOCXFUNAFunciones generales de documentos fiscales.
MATV410AFunciones Genéricas para Pedidos de Venta.
FATGRECUScript de generación de los archivos XML para Guías de Remisión de Venta.
País:Ecuador
Ticket:NA
Requisito/Story/Issue (informe el requisito vinculado):DMINA-14730

...

Funciones Genéricas de Facturación Electrónica de Ecuador(M486XFUNEQ):

En la función encargada de  de la Generación de nombre para archivo .XML a enviar a Stupendo(M486NOMARC), se agrega el documento Guía de Remisión(especie "RFN") para generar el nombre del archivo XML.

Se crea una nueva función que Recupera la Información del Documento Sustento para Guía de Remisión(fgetDocEqu), la cual es utilizada en el Script de generación de los archivos XML para Guías de Remisión de Venta(FATGRECU.INI)

Se agrega una nueva función que Valida los campos del pedido requeridos en la generación del XML para guías de remisión(fVldEqu).

Funciones generales de documentos fiscales (LOCXFUNA):

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 Venta(FATGRECU.INI) por medio del parámetro MV_CFDFTGR para el país Ecuador. 

Generación de Remitos (MATA462AN) :

En la función que detona la Generación de remito(A462ANGera), se el ajuste para guardar los nuevos campos utilizados para la generación del XML de la Guía de remisión de la tabla SC5 - Pedidos a la tabla de SF2 - Documentos de salida para el país Ecuador.

Se agrega una nueva función que Obtiene datos de tabla Control de Formularios(M462GETSFP), la cual es utilizada para guardar la información en los campos Punto Emisión(F2_PTOEMIS) y Establecimiento(F2_ESTABL).

Funciones Genéricas para Pedidos de Venta(MATV410A) :

En la función que detona las validaciones de los campos para el pedido de venta(A410TudOk), se agrega el llamada de la nueva función fVldEqu para el país Ecuador.


FATGRECU.INI

A continuación se muestra el Script de generación de los archivos XML para Guías de Remisión de Venta(FATGRECU.INI):

Painel
titleBGColorlightblue
borderStyledashed
titleFATGRECU.INI

[XXX POSICIONAMENTOS]
(PRE) If(AllTrim(SF2->F2_ESPECIE)<>"NDI",SA1->(MSSeek(xFilial("SA1")+SF2->F2_CLIENTE+SF2->F2_LOJA)) , .T.)
(PRE) (AI0->(MSSeek(xFilial("AI0")+SF2->F2_CLIENTE+SF2->F2_LOJA)) , .T.)

[XXX INICIALIZACION]
(PRE) SD2->(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] := {"SD2",""}
(PRE) _aTotal[006] := M486NOMARC(SF2->F2_FILIAL, SF2->F2_DOC, SF2->F2_SERIE, SF2->F2_CLIENTE, SF2->F2_LOJA)
(PRE) _aTotal[007] := SuperGetMV("MV_CFDIAMB",.F.,"1")
(PRE) _aTotal[009] := TamSX3("F2_DOC")[1]
(PRE) _aTotal[012] := Iif(!Empty(SF2->F2_DOCMAN) .Or. !Empty(SF2->F2_SERMAN),fgetDocEqu(SF2->F2_FILIAL, SF2->F2_DOCMAN, SF2->F2_SERMAN,"NF"),"")
(PRE) lDocSust     := !Empty(_aTotal[012])
(PREREG) FsQuery(_aTotal[004],1,"D2_DOC='" + SF2->F2_DOC + "' AND D2_SERIE='" + SF2->F2_SERIE + "' AND D2_CLIENTE='" + SF2->F2_CLIENTE + "' AND D2_LOJA='" + SF2->F2_LOJA + "'","SD2->D2_DOC=SF2->F2_DOC .AND. SD2->D2_SERIE=SF2->F2_SERIE .AND. SD2->D2_CLIENTE=SF2->F2_CLIENTE .AND. SD2->D2_LOJA=SF2->F2_LOJA","D2_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(SF2->F2_ESTABL) + '</estab>' + _aTotal[002],.T.)
(PREREG) (_aTotal[001] += '        <ptoEmi>' + Alltrim(SF2->F2_PTOEMIS) + '</ptoEmi>' + _aTotal[002],.T.)
(PREREG) (_aTotal[001] += '        <secuencial>' + Alltrim(Substr(SF2->F2_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")+SF2->F2_TRANSP)) , .T.)
(PREREG) (DA3->(MSSeek(xFilial("DA3")+SF2->F2_VEICULO)) , .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(SF2->F2_FECDSE) + '</fechaIniTransporte >' + _aTotal[002],.T.)
(PREREG) (_aTotal[001] += '        <fechaFinTransporte>' + cValtoChar(SF2->F2_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(SF2->F2_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(SF2->F2_RUTDOC)),'                <ruta>' + Alltrim(SF2->F2_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])

[SD2 DETALLE]
(PREREG) (SB1->(MSSeek(xFilial("SB1") + SD2->D2_COD)),.T.)
(PREREG) (_aTotal[001] := '                   <detalle>'+ _aTotal[002],.T.)
(PREREG) (_aTotal[001] += '                        <codigoInterno>' + Alltrim(SD2->D2_COD) + '</codigoInterno>' + _aTotal[002],.T.)
(PREREG) (_aTotal[001] += '                        <codigoAdicional>' + Alltrim(SD2->D2_COD) + '</codigoAdicional>' + _aTotal[002],.T.)
(PREREG) (_aTotal[001] += '                        <descripcion>' + Alltrim(SB1->B1_DESC) + '</descripcion>' + _aTotal[002],.T.)
(PREREG) (_aTotal[001] += '                        <cantidad>' + Alltrim(TRANSFORM(SD2->D2_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]


Totvs custom tabs box
tabsPaso 01, Paso 02, Paso 03, Paso 04
idspaso1,paso2
Totvs custom tabs box items
defaultyes
referenciapaso1

Totvs custom tabs box items
defaultno
referenciapaso2

...