Árvore de páginas

Versões comparadas

Chave

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

...

Nota: La actualizaciones presentadas a continuación son compatibles con versiones mayor o igual a 11.0

RutinasFecha Actualización

MATA486.PRW

19/02/2019 


  • Registrar una factura de venta; SIGAFAT | Actualizaciones | Facturación | Facturaciones.
  • Transmitir la factura capturada; SIGAFAT | Actualizaciones | Facturación | Documentos Electrónicos.
  • Visualizar el archivo XML recibido del servicio web de TFHKA, si el campo extensible tiene un código que corresponda a la "Tabla de códigos para campos extensibles", ese campo estará incluido en el nodo que le corresponda (receptor, encabezado, detalle, etc). Por otra parte, si es un campo "libre", éste se incorpora en el nodo ExtensionContent en la raíz del archivo XML.

...

c) Ejemplo de documento electrónico en PDF generado por TFHKA con campos extensibles








2.3 comercio exterior

2.3.1 Visión General

Desarrollar funcionalidad para que al transmitir los documentos de exportación genere de forma automática los campos extensibles relacionados a TRM.

Actualmente al momento de intentar Transmitir una Factura de Exportación (Cliente con A1_EST = EX), se obtiene la respuesta "109-[Linea 02 Factura General] El campo TRM es un campo compuesto requerido para Facturas de Exportación, debe enviar los códigos 81,83,84,85".

2.3.2 Ejemplo de utilización 

Configuraciones previas:

  • Cliente extranjero; Campo de estado (A1_EST) igual a "EX".
  • El campo Moneda DIAN (CTO_MOESAT) de la moneda contable "01" debe ser diferente a la Moneda del documento (F2/F1_MOEDA).

Pasos para validar la solución:

  1. Acceda a la rutina de facturación; SIGAFAT | Actualizaciones | Facturación | Facturación (MATA467N).
    - Registre una Factura de Exportación.
  2. Acceda a la rutina de transmisión; SIGAFAT | Actualizaciones | Facturación | Transmitir Factura Electrónica (MATA486).
    - Seleccione la opción Otras Acciones | Transmitir.
    - Especifique los parámetros del proceso y confirme.
    - El sistema indicará que la transmisión fue exitosa.
    - Desde la ruta de facturas autorizadas, visualice el archivo XML recibido del proveedor tecnológico. Verifique la existencia del nodo cac:PaymentExchangeRate el cual contiene los campos TRM:

Image Added


Punto de entrada M486CEXT - Campos extensibles.

Ejemplo de generación de los campos correspondientes a TRM (81, 83, 84 y 85):

#Include "Protheus.ch"
#Include "rwmake.ch"

User Function M486CEXT()

Local aArea := getArea()
Local aAreaSA1 := SA1->(GetArea())
Local aAreaSF1 := SF1->(GetArea())
Local aAreaSF2 := SF2->(GetArea())
Local aCampos := {}
Local cSerie := ParamIXB[1,1]
Local cFactura := ParamIXB[1,2]
Local cCliente := ParamIXB[1,3]
Local cLoja := ParamIXB[1,4]
Local cEspecie := ParamIXB[2]
Local cEst := ""
Local cTxMoeda := ""

dbSelectArea("SA1")
dbSetOrder(1)
dbSeek(xFilial("SA1")+cCliente+cLoja)
If !Empty(SA1->A1_CONTATO)
    aAdd( aCampos , {"Destinatario", "", "48", "1", Alltrim(SA1->A1_CONTATO), "1"} )
EndIf

If !Empty(SA1->A1_HPAGE)
    aAdd( aCampos , {"Pagina web", "", "1", "1", Alltrim(SA1->A1_HPAGE), "1"} )
EndIf
SA1->(RestArea(aAreaSA1))

If Alltrim(cEspecie) $ "NF|NDC"
    dbSelectArea("SF2")
    dbSetOrder(1)
    dbSeek(xFilial("SF2")+cFactura+cSerie)
    cEst := SF2->F2_EST
    cTxMoeda := Alltrim(Str(SF2->F2_TXMOEDA))
    SF2->(RestArea(aAreaSF2))

Else
    dbSelectArea("SF1")
    dbSetOrder(1)
    dbSeek(xFilial("SF1")+cFactura+cSerie)
    cEst := SF1->F1_EST
    cTxMoeda := Alltrim(Str(SF1->F1_TXMOEDA))
    SF1->(RestArea(aAreaSF1))

EndIf

If cEst == "EX"
    aAdd( aCampos , {"Tasa de Cambio" , "", "81", "1", "" , "1"} )
    aAdd( aCampos , {"Moneda Origen" , "", "83", "1", "USD" , "1"} )
    aAdd( aCampos , {"Moneda Final" , "", "84", "1", "COP" , "1"} )
    aAdd( aCampos , {"Valor del Calculo", "", "85", "1", cTxMoeda, "1"} )
Endif

RestArea(aArea)

Return aCampos


Scripts de generación de documentos electrónicos (archivos XML).

Las modificaciones realizadas son para el correcto manejo de campos cuando el cliente es persona física. En el nodo fe:AccountingCustomerParty (datos del receptor) se incluye uno de los siguientes subnodos dependiendo del tipo de persona:


Tipo de persona

Subnodo

Atributo

Contenido

Descripción

Jurídicafe:PartyLegalEntitycbc:RegistrationNameA1_NOMERazón social / Nombre completo
Físicafe:Personcbc:FirstNameA1_NOMEPRIPrimer nombre


cbc:MiddleNameA1_NOMEPESSegundo nombre


cbc:FamilyNameA1_NOMEPATSegundo apellido