Árvore de páginas

Versões comparadas

Chave

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

...

Totvs custom tabs box
tabsPre-condiciones, Transmisión de CR 2.O ATS, Generación del ATS, Paso 04
idspaso1,paso2,paso3
Totvs custom tabs box items
defaultyes
referenciapaso1
  1. Realizar un respaldo del repositorio del ambiente (archivo .rpo)
  2. Aplicar el parche generado para la issue DMINA-17603.
  3. Validar que las rutinas se encuentren actualizada con fecha mayor o igual a la informada en la sección 01. DATOS GENERALES.
  4. Para la generación del Anexo Transaccional Simplificado (ATS), es necesario tener :
    • Tener las configuración a diccionario que se mencionan en la sección 04. INFORMACIÓN ADICIONAL.
    • Tener el archivo EQUATF.INI en la carpeta system del ambiente, así como realizar los ajustes mencionados en la sección 04. INFORMACIÓN ADICIONAL.
  5. En el parámetro MV_CFDFTCR configurar el nombre y la ruta del ambiente, para el archivo FATCRECU.INI (por ejemplo: GetSrvProfString('startpath','')+'\cfd\inicfd\fatcrecu20.ini')
  6. En la ruta configurada en el parámetro MV_CFDTCR colocar el archivo FATCREQU.INI:
  7. Para la generación del Anexo Transaccional Simplificado (ATS), es necesario tener actualizado el archivo 
  8. Configurar el parámetro MV_PATH814, con la ruta local donde se colocarán los archivos en formato .csv para la carga de Catálogos.
  9. Colocar los siguientes archivos en formato .csv en la ruta definida en el parámetro MV_PATH814, conteniendo las siguientes estructuras:
    • 16ImpuestosSRI.csv
    • 17TarifaIVASRI.csv
    • 20TipoImpARetenerSRI.csv
    • 21TarifaRetIVASRI.csv
    • 24FormasPagoSRI.csv
    • 22TipoPago
    • 27TiposRegimenFiscalExterior.csv
      }
    • 28Paises.csv
    • 29ParaisosFiscales.csv
  10. En el módulo Facturación (SIGAFAT), ir al menú Actualizaciones | Archivos | Mantenimiento de Catálogos (FISA813)
  11. Validar que se haya generado el catálogo S016 - Catálogo de impuestos, con la siguiente estructura:
  12. Validar que se haya generado el catálogo S017 - Catálogo de Tarifa del IVA, con la siguiente estructura:
  13. Validar que se haya generado el catálogo S020 - Catálogo Tipos Impuestos a Ret, con la siguiente estructura:
  14. Validar que se haya generado el catálogo S021 - Catálogo de Tarifa Ret. IVA, con la siguiente estructura:
  15. Validar que se haya generado el catálogo S022 - Catálogo de Tipos de Pago, con la siguiente estructura:
  16. Validar que se haya generado el catálogo S024 - Catálogo Formas de Pago, con la siguiente estructura:
  17. Validar que se haya generado el catálogo S027 - Catálogo de Régimen Fiscal del Exterior, con la siguiente estructura:
  18. Validar que se haya generado el catálogo S028 - Catálogo de Países, con la siguiente estructura:
  19. Validar que se haya generado el catálogo S029 - Catálogo de Paraísos Fiscales, con la siguiente estructura:
  20. En el Módulo Facturación (SIGAFAT), ir al menú Actualizaciones | Archivos | Impuestos Variable (MATA996)
    • Para los impuestos que tienen configurado el campo Clase Imp. (FB_CLASSE) esa igual a I-Impuesto, es necesario informar el campo Cod.Impuesto (FB_CODIMP).
  21. En el Módulo Libros Fiscales (SIGAFIS), ir al menú Actualizaciones | Archivos | Conceptos.
    • Para cada Concepto configurar el campo Cód. Ret SRI (CCR_RETSRI), el cual debe corresponder a las tablas 3.10 Conceptos de retención en la fuente de Impuesto a la renta del SRI (tablas del Catálogo de Anexo Transaccional Simplificado)
  22. En el módulo Compras (SIGACOM), ir al menú Actualizaciones | Archivos | Proveedores
    • Configurar un Proveedor, donde es importante configurar los campos Forma Pago (A2_MPAGO) y E-Mail (A1_EMAIL)

      Aviso
      titleImportante

      Adicional en el Proveedor deberán ser configurados los siguientes campo Pago Resid. (A2_CONTRBE), Tp. Reg. Fis (A2_RETENED), País/Estab. (A2_CODICA), País P. Fisc (A2_RETICA), País Efec Pg (A2_CODICA2), Doble Trib (A2_ECDTEX) y Pgo Ext Ret (A2_CBUCOM), los cuales son necesarios para la generación de los atributos del nodo <pagoExterior> del Anexo Transaccional Simplificado (ATS).

  23. En el módulo Compras (SIGACOM), ir al menú Actualizaciones | Archivos | Tipos de Entrada y Salida (MATA080)
    • Configurar un Tipo de Entrada (TES) con el cálculo del Impuesto IVA, Retención de IVA y Retención de la Renta.
  24. En el módulo Compras (SIGACOM), ir al menú Actualizaciones | Archivos | Modalidades (FINA010)
    • Configurar la Modalidad que aplica para la generación de la Factura de Entrada.
  25. En el módulo Compras (SIGACOM), ir al menú Actualizaciones | Archivos | Productos (MATA010)
    • Configurar el o los Productos que aplica para la generación de la Factura de Entrada.
  26. En el módulo Compras (SIGACOM), ir al menú Actualizaciones | Movimientos | Facturas de Entrada (MATA101N)
    • Incluir una Factura de Entrada (NF), la cual debe realizar el cálculo de IVA, Retención de IVA y Retención de la Renta.
    • En el encabezado se deben informar los siguientes campos: No. Autoriz (F1_NUMAUT), Cod Estable (F1_ESTABL), Cód. Pto Emi (F1_PROEMIS), Tipo Comp (F1_TIPOPE) y Cód.Sustent (F1_CODCTR)
    • En los ítems se deben informar los siguientes campos: Producto (D1_COD), Cantidad (D1_QUANT), Valor Unit. (D1_VUNIR), Valor Total (D1_TOTAL), Tipo Entrada (D1_TES) 

      Informações
      titleImportante

      Para el calculo del Retención de la Renta (RIR), es es necesario informar en el ítem el campo Concepto (D1_CONCEPT).

      Para visualizar datos en la consulta del campo Concepto (D1_CONCEPT), se debe configurar registros desde el módulo Libros Fiscales (SIGAFIS), en el menú Actualizaciones | Archivos | Conceptos.

    • Presionar Guardar para confirmar el guardado de la Factura de Entrada.
    • Validar que se visualice el Folio del Comprobante de Retención generado.
Totvs custom tabs box items
defaultno
referenciapaso2
  1. En el módulo Facturación (SIGAFAT) ir al menú Actualizaciones | Facturación | Comprobantes Retención (MATA486B)
  2. Ejecutar la acción Enviar.
  3. Informar los parámetros:
    • ¿De Comprobante de Retención? = <Folio del Comprobante de Retención creado previamente>
    • ¿A Comprobante de Retención? = <Folio del Comprobante de Retención creado previamente>
  4. Validar que el proceso de envío haya sido exitoso.
  5. Confirmar la consulta del Monitor.
  6. Validar que el retorno de respuesta sea un estatus Autorizado (Verde)
  7. Validar que el Certificado de Retención haya llegado al email configurado en el Proveedor, en el campo E-Mail (A1_EMAIL).
Totvs custom tabs box items
defaultno
referenciapaso3
  1. En el módulo Libros Fiscales (SIGAFAT) ir al menú Miscelánea | Cálculos | Archivos Magnéticos" (MATA950)
  2. En el Wizard para la captura de información del encabezado, informar los parámetros requeridos hasta finalizar y realizar la generación del archivo indicado.
  3. Validar la correcta generación del Anexo Transaccional Simplificado (ATS), y realizar la validación desde el DIMM.

...

Ajustes al Archivo EQUATF.INI:

