FAQs - Suporte técnico

Cross Segmentos - TOTVS Backoffice (Línea Protheus) MI - Facturación (SIGAFAT) - Cómo generar Facturas de Traslado con Complemento Carta Porte desde ExecAuto

time.png Tempo aproximado para lectura: 00:05:00 min

Duda

¿Cómo generar Facturas de Traslado con Complemento Carta Porte desde ExecAuto?

Ambiente
Cross Segmentos - TOTVS Backoffice (Línea Protheus) MI - Facturación (SIGAFAT) - Todas las versiones

Solución
Para generar Facturas de Traslado con Complemento Carta Porte desde ExecAuto, debes tener las rutinas LOCXNF y LOCXMEX  con fechas igual o mayor al 19/07/2022. A continuación un ejemplo de uso:

#include "Protheus.ch"

User Function M467Auto()
Processa( { || GeneraNF() } , "", "Generando NF con carta porte..." )
Return

Static Function GeneraNF()
Local aCab := {}
Local aLinha := {}
Local aItens := {}
Local aCartaPorte := {}
Local cSerie := "A "
Local cDoc := ""
Local cCertFol := SuperGetMv("MV_CFDI_CS",,"")
Local cProd := PadR("TST000000000037",20)

Private lMsErroAuto := .F.

// Consecutivo factura
SX5->(DBSetOrder(1))
SX5->(MsSeek(xFilial("SX5")+"01"+cSerie))
cDoc := IIf( SX5->(Found()), PadR(Trim(X5Descri()),20) , StrZero(126,20,0) )

// Encabezado de factura
AAdd( aCab, { "F2_CLIENTE", "016082" , Nil } )
AAdd( aCab, { "F2_LOJA" , "01" , Nil } )
AAdd( aCab, { "F2_SERIE" , cSerie , Nil } )
AAdd( aCab, { "F2_DOC" , cDoc , Nil } )
AAdd( aCab, { "F2_COND" , "015" , Nil } )
// AAdd( aCab, { "F2_CONUNI" , "2" , Nil } )
AAdd( aCab, { "F2_EMISSAO", dDataBase , Nil } )
AAdd( aCab, { "F2_EST" , "QRO" , Nil } )
AAdd( aCab, { "F2_TIPO" , "N" , Nil } )
AAdd( aCab, { "F2_ESPECIE", "NF " , Nil } )
AAdd( aCab, { "F2_PREFIXO", "A" , Nil } )
AAdd( aCab, { "F2_MOEDA" , 1 , Nil } )
AAdd( aCab, { "F2_TXMOEDA", 1 , Nil } )
AAdd( aCab, { "F2_FORMUL" , "S" , Nil } )
AAdd( aCab, { "F2_TIPODOC", "21" , Nil } )
AAdd( aCab, { "F2_USOCFDI", "P01" , Nil } )
AAdd( aCab, { "F2_TPCOMPL", "S" , Nil } )
AAdd( aCab, { "F2_APROFOL", "1" , Nil } )
AAdd( aCab, { "F2_CERTFOL", cCertFol , Nil } )

// Ítems de la factura
aLinha := {}
AAdd( aLinha, { "D2_COD" , cProd , Nil } )
AAdd( aLinha, { "D2_UM" , "UN" , Nil } )
AAdd( aLinha, { "D2_QUANT" , 1 , Nil } )
// AAdd( aLinha, { "D2_PRCVEN" , 0 , Nil } ) // En documento tipo transferencia no informar este campo, si se envía en cero será rechazado
// AAdd( aLinha, { "D2_TOTAL" , 0 , Nil } ) // Aplica el mismo criterio que precio unitario
AAdd( aLinha, { "D2_PESO" , 1 , Nil } )
AAdd( aLinha, { "D2_TES" , "518" , Nil } )
AAdd( aLinha, { "D2_ESPECIE", "NF " , Nil } )
AAdd( aItens, aLinha)

//********** Carta porte **********
aCartaPorte := { Array(0), Array(2,0), Array(1,0), Array(1,0) }

// Generales
aAdd( aCartaPorte[1], {"A1X_INTERN", "N"} )
aAdd( aCartaPorte[1], {"A1X_ENTSAL", "S"} )
aAdd( aCartaPorte[1], {"A1X_TRANSP", "01"} )
aAdd( aCartaPorte[1], {"A1X_PERSCT", "TPAF02"} )
aAdd( aCartaPorte[1], {"A1X_PERMIS", "132579"} )
aAdd( aCartaPorte[1], {"A1X_ASEGUR", "ASEMEX"} )
aAdd( aCartaPorte[1], {"A1X_POLIZA", "246800"} )
aAdd( aCartaPorte[1], {"A1X_VEHIC" , "00000001"} )

// Ubicaciones
aAdd( aCartaPorte[2][1], {"A1Y_TIPEST", "O"} )
aAdd( aCartaPorte[2][1], {"A1Y_RFCORI", "XAXX010101000"} )
aAdd( aCartaPorte[2][1], {"A1Y_NOMORI", "UBICACION ORIGEN"} )
aAdd( aCartaPorte[2][1], {"A1Y_FECSAL", CtoD("12/07/2022")} )
aAdd( aCartaPorte[2][1], {"A1Y_HRASAL", "12:00:00"} )
aAdd( aCartaPorte[2][1], {"A1Y_CALORI", "DIRECCION ORIGEN"} )
aAdd( aCartaPorte[2][1], {"A1Y_EXTORI", "1020"} )
aAdd( aCartaPorte[2][1], {"A1Y_EDOORI", "QUE"} )
aAdd( aCartaPorte[2][1], {"A1Y_CPORI" , "76000"} )
aAdd( aCartaPorte[2][1], {"A1Y_COLORI", "0001"} )
aAdd( aCartaPorte[2][1], {"A1Y_LOCORI", "01"} )
aAdd( aCartaPorte[2][1], {"A1Y_MUNORI", "014"} )
aAdd( aCartaPorte[2][1], {"A1Y_PAIORI", "MEX"} )

