Árvore de páginas


ÍNDICE

  1. Visión general
  2. Ejemplo de utilización
  3. Pantalla de Configuración
  4. Pantalla de Validación de Proceso
  5. Diccionario 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:


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

Actualizar 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] := IIf(SF2->(ColumnPos("F2_TPDOC"))==0 .OR. SF2->(ColumnPos("F2_TPVENT"))==0 .OR. SF2->(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]



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


Actualizar EQUATF.INI

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

@XML

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

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

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

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

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


[XXX Header]
//(IMP) {.T.,1,1,"IVA"}
//(CMP) {{"NUMRUC","Contribuyente"},{"RAZSOC","Razon Social"},{"MES","Mes"},{"ANIO","Ano"}}
(PRE) _aTotal[010] := "version="+'"1.0"'+" encoding="+'"ISO-8859-1"'+" standalone="+'"yes"'+" ?"
(PRE) _atotal[30] := LFeqXMLanV(DTOS(MV_PAR01),DTOS(MV_PAR02))
Linha1 C 000 0 MontaXML("?xml" , ,,,,, ,.T.,.F.,.T.,_aTotal[010])
IVA C 003 0 MontaXML("iva" , ,,,,,1 ,.T.,.F.,.T.)
TIdInf C 015 0 MontaXML("TipoIDInformante" ,"R" ,,,,,4 ,.T.,.T.,.T.)
NUMRUC C 015 0 MontaXML("IdInformante" ,SM0->M0_CGC ,,,,,4 ,.T.,.T.,.T.)
RAZSOC C 100 0 MontaXML("razonSocial" ,SM0->M0_NOMECOM ,,,,,4 ,.T.,.T.,.T.)
ANIO C 004 0 MontaXML("Anio" ,substr(dTOs(MV_PAR01),1,4) ,,,,,4 ,.T.,.T.,.T.)
MES C 002 0 MontaXML("Mes" ,substr(dTOs(MV_PAR01),5,2) ,,,,,4 ,.T.,.T.,.T.)
NUMESTRUC C 015 0 MontaXML("numEstabRuc" ,_atotal[30][2] ,,,,,4 ,.T.,.T.,.T.)
TVentas C 015 0 MontaXML("totalVentas" ,STRTRAN(TRANSFORM(0 ,"@E 9999999999.99"),',','.') ,,,,,4 ,.T.,.T.,.T.)
CodOpera C 015 0 MontaXML("codigoOperativo" ,"IVA" ,,,,,4 ,.T.,.T.,.T.)
Compras C 000 0 MontaXML("compras" , ,,,,,4 ,.T.,.F.,.T.)
(POS)

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

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

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

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

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


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

DtVendas C 000 0 MontaXML("detalleVentas" , ,,,,,8 ,.T.,.F.,.T.)
TpIdClie C 000 0 MontaXML("tpIdCliente" ,TRB->TIPDOC ,,,,,12,.T.,.T.,.T.)
IdClien C 000 0 MontaXML("idCliente" ,TRB->CDCGC ,,,,,12,.T.,.T.,.T.)
PARRELV C 000 0 MontaXML("parteRelVtas" ,"NO" ,,,,,12,.T.,.T.,.T.)
Tpcomprova C 000 0 MontaXML("tipoComprobante" ,TRB->ESPECIE ,,,,,12,.T.,.T.,.T.)
TEmision C 000 0 MontaXML("tipoEmision" ,"E" ,,,,,12,.T.,.T.,.T.)
NumComprov C 000 0 MontaXML("numeroComprobantes",cvaltochar(TRB->QTDNF) ,,,,,12,.T.,.T.,.T.)
BS2NoGrIva C 000 0 MontaXML("baseNoGraIva" ,STRTRAN(TRANSFORM(TRB->EXENTAS ,"@E 9999999999.99"),',','.') ,,,,,12,.T.,.T.,.T.)
BS2Imponib C 000 0 MontaXML("baseImponible" ,STRTRAN(TRANSFORM(TRB->ALQZERO ,"@E 9999999999.99"),',','.') ,,,,,12,.T.,.T.,.T.)
BS2ImpGrav C 000 0 MontaXML("baseImpGrav" ,STRTRAN(TRANSFORM(TRB->ALQNOZER,"@E 9999999999.99"),',','.') ,,,,,12,.T.,.T.,.T.)
Vl2IVA C 000 0 MontaXML("montoIva" ,STRTRAN(TRANSFORM(TRB->VALIMP ,"@E 9999999999.99"),',','.') ,,,,,12,.T.,.T.,.T.)
MontoICE C 000 0 MontaXML("montoIce" ,STRTRAN(TRANSFORM(TRB->VALICE ,"@E 9999999999.99"),',','.') ,,,,,12,.T.,.T.,.T.)
Vl2RetIVA C 000 0 MontaXML("valorRetIva" ,STRTRAN(TRANSFORM(TRB->IVARET ,"@E 9999999999.99"),',','.') ,,,,,12,.T.,.T.,.T.)
Vl2RetRent C 000 0 MontaXML("valorRetRenta" ,STRTRAN(TRANSFORM(TRB->VALIRR ,"@E 9999999999.99"),',','.') ,,,,,12,.T.,.T.,.T.)
ForPago C 000 0 MontaXML("formasDePago" , ,,,,,12 ,.T.,.F.,.T.)
TEmision C 000 0 MontaXML("formaPago" ,TRB->FORPAGO ,,,,,16,.T.,.T.,.T.)
ForPagoF C 000 0 MontaXML("formasDePago" , ,,,,,12 ,.F.,.T.,.T.)
DtVendasF C 000 0 MontaXML("detalleVentas" , ,,,,,8 ,.F.,.T.,.T.)

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

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

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

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

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

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

[XXX - Nome 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 prothus con un usuario que pertenesca al grupo de "Adminitradores" 

  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


Actualización de Catálogos

  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 (FISA813)

  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 | 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 | 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 | 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 | Archivos | Modalidades (FINA010)
    2. Configurar una modalidad
  5. Condición de Pago
    1. En el módulo Facturación (SIGAFAT) desde el menú  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 | 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 | 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 | Archivos | Productos (MATA010)
    2. Configurar Producto


Pasos para validación del proceso:


Factura de Reembolso

  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 Identificació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 Proveedor Reembolso
      • Tipo Comprobante =Seleccionar de Catálogo S004 -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 pagar.

  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.


Facturación Electrónica

  1. En el módulo Facturación (SIGAFAT) desde el menú  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


Archivos Magnéticos - Generación del Anexo Transaccional Simplificado (ATS).

Para más información vea el:

Documento Técnico de Referencia del Anexo Transaccional Simplificado (ATS) Ecuador

  1. En el módulo Libros Fiscales (SIGAFIS ) desde el menú 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


d) Catálogo


e) Catálogo


f) Catálogo


g) Clientes

 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


Pantalla de Prueba 4.4


Pantalla de Pruebas 4.5




Pantalla de Prueba 4.6



Pantalla de Prueba 4.7


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).

NOTA: Las siguientes actualizaciones fueron incorporadas en el pacote 009493 - DMINA-12700 - FACTURA DE VENTA REEMBOLSOS



1.  Consultas SXB - Consultas Especificas:


ECU002

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:

Clave

Nombre

Clave Única

AQ0

Detalle de reembolso

AQ0_FILIAL+AQ0_SERIE+AQ0_DOC+AQ0_CLIENT+AQ0_TIENDA+AQ0_ESTABL+AQ0_PTOEMI+AQ0_NUMDOC



3. Creación de Índices en el archivo SIX – Índices:

Índice

Clave

Descripción

01

AQ0_FILIAL+AQ0_SERIE+AQ0_DOC+AQ0_CLIENT+AQ0_TIENDA+AQ0_ESTABL+AQ0_PTOEMI+AQ0_NUMDOC

Serie + Documento + Cliente + Tienda + Establecimiento + Punto Emision + Numero de comprobante

02

AQ0_FILIAL+AQ0_SERIE+AQ0_DOC+AQ0_CLIENT+AQ0_TIENDA+AQ0_ITEM

Serie + Documento + Cliente + Tienda + Item



4. Creación de campos en el archivo SX3 - Campos:

Tabla: SF2 – Factura de Venta

Campo

F2_TPDOC

Tipo

C

Tamaño

2

Decimal

0

Formato

@!

Título

Tipo Reemb.

Descripción

Tipo de reembolso

Help

Informe el tipo de comprobante de reembolso si la NF es de Liquidación de Bienes y Servicios.

Lista Opciones

01=Reembolso;03=Prov Extranjero

Inicializador Estándar


Inicializador Browse


Modo Edición


Consulta


Val. Sistema

IIF(M->F2_TPVENT=="1",Pertence("01/03"),Vazio())

Nivel

1

Obligatorio

No

Usado

Si

Browse

No


5. Creación de campos en el archivo SX3 - Campos:

Tabla: AQ0 – Detalle de Reembolso

Campo

AQ0_FILIAL

Tipo

C

Tamaño

2

Decimal

0

Formato


Título

Sucursal

Descripción

Sucursal del Sistema

Lista Opciones


Inicializador Estándar


Inicializador Browse


Modo Edición


Consulta


Val. Sistema


Nivel

1

Obligatorio

No

Usado

Si

Browse

No

Grupo de campos

033

Help

Código de identificación de la sucursal

de la empresa usuaria del sistema.



Campo

AQ0_ITEM

Tipo

C

Tamaño

2

Decimal

0

Formato

@!

Título

Item

Descripción

Item de Reembolso

Lista Opciones


Inicializador Estándar


Inicializador Browse


Modo Edición


Consulta


Val. Sistema


Contexto

R - Real

Propiedad

A-Alterar

Nivel

1

Obligatorio

No

Usado

Si

Browse

No

Grupo de campos


Help

Ítem del Reembolso



Campo

AQ0_SERIE

Tipo

C

Tamaño

2

Decimal

0

Formato


Título

Serie

Descripción

Serie del documento

Lista Opciones


Inicializador Estándar


Inicializador Browse


Modo Edición


Consulta


Val. Sistema


Contexto

R - Real

Propiedad

A-Alterar

Nivel

1

Obligatorio

No

Usado

Si

Browse

No

Grupo de campos

094

Help

Serie del la Factura.



Campo

AQ0_DOC

Tipo

C

Tamaño

13

Decimal

0

Formato


Título

Documento

Descripción

Número de documento

Lista Opciones


Inicializador Estándar


Inicializador Browse


Modo Edición


Consulta


Val. Sistema


Contexto

R - Real

Propiedad

A-Alterar

Nivel

1

Obligatorio

No

Usado

Si

Browse

No

Grupo de campos

018

Help

Número de la factura.



Campo

AQ0_CLIENT

Tipo

C

Tamaño

6

Decimal

0

Formato


Título

Cliente

Descripción

Código del cliente

Lista Opciones


Inicializador Estándar


Inicializador Browse


Modo Edición


Consulta


Val. Sistema


Nivel

1

Obligatorio

No

Usado

Si

Browse

No

Grupo de campos

001

Help

Código de identificación del cliente

junto al sistema.



Campo

AQ0_TIENDA

Tipo

C

Tamaño

2

Decimal

0

Formato


Título

Tienda

Descripción

Tienda del cliente

Lista Opciones


Inicializador Estándar


Inicializador Browse


Modo Edición


Consulta


Val. Sistema


Contexto

R - Real

Propiedad

A-Alterar

Nivel

1

Obligatorio

No

Usado

Si

Browse

No

Grupo de campos

002

Help

Campo que identifica cada uno de los

negocios del cliente.




Campo

AQ0_TIPDOC

Tipo

C

Tamaño

2

Decimal

0

Formato

@!

Título

Tipo Doc Id

Descripción

Tipo docto identidad

Lista Opciones


Inicializador Estándar


Inicializador Browse


Modo Edición


Consulta

ECU002

Val. Sistema

NaoVazio().and.ValidF3I("S002",M->AQ0_TIPDOC,1,2)   

Contexto

R - Real

Propiedad

A-Alterar

Nivel

1

Obligatorio

No

Usado

Si

Browse

No

Grupo de campos


Help

Tipo de documento de identidad



Campo

AQ0_CGC

Tipo

C

Tamaño

15

Decimal

0

Formato

@!

Título

Identificación

Descripción

Documento identificación

Lista Opciones


Inicializador Estándar


Inicializador Browse


Modo Edición


Consulta


Val. Sistema

NaoVazio().and.A030RUC(M->AQ0_CGC)   

Contexto

R - Real

Propiedad

A-Alterar

Nivel

1

Obligatorio

No

Usado

Si

Browse

No

Grupo de campos


Help

Número documento identificación



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

ECU028

Val. Sistema

NaoVazio().and.ValidF3I("S028",M->AQ0_PAIS,1,3)

Contexto


Propiedad

A-Alterar

Nivel

1

Obligatorio

No

Usado

Si

Browse

No

Grupo de campos


Help

País del donde fue emitido el documento.



Campo

AQ0_TPPROV

Tipo

C

Tamaño

2

Decimal

0

Formato

@!

Título

Tipo Proveed

Descripción

Tipo de proveedor

Lista Opciones


Inicializador Estándar


Inicializador Browse


Modo Edición


Consulta

ECU026

Val. Sistema

NaoVazio().and.ValidF3I("S026",M->AQ0_TPPROV,1,2)                    

Contexto

R - Real

Propiedad

A-Alterar

Nivel

1

Obligatorio

No

Usado

Si

Browse

No

Grupo de campos


Help

Tipo de proveedor.



Campo

AQ0_TPDOC

Tipo

C

Tamaño

3

Decimal

0

Formato

@!

Título

Tipo Comprob

Descripción

Tipo de comprobante

Lista Opciones


Inicializador Estándar


Inicializador Browse


Modo Edición


Consulta

ECU004

Val. Sistema

NaoVazio().and.ValidF3I("S004",M->AQ0_TPDOC,1,3)     

Contexto

R - Real

Propiedad

A-Alterar

Nivel

1

Obligatorio

No

Usado

Si

Browse

No

Grupo de campos


Help

Tipo de Comprobante.



Campo

AQ0_ESTABL

Tipo

C

Tamaño

3

Decimal

0

Formato

@!

Título

Establecimiento

Descripción

Establecimiento

Lista Opciones


Inicializador Estándar


Inicializador Browse


Modo Edición


Consulta


Val. Sistema

NaoVazio()

Contexto

R - Real

Propiedad

A-Alterar

Nivel

1

Obligatorio

No

Usado

Si

Browse

No

Grupo de campos


Help

Establecimiento.



Campo

AQ0_PTOEMI

Tipo

C

Tamaño

3

Decimal

0

Formato

@!

Título

Pto Emisión

Descripción

Punto Emisión

Lista Opciones


Inicializador Estándar


Inicializador Browse


Modo Edición


Consulta


Val. Sistema

NaoVazio()

Contexto

R - Real

Propiedad

A-Alterar

Nivel

1

Obligatorio

No

Usado

Si

Browse

No

Grupo de campos


Help

Punto Emisión



Campo

AQ0_NUMDOC

Tipo

C

Tamaño

9

Decimal

0

Formato

@!

Título

Núm.Comprob.

Descripción

Número de comprobante

Lista Opciones


Inicializador Estándar


Inicializador Browse


Modo Edición


Consulta


Val. Sistema

NaoVazio()

Contexto

R - Real

Propiedad

A-Alterar

Contexto

R - Real

Propiedad

A-Alterar

Nivel

1

Obligatorio

No

Usado

Si

Browse

No

Grupo de campos


Help

Número de comprobante.



Campo

AQ0_FECHA

Tipo

D

Tamaño

8

Decimal

0

Formato


Título

Fecha Emis.

Descripción

Fecha de emisión

Lista Opciones


Inicializador Estándar


Inicializador Browse


Modo Edición


Consulta


Val. Sistema

NaoVazio()

Contexto

R - Real

Propiedad

A-Alterar

Nivel

1

Obligatorio

No

Usado

Si

Browse

No

Grupo de campos


Help

Fecha de emisión del documento de reemolso.



Campo

AQ0_AUTOR

Tipo

C

Tamaño

49

Decimal

0

Formato

@!

Título

Autorización

Descripción

Número de autorización

Lista Opciones


Inicializador Estándar


Inicializador Browse


Modo Edición


Consulta


Val. Sistema

NaoVazio()

Contexto

R - Real

Propiedad

A-Alterar

Nivel

1

Obligatorio

No

Usado

Si

Browse

No

Grupo de campos


Help

Número de autorización.



Campo

AQ0_TES

Tipo

C

Tamaño

3

Decimal

0

Formato

@!

Título

TES

Descripción

Tipo de entrada/salida

Lista Opciones


Inicializador Estándar


Inicializador Browse


Modo Edición


Consulta

SF4

Val. Sistema

(Vazio().Or.ExistCpo("SF4"))    

Contexto

R - Real

Propiedad

A-Alterar

Nivel

1

Obligatorio

No

Usado

Si

Browse

No

Grupo de campos


Help

Tipo de entrada/salida  



Campo

AQ0_VALOR

Tipo

N

Tamaño

14

Decimal

2

Formato

@E 99,999,999,999.99

Título

Valor Reemb

Descripción

Valor reembolso

Lista Opciones


Inicializador Estándar


Inicializador Browse


Modo Edición


Consulta


Val. Sistema

NaoVazio().and.Positivo()

Contexto

R - Real

Propiedad

A-Alterar

Nivel

1

Obligatorio

No

Usado

Si

Browse

No

Grupo de campos


Help

Valor del reembolso.



Campo

AQ0_VALIMP

Tipo

N

Tamaño

14

Decimal

2

Formato

@E 99,999,999,999.99

Título

Impuesto

Descripción

Valor del impuesto

Lista Opciones


Inicializador Estándar


Inicializador Browse


Modo Edición


Consulta


Val. Sistema

NaoVazio().and.Positivo()

Contexto

R - Real

Propiedad

A-Alterar

Nivel

1

Obligatorio

No

Usado

Si

Browse

No

Grupo de campos


Help

Valor del impuesto.



Campo

AQ0_TOTAL

Tipo

N

Tamaño

14

Decimal

2

Formato

@E 99,999,999,999.99

Título

Total

Descripción

Valor total del reembolso

Lista Opciones


Inicializador Estándar


Inicializador Browse


Modo Edición


Consulta


Val. Sistema

NaoVazio().and.Positivo()

Contexto

R - Real

Propiedad

A-Alterar

Nivel

1

Obligatorio

No

Usado

Si

Browse

No

Grupo de campos


Help

Valor total del reembolso.




¡IMPORTANTE!

Revisar la configuración de Campos y Catálogos necesarios para transmisión electrónica: https://tdn.totvs.com/pages/releaseview.action?pageId=403740984


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.