lightblue
Painel
bgColor
borderWidth2
titleBGColorlightblue
borderStylesolid
titleEQUATF.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"        ,GXMLCarEsp(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.)
TIPOPROV   C 002 0 IIf(TRA->TPLDPROV == "03", MontaXML("tipoProv"        ,TRA->TIPOPROV,,,,,12,.T.,.T.,.T.), "")
DENOPROV   C 002 0 IIf(TRA->TPLDPROV == "03", MontaXML("denoProv"        ,TRA->DENOPROV,,,,,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"        ,TRA->PGOLOCEXT,        ,,,,16,.T.,.T.,.T.)
TipoRegi   C 002 0 IIf(TRA->PGOLOCEXT == "02", MontaXML("tipoRegi"        ,TRA->TPOREGFIS,,,,,16,.T.,.T.,.T.), "")
paising    C 002 0 IIf(TRA->PGOLOCEXT == "02" .And. TRA->TPOREGFIS == "01", MontaXML("paisEfecPagoGen"        ,TRA->PAISPGGEN,,,,,16,.T.,.T.,.T.), "")
paisparfis C 002 0 IIf(TRA->PGOLOCEXT == "02" .And. TRA->TPOREGFIS == "02", MontaXML("paisEfecPagoParFis"    ,TRA->PAISPFIS,,,,,16,.T.,.T.,.T.), "")
EPagoGen   C 002 0 IIf(TRA->PGOLOCEXT == "02", MontaXML("paisEfecPago"            ,TRA->PAISEFEPG    ,,,,,16,.T.,.T.,.T.), "")
Convenio   C 002 0 MontaXML("aplicConvDobTrib"    ,IIf(TRA->PGOLOCEXT == "01","NA",TRA->DOBTRIB),,,,,16,.T.,.T.,.T.)
EPagoPar   C 002 0 MontaXML("pagExtSujRetNorLeg",IIf(TRA->PGOLOCEXT == "01","NA",TRA->RETNORLEG),,,,,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 IIF(TRB->TIPDOC $ "04|05|06", MontaXML("parteRelVtas","NO"                                ,,,,,12,.T.,.T.,.T.), "")
tipoCli    C 000 0 IIF(TRB->TIPDOC $ "06"    , MontaXML("tipoCliente"    ,TRB->TIPCLIE                        ,,,,,12,.T.,.T.,.T.), "")
denoCli    C 000 0 IIF(TRB->TIPDOC $ "06"    , MontaXML("denoCli"        ,GXMLCarEsp(TRB->DENOCLI)            ,,,,,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 Exportaciones]
VendasF    C 000 0 MontaXML("ventasEstablecimiento"        ,                ,,,,,4 ,.F.,.T.,.T.)
Exporta    C 000 0 MontaXML("exportaciones"                ,                ,,,,,4 ,.T.,.F.,.T.)

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

[TEX Geração do XML]
(PRE) TEX->(dbGoTop())
(PREREG) _aTotal[33]    := IIf(TEX->TIPCLIE == '01', TEX->FCHREGCONT, TEX->COMPFCHEMI)

dtexporta  C 000 0 MontaXML("detalleExportaciones"    ,                ,,,,,8 ,.T.,.F.,.T.)
tpidcliext C 000 0 MontaXML("tpIdClienteEx"            ,TEX->TPIDCLIEXT,,,,,12,.T.,.T.,.T.)
idclienext C 000 0 MontaXML("idClienteEx"            ,TEX->IDCLIEXT    ,,,,,12,.T.,.T.,.T.)
ptrelac    C 000 0 MontaXML("parteRelExp"            ,TEX->PARTREL    ,,,,,12,.T.,.T.,.T.)
tipoclient C 000 0 IIf(TEX->TPIDCLIEXT == "21", MontaXML("tipoCli"            ,TEX->TIPCLIE    ,,,,,12,.T.,.T.,.T.), "")
denomexpor C 000 0 IIf(TEX->TPIDCLIEXT == "21", MontaXML("denoExpCli"        ,GXMLCarEsp(TEX->DENEXPCLI)    ,,,,,12,.T.,.T.,.T.), "")
tpregfsext C 000 0 MontaXML("tipoRegi"                ,TEX->TIPREGI    ,,,,,12,.T.,.T.,.T.)
paising    C 000 0 IIf(TEX->TIPREGI == "01", MontaXML("paisEfecPagoGen"        ,TEX->PEFEPAGGEN,,,,,12,.T.,.T.,.T.), "")
paisparfis C 000 0 IIf(TEX->TIPREGI == "02", MontaXML("paisEfecPagoParFis"    ,TEX->PPAGPARFIS,,,,,12,.T.,.T.,.T.), "")
denoregfis C 000 0 MontaXML("denopagoRegFis"        ,TEX->DENREGFIS    ,,,,,12,.T.,.T.,.T.)
paisexp    C 000 0 MontaXML("paisEfecExp"            ,TEX->PAISEFEEXP,,,,,12,.T.,.T.,.T.)
tipoexp    C 000 0 MontaXML("exportacionDe"            ,TEX->TPEXPING    ,,,,,12,.T.,.T.,.T.)
tipoingres C 000 0 IIf(TEX->TPEXPING == "03", MontaXML("tipIngExt"            ,TEX->TPINGEXT    ,,,,,12,.T.,.T.,.T.), "")
ingextgrav C 000 0 IIf(TEX->TPEXPING == "03", MontaXML("ingExtGravOtroPais"    ,TEX->INGEXTGAV    ,,,,,12,.T.,.T.,.T.), "")
valimpext  C 000 0 IIf(TEX->INGEXTGAV == 'SI', MontaXML("impuestoOtroPais"    ,STRTRAN(TRANSFORM(TEX->IMPOTROPA    ,"@E 999999999.99"),',','.'),,,,,12,.T.,.T.,.T.), "")
tipcompr   C 000 0 MontaXML("tipoComprobante"        ,TEX->TPCOMP    ,,,,,12,.T.,.T.,.T.)
distaduan  C 000 0 IIf(TEX->TPEXPING == '01', MontaXML("distAduanero"        ,TEX->REFDISADUA,,,,,12,.T.,.T.,.T.), "")
refanio    C 000 0 IIf(TEX->TPEXPING == '01', MontaXML("anio"                ,STR(YEAR(_aTotal[33])),,,,,12,.T.,.T.,.T.), "")
refregim   C 000 0 IIf(TEX->TPEXPING == '01', MontaXML("regimen"            ,TEX->REFREGIME    ,,,,,12,.T.,.T.,.T.), "")
refcorrel  C 000 0 IIf(TEX->TPEXPING == '01', MontaXML("correlativo"        ,TEX->REFCORREL1,,,,,12,.T.,.T.,.T.), "")
nodoctrans C 000 0 IIf(TEX->TPEXPING == '01', MontaXML("docTransp"            ,TEX->DOCTRANSP    ,,,,,12,.T.,.T.,.T.), "")
fchregcont C 000 0 MontaXML("fechaEmbarque"            ,DToC(_aTotal[33]),,,,,12,.T.,.T.,.T.)
valfob     C 000 0 MontaXML("valorFOB"                ,STRTRAN(TRANSFORM(TEX->VALORFOB    ,"@E 9999999999.99"),',','.')    ,,,,,12,.T.,.T.,.T.)
valcompr   C 000 0 MontaXML("valorFOBComprobante"    ,STRTRAN(TRANSFORM(TEX->VLFOBCOMP    ,"@E 9999999999.99"),',','.')    ,,,,,12,.T.,.T.,.T.)
nsercomest C 000 0 MontaXML("establecimiento"        ,TEX->NOSERCOMPR,,,,,12,.T.,.T.,.T.)
nsercomemi C 000 0 MontaXML("puntoEmision"            ,TEX->PTOEMISION,,,,,12,.T.,.T.,.T.)
nseccompve C 000 0 MontaXML("secuencial"            ,TEX->COMPRSECU    ,,,,,12,.T.,.T.,.T.)
nautoriza  C 000 0 MontaXML("autorizacion"            ,TEX->COMPRAUTOR,,,,,12,.T.,.T.,.T.)
fchemision C 000 0 MontaXML("fechaEmision"            ,DToC(TEX->COMPFCHEMI)    ,,,,,12,.T.,.T.,.T.)
dtexportaF C 000 0 MontaXML("detalleExportaciones"    ,                ,,,,,8 ,.F.,.T.,.T.)

[XXX Identificação do Contribuinte]
ExportaF   C 000 0 MontaXML("exportaciones"            ,                ,,,,,4 ,.F.,.T.,.T.)
Anulados   C 000 0 MontaXML("anulados"                ,                ,,,,,4 ,.T.,.F.,.T.)

[XXX Criacao do arquivo notas canceladas]
(PRE) _atotal[34] := 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]
AnuladosF  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]')

...