aAdd( aCartaPorte[2][2], {"A1Y_TIPEST", "D"} )
aAdd( aCartaPorte[2][2], {"A1Y_DISREC", 15} )
aAdd( aCartaPorte[2][2], {"A1Y_RFCORI", "XAXX010101000"} )
aAdd( aCartaPorte[2][2], {"A1Y_NOMORI", "UBICACION DESTINO"} )
aAdd( aCartaPorte[2][2], {"A1Y_FECSAL", CtoD("12/07/2022")} )
aAdd( aCartaPorte[2][2], {"A1Y_HRASAL", "16:00:00"} )
aAdd( aCartaPorte[2][2], {"A1Y_CALORI", "DIRECCION DESTINO"} )
aAdd( aCartaPorte[2][2], {"A1Y_EXTORI", "3004"} )
aAdd( aCartaPorte[2][2], {"A1Y_EDOORI", "QUE"} )
aAdd( aCartaPorte[2][2], {"A1Y_CPORI" , "76246"} )
aAdd( aCartaPorte[2][2], {"A1Y_COLORI", "0001"} )
aAdd( aCartaPorte[2][2], {"A1Y_MUNORI", "011"} )
aAdd( aCartaPorte[2][2], {"A1Y_PAIORI", "MEX"} )

// Operadores
aAdd( aCartaPorte[3][1], {"A1Z_OPERAD", "000001"} )

// Propietarios/Arrendadores
aAdd( aCartaPorte[4][1], {"AE0_TIPO" , "P"} )
aAdd( aCartaPorte[4][1], {"AE0_PARTE" , "PT01"} )
aAdd( aCartaPorte[4][1], {"AE0_TRANSP", "000001"} )

// Rutina automática
MSExecAuto( { |x,y,z,w| Mata467n(x,y,z,,,,w) }, aCab, aItens, 3, aCartaPorte ) //3-Incluir, 5-Excluir e 6-Cancelar

If lMsErroAuto
MsgStop("Error en la grabación de la factura con carta porte.")
MostraErro()
Else
MsgAlert("Factura incluida con éxito.")
EndIf

Return

 

Importante

 

Considerar los siguientes criterios sobre los datos para la factura de tipo Traslado y para la Carta Porte:

Los campos considerados en el ejemplo son los esenciales para la aceptación de la factura así como para la generación del CFDI.

Encabezado de la factura

  • En el ejemplo se muestra la forma estándar de obtener el consecutivo de documento de acuerdo a la serie. El sistema realiza la actualización para el próximo consecutivo.

Ítems de la factura

  • El Precio Unitario (D2_PRCVEN) y el Valor Total (D2_TOTAL), no deben ser incluidos. Si se envían en cero, se rechaza la factura.
  • El Peso (D2_PESO) debe ser enviado con un valor mayor a 0.

Carta Porte

  • El arreglo de datos debe tener 4 elementos principales, del 2 al 4 deben ser sub-arreglos indicando la cantidad de ítems a contener.
  • Si no se requiere alguno de los elementos, por ejemplo el 4to, Propietarios/Arrendatarios, el elemento se debe definir aunque no es necesario incluir el sub-arreglo.

Todos los campos se validan con las mismas reglas que en la captura manual, incluso aquellos que no son obligatorios. Para detalles, consulte el documento técnico cuyo enlace se encuentra la sección 05. Asuntos relacionados. 

¿Fue útil este artículo?
Usuarios a los que les pareció útil: 0 de 0

0 Comentarios

Inicie sesión para dejar un comentario.
X Fechar

Olá ,

Há pendência referente a um de seus produtos contratados para a empresa ().

Entre em contato com o Centro de Serviços TOTVS para tratativa.

Ligue! 4003-0015 opção 4 e 9 ou registre uma solicitação para CST – Cobrança – Verificação de pendências financeiras . clique aqui.

TOTVS

X Fechar

Olá ,

Seu contato não está cadastrado no Portal do Cliente como um perfil autorizado a solicitar consultoria telefônica.

Por gentileza, acione o administrador do Portal de sua empresa para: (1)configurar o seu acesso ou (2)buscar um perfil autorizado para registro desse atendimento.

Em caso de dúvidas sobre a identificação do contato administrador do Portal, ligue (11) 4003-0015, opção 7 e, em seguida, opção 4 para buscar o suporte com o time de Assessoria ao Portal do Cliente. . clique aqui.

TOTVS

X Fechar

Olá ,

Para o atendimento de "Consultoria Telefônica" você deverá estar de acordo com o Faturamento.

TOTVS

X Fechar

Olá,

Algo inesperado ocorreu, e o usuario nao foi reconhecido ou você nao se encontra logado

Por favor realize um novo login

Em caso de dúvidas, entre em contato com o administrador do Portal de Clientes de sua empresa para verificação do seu usuário, ou Centro de Serviços TOTVS.

Ligue! 4003-0015 opção 4 e 9 ou registre uma solicitação para CST – Cadastros . clique aqui.

TOTVS

Chat _

Rellene los campos siguientes para iniciar el chat:

Chat _