Há a necessidade de gravar a Tabela do Cálculo de Frete (GWG) na rotina do Frete Combinado (GFEA084), quando executada de forma automática.
Atualmente, a rotina GFEA084 apenas suporta as tabelas GWF (Cálculo de Frete), GWI (Componente do Cálculo de Frete) e GWH (Documento do Cálculo de Frete).
A rotina foi alterada para permitir a inclusão de registros na tabela GWG de forma automática (apenas sem interface).
A inclusão é opcional, e essa tabela não é visível na tela de inclusão\alteração\visualização\exclusão.
1. As funcionalidades de tela não devem ser afetadas por essa alteração.
2. Abaixo segue um fonte de exemplo da rotina automática:
#INCLUDE "PROTHEUS.CH"
#INCLUDE "FWMVCDEF.CH"
User Function XGFE003()
Local nInd
Local cNumCalc
Local cObsGwf
Local cCodCom
Local nTotFrt
Local cNUMDOC
Local cSerDoc
Local cTpDoc
Local dEmisDc
Local nTrecho
Local oModelGFE
Local aErro
Local cCDCLFR := ''
Local cCDTPOP := ''
Local cCDEMIT := ''
Local cNRTAB := ''
Local cNRNEG := ''
Local cCDFXTV := ''
Local cNRROTA := ''
oModelGFE := FWLoadModel("GFEA084")
oModelGFE:SetOperation( MODEL_OPERATION_INSERT )
oModelGFE:Activate()
aErro := {}
cNumCalc := '00002069'
cObsGwf := 'Observação teste'
cCodCom := 'FRETE PESO'
nTotFrt := 252.27
cNUMDOC := '20190228'
cSerDoc := 'UN'
cTpDoc := 'NFS'
dEmisDc := '77170'
nTrecho := '01'
// GWG - Tabela do Cálculo de Frete
cCDCLFR := '0001' // Classe de Frete
cCDTPOP := '1' // Tipo de Operação
cCDEMIT := '1' // Emissor
cNRTAB := '151003' // Tabela de Frete
cNRNEG := '800' // Negociação
cCDFXTV := '1' // Sequência Faixa
cNRROTA := '60' // Rota
oModelGFE:SetValue( 'GFEA084_GWF', 'GWF_FILIAL' , xFilial() )
oModelGFE:SetValue( 'GFEA084_GWF', 'GWF_NRCALC' , cNumCalc )
oModelGFE:SetValue( 'GFEA084_GWF', 'GWF_DTCRIA' , dDataBase )
oModelGFE:SetValue( 'GFEA084_GWF', 'GWF_HRCRIA' , SubStr(TIME(),1,5) )
oModelGFE:SetValue( 'GFEA084_GWF', 'GWF_USUCRI' , RetCodUsr() )
oModelGFE:SetValue( 'GFEA084_GWF', 'GWF_OBS' , cObsGwf )
oModelGFE:SetValue( 'GFEA084_GWI', 'GWI_FILIAL' , xFilial() )
oModelGFE:SetValue( 'GFEA084_GWI', 'GWI_CDCOMP' , cCodCom )
oModelGFE:SetValue( 'GFEA084_GWI', 'GWI_VLFRET' , nTotFrt )
oModelGFE:SetValue( 'GFEA084_GWH', 'GWH_FILIAL' , xFilial() )
oModelGFE:SetValue( 'GFEA084_GWH', 'GWH_NRDC' , cNUMDOC )
oModelGFE:SetValue( 'GFEA084_GWH', 'GWH_SERDC' , cSerDoc )
oModelGFE:SetValue( 'GFEA084_GWH', 'GWH_CDTPDC' , cTpDoc )
oModelGFE:SetValue( 'GFEA084_GWH', 'GWH_EMISDC' , dEmisDc )
oModelGFE:SetValue( 'GFEA084_GWH', 'GWH_TRECHO' , nTrecho )
oModelGFE:SetValue( 'GFEA084_GWG', 'GWG_FILIAL' , xFilial() )
oModelGFE:SetValue( 'GFEA084_GWG', 'GWG_NRCALC' , cNumCalc )
oModelGFE:SetValue( 'GFEA084_GWG', 'GWG_CDCLFR' , cCDCLFR )
oModelGFE:SetValue( 'GFEA084_GWG', 'GWG_CDTPOP' , cCDTPOP )
oModelGFE:SetValue( 'GFEA084_GWG', 'GWG_CDEMIT' , cCDEMIT )
oModelGFE:SetValue( 'GFEA084_GWG', 'GWG_NRTAB' , cNRTAB )
oModelGFE:SetValue( 'GFEA084_GWG', 'GWG_NRNEG' , cNRNEG )
oModelGFE:SetValue( 'GFEA084_GWG', 'GWG_CDFXTV' , cCDFXTV )
oModelGFE:SetValue( 'GFEA084_GWG', 'GWG_NRROTA' , cNRROTA )
//Valida os dados informados
If oModelGFE:VldData()
//Confirma
oModelGFE:CommitData()
ConfirmSX8()
MsgInfo("Frete combinado gerado com sucesso!", "Integração SIGAGFE")
Else
RollBackSXE()
aErro := oModelGFE:GetErrorMessage()
Aviso("Integração SIGAGFE","Erro na geração do calculo: "+aErro[4]+"-"+aErro[6],{"OK"},3)
EndIf
oModelGFE:Deactivate()
oModelGFE:Destroy()
Return