Árvore de páginas

Versões comparadas

Chave

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


ÍNDICE

Índice


01. VISIÓN GENERAL

La guía de remisión es un documento complementario del comprobante de venta. Conforme al Reglamento de comprobantes de venta y retención del SRI Art 28, están obligados a emitir guías de remisión toda sociedad, persona natural o sucesión indivisa que traslade mercadería, debiendo emitirlas en especial en los siguientes casos:

...

Es por ello que surge la necesidad de habilitar dentro del sistema el proceso de generación del XML de la guía de trasmisión, así como y la trasmisión electrónica para este tipo de documentos.


RUTINAS UTILIZADAS

Para tener activa la nueva funcionalidad de trasmisión electrónica de guías de remisión es necesario tener actualizadas con una fecha mayor o igual las siguientes rutinas:

...

Informações

Los cambios a Diccionario se realizaron en el pacote: 010341


02. EJEMPLO DE UTILIZACIÓN


  1. Realizar un respaldo del repositorio del ambiente (archivo .rpo).
  2. Copiar el script de generación de la Guía de Remisión (FATGRECU.INI) a la ruta del ambiente Protheus, generalmente protheus_data\system, ver la sección 03. CONFIGURACIONES.
  3. Desde el módulo Configurador (SIGACFG) realizar las configuraciones al Diccionario de Datos de acuerdo a lo definido en la sección 04. DICCIONARIO DE DATOS.

...

  1. En el módulo Facturación (SIGAFAT) desde Actualizaciones Archivos Transportadoras, configurar una Transportadora con el campo Tp.Iden.Tran (A4_TIPOTRA) con su valor correspondiente.
  2. En el módulo Facturación (SIGAFAT) desde Actualizaciones Archivos Clientes, configurar un Cliente con los campos Direcc. Entre (A1_ENDENT), RUC (A1_CGC) y Establ. Dest (A1_CODLOC) con los valores correspondientes.
  3. En la rutina de Vehículos (OMSA060), contar con un Vehículo configurado con el campo Matricula (DA3_PLACA) con su valor correspondiente.
  4. En el módulo Libros Fiscales (SIGAFIS) desde Actualizaciones Archivos | Contr. Formularios, configurar la serie correspondiente a la Guía de Remisión e informar los campos Cód. Pto Emi (FP_PTOEMIS) y Cod. Estable (FP_ESTABL).

Generación y Trasmisión de Guías de Remisión a partir de pedido de venta.

  1. En el módulo Facturación (SIGAFAT) desde Actualizaciones | Pedidos | Pedidos de Venta (MATA410):
    • Incluir un nuevo Pedido con Documento a Generar 2 - Remisión, donde se deben informar los siguientes datos: Cliente de entrega (C5_CLIENT y C5_LOJAENT), Transportadora (C5_TRANSP), Vehíc. Trans (C5_VEICULO), Motivo Tras (C5_MODTRAS), Fec.Ini.Tras (C5_FECDSE), Fch. Entrega (C5_FECENT), Ruta (C5_RUTA), Serie Sust. (C5_SERSUBS) y No. Doc Sust (C5_NFSUBST). 
      • Nota: Los campos Ruta (C5_RUTA), Serie Sust. (C5_SERSUBS) y No. Doc Sust (C5_NFSUBST) no son obligatorios para la generación de la Guía de Remisión, por lo que pueden quedar vacíos.
  2. En el módulo Facturación (SIGAFAT) desde Actualizaciones | Form. de Remisión| Generac. de Remitos (MATA462AN).
    • Seleccionar el Pedido y ejecutar la acción +Gen Remisión.
    • Verificar folio de remisión generada.
  3. Acceder a la rutina Documentos Electrónicos (MATA486), ubicada en la ruta: Actualizaciones | Facturación | Documentos Electrónicos.
    • Especificar en los parámetros la Serie y el Tipo de Documento: Guía Remisión
    • Indique los parámetros para el filtrado de los documentos a transmitir.
      1. Serie: Serie de las guías de remisión a transmitir.
      2. Guía de remisión inicial: Número de documento inicial a transmitir.
      3. Guía de remisión final: Número de documento inicial a transmitir.
    • Una vez finalizado el proceso de transmisión se visualiza una ventana con el log del proceso, presionar  para verificar el resultado de la transmisión.
    • Una vez enviado el documento, se procede a consultar la respuesta por parte del SRI mediante el proveedor tecnológico Stupendo mediante la opción Monitor. (tiempo aproximado entre envío y consulta del estatus del documento 1 minuto).
    • Indique los parámetros para el filtrado de los documentos que serán visualizados en el monitor.
      1. Serie: Serie de las guías de remisión a consultar.
      2. Guía de remisión inicial: Número de documento inicial.
      3. Guía de remisión final: Número de documento inicial.
    • Se valida que el documento sea muestre como Autorizado:

...

Proceso para generación manual de Guías de Remisión:

Guías de Remisión tipo Normal

  1. En el módulo Facturación (SIGAFAT) desde Actualizaciones | Form. de Remisión | Generac. de Form de Remisión(MATA462N):
    • Incluir una nueva remisión, donde se deben informar los siguientes datos: Transp.(F2_TRANSP), Vehíc. Trans (F2_VEICULO), Motivo Tras (F2_OBS), Fec.Ini.Tras (F2_FECDSE), Fch. Entrega(F2_FECENT) , Ruta (F2_RUTA), Serie Sust. (F2_SERMAN) y No. Doc Sust (F2_NFAGREG) 
      • Nota: Los campos Ruta (F2_RUTA), Serie Sust. (F2_SERMAN) y No. Doc Sust (F2_NFAGREG), no son obligatorios para la generación de la Guía de Remisión, por lo que pueden quedar vacíos.
      • Para informar los Serie Sust. (F2_SERMAN) y No. Doc Sust (F2_NFAGREG), se debe posicionarse sobre el campo Serie Sust. (F2_SERMAN) y utilizar la consulta estándar, la cual muestra las facturas de venta(tabla SF2):
  2. Acceder a la rutina Documentos Electrónicos (MATA486), ubicada en la ruta: Actualizaciones | Facturación | Documentos Electrónicos.
    • Especificar en los parámetros la Serie y el Tipo de Documento: Rem Norm y Tras .Nota: Al seleccionar la opción Rem Norm y Tras se mostrarán en el browser las Remisiones normales(RFN) y Remisiones de Transferencia(RTS)
    • Indique los parámetros para el filtrado de los documentos a transmitir.
      1. Serie: Serie de las guías de remisión a transmitir.
      2. Guía de remisión inicial: Número de documento inicial a transmitir.
      3. Guía de remisión final: Número de documento inicial a transmitir.
    • Una vez finalizado el proceso de transmisión se visualiza una ventana con el log del proceso, presionar  para verificar el resultado de la transmisión.
    • Una vez enviado el documento, se procede a consultar la respuesta por parte del SRI mediante el proveedor tecnológico Stupendo desde la opción Monitor. (tiempo aproximado entre envío y consulta del estatus del documento 1 minuto).
    • Indique los parámetros para el filtrado de los documentos que serán visualizados en el monitor.
      1. Serie: Serie de las guías de remisión a consultar.
      2. Guía de remisión inicial: Número de documento inicial.
      3. Guía de remisión final: Número de documento inicial.
    • Se valida que el documento sea muestre como Autorizado:

 


Guías de Remisión tipo Transferencia(Especie RTS)

  1. En el módulo Facturación (SIGAFAT) desde Actualizaciones | Movimientos |Fiscales | Transferencia entre sucursales (MATA462TN).:
    • Incluir una nueva remisión, donde se deben informar los siguientes datos: Transp.(F2_TRANSP), Vehíc. Trans (F2_VEICULO), Motivo Tras (F2_OBS), Fec.Ini.Tras (F2_FECDSE), Fch. Entrega(F2_FECENT) , Ruta (F2_RUTA), Serie Sust. (F2_SERMAN) y No. Doc Sust (F2_NFAGREG) 
      • Nota: Los campos Ruta (F2_RUTA), Serie Sust. (F2_SERMAN) y No. Doc Sust (F2_NFAGREG), no son obligatorios para la generación de la Guía de Remisión, por lo que pueden quedar vacíos.
  2. Acceder a la rutina Documentos Electrónicos (MATA486), ubicada en la ruta: Actualizaciones | Facturación | Documentos Electrónicos.
    • Especificar en los parámetros la Serie y el Tipo de Documento: Rem Norm y Tras .Nota: Al seleccionar la opción Rem Norm y Tras se mostrarán en el browser las Remisiones normales(RFN) y Remisiones de Transferencia(RTS)
    • Indique los parámetros para el filtrado de los documentos a transmitir.
      1. Serie: Serie de las guías de remisión a transmitir.
      2. Guía de remisión inicial: Número de documento inicial a transmitir.
      3. Guía de remisión final: Número de documento inicial a transmitir.
    • Una vez finalizado el proceso de transmisión se visualiza una ventana con el log del proceso, presionar  para verificar el resultado de la transmisión.
    • Una vez enviado el documento, se procede a consultar la respuesta por parte del SRI mediante el proveedor tecnológico Stupendo desde la opción Monitor. (tiempo aproximado entre envío y consulta del estatus del documento 1 minuto).
    • Indique los parámetros para el filtrado de los documentos que serán visualizados en el monitor.
      1. Serie: Serie de las guías de remisión a consultar.
      2. Guía de remisión inicial: Número de documento inicial.
      3. Guía de remisión final: Número de documento inicial.
    • Se valida que el documento sea muestre como Autorizado.

Guías de Remisión tipo Devolución(Especie RFD)

  1. En el módulo Facturación (SIGAFAT) desde Actualizaciones | Form. De Remisión | Devoluciones de Form. De Remisión(MATA462DN):
    • Incluir un nuevo remito informando la pregunta ¿Formulario propio? igual a “Si”, despues se deben informar los siguientes datos: Transp.(F1_TRANSP), Vehíc. Trans (F1_VEICUL1), Motivo Tras (F1_OBS), Fec.Ini.Tras (F1_FECDSE), Fch. Entrega(F1_FECENT) , Ruta (F1_RUTA), Serie Sust. (F1_SERMAN) y No. Doc Sust (F1_DOCMAN): 
      • Nota: Los campos Ruta (F1_RUTA), Serie Sust. (F1_SERMAN) y No. Doc Sust (F1_DOCMAN), no son obligatorios para la generación de la Guía de Remisión, por lo que pueden quedar vacíos.
  2. Acceder a la rutina Documentos Electrónicos (MATA486), ubicada en la ruta: Actualizaciones | Facturación | Documentos Electrónicos.
    • Especificar en los parámetros la Serie y el Tipo de Documento: Rem Norm y Tras .Nota: Al seleccionar la opción Rem Norm y Tras se mostrarán en el browser las Remisiones normales(RFN) y Remisiones de Transferencia(RTS)
    • Indique los parámetros para el filtrado de los documentos a transmitir.
      1. Serie: Serie de las guías de remisión a transmitir.
      2. Guía de remisión inicial: Número de documento inicial a transmitir.
      3. Guía de remisión final: Número de documento inicial a transmitir.
    • Una vez finalizado el proceso de transmisión se visualiza una ventana con el log del proceso, presionar  para verificar el resultado de la transmisión.
    • Una vez enviado el documento, se procede a consultar la respuesta por parte del SRI mediante el proveedor tecnológico Stupendo desde la opción Monitor. (tiempo aproximado entre envío y consulta del estatus del documento 1 minuto).
    • Indique los parámetros para el filtrado de los documentos que serán visualizados en el monitor.
      1. Serie: Serie de las guías de remisión a consultar.
      2. Guía de remisión inicial: Número de documento inicial.
      3. Guía de remisión final: Número de documento inicial.
    • Se valida que el documento sea muestre como Autorizado:

03. CONFIGURACIONES

  • Configurar parámetro MV_CFDFTGR con la ubicación del archivo FATGRECU.ini.
  • Configurar parámetro MV_CFDFTGD con la ubicación del archivo FATGDECU.ini.

FATGRECU.INI

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

...

Painel
titleBGColorlightblue
borderStyledashed
titleFATGRECU.INI

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

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

(PRE) _aTotal[002] := chr(13) + chr(10)
(PRE) _aTotal[003] := "99999999999999.99"
(PRE) _aTotal[004] := {"SD2",""}
(PRE) _aTotal[006] := M486NOMARC(SF2->F2_FILIAL, SF2->F2_DOC, SF2->F2_SERIE, SF2->F2_CLIENTE, SF2->F2_LOJA)
(PRE) _aTotal[007] := SuperGetMV("MV_CFDIAMB",.F.,"1")
(PRE) _aTotal[009] := TamSX3("F2_DOC")[1]
(PRE) _aTotal[012] := Iif(!Empty(SF2->F2_DOCMAN) .Or. !Empty(SF2->F2_SERMAN),fgetDocEqu(SF2->F2_FILIAL, SF2->F2_DOCMAN, SF2->F2_SERMAN,"NF"),"")
(PRE) lDocSust     := !Empty(_aTotal[012])
(PREREG) FsQuery(_aTotal[004],1,"D2_DOC='" + SF2->F2_DOC + "' AND D2_SERIE='" + SF2->F2_SERIE + "' AND D2_CLIENTE='" + SF2->F2_CLIENTE + "' AND D2_LOJA='" + SF2->F2_LOJA + "'","SD2->D2_DOC=SF2->F2_DOC .AND. SD2->D2_SERIE=SF2->F2_SERIE .AND. SD2->D2_CLIENTE=SF2->F2_CLIENTE .AND. SD2->D2_LOJA=SF2->F2_LOJA","D2_ITEM") .And. .T.

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

[XXX RECEPTOR]
(PREREG) (SA4->(MSSeek(xFilial("SA4")+SF2->F2_TRANSP)) , .T.)
(PREREG) (DA3->(MSSeek(xFilial("DA3")+SF2->F2_VEICULO)) , .T.)
(PREREG) (_aTotal[001] := '    <infoGuiaRemision>' + _aTotal[002],.T.)
(PREREG) (_aTotal[001] += '        <dirEstablecimiento>' + Alltrim(SA1->A1_END) + '</dirEstablecimiento>' + _aTotal[002],.T.)
(PREREG) (_aTotal[001] += '        <dirPartida>' + Alltrim(SA1->A1_END) + '</dirPartida>' + _aTotal[002],.T.)
(PREREG) (_aTotal[001] += '        <razonSocialTransportista>' + Alltrim(SA4->A4_NOME) + '</razonSocialTransportista>' + _aTotal[002],.T.)
(PREREG) (_aTotal[001] += '        <tipoIdentificacionTransportista>' + Alltrim(SA4->A4_TIPOTRA) + '</tipoIdentificacionTransportista>' + _aTotal[002],.T.)
(PREREG) (_aTotal[001] += '        <rucTransportista>' + Alltrim(SA4->A4_CGC) + '</rucTransportista>' + _aTotal[002],.T.)
(PREREG) (_aTotal[001] += '        <obligadoContabilidad>SI</obligadoContabilidad >' + _aTotal[002],.T.) 
(PREREG) (_aTotal[001] += '        <fechaIniTransporte>' + cValtoChar(SF2->F2_FECDSE) + '</fechaIniTransporte >' + _aTotal[002],.T.)
(PREREG) (_aTotal[001] += '        <fechaFinTransporte>' + cValtoChar(SF2->F2_FECANTF) + '</fechaFinTransporte>' + _aTotal[002],.T.)
(PREREG) (_aTotal[001] += '        <placa>' + Alltrim(DA3->DA3_PLACA) + '</placa>' + _aTotal[002],.T.)
(PREREG) (_aTotal[001] += '    </infoGuiaRemision>' + _aTotal[002],.T.)
(PREREG) (_aTotal[001] += '    <destinatarios>',.T.)
(PREREG) ENCODEUTF8(_aTotal[001])

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

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

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

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

(ARQ) _aTotal[094]



FATGDECU.INI

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

Painel
titleBGColorlightblue
borderStyledashed
titleFATGDECU.INI

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

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

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

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

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

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

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

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

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

(ARQ) _aTotal[094]


04. DICCIONARIO DE DATOS


Parámetros en el archivo SX6 – Parámetros:

...

AtributoContenido
Campo

F2_TRANSP

TipoC - Caracter
Tamaño8
ContextoReal
ValidaciónVazio() .Or. ExistCPO("SA4")                                                                
PropiedadModificar
Tit. EspañolTransp.
Desc. EspañolCódigo del Transportador. 
HelpEl contenido de este campo es tomado de la tabla Transportista – SA4 y es utilizado obtener los datos transportistas y generar los nodos <razonSocialTransportista>, <tipoIdentificacionTransportista> y <rucTransportista> en el XML.

05. OTRAS DOCUMENTACIONES

06. TABLAS UTILIZADAS

  • SA1 - Clientes
  • SM0 - Empresas
  • SB1 - Productos.
  • SFP - Control de Formularios..
  • SF2 - Documentos de salida.
  • SD2 - Ítems de documentos de salida.
  • SYA - Países.
  • SF4 - Tipos de Entrada/salida
  • SC5 - Encabezado de Pedidos de Venta.
  • SFC - Detalle Tipos de Entrada/Salida (impuestos).