Histórico da Página
01. DATOS GENERALES
Producto |
| |||||||||
---|---|---|---|---|---|---|---|---|---|---|
Línea de producto: |
| |||||||||
Segmento: |
| |||||||||
Módulo: | SIGAFAT - Facturación | |||||||||
Función: |
| |||||||||
País: | México | |||||||||
Ticket: | 13513153 | 14326293 | |||||||||
Requisito/Story/Issue (informe el requisito vinculado): | DMINA-14988, DMINA-15837 |
02. SITUACIÓN/REQUISITO
Al intentar generar una factura con complemento de Carta Porte desde la rutina automática MATA467N, manda log del campo de Precio Unitario (D2_PRCVEN) como inválido cuando se coloca en 0.
03. SOLUCIÓN
Modificación de rutinas para considerar Carta Porte desde ExecAuto:
...
Totvs custom tabs box | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||
|
04. INFORMACIÓN ADICIONAL
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
#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 |
...
Card documentos Informacao Esta solución aplica para ambiente con CFDI versión 3.3 o 4.0. Titulo ¡IMPORTANTE!
05. ASUNTOS RELACIONADOS
...
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas