Árvore de páginas

Versões comparadas

Chave

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

...

  1. Informar en los parámetros:
    1. ¿Tipo de documento? = Factura
    2. ¿Serie? = Serie de la Factura de Salida incluida anteriormente.
    3. ¿Estatus? = vacío o cero.
    4. ¿Fecha Inicial? / ¿Fecha Final? = Rango que contemple la fecha de emisión de la Factura de Salida.
  2. Ejecutar la acción Transmitir, e informar los parámetros:
    • ¿Serie de Factura? = Serie de la Factura de Salida incluida anteriormente.
    • ¿Factura Inicial? / ¿Factura Final? = Rango que contemple la fecha de emisión de la Factura de Salida.
  3. Validar que el proceso de transmisión sea exitoso.
  4. Ejecutar desde otras acciones la acción Imprimir PDF y validar que en la sección Información adicional se visualicen los datos de la autorretención.


2.7 PUNTO DE ENTRADA PARA ATRIBUTOS OPCIONALES (M486OWSCOL)

2.7.1 Visión General

Se solicita la activación de un Punto de Entrada para poder enviar los atributos opcionales disponibles en las clases de los web services de The Factory HKA (Ticket: 8394670).


IMPORTANTE: La activación de dicho Punto de Entrada deberá ser realizado por algún analistas con conocimiento de programación, ya que será responsabilidad de este si al no definir correctamente la regla de negocio esto pudiera causar rechazo en la transmisión de Facturas de Entrada, Notas de Débito o Notas de Crédito.

2.7.2 Configuraciones Previas

Contar con las siguiente rutina actualizada con fecha igual o posterior:

RutinaNombre técnicoFecha
M486XFUNCOFunciones genéricas para generación de XML para país Colombia28/04/2020


Compilar el punto de entrada M486OWSCOL, el cual recibo los siguientes parámetros:

  • Serie del documento
  • Folio del documento
  • Código del Cliente
  • Código de la Tienda
  • Objeto del XML
  • Opción (1=Nivel documento y 2=Nivel ítem)
  • Objeto con atributos del web services de The Factory HKA (Solo atributos de la clase FacturaGeneral)


Ejemplo del Punto de Entrada:

#include 'protheus.ch'

User Function M486OWSCOL()
Local cSerieDoc := PARAMIXB[1] //Serie
Local cNumDoc := PARAMIXB[2] //Número de Documento
Local cCodCli     := PARAMIXB[3] //Código de Cliente
Local cCodLoj    := PARAMIXB[4] //código de loja
Local oXML        := PARAMIXB[5] //Nodo del XML
Local nOpc         := PARAMIXB[6] //1=Nivel documento 2=Nivel detalle
Local oWS          := PARAMIXB[7] //Objeto de web services

Local nItem := Val(oXML:_CBC_ID:TEXT)
Local cCodProd := ""
Local cSDITem := ""
Local cFilSD := xFilial("SD2")

If nOpc == 1 //Encabezado
          //F2_FILIAL+F2_DOC+F2_SERIE+F2_CLIENTE+F2_LOJA+F2_FORMUL+F2_TIPO (Índice 1)
          //Clase oWSCliente
          oWS:oWSCliente:cnombreComercial := "NOMBRE COMERCIAL PE"

          //Clase oWSterminosEntrega
         oWS:oWSterminosEntrega := Service_TerminosDeEntrega():New()
         oWS:oWSterminosEntrega:ccostoTransporte:= "18.00"
ElseIf nOpc == 2 //Detalle del documento
         cCodProd := Padr(oXML:_FE_ITEM:_CAC_SELLERSITEMIDENTIFICATION:_CBC_ID:TEXT,TamSX3("D2_COD")[1],' ')
         cSDITem := Padl(oXML:_CBC_ID:TEXT,TamSX3("D2_ITEM")[1],'0')
         dbSelectArea("SD2")
         SD2->(dbSetOrder(3)) //D2_FILIAL + D2_DOC + D2_SERIE + D2_CLIENTE + D2_LOJA + D2_COD + D2_ITEM
         If SD2->(dbSeek( cFilSD + cNumDoc + cSerieDoc + cCodCli + cCodLoj + cCodProd + cSDITem))        
                  //Clase oWSextras (Factura_Detalle)
                  oWS:oWSdetalleDeFactura:oWSFacturaDetalle[nItem]:oWSextras := Service_ArrayOfExtras():New()
                  oWSExtDet := Service_Extras():NEW()
                  oWSExtDet:ccontrolInterno1 := "NO. SERIE"
                  oWSExtDet:cnombre := "1"
                  oWSExtDet:cpdf := "1"
                  oWSExtDet:cvalor := SD2->D2_NUMSERI
                  oWSExtDet:cxml := "1"
                  aAdd(oWS:oWSdetalleDeFactura:oWSFacturaDetalle[nItem]:oWSextras:oWSextras,oWSExtDet)
        EndIf
EndIf
Return Nil


En el punto de entrada de ejemplo se llenan atributos que son opcionales a nivel documento y a nivel detalle, realizando la bifurcación mediante el parámetro Opción (PARAMIXB[6]), si se requiere ir a 


IMPORTANTE:

  • Si no se encuentran los activados los atributos de una clase, es necesario hacerlo de la siguiente manera Service_TerminosDeEntrega():New() haciendo uso del método New.
  • Se puede hacer uso de los nodos del XML estándar generado desde protheus recibido en el parámetro Objeto del XML (PARAMIXB[5]).


Clases disponibles:

NombreWSLD Data
AnticiposService_ArrayOfAnticipos

Service_Anticipos
AutorizadoService_Autorizado
Cargos/DescuentosService_ArrayOfCargosDescuentos

Service_CargosDescuentos
Condición de PagoService_ArrayOfCondicionDePago

Service_CondicionDePago
Documentos referenciadosService_ArrayOfDocumentoReferenciado

Service_DocumentoReferenciado
ExtrasService_ArrayOfExtras

Service_Extras
Medios de PagoService_ArrayOfMediosDePago

Service_MediosDePago
Tasa de cambio alternativaService_TasaDeCambioAlternativa
Términos de entregaService_TerminosDeEntrega
Entrega de mercancíaService_Entrega
Información adicionalService_ArrayOfLineaInformacionAdicional

Service_LineaInformacionAdicional
Detalle FacturaService_ArrayOfFacturaDetalle

Service_FacturaDetalle


2.7.3 Ejemplo de utilización 

En el módulo Facturación (SIGAFAT) ir al menú Actualizaciones | Facturación | Facturaciones (MATA467N).

  1. Informar en los parámetros:
    • ¿Normal/Benef? = Normal
  2. Incluir un nuevo documento  e informar en el encabezado el Cliente (F2_CLIENTE), Loja (F2_LOJA), Núm. Doc (F2_DOC), Serie (F2_SERIE)
  3. Indica en el campo Tipo Oper.  (F2_TIPOPE).
  4. Informar el detalle del documento, utilizando un Tipo de Salida/Entrada con calculo de autorretención (Las autoretenciones no suman ni restan al valor bruto del documento). 
  5. Una vez que se han informado todos los datos presionar Grabar para confirmar el guardado del documento.

En el módulo Facturación (SIGAFAT) ir al menú Actualizaciones | Facturación | Facturación Electrónica (MATA486).

  1. Informar en los parámetros:
    1. ¿Tipo de documento? = Factura
    2. ¿Serie? = Serie de la Factura de Salida incluida anteriormente.
    3. ¿Estatus? = vacío o cero.
    4. ¿Fecha Inicial? / ¿Fecha Final? = Rango que contemple la fecha de emisión de la Factura de Salida.
  2. Ejecutar la acción Transmitir, e informar los parámetros:
    • ¿Serie de Factura? = Serie de la Factura de Salida incluida anteriormente.
    • ¿Factura Inicial? / ¿Factura Final? = Rango que contemple la fecha de emisión de la Factura de Salida.
  3. Validar que el proceso de transmisión sea exitoso.
  4. Validar que se hayan enviado los datos definidos en el punto de entrada.

IMPORTANTE: Si se requiere sean impresos en el PDF de The Factory KHA, y los datos son enviados pero no se visualizan en el formato, es un tema que deberá ser tratado directamente con el proveedor tecnológico.