Árvore de páginas

Versões comparadas

Chave

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


ÍNDICE

  1. Visión general
  2. Ejemplo de utilización
  3. Pantalla XXX
    1. Otras acciones / Acciones relacionadas
    Pantalla XXX
    de Configuración
  4. Pantalla de Validación de Proceso
  5. Principales campos y controlesDiccionario de Datos
  6. Tablas


01. VISIÓN GENERAL

Dar cumplimiento al artículo 36 del REGLAMENTO PARA APLICACIÓN LEY DE RÉGIMEN TRIBUTARIO INTERNO de Ecuador.

Art. 36.- Reembolso de gastos en el país.- No estarán sujetos a retención en la fuente los
reembolsos de gastos, cuando los comprobantes de venta sean emitidos a nombre del
intermediario, es decir, de la persona a favor de quien se hacen dichos reembolsos y
cumplan los requisitos establecidos en el Reglamento de Comprobantes de Venta y de
Retención. En el caso de gastos que no requieran de comprobantes de venta, los mismos
serán justificados con los documentos que corresponda, sin perjuicio de la excepción
establecida en este reglamento.

Los intermediarios efectuarán la respectiva retención en la fuente del impuesto a la renta
y del IVA cuando corresponda.

Para los intermediarios, los gastos efectuados para reembolso no constituyen gastos propios ni el reembolso constituye ingreso propio; para el reembolsante el gasto es
deducible y el IVA pagado constituye crédito tributario.

Para obtener el reembolso el intermediario deberá emitir una factura por el reembolso de
gastos, en la cual se detallarán los comprobantes de venta motivo del reembolso, con la
especificación del RUC del emisor, número de la factura, valor neto e IVA y además se
adjuntarán los originales de tales comprobantes. Esta factura por el reembolso no dará
lugar a retenciones de renta ni de IVA. En el caso de que el intermediario del reembolso
sea un empleado en relación de dependencia del reembolsante, éste podrá emitir una la
liquidación de compra de bienes y prestación de servicios en sustitución de la factura por
el reembolso.

El pago por reembolso de gastos deberá estar sustentado en comprobantes de venta que
cumplan con los requisitos previstos en el Reglamento de Comprobantes de Venta y
Retención.


PROCEDIMIENTO DE IMPLANTACIÓN

  1. Se recomienda respaldar el repositorio de objetos (RPO) antes de aplicar el paquete de actualización (patch).
  2. Aplique el patch del issue, el cual contienen las siguientes rutinas:
    • MATA488.PRW
    • LOCXNF.PRW
    • LOCXEQU.PRW
    • M486XFUNEQ.PRW
    • GERXMLA1.PRW

  3. Revisar la configuración de Campos y Catálogos necesarios para transmisión electrónica: DMINA-4085_Facturación_Electrónica_ECU
  4. Configurar los campos indicados en la sección 05. Diccionario de Datos.
  5. Actualizar el archivo de configuración FATSECU.INI 
  6. Actualizar el archivo de configuración EQUATF.INI 



02. EJEMPLO DE UTILIZACIÓN

Configuraciones Previas:


Actualizar Modificar el archivo FATSECU.INI con los siguientes actualizaciones (Indicadas en color azul)

