| Linha de Produto: | Microsiga Protheus® |
|---|---|
| Segmento: | Logística |
| Módulo: | SIGATMS - Gestão de Transportes |
O ponto de entrada TM200QBR possibilita ao usuário alterar a composição de frete. É chamado pouco antes da gravação das tabelas de sistema do TMS.
É possível neste ponto de entrada acrescentar componentes de frete, ou alterar o seu valor, diferentes da tabela de frete apenas especificamente para o conhecimento que está sendo calculado. |
A tabela 2005 que é composta por frete peso somente, através do ponto de entrada poderíamos acrescentar o componente frete valor na composição de frete de um determinado conhecimento, desde que o componente esteja cadastrado corretamente na tabela de componentes de frete. (Vale lembrar que ao tentar acrescentar um componente que não exista, o sistema apenas irá ignorá-lo.)Lembramos que o cálculo do frete permite ter um preço diferenciado para cada produto na tabela de frete ou ajuste de frete, por isso, o ponto de entrada será chamado uma vez para cada produto que estiver dentro da nota fiscal do cliente.
Ex: O conhecimento contém 1 nota fiscal sendo que a sua estrutura:
Ao efetuar o cálculo de frete, no exemplo acima, o ponto de entrada será chamado 2 vezes, uma vez para o produto 000001 e uma vez para 000002 pois o sistema permite que sejam aplicados preços diferenciados para cada produto.
Exemplo: Neste exemplo iremos alterar o valor de cada componente indiscriminadamente para R$100,00.
Excluindo somente o componente ‘TF’ que seria o total de todos os outros componentes.
No exemplo, também mostramos como receber todos os parâmetros que são passados ao ponto de entrada para que o cliente sua própria regra:
Fonte
TMSA200.PRW
Retorno
aRet(array_of_record)
aRet[1][1]= Código do componente de frete (caracter)
aRet[1][2]= Valor novo do componente de frete(numérico)
User Function TM200QBR()
Local aFrete := AClone( PARAMIXB[1] )
Local nQtdVol:= PARAMIXB[2]
Local nValor := PARAMIXB[3]
Local nPeso := PARAMIXB[4]
Local nPesoM3:= PARAMIXB[5]
Local nMetro3:= PARAMIXB[6]
Local nSeguro:= PARAMIXB[7]
Local nNfCTRC:= PARAMIXB[8]
Local nQtdUni:= PARAMIXB[9]
Local nValDpc:= PARAMIXB[10]
Local cCliDev:= PARAMIXB[11]
Local cLojDev:= PARAMIXB[12]
Local cCdrOri:= PARAMIXB[13]
Local cCdrDes:= PARAMIXB[14]
Local cCodPro:= PARAMIXB[15]
Local cServic:= PARAMIXB[16]
Local cTabFre:= PARAMIXB[17]
Local cTipTab:= PARAMIXB[18]
Local cSeqTab:= PARAMIXB[19]
Local aNfCTRC:= AClone( PARAMIXB[20] )
Local nCount := 0
Local aRet := {}
For nCount := 1 To Len(aFrete)
If aFrete[nCount,3] <> 'TF'
Aadd(aRet,{aFrete[nCount,3],100 })
EndIf
Next nCount
Return aRet
|
Não há.
<style>
div.theme-default .ia-splitter #main {
margin-left: 0px;
}
.ia-fixed-sidebar, .ia-splitter-left {
display: none;
}
#main {
padding-left: 10px;
padding-right: 10px;
overflow-x: hidden;
}
.aui-header-primary .aui-nav, .aui-page-panel {
margin-left: 0px !important;
}
.aui-header-primary .aui-nav {
margin-left: 0px !important;
}
</style> |