Nota
titleActualizar FATSECU.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) _aTotal[016] := IIf(SF2->(ColumnPos("F2_TPVENT"))==0,.F.,SF2->F2_TPVENT == '1')
(PRE) _aTotal[002] := chr(13) + chr(10)
(PRE) _aTotal[003] := "99999999999999.99"
(PRE) _aTotal[004] := {"SD2",""}
(PRE) _aTotal[005] := IIf(Alltrim(SF2->F2_ESPECIE)=="NF",IIf(_aTotal[016],"liquidacionCompra","factura"),"notaDebito")
(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[008] := GetTaxasEq(SF2->F2_DOC, SF2->F2_SERIE, SF2->F2_CLIENTE, SF2->F2_LOJA,,_aTotal[016])
(PRE) _aTotal[009] := TamSX3("F2_DOC")[1]
(PRE) _aTotal[010] := ""
(PRE) _aTotal[011] := IIf(Alltrim(SF2->F2_ESPECIE)=="NF",IIf(_aTotal[016],"LiquidacionCompra","Factura"),"NotaDebito")
(PRE) _aTotal[012] := IIf(Alltrim(SF2->F2_ESPECIE)=="NDC", fObtDocRef(SF2->F2_FILIAL, SF2->F2_NFREF, SF2->F2_SERREF, SF2->F2_CLIENTE, SF2->F2_LOJA), "")
(PRE) _aTotal[013] := IIf(Alltrim(SF2->F2_ESPECIE)=="NF","importeTotal","valorTotal")
(PRE) _aTotal[014] := IIf(Alltrim(SF2->F2_ESPECIE)=="NF",'standalone="yes"',"")
(PRE) _aTotal[015] := IIf(Alltrim(SF2->F2_ESPECIE)=="NF",IIf(_aTotal[016],"1.1.0","2.1.0"),"1.0.0")
(PRE) _aTotal[017] := IIf(_aTotal[016],"Proveedor","Comprador")

(PRE) _aTotal[019] := ""
(PRE)   _aTotal[020]   :=  IIfIIf(SF2->(ColumnPos("F2_TPDOC"))==0 .ANDOR. SF2->(ColumnPos("F2_TPVENT"))==0 .ANDOR.  SF2SF2->(ColumnPos("F2_TIPOPE"))==0,.F.,.T.)
(PRE) _aTotal[021] := IIF( _aTotal[020], IIF(Alltrim(SF2->F2_TPDOC) =='01' .AND. Alltrim(SF2->F2_TPVENT) =='1' .AND. Alltrim(SF2->F2_TIPOPE) =='41',.T.,.F.),.F.)
(PRE) _aTotal[022] := IIF(_aTotal[021], obtTotReem(SF2->F2_DOC, SF2->F2_SERIE, SF2->F2_CLIENTE, SF2->F2_LOJA), {}) 
(PRE) _aTotal[023] := {"AQ0",""} 
(PRE) _aTotal[024] := {""}
(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[014] + '?>' + _aTotal[002],.T.)
(PREREG) (_aTotal[001] += '<' + _aTotal[005] + ' id="comprobante" version="' + _aTotal[015] + '">' + _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>' + IIf(Alltrim(SF2->F2_ESPECIE)=="NF", IIf(_aTotal[016],"03","01"),"05") + '</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) (SA1->(MSSeek(xFilial("SA1")+SF2->F2_CLIENTE+SF2->F2_LOJA)) , .T.)
(PREREG) (_aTotal[001] := '    <info' + _aTotal[011] + '>' + _aTotal[002],.T.)
(PREREG) (_aTotal[001] += '        <fechaEmision>' + cValtoChar( SF2->F2_EMISSAO ) + '</fechaEmision>' + _aTotal[002],.T.)
(PREREG) (_aTotal[001] += '        <tipoIdentificacion' + _aTotal[017] + '>' + Alltrim(SA1->A1_TIPDOC) + '</tipoIdentificacion' + _aTotal[017] + '>' + _aTotal[002],.T.)
(PREREG) (_aTotal[001] += '        <razonSocial' + _aTotal[017] + '>' + Alltrim(SA1->A1_NOME) + '</razonSocial' + _aTotal[017] + '>' + _aTotal[002],.T.)
(PREREG) (_aTotal[001] += '        <identificacion' + _aTotal[017] + '>' + Alltrim(SA1->A1_CGC) + '</identificacion' + _aTotal[017] + '>' + _aTotal[002],.T.)
(PREREG) (_aTotal[001] += IIf(Alltrim(SF2->F2_ESPECIE) == "NDC", '        <codDocModificado>' + _aTotal[012][1] + '</codDocModificado>' + _aTotal[002], ""),.T.)
(PREREG) (_aTotal[001] += IIf(Alltrim(SF2->F2_ESPECIE) == "NDC", '        <numDocModificado>' + _aTotal[012][2] + "-" + _aTotal[012][3] + "-" + _aTotal[012][4] + '</numDocModificado>' + _aTotal[002], ""),.T.)
(PREREG) (_aTotal[001] += IIf(Alltrim(SF2->F2_ESPECIE) == "NDC", '        <fechaEmisionDocSustento>' + _aTotal[012][5] + '</fechaEmisionDocSustento>' + _aTotal[002], ""),.T.)
(PREREG) (_aTotal[001] += IIf(Alltrim(SF2->F2_ESPECIE) == "NF", '        <direccion' + _aTotal[017] + '>' + Alltrim(SA1->A1_END) + '</direccion' + _aTotal[017] + '>' + _aTotal[002], ""),.T.)
(PREREG) (_aTotal[001] += '        <totalSinImpuestos>' + Alltrim(TRANSFORM(SF2->F2_VALMERC - _aTotal[008][2],_aTotal[003])) + '</totalSinImpuestos>' + _aTotal[002],.T.)
(PREREG) (_aTotal[001] += IIf(Alltrim(SF2->F2_ESPECIE) == "NF", '        <totalDescuento>' + Alltrim(TRANSFORM(SF2->F2_DESCONT,_aTotal[003])) + '</totalDescuento>' + _aTotal[002], ""),.T.)

(PREREG) (_aTotal[001] += IIF(_aTotal[016],'        <codDocReembolso>' + IIF(_aTotal[021],ALLTRIM(SF2->F2_TIPOPE), '00' ) + '</codDocReembolso>' + _aTotal[002] ,"") , .T.)
(PREREG) (_aTotal[001] += IIf(Alltrim(SF2->F2_ESPECIE) == "NF" .AND. _aTotal[021],'        <totalComprobantesReembolso>' + IIF(Len(_aTotal[022]) > 0, Alltrim(TRANSFORM(_aTotal[022][1][1],_aTotal[003])), '0' ) + '</totalComprobantesReembolso>' + _aTotal[002] ,"") , .T.)
(PREREG) (_aTotal[001] += IIf(Alltrim(SF2->F2_ESPECIE) == "NF" .AND. _aTotal[021],'        <totalBaseImponibleReembolso>' + IIF(Len(_aTotal[022]) > 0, Alltrim(TRANSFORM(_aTotal[022][1][2],_aTotal[003])), '0') +'</totalBaseImponibleReembolso>' + _aTotal[002] ,"") , .T.)
(PREREG) (_aTotal[001] += IIf(Alltrim(SF2->F2_ESPECIE) == "NF" .AND. _aTotal[021],'        <totalImpuestoReembolso>' + IIF(Len(_aTotal[022]) > 0, Alltrim(TRANSFORM(_aTotal[022][1][3],_aTotal[003])),'0') + '</totalImpuestoReembolso>' + _aTotal[002] ,"") , .T.)
(PREREG) (_aTotal[001] += _aTotal[008][1],.T.)
(PREREG) (_aTotal[001] += IIf(Alltrim(SF2->F2_ESPECIE) == "NF" .And. !_aTotal[016], '        <propina>0.00</propina>' + _aTotal[002], ""),.T.)
(PREREG) (_aTotal[001] += '        <' + Alltrim(_aTotal[013]) + '>' + Alltrim(TRANSFORM(SF2->F2_VALBRUT,_aTotal[003])) + '</' + Alltrim(_aTotal[013]) + '>' + _aTotal[002],.T.)
(PREREG) (_aTotal[001] += '        <pagos>' + _aTotal[002],.T.)
(PREREG) (_aTotal[001] += '            <pago>' + _aTotal[002],.T.) 
(PREREG) (_aTotal[001] += '                <formaPago>' + Alltrim(AI0->AI0_MPAGO) + '</formaPago>' + _aTotal[002],.T.)
(PREREG) (_aTotal[001] += '                <total>' + Alltrim(TRANSFORM(SF2->F2_VALBRUT,_aTotal[003])) + '</total>' + _aTotal[002],.T.)
(PREREG) (_aTotal[001] += IIF(_aTotal[016],'                <plazo>' + Alltrim(TRANSFORM(SF2->F2_VALBRUT,_aTotal[003])) + '</plazo>' + _aTotal[002],""),.T.)
(PREREG) (_aTotal[001] += '            </pago>' + _aTotal[002],.T.)
(PREREG) (_aTotal[001] += '        </pagos>' + _aTotal[002],.T.)
(PREREG) (_aTotal[001] += '    </info' + _aTotal[011] + '>' + _aTotal[002],.T.)
(PREREG) (_aTotal[001] += IIf(Alltrim(SF2->F2_ESPECIE) == "NF", '    <detalles>' + _aTotal[002], ""),.T.)
(PREREG) (_aTotal[001] += IIf(Alltrim(SF2->F2_ESPECIE) == "NDC", '    <motivos>'  + _aTotal[002], ""),.T.)
(PREREG) (_aTotal[001] += IIf(Alltrim(SF2->F2_ESPECIE) == "NDC", '        <motivo>' + _aTotal[002], ""),.T.)
(PREREG) (_aTotal[001] += IIf(Alltrim(SF2->F2_ESPECIE) == "NDC", '            <razon>' + Alltrim(SF2->F2_MOTIVO) + '</razon>' + _aTotal[002], ""),.T.)
(PREREG) (_aTotal[001] += IIf(Alltrim(SF2->F2_ESPECIE) == "NDC", '            <valor>' + Alltrim(TRANSFORM(SF2->F2_VALMERC - _aTotal[008][2],_aTotal[003])) + '</valor>' + _aTotal[002], ""),.T.)
(PREREG) (_aTotal[001] += IIf(Alltrim(SF2->F2_ESPECIE) == "NDC", '        </motivo>' + _aTotal[002], ""),.T.)
(PREREG) (_aTotal[001] += IIf(Alltrim(SF2->F2_ESPECIE) == "NDC", '    </motivos>' + _aTotal[002], ""),.T.)
(PREREG) ENCODEUTF8(_aTotal[001])

[SD2 INVOICE]
(PRE) DbGoTop()
(PREREG) (SB1->(DbSeek(xFilial("SB1") + SD2->D2_COD)),.T.)
(PREREG) (SAH->(DbSeek(xFilial("SAH") + SB1->B1_UM)),.T.)
(PREREG) _aTotal[010]  := TaxDetEcu(SD2->D2_DOC,SD2->D2_SERIE,SD2->D2_CLIENTE,SD2->D2_LOJA,SD2->D2_TES,AllTrim(SF2->F2_ESPECIE),SD2->D2_COD)
(PREREG) (_aTotal[001] := IIf(Alltrim(SF2->F2_ESPECIE) == "NF", '        <detalle>' + _aTotal[002], ""),.T.)
(PREREG) (_aTotal[001] += IIf(Alltrim(SF2->F2_ESPECIE) == "NF", '            <codigoPrincipal>' + Alltrim(SD2->D2_COD) + '</codigoPrincipal>' + _aTotal[002], ""),.T.)
(PREREG) (_aTotal[001] += IIf(Alltrim(SF2->F2_ESPECIE) == "NF", '            <descripcion>' + Alltrim(SB1->B1_DESC) + '</descripcion>' + _aTotal[002], ""),.T.)
(PREREG) (_aTotal[001] += IIf(Alltrim(SF2->F2_ESPECIE) == "NF", '            <cantidad>' + Alltrim(TRANSFORM(SD2->D2_QUANT,_aTotal[003])) + '</cantidad>' + _aTotal[002], ""),.T.)
(PREREG) (_aTotal[001] += IIf(Alltrim(SF2->F2_ESPECIE) == "NF", '            <precioUnitario>' + Alltrim(TRANSFORM(SD2->D2_PRCVEN - (_aTotal[010][2] / SD2->D2_QUANT),_aTotal[003])) + '</precioUnitario>' + _aTotal[002], ""),.T.)
(PREREG) (_aTotal[001] += IIf(Alltrim(SF2->F2_ESPECIE) == "NF", '            <descuento>' + Alltrim(TRANSFORM(SD2->D2_DESCON,_aTotal[003])) + '</descuento>' + _aTotal[002], ""),.T.)
(PREREG) (_aTotal[001] += IIf(Alltrim(SF2->F2_ESPECIE) == "NF", '            <precioTotalSinImpuesto>' + Alltrim(TRANSFORM(SD2->D2_TOTAL - SD2->D2_DESCON - _aTotal[010][2],_aTotal[003])) + '</precioTotalSinImpuesto>' + _aTotal[002], ""),.T.)
(PREREG) (_aTotal[001] += IIf(Alltrim(SF2->F2_ESPECIE) == "NF", '            <impuestos>' + _aTotal[002], ""),.T.)
(PREREG) (_aTotal[001] += IIf(Alltrim(SF2->F2_ESPECIE) == "NF", _aTotal[010][1], ""),.T.)
(PREREG) (_aTotal[001] += IIf(Alltrim(SF2->F2_ESPECIE) == "NF", '            </impuestos>' + _aTotal[002], ""),.T.)
(PREREG) (_aTotal[001] += IIf(Alltrim(SF2->F2_ESPECIE) == "NF", '        </detalle>' + _aTotal[002], ""),.T.)
(PREREG) IIf(Alltrim(SF2->F2_ESPECIE) == "NF",ENCODEUTF8(_aTotal[001]), "")

[XXX INVOICE REEMBOLSO]
(PREREG) _aTotal[021]
(PREREG)  FsQuery(_aTotal[023],1,"AQ0_DOC='" + SF2->F2_DOC + "' AND AQ0_SERIE='" + SF2->F2_SERIE + "' AND AQ0_CLIENT='" + SF2->F2_CLIENTE + "' AND AQ0_TIENDA='" + SF2->F2_LOJA + "'","AQ0->AQ0_DOC=SF2->F2_DOC .AND. AQ0->AQ0_SERIE=SF2->F2_SERIE .AND. AQ0->AQ0_CLIENT=SF2->F2_CLIENTE .AND. AQ0->AQ0_TIENDA=SF2->F2_LOJA","AQ0_ITEM") .And. .T.

[AQ0 INVOICE REEMBOLSO]
(PREREG) _aTotal[021]
(PREREG) _aTotal[024]  := IIF(Alltrim(SF2->F2_ESPECIE) == "NF" .AND. _aTotal[021], TaxDetEcu(AQ0->AQ0_DOC,AQ0->AQ0_SERIE,AQ0->AQ0_CLIENTE,AQ0->AQ0_TIENDA,AQ0->AQ0_TES,AllTrim(SF2->F2_ESPECIE),"",.F.,.T.),{""})
(PREREG) (_aTotal[019] += IIf(Alltrim(SF2->F2_ESPECIE) == "NF", '            <reembolsoDetalle>' + _aTotal[002], ""),.T.)
(PREREG) (_aTotal[019] += IIf(Alltrim(SF2->F2_ESPECIE) == "NF", '                <tipoIdentificacionProveedorReembolso>' + Alltrim(AQ0->AQ0_TIPDOC) + '</tipoIdentificacionProveedorReembolso>' + _aTotal[002], ""),.T.)
(PREREG) (_aTotal[019] += IIf(Alltrim(SF2->F2_ESPECIE) == "NF", '                <identificacionProveedorReembolso>' + Alltrim(AQ0->AQ0_CGC) + '</identificacionProveedorReembolso>' + _aTotal[002], ""),.T.)
(PREREG) (_aTotal[019] += IIf(Alltrim(SF2->F2_ESPECIE) == "NF", '                <codPaisPagoProveedorReembolso>' + Alltrim(AQ0->AQ0_PAIS) + '</codPaisPagoProveedorReembolso>' + _aTotal[002], ""),.T.)
(PREREG) (_aTotal[019] += IIf(Alltrim(SF2->F2_ESPECIE) == "NF", '                <tipoProveedorReembolso>' + Alltrim(AQ0->AQ0_TPPROV) + '</tipoProveedorReembolso>' + _aTotal[002], ""),.T.)
(PREREG) (_aTotal[019] += IIf(Alltrim(SF2->F2_ESPECIE) == "NF", '                <codDocReembolso>' + Alltrim(AQ0->AQ0_TPDOC) + '</codDocReembolso>' + _aTotal[002], ""),.T.)
(PREREG) (_aTotal[019] += IIf(Alltrim(SF2->F2_ESPECIE) == "NF", '                <estabDocReembolso>' + Alltrim(AQ0->AQ0_ESTABL) + '</estabDocReembolso>' + _aTotal[002], ""),.T.)
(PREREG) (_aTotal[019] += IIf(Alltrim(SF2->F2_ESPECIE) == "NF", '                <ptoEmiDocReembolso>' + Alltrim(AQ0->AQ0_PTOEMIS) + '</ptoEmiDocReembolso>' + _aTotal[002], ""),.T.)
(PREREG) (_aTotal[019] += IIf(Alltrim(SF2->F2_ESPECIE) == "NF", '                <secuencialDocReembolso>' + Alltrim(AQ0->AQ0_NUMDOC) + '</secuencialDocReembolso>' + _aTotal[002], ""),.T.)
(PREREG) (_aTotal[019] += IIf(Alltrim(SF2->F2_ESPECIE) == "NF", '                <fechaEmisionDocReembolso>' + cValtoChar( AQ0->AQ0_FECHA ) + '</fechaEmisionDocReembolso>' + _aTotal[002], ""),.T.)
(PREREG) (_aTotal[019] += IIf(Alltrim(SF2->F2_ESPECIE) == "NF", '                <numeroautorizacionDocReemb>' + Alltrim(AQ0->AQ0_AUTOR) + '</numeroautorizacionDocReemb>' + _aTotal[002], ""),.T.)
(PREREG) (_aTotal[019] += IIf(Alltrim(SF2->F2_ESPECIE) == "NF", '                    <detalleImpuestos>' + _aTotal[002], ""),.T.)
(PREREG) (_aTotal[019] += IIf(Alltrim(SF2->F2_ESPECIE) == "NF", _aTotal[024][1], ""),.T.)
(PREREG) (_aTotal[019] += IIf(Alltrim(SF2->F2_ESPECIE) == "NF", '                    </detalleImpuestos>'  + _aTotal[002], ""),.T.)
(PREREG) (_aTotal[019] += IIf(Alltrim(SF2->F2_ESPECIE) == "NF", '            </reembolsoDetalle>' + _aTotal[002], ""),.T.)
(POS) FsQuery(_aTotal[023],2)


[XXX INVOICE_FIN]
(PREREG) (_aTotal[001] := IIf(Alltrim(SF2->F2_ESPECIE) == "NF", '    </detalles>' + _aTotal[002], ""),.T.)
(PREREG) (_aTotal[001] += IIf(Alltrim(SF2->F2_ESPECIE) == "NF" .and. _aTotal[019]!="", '        <reembolsos>' + _aTotal[002],"" ),.T.)
(PREREG) (_aTotal[001] += IIf(Alltrim(SF2->F2_ESPECIE) == "NF" .and. _aTotal[019]!="", _aTotal[019], ""),.T.)
(PREREG) (_aTotal[001] += IIf(Alltrim(SF2->F2_ESPECIE) == "NF" .and. _aTotal[019]!="", '        </reembolsos>' + _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] += '</' +_aTotal[005] + '>',.T.)
(PREREG) _aTotal[001]
(POS) FsQuery(_aTotal[004],2)

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

(ARQ) _aTotal[094]



Actualizar Modificar el archivo EQUATF.INI con los siguientes actualizaciones (Indicadas en color azul)

...

Nota
titleActualizar EQUATF.INI

?{"Nombre del Archivo ININombre del Archivo INI","EQUATF.INI"}
?{"Descripcion Completa del Archivo MagneticoDescripcion Completa del Archivo Magnetico","Declaracion de Retencion del Impuesto de Renta - IRDeclaracion de Retencion del Impuesto de Renta - IR."}
?{"Comentarios",""}

@XML

[XXX Inicializacao variaveisXXX Inicializacao variaveis]
(PRE)   _aTotal[001]   :=  MVMV_PAR01                     PAR01
(PRE)   _aTotal[002]   :=  MVMV_PAR02
(PRE)   _aTotal[003]   :=   {}
(PRE)   _aTotal[004]   :=   {}
(PRE)   _aTotal[005]   :=   .F.
(PRE)   _aTotal[006]   :=   {}
(PRE)   _atotal[020]   :=  00
(PRE)   _aTotal[021]   :=  IIfIIf(SF2->(ColumnPos("F2_TPDOC"))==0 .OR.  SF2SF2->(ColumnPos("F2_TPVENT"))==0 .OR.  SF2SF2->(ColumnPos("F2_TIPOPE"))==0,.F.,.T.)
(PRE)   _aTotal[022]   :=   {}
(PRE)   _aTotal[023]   :=   {}
(PRE)   _aTotal[024]   :=  00
(PRE)   _aTotal[025]   :=   ""

[XXX Montagem do CFP Utilizado pela rotina - PRINCIPALXXX Montagem do CFP Utilizado pela rotina - PRINCIPAL]
(PRE)  aAdd aAdd (_aTotal[003],   "Formulario 103 - Declaracion de Retencion del Impuesto de Renta - IRFormulario 103 - Declaracion de Retencion del Impuesto de Renta - IR")
(PRE)  aAdd aAdd (_aTotal[003],   "")
(PRE)  aAdd aAdd (_aTotal[003],   "Rellene correctamente la informacion solicitadaRellene correctamente la informacion solicitada.")
(PRE)  aAdd aAdd (_aTotal[003],  "Informacion necesarias para el rellenado automatico del Formulario 103: Declaracion de Retencion del Impuesto de Renta - IR"Informacion necesarias para el rellenado automatico del Formulario 103: Declaracion de Retencion del Impuesto de Renta - IR.")

[XXX Montagem do CFP Utilizado pela rotina - COMPLEMENTARXXX Montagem do CFP Utilizado pela rotina - COMPLEMENTAR]
(PRE)  aAdd aAdd (_aTotal[004],   {})
(PRE)  aAdd aAdd (_aTotal[004][1],   "Formulario 103 - Declaracion de Retencion del impuesto de Renta - IRFormulario 103 - Declaracion de Retencion del impuesto de Renta - IR")
(PRE)  aAdd aAdd (_aTotal[004][1],   "Rellene correctamente la informacion solicitadaRellene correctamente la informacion solicitada.")
(PRE)  aAdd aAdd (_aTotal[004][1],   {})
(PRE)  aAdd aAdd (_aTotal[004][1][3],   {1,   "",,,,,,})
(PRE)  aAdd aAdd (_aTotal[004][1][3],   {0,   "",,,,,,})
(PRE)  aAdd aAdd (_aTotal[004][1][3],   {0,   "",,,,,,})
(PRE)  aAdd aAdd (_aTotal[004][1][3],   {0,   "",,,,,,})
(PRE)  aAdd aAdd (_aTotal[004][1][3],   {1,   "Tipo DeclaracionTipo Declaracion",,,,,,})
(PRE)  aAdd aAdd (_aTotal[004][1][3],   {1,   "Si fuera sustitutivaSi fuera sustitutiva:",,,,,,})
(PRE)  aAdd aAdd (_aTotal[004][1][3],   {3,,,,,{"O=Original",   "S=Sustitutiva"},,})
(PRE)  aAdd aAdd (_aTotal[004][1][3],   {0,   "",,,,,,})
(PRE)  aAdd aAdd (_aTotal[004][1][3],   {1,   "Version FormularioVersion Formulario",,,,,,})
(PRE)  aAdd aAdd (_aTotal[004][1][3],   {1,   "N� FormularioNº Formulario",,,,,,})
(PRE)  aAdd aAdd (_aTotal[004][1][3],   {2,,"@E 9@E 9.9",2,1,,,3})
(PRE)  aAdd aAdd (_aTotal[004][1][3],   {2,,"9999999999999",2,0,,,13})
(PRE)  aAdd aAdd (_aTotal[004][1][3],   {1,   "Cod.  Version FormVersion Form.",,,,,,})
(PRE)  aAdd aAdd (_aTotal[004][1][3],   {1,   "Impuesto PagadoImpuesto Pagado",,,,,,})
(PRE)  aAdd aAdd (_aTotal[004][1][3],   {2,,"9999999999",2,0,,,10})
(PRE)  aAdd aAdd (_aTotal[004][1][3],   {2,,"@E 999@E 999,999,999.99",2,2,,,14})
(PRE)  aAdd aAdd (_aTotal[004][1][3],   {1,   "ID Representante legalID Representante legal",,,,,,})
(PRE)  aAdd aAdd (_aTotal[004][1][3],   {1,   "Mora Mora /  InteressesInteresses",,,,,,})
(PRE)  aAdd aAdd (_aTotal[004][1][3],   {2,,"@E 9999999999999@E 9999999999999",2,0,,,13})
(PRE)  aAdd aAdd (_aTotal[004][1][3],   {2,,"@E 999@E 999,999,999.99",2,2,,,14})
(PRE)  aAdd aAdd (_aTotal[004][1][3],   {1,   "RUC ContadorRUC Contador",,,,,,})
(PRE)  aAdd aAdd (_aTotal[004][1][3],   {1,   "Multa Multa /  InteresesIntereses",,,,,,})
(PRE)  aAdd aAdd (_aTotal[004][1][3],   {2,,"@E 9999999999999@E 9999999999999",2,0,,,13})

[XXX Chamada do WizardXXX Chamada do Wizard]
(PRE)   _atotal[005]   :=  xMagWizard xMagWizard (_aTotal[003],   _atotal[04],   "EQUATF")
(PRE)  Iif Iif (_atotal[005],  xMagLeWiz xMagLeWiz ("EQUATF",  @@_atotal[06],   .T.),  NilNil)
(PRE)  lAbtMT950 lAbtMT950 :=   !_atotal[005]

[XXX - monta o Nome do arquivo] XXX - monta o Nome do arquivo]
(PRE)  mvmv_par04 par04 :=  AlltrimAlltrim(mv_par04)   +   "."
(PRE)  mvmv_par04 par04 :=  stuffstuff(mv_par04,rat(".",mv_par04),rat(".",mv_par04),".XML")
(PRE)   _aTotal[07]   :=  mvmv_par04
(PRE)   _aTotal[15]   :=   .F.
//(PRE)   _aTotal[16]   :=   .F.


[XXX HeaderXXX Header]
//(IMP)   {.T.,1,1,"IVA"}
//(CMP)   {{"NUMRUC","Contribuyente"},{"RAZSOC","Razon SocialRazon Social"},{"MES","Mes"},{"ANIO","Ano"}}
(PRE)   _aTotal[010]   :=   "version="+'"1.0"'+"  encodingencoding="+'"ISO-8859-1"'+"  standalonestandalone="+'"yes"'+"   ?"
(PRE)   _atotal[30]   :=  LFeqXMLanVLFeqXMLanV(DTOS(MV_PAR01),DTOS(MV_PAR02))  
Linha1     C 000 0 MontaXMLLinha1 C 000 0 MontaXML("?xml"                ,                         ,,,,,    ,.T.,.F.,.T.,_aTotal[010])
IVA        C 003 0 MontaXMLIVA C 003 0 MontaXML("iva"                 ,                         ,,,,,1 ,.T.,.F.,.T.)
TIdInf     C 015 0 MontaXMLTIdInf C 015 0 MontaXML("TipoIDInformante"    ,"R"                      ,,,,,4 ,.T.,.T.,.T.)
NUMRUC     C 015 0 MontaXMLNUMRUC C 015 0 MontaXML("IdInformante"        ,SM0->M0_CGC            CGC ,,,,,4 ,.T.,.T.,.T.)
RAZSOC     C 100 0 MontaXMLRAZSOC C 100 0 MontaXML("razonSocial"         ,SM0->M0_NOMECOM        NOMECOM ,,,,,4 ,.T.,.T.,.T.)
ANIO       C 004 0 MontaXMLANIO C 004 0 MontaXML("Anio"                ,substr(dTOs(MV_PAR01),1,4)   ,,,,,4 ,.T.,.T.,.T.)
MES        C 002 0 MontaXMLMES C 002 0 MontaXML("Mes"                 ,substr(dTOs(MV_PAR01),5,2)   ,,,,,4 ,.T.,.T.,.T.)
NUMESTRUC  C 015 0 MontaXMLNUMESTRUC C 015 0 MontaXML("numEstabRuc"         ,_atotal[30][2]           ,,,,,4 ,.T.,.T.,.T.)
TVentas    C 015 0 MontaXMLTVentas C 015 0 MontaXML("totalVentas"         ,STRTRAN(TRANSFORM(0 ,"@E 9999999999@E 9999999999.99"),',','.')    ,,,,,4 ,.T.,.T.,.T.)
CodOpera   C 015 0 MontaXMLCodOpera C 015 0 MontaXML("codigoOperativo"     ,"IVA"                    ,,,,,4 ,.T.,.T.,.T.)
Compras    C 000 0 MontaXMLCompras C 000 0 MontaXML("compras"             ,                         ,,,,,4 ,.T.,.F.,.T.)
(POS)

[XXX Extraindo Livro fiscal ComprasXXX Extraindo Livro fiscal Compras]
(PRE)   _atotal[31]   :=  LFeqXMLan1LFeqXMLan1(DTOS(MV_PAR01),DTOS(MV_PAR02)) 

[TRA Gera��o do XMLTRA Geração do XML]
//(IMP)   {.T.,1,1,"Compras"}
//(CMP)   {{"CODSUST","Sustento"},{"IDPROV","Ident."},{"TPCOMPROV","Tipo ComprTipo Compr."},{"ESTABL","Estab."},{"PONTOVEND","Punto VentaPunto Venta"},{"SEQUEN","Secu."}}
//,{"Autoriz","Autoriz"},{"BasNoGRiva","Base IVA 0%Base IVA 0%"},{"BasImponib","Base IVA Dif 0%Base IVA Dif 0%"},{"BasImpGrav","Base obj IVABase obj IVA"},{"ValIVA","Monto IVAMonto IVA"}}
(PRE)  TRATRA->(dbGoTop())
(PREREG)   _aTotal[024]   :=  IIFIIF(_aTotal[021],  IIFIIF(Alltrim(TRA->TPDOC)   =='01'   .AND.  AlltrimAlltrim(TRA->TPVENT)   =='1'   .AND.  AlltrimAlltrim(TRA->TIPOPE)   =='41',  11,0),0)
(PREREG)   _aTotal[012]   :=  RetIRRetIR(TRA->FILIAL,  TRATRA->CLIEFOR,  TRATRA->LOJA,  TRATRA->NFISCAL,  TRATRA->SERIE)
(PREREG)   _aTotal[022]   :=  IIFIIF(_aTotal[024]  > 0 > 0 ,  obtTotReemobtTotReem(TRA->NFISCAL,TRA->SERIE,  TRATRA->CLIEFOR,  TRATRA->LOJA),{})
(PREREG)   _aTotal[023]   :=  IIFIIF(_aTotal[024]  > 0 > 0 ,  ObtReem ObtReem (TRA->FILIAL,  TRATRA->NFISCAL,  TRATRA->SERIE,  TRATRA->CLIEFOR,  TRATRA->LOJA),{})
(PREREG)   _aTotal[025]   :=  IIfIIf(_aTotal[024]  > 0 > 0 .AND.  LENLEN(_aTotal[023])>0,_aTotal[023][1],   ""   )

DetCompr   C 000 0 MontaXMLDetCompr C 000 0 MontaXML("detalleCompras"      ,                         ,,,,,8 ,.T.,.F.,.T.)
CODSUST    C 002 0 MontaXMLCODSUST C 002 0 MontaXML("codSustento"         ,TRA->CDSUSTEN          >CDSUSTEN ,,,,,12,.T.,.T.,.T.)
TpIdProv   C 000 0 MontaXMLTpIdProv C 000 0 MontaXML("tpIdProv"            ,TRA->TPLDPROV          >TPLDPROV ,,,,,12,.T.,.T.,.T.)
IDPROV     C 013 0 MontaXMLIDPROV C 013 0 MontaXML("idProv"              ,TRA->IDPROV            >IDPROV ,,,,,12,.T.,.T.,.T.)
TPCOMPROV  C 002 0 MontaXMLTPCOMPROV C 002 0 MontaXML("tipoComprobante"     ,TRA->TPCOMPRO          >TPCOMPRO ,,,,,12,.T.,.T.,.T.)
PARRELC    C 002 0 MontaXMLPARRELC C 002 0 MontaXML("parteRel"            ,"NO"                     ,,,,,12,.T.,.T.,.T.)
dTReg      C 000 0 MontaXMLdTReg C 000 0 MontaXML("fechaRegistro"       ,DToC(TRA->DTFECH)        ,,,,,12,.T.,.T.,.T.)ESTABL     C 003 0 MontaXML

ESTABL C 003 0 MontaXML("establecimiento"     ,TRA->ESTABEL           >ESTABEL ,,,,,12,.T.,.T.,.T.)
PONTOVEND  C 003 0 MontaXMLPONTOVEND C 003 0 MontaXML("puntoEmision"        ,TRA->PTEMIS            >PTEMIS ,,,,,12,.T.,.T.,.T.)
SEQUEN     C 009 0 MontaXMLSEQUEN C 009 0 MontaXML("secuencial"          ,TRA->SEQUENC           >SEQUENC ,,,,,12,.T.,.T.,.T.)
DtEmis     C 000 0 MontaXMLDtEmis C 000 0 MontaXML("fechaEmision"        ,TRA->DTEMISS           >DTEMISS ,,,,,12,.T.,.T.,.T.)
Autoriz    C 000 0 MontaXMLAutoriz C 000 0 MontaXML("autorizacion"        ,TRA->AUTORIZ           >AUTORIZ ,,,,,12,.T.,.T.,.T.)
BasNoGRiva C 000 0 MontaXMLBasNoGRiva C 000 0 MontaXML("baseNoGraIva"        ,STRTRAN(TRANSFORM(TRA->BASNOGRV >BASNOGRV ,"@E 9999999999@E 9999999999.99"),',','.')   ,,,,,12,.T.,.T.,.T.)
BasImponib C 000 0 MontaXMLBasImponib C 000 0 MontaXML("baseImponible"       ,STRTRAN(TRANSFORM(TRA->BASIMPON >BASIMPON ,"@E 9999999999@E 9999999999.99"),',','.')   ,,,,,12,.T.,.T.,.T.)
BasImpGrav C 000 0 MontaXMLBasImpGrav C 000 0 MontaXML("baseImpGrav"         ,STRTRAN(TRANSFORM(TRA->BASIMPGR >BASIMPGR ,"@E 9999999999@E 9999999999.99"),',','.')   ,,,,,12,.T.,.T.,.T.)
BasImpEx   C 000 0 MontaXMLBasImpEx C 000 0 MontaXML("baseImpExe"          ,STRTRAN(TRANSFORM(_aTotal[012][5]   ,"@E 9999999999@E 9999999999.99"),',','.')   ,,,,,12,.T.,.T.,.T.)
ValICE     C 000 0 MontaXMLValICE C 000 0 MontaXML("montoIce"            ,STRTRAN(TRANSFORM(TRA->TOTALICE >TOTALICE ,"@E 9999999999@E 9999999999.99"),',','.')   ,,,,,12,.T.,.T.,.T.)
ValIVA     C 000 0 MontaXMLValIVA C 000 0 MontaXML("montoIva"            ,STRTRAN(TRANSFORM(TRA->TOTALIVA >TOTALIVA ,"@E 9999999999@E 9999999999.99"),',','.')   ,,,,,12,.T.,.T.,.T.)
ValRetB10  C 000 0 MontaXMLValRetB10 C 000 0 MontaXML("valRetBien10"        ,STRTRAN(TRANSFORM(_aTotal[012][2]   ,"@E 9999999999@E 9999999999.99"),',','.')   ,,,,,12,.T.,.T.,.T.)
ValRetS20  C 000 0 MontaXMLValRetS20 C 000 0 MontaXML("valRetServ20"        ,STRTRAN(TRANSFORM(_aTotal[012][3]   ,"@E 9999999999@E 9999999999.99"),',','.')   ,,,,,12,.T.,.T.,.T.)
ValIvaBens C 000 0 MontaXMLValIvaBens C 000 0 MontaXML("valorRetBienes"      ,STRTRAN(TRANSFORM(_aTotal[012][6]   ,"@E 9999999999@E 9999999999.99"),',','.')   ,,,,,12,.T.,.T.,.T.)
ValRetS20  C 000 0 MontaXMLValRetS20 C 000 0 MontaXML("valRetServ50"        ,STRTRAN(TRANSFORM(_aTotal[012][4],"@E 9999999999@E 9999999999.99"),',','.')   ,,,,,12,.T.,.T.,.T.)
ValIvaServ C 000 0 MontaXMLValIvaServ C 000 0 MontaXML("valorRetServicios"   ,STRTRAN(TRANSFORM(_aTotal[012][7]   ,"@E 9999999999@E 9999999999.99"),',','.')   ,,,,,12,.T.,.T.,.T.)
ValRet100  C 000 0 MontaXMLValRet100 C 000 0 MontaXML("valRetServ100"       ,STRTRAN(TRANSFORM(_aTotal[012][8],"@E 9999999999@E 9999999999.99"),',','.')   ,,,,,12,.T.,.T.,.T.)
ValReemb   C 000 0 MontaXMLValReemb C 000 0 MontaXML("totbasesImpReemb"    ,STRTRAN(TRANSFORM(IIF(LEN(_aTotal[022])>0,_aTotal[022][1][2],0 ),"@E 9999999999@E 9999999999.99"),',','.')   ,,,,,12,.T.,.T.,.T.)
PagExt     C 003 0 MontaXMLPagExt C 003 0 MontaXML("pagoExterior"        ,                         ,,,,,12 12 ,.T.,.F.,.T.)
PagoLocE   C 002 0 MontaXMLPagoLocE C 002 0 MontaXML("pagoLocExt"          ,"01"                     ,,,,,16,.T.,.T.,.T.)
EPagoGen   C 002 0 MontaXMLEPagoGen C 002 0 MontaXML("paisEfecPago"        ,"NA"                     ,,,,,16,.T.,.T.,.T.)
Convenio   C 002 0 MontaXMLConvenio C 002 0 MontaXML("aplicConvDobTrib"    ,"NA"                     ,,,,,16,.T.,.T.,.T.)
EPagoPar   C 002 0 MontaXMLEPagoPar C 002 0 MontaXML("pagExtSujRetNorLeg"          ,"NA"             ,,,,,16,.T.,.T.,.T.)
PagExtF    C 000 0 MontaXMLPagExtF C 000 0 MontaXML("pagoExterior"        ,                         ,,,,,12 12 ,.F.,.T.,.T.)
ForPag     C 000 0 MontaXMLForPag C 000 0 MontaXML("formasDePago"        ,                         ,,,,,12 12 ,.T.,.F.,.T.)
PagoLocE   C 000 0 MontaXMLPagoLocE C 000 0 MontaXML("formaPago"           ,TRA->FORPAGO           >FORPAGO ,,,,,16,.T.,.T.,.T.)
ForPagF    C 000 0 MontaXMLForPagF C 000 0 MontaXML("formasDePago"        ,                         ,,,,,12 12 ,.F.,.T.,.T.)
Air        C 000 0 Air C 000 0 _aTotal[012][1]
Reembol    C 000 0 Reembol C 000 0 _aTotal[025]
DetComprF  C 000 0 MontaXMLDetComprF C 000 0 MontaXML("detalleCompras"          ,                     ,,,,,8 ,.F.,.T.,.T.)

[XXX XXX -  livro Fiscal Vendaslivro Fiscal Vendas]
ComprasF   C 000 0 MontaXMLComprasF C 000 0 MontaXML("compras"                 ,                     ,,,,,4 ,.F.,.T.,.T.)
Vendas     C 000 0 MontaXML(Vendas C 000 0 MontaXML("ventas"                  ,                     ,,,,,4 ,.T.,.F.,.T.)


[TRB Gera��o do XMLTRB Geração do XML]
(PRE)  TRBTRB->(dbGoTop())

DtVendas   C 000 0 MontaXMLDtVendas C 000 0 MontaXML("detalleVentas"   ,                             ,,,,,8 ,.T.,.F.,.T.)
TpIdClie   C 000 0 MontaXMLTpIdClie C 000 0 MontaXML("tpIdCliente"     ,TRB->TIPDOC                >TIPDOC ,,,,,12,.T.,.T.,.T.)
IdClien    C 000 0 MontaXMLIdClien C 000 0 MontaXML("idCliente"       ,TRB->CDCGC                 >CDCGC ,,,,,12,.T.,.T.,.T.)
PARRELV    C 000 0 MontaXMLPARRELV C 000 0 MontaXML("parteRelVtas"    ,"NO"                         ,,,,,12,.T.,.T.,.T.)
Tpcomprova C 000 0 MontaXMLTpcomprova C 000 0 MontaXML("tipoComprobante"     ,TRB->ESPECIE           >ESPECIE ,,,,,12,.T.,.T.,.T.)
TEmision   C 000 0 MontaXMLTEmision C 000 0 MontaXML("tipoEmision"     ,"E"                          ,,,,,12,.T.,.T.,.T.)
NumComprov C 000 0 MontaXMLNumComprov C 000 0 MontaXML("numeroComprobantes",cvaltochar(TRB->QTDNF)       ,,,,,12,.T.,.T.,.T.)
BS2NoGrIva C 000 0 MontaXMLBS2NoGrIva C 000 0 MontaXML("baseNoGraIva"    ,STRTRAN(TRANSFORM(TRB->EXENTAS >EXENTAS ,"@E 9999999999@E 9999999999.99"),',','.')     ,,,,,12,.T.,.T.,.T.)
BS2Imponib C 000 0 MontaXMLBS2Imponib C 000 0 MontaXML("baseImponible"   ,STRTRAN(TRANSFORM(TRB->ALQZERO >ALQZERO ,"@E 9999999999@E 9999999999.99"),',','.')     ,,,,,12,.T.,.T.,.T.)
BS2ImpGrav C 000 0 MontaXMLBS2ImpGrav C 000 0 MontaXML("baseImpGrav"     ,STRTRAN(TRANSFORM(TRB->ALQNOZER,"@E 9999999999@E 9999999999.99"),',','.')     ,,,,,12,.T.,.T.,.T.)
Vl2IVA     C 000 0 MontaXMLVl2IVA C 000 0 MontaXML("montoIva"        ,STRTRAN(TRANSFORM(TRB->VALIMP  >VALIMP ,"@E 9999999999@E 9999999999.99"),',','.')     ,,,,,12,.T.,.T.,.T.)
MontoICE   C 000 0 MontaXMLMontoICE C 000 0 MontaXML("montoIce"        ,STRTRAN(TRANSFORM(TRB->VALICE  >VALICE ,"@E 9999999999@E 9999999999.99"),',','.')     ,,,,,12,.T.,.T.,.T.)
Vl2RetIVA  C 000 0 MontaXMLVl2RetIVA C 000 0 MontaXML("valorRetIva"     ,STRTRAN(TRANSFORM(TRB->IVARET  >IVARET ,"@E 9999999999@E 9999999999.99"),',','.')     ,,,,,12,.T.,.T.,.T.)
Vl2RetRent C 000 0 MontaXMLVl2RetRent C 000 0 MontaXML("valorRetRenta"   ,STRTRAN(TRANSFORM(TRB->VALIRR  >VALIRR ,"@E 9999999999@E 9999999999.99"),',','.')     ,,,,,12,.T.,.T.,.T.)
ForPago    C 000 0 MontaXMLForPago C 000 0 MontaXML("formasDePago"    ,                             ,,,,,12 12 ,.T.,.F.,.T.)
TEmision   C 000 0 MontaXMLTEmision C 000 0 MontaXML("formaPago"       ,TRB->FORPAGO               >FORPAGO ,,,,,16,.T.,.T.,.T.)
ForPagoF   C 000 0 MontaXMLForPagoF C 000 0 MontaXML("formasDePago"    ,                             ,,,,,12 12 ,.F.,.T.,.T.)
DtVendasF  C 000 0 MontaXMLDtVendasF C 000 0 MontaXML("detalleVentas"   ,                             ,,,,,8 ,.F.,.T.,.T.)

[XXX - livro Fiscal Ventas Establecimiento]
ComprasF   C 000 0 MontaXMLXXX - livro Fiscal Ventas Establecimiento]
ComprasF C 000 0 MontaXML("ventas"          ,                             ,,,,,4 ,.F.,.T.,.T.)
Vendas     C 000 0 MontaXMLVendas C 000 0 MontaXML("ventasEstablecimiento"       ,                 ,,,,,4 ,.T.,.F.,.T.)

[TRV Gera��o do XMLTRV Geração do XML]
(PRE)  TRVTRV->(dbGoTop())
VenEstab   C 000 0 MontaXMLVenEstab C 000 0 MontaXML("ventaEst"        ,                             ,,,,,8 ,.T.,.F.,.T.)
CodEstab   C 000 0 MontaXMLCodEstab C 000 0 MontaXML("codEstab"        ,TRV->CODEST                >CODEST ,,,,,12,.T.,.T.,.T.)
VenEstab   C 000 0 MontaXMLVenEstab C 000 0 MontaXML("ventasEstab"     ,STRTRAN(TRANSFORM(0 ,"@E 9999999999@E 9999999999.99"),',','.')    ,,,,,12,.T.,.T.,.T.)
IvaComp    C 000 0 MontaXMLIvaComp C 000 0 MontaXML("ivaComp"         ,STRTRAN(TRANSFORM(0 ,"@E 9999999999@E 9999999999.99"),',','.')    ,,,,,12,.T.,.T.,.T.)
VenEstabF  C 000 0 MontaXMLVenEstabF C 000 0 MontaXML("ventaEst"        ,                             ,,,,,8 ,.F.,.T.,.T.)

[XXX Identifica��o do ContribuinteXXX Identificação do Contribuinte]
VendasF    C 000 0 MontaXMLVendasF C 000 0 MontaXML("ventasEstablecimiento"       ,                 ,,,,,4 ,.F.,.T.,.T.)
Vendas     C 000 0 MontaXMLVendas C 000 0 MontaXML("anulados"        ,                 ,,,,,4 ,.T.,.F.,.T.)

[XXX Criacao do arquivo notas canceladasXXX Criacao do arquivo notas canceladas]
(PRE)   _atotal[32]   :=  LFeqXMLcanLFeqXMLcan(DTOS(MV_PAR01),DTOS(MV_PAR02)) 

[TRC Gera��o do XMLTRC Geração do XML]
(PRE)  TRCTRC->(dbGoTop())
Dtanulado  C 000 0 MontaXMLDtanulado C 000 0 MontaXML("detalleAnulados"     ,                 ,,,,,8 ,.T.,.F.,.T.)
tpcompro   C 000 0 MontaXMLtpcompro C 000 0 MontaXML("tipoComprobante"     ,TRC->TIPDOC            >TIPDOC ,,,,,12,.T.,.T.,.T.)
estabelec  C 000 0 MontaXMLestabelec C 000 0 MontaXML("establecimiento"     ,TRC->ESTAB         >ESTAB ,,,,,12,.T.,.T.,.T.)
ptemissao  C 000 0 MontaXMLptemissao C 000 0 MontaXML("puntoEmision"    ,TRC->PTEMIS            >PTEMIS ,,,,,12,.T.,.T.,.T.)
sequenIni  C 000 0 MontaXMLsequenIni C 000 0 MontaXML("secuencialInicio"    ,TRC->SEQINI            >SEQINI ,,,,,12,.T.,.T.,.T.)
sequenfin  C 000 0 MontaXMLsequenfin C 000 0 MontaXML("secuencialFin"   ,TRC->SEQFIM                >SEQFIM ,,,,,12,.T.,.T.,.T.)
autoriz    C 000 0 MontaXMLautoriz C 000 0 MontaXML("autorizacion"    ,TRC->AUTORIZ               >AUTORIZ ,,,,,12,.T.,.T.,.T.)
Dtanuladof C 000 0 MontaXMLDtanuladof C 000 0 MontaXML("detalleAnulados"     ,                 ,,,,,8 ,.F.,.T.,.T.)

[XXX Finaliza��oXXX Finalização]
VendasF    C 000 0 MontaXMLVendasF C 000 0 MontaXML("anulados"        ,                 ,,,,,4 ,.F.,.T.,.T.)
IVAF       C 000 0 MontaXMLIVAF C 000 0 MontaXML("iva"         ,                 ,,,,,4 ,.F.,.T.,.T.)

[XXX XXX -  Nome do ArquivoNome do Arquivo]
(ARQ)   &('_aTotal[7]')





Catálogos – Tabla 2, Tabla 4 y Tabla 26

Nota: Para poder modificar los catálogos se debe acceder a protheus con un usuario que pertenezca al grupo de "Administradores" 

  1. El documento “Ficha Técnica Transaccional Simplificado ATS” contiene los siguientes catálogos necesarios para el proceso de Reembolsos:
    1. Tabla 2 - Tipo Identificación.
    2. Tabla 4 - Tipos Comprobantes Autorizados.

      Bajar última versión del documento de la siguiente pagina:
      https://www.sri.gob.ec/formularios-e-instructivos1

  2. El documento “FICHA TECNICA COMPROBANTES ELECTRÓNICOS ESQUEMA OFFLINE” contiene los siguientes catálogos necesarios para el proceso de Reembolsos:
    1. Tabla 26 - Tipo Proveedor Reembolso.

      Bajar última versión del documento de la siguiente pagina:
      https://www.sri.gob.ec/web/intersri/facturacion-electronica#informaci%C3%B3n

...

  1. En el módulo Facturación (SIGAFAT) desde el menú Actualizaciones | Archivos | Definición de Catálogos (FISA812)
    1. Obtener los campos de la Tabla 2 y asignarlos al catálogo S002
      Agregar el campo Equivalenc – Equivalencia Compras (Tipo= Carácter y Tamaño 2). 03. Configure la pantalla a) Catálogo 
    2. Obtener los campos de la Tabla 4 y asignarlos al catálogo S004
      Agregar el campo Equivalenc – Equivalencia Compras (Tipo= Carácter y Tamaño 3). 03. Configure la pantalla b) Catálogo 
    3. Obtener los campos de la Tabla 26 y asignarlos al catálogo S026 03. Configure la pantalla c) Catálogo 
  2.  En el módulo Facturación (SIGAFAT) desde el menú Actualizaciones | Archivos | Mantenimiento de Catálogos (FISA812FISA813)

  3. Asignar valores al catálogo S002 con los valores correspondientes a la Tabla 2.  03. Configure la pantalla d) Catálogo  
    1. Asignar equivalencias para el tipo de identificación:

      - 04 en ventas equivale a 01 en compras
      - 05 en ventas equivale a 02 en compras
      - 06 en ventas equivale a 03 en compras

      NOTA: si no hay equivalencia dejar vacío el campo Equivalenc.

  4. Asignar valores al catálogo S004 con los valores correspondientes a la Tabla 4.  03. Configure la pantalla e) Catálogo 
    1. Asignar equivalencias para el tipo de comprobante.

      NOTA: si no hay equivalencia dejar vacío el campo Equivalenc.

  5. Asignar valores al catálogo S026 con los valores correspondientes a la Tabla 26.  03. Configure la pantalla f) Catálogo

...

Configuraciones Generales

  1. Impuestos Variables
    1. En el módulo Facturación (SIGAFAT) desde el menú  Actualizaciones  Actualizaciones | Archivos | Impuestos Variables (MATA995)
    2. Asignar el impuesto variable.
  2. Tipos de Entradas y Salidas
    1. En el módulo Facturación (SIGAFAT) desde el menú  Actualizaciones  Actualizaciones | Archivos | Tipos de Entrada y Salida (MATA080)
    2. Configurar la TES.
  3. Control de Formularios
    1. En el módulo Facturación (SIGAFAT) desde el menú Actualizaciones  Actualizaciones | Archivos | Control Formularios (MATA992)
    2. Configurar la serie y asignar el Código de punto de emisión y el código de Establecimiento.
  4. Modalidades
    1. En el módulo Facturación (SIGAFAT) desde el menú  Actualizaciones   Actualizaciones | Archivos | Modalidades (MATA360FINA010)
    2. Configurar una modalidad
  5. Condición de Pago
    1. En el módulo Facturación (SIGAFAT) desde el menú  Actualizaciones   Actualizaciones | Archivos | Condición de Pago (MATA360)
    2. Configurar una Condición de Pago
  6. Cliente
    1. En el módulo Facturación (SIGAFAT) desde el menú  Actualizaciones   Actualizaciones | Archivos | Clientes (MATA030).  03. Configure la pantalla g) Clientes
    2. Para documentos de Salida utilizar los Tipos de documento  Tipo. Doc = 04 – RUC , 05 - Cedula o 06 – Pasaporte
    3. Complemento del Cliente asignar la forma de Pago
  7. Proveedor
    1. En el módulo Facturación (SIGAFAT) desde el menú Actualizaciones  Actualizaciones | Archivos | Proveedores (MATA020)  03. Configure la pantalla h) Proveedor
    2. Para documentos de Entrada utilizar los Tipos de documento  Tipo. Doc = 01 – RUC , 02 - Cedula o 03 – Pasaporte
    3. Relacionar al proveedor con el Cliente que se utilizará en la factura de reembolso.
  8. Productos
    1. En el módulo Facturación (SIGAFAT) desde el menú Actualizaciones  Actualizaciones | Archivos | Productos (MATA010)
    2. Configurar Producto

...

  1. En el módulo Facturación (SIGAFAT) desde el menú Actualizaciones | Facturación | Facturaciones (MATA467N). 04. Pantalla de Prueba 4.1  
    La información obligatoria para generar una reembolso es la siguiente:
    • Número Docto
    • Modalidad
    • Número Autorización
    • Liquidación Compra = 1 – Si
    • Tipo Comprobante = 41 – Comprobante de venta emitido por reembolso.
    • Tipo Reembolso = 01 – Reembolso
    • Ítems de factura con valor.
  2. En el menú "Otras Acciones" seleccionar la opción "Reembolso". 04. Pantalla de Prueba 4.2  
    1. Llenar los campos que se solicitan en la pantalla de reembolso (Todos los campos del reembolso son obligatorios).
      • Tipo doc. Id = Asignar 04- RUC, 05-Cedula o 06 Pasaporte. Catálogo S002 -Tipo ComprobanteIdentificación
      • Identificación = Número RUC
      • País = Asignar el País de emisión de documento.
      • Tipo Proveedor = 01 – Para persona Natural o 02 – para Sociedad. Catálogo S026 -Tipo ComprobanteProveedor Reembolso
      • Tipo Comprobante =Seleccionar de Catálogo S004 -Tipo Tipos Comprobante Autorizados
      • Establecimiento = Asignar los 3 dígitos del establecimiento
      • Punto Emisión = Asignar los 3 dígitos del punto de emisión
      • Número Comprobante = Asignar número de comprobante
      • Fecha = Asignar la fecha de emisión de documento.
      • Número Autorización = Asignar número de autorización
      • TES = Asignar el TES para calcular los impuestos
      • Valor = Asignar el valor del reembolso
      • Impuesto = Valor del impuesto relacionado a el TES. (llenado automático)
      • Total = Valor + impuesto. (llenado automático)
      • Total Reembolso = Suma del campo "Total" de todos los Ítems. (llenado automático)

        NOTA: El valor total del reembolso debe ser igual al valor total de la factura.

    2. El Impuesto y el Total se calculan de forma automática en base a la TES seleccionada.  04. Pantalla de Prueba 4.3 

    3. El Total Reembolso se calcula automáticamente.

    4. Después de asignar información a los reembolsos dar clic en el botón “Confirmar” y “Finalizar”

      Si se desea modificar los la información de los reembolsos acceder nuevamente al menú “Otras acciones” opción “Reembolso” y realizar las modificaciones correspondientes.

  3. Revisar y guardar la Factura de Venta.

    La factura de venta genera una cuenta por cobrar, en el caso del reembolso la cuenta por cobrar se cancela y se genera una cuanta por pagarFactura de Venta (NF) genera una Cuenta por Cobrar, en el caso del reembolso la Cuenta por Cobrar se cancela y se genera una Cuenta por Pagar.

    Aviso
    titleIMPORTANTE

    Para que se cumpla esta acción es importante que la Factura de venta cumpla con las condiciones:

    • Liquidación Compra = 1 – Si
    • Tipo Comprobante = 41 – Comprobante de venta emitido por reembolso.
    • Tipo Reembolso = 01 – Reembolso

    Con la rutina de Reembolsos (MATA488), con fecha igual o superior a 17/07/2024, con que el campo ¿Liq. Comp? (F2_TPVENT) esté informado con el valor 1-Si, la Cuenta por Cobrar se cancelará y se generará una Cuenta por Pagar, sin importar que valores contengan los campos Tip. Comp.? (F2_TCOMP) y Tipo de reembolso (F2_TPDOC) o si se informaron los datos de Reembolso.

    Art. 13.- Liquidaciones de compras de bienes y prestación de servicios.- Las liquidaciones de compras de bienes y prestación de servicios se emitirán y entregarán por los sujetos
    pasivos, en las siguientes adquisiciones: 
    c) De bienes muebles y de servicios a personas naturales no obligadas a llevar contabilidad, ni inscritos en el Registro Único de Contribuyentes (RUC), que por su nivel cultural o
    rusticidad no se encuentren en posibilidad de emitir comprobantes de venta.

  4. En el módulo Financiero (SIGAFIN ) desde el menú Actualizaciones | Cuentas por Pagar | Ctas por Pagar (FINA050)

    1. Revisar que se haya generado correctamente la cuenta por pagar relacionada al reembolso.

...

  1. En el módulo Facturación (SIGAFAT) desde el menú  Actualizaciones  Actualizaciones | Facturación | Facturación Electrónica (MATA486)
  2. Transmitir la factura de reembolso.
    1. Verificar que la Factura de reembolso este autorizada.  04. Pantalla de Prueba 4.4
    2. Verificar que el XML (almacenado en la ruta configurada en el parámetro MV_CFDDOCS) cuente con los tags de reembolso.  04. Pantalla de Prueba 4.5
    3. Verificar archivo PDF generado por el proveedor de servicios electrónicos (Correo enviado al Cliente ) 04. Pantalla de Prueba 4.6

...

  1. En el módulo Libros Fiscales (SIGAFIS ) desde el menú Miscelánea  Miscelánea | Cálculos | Arch. Magnéticos (MATA950) . 04. Pantalla de Prueba 4.7
    1. Generar el archivo para la Retención del Impuestos EQUATF. 
    2. Imprimir el informe y verificar que la factura de reembolso se informe en el apartado de "Compras".  04. Pantalla de Prueba 4.8

      NOTA: Es importante puntualizar que en este proceso el Cliente relacionado a la factura de reembolso se sustituye por el Proveedor relacionado al cliente (Configurado en Proveedores)

  2. Ir a la carpeta donde fue creado el archivo XML y validarlo.  04. Pantalla de Prueba 4.9
    1. Verificar que los datos de la factura de reembolso se asignen dentro del elemento "Compras" 
    2. Verificar que el elemento tpIdProv contenga el  "Tipo documento identidad" del Proveedor
    3. Verificar que el elemento idProv contenga el "RUC" del Proveedor. 
    4. Verificar que el elemento formaPago contenga la "Forma Pago " del Proveedor.
    5. Verificar que dentro del elemento "Reembolsos/Reembolso" el sub-Elemento tpIdProvReemb este informado con la equivalencia asignada en el catálogo S002 (Tipo Doc. Identificación)



03. PANTALLA DE CONFIGURACIÓN


a) Catálogo

b) Catálogo


c) Catálogo

...

 Complemento Cliente


h) Proveedor




04. PANTALLA DE VALIDACION DE PROCESO


Pantalla de Prueba 4.1


Pantalla de Prueba 4.2



Pantalla de Prueba 4.3

Image Modified

Image Modified


Pantalla de Prueba 4.4


Pantalla de Pruebas 4.5


Image RemovedImage Added

Image Modified



Pantalla de Prueba 4.6

...

Pantalla de Prueba 4.8





Pantalla de Prueba 4.9





05. 

...

Diccionario de Datos

El usuario debe realizar las siguientes actualizaciones al diccionario de datos a través del módulo Configurador de Protheus (SIGACFG).

...

Alias

Tipo

Secuencia

Columna

Descripción

Contenido

ECU002

1

01

RE

Tipo Documento Identificación

F3I

ECU002

2

01

01

Tipo Documento Identificación

F812SXB("S002","Codigo")

ECU002

5

01



VAR_IXB


ECU004

Alias

Tipo

Secuencia

Columna

Descripción

Contenido

ECU002

1

01

RE

Tipo Comprobante

F3I

ECU002

2

01

01

Tipo Comprobante

F812SXB("S004","Codigo")

ECU002

5

01



VAR_IXB


ECU026

Alias

Tipo

Secuencia

Columna

Descripción

Contenido

ECU002

1

01

RE

Tipo Proveedor

F3I

ECU002

2

01

01

Tipo Proveedor

F812SXB("S026","Codigo")

ECU002

5

01



VAR_IXB


2. Creación de tabla en el archivo SX2 – Tablas:

...

Campo

AQ0_PAIS

Tipo

C

Tamaño

3

Decimal

0

Formato

@!

Título

País

Descripción

País del proveedor

Lista Opciones


Inicializador Estándar


Inicializador Browse


Modo Edición


Consulta

SYA  ECU028

Val. Sistema

ExistCpoNaoVazio().and.ValidF3I("SYAS028",M->AQ0_PAIS,1,3)

ContextoR - Real


Propiedad

A-Alterar

Nivel

1

Obligatorio

No

Usado

Si

Browse

No

Grupo de campos


Help

País del donde fue emitido el documento.

...

Card documentos
InformacaoUtilice este box para resaltar información relevante y/o de destaque.Revisar la configuración de Campos y Catálogos necesarios para transmisión electrónica: https://tdn.totvs.com/pages/releaseview.action?pageId=403740984
Titulo¡IMPORTANTE!


06. TABLAS UTILIZADAS

  • SF2 - Encabezado de Facturas de Salida.
  • SD2 - Ítems de Facturas de Salida.
  • AQ0 - Detalle de Reembolso.
  • SA1 - Clientes.
  • SYA - Países.
  • SFB - Impuestos Variables.
  • SFC - Vinculo TES vs. Impuestos.
  • SAH - Unidades de Medida.
  • SB1 - Descripción Genérica Producto.
  • F3I - Mantenimiento de Catálogos.  
  • F3H - Definición de Catálogos . 
  • SFP - Control de Formularios.
  • SED - Modalidades.
  • SE4 -  Condiciones de Pago.
  • SA1 - Clientes.
  • AI0 - Complemento del Cliente.
  • SA2 - Proveedores
  • SE1 - Cuentas por Cobrar.
  • SE2 - Cuentas por Pagar.