Árvore de páginas

GFEA0665 - Ponto de entrada para mostrar os componentes de frete

Características do Requisito

Linha de Produto:

Microsiga Protheus

Segmento:

Supply Chain - Logística

Módulo:

SIGAGFE


Ponto de Entrada - GFE0665

Descrição:

Mostrar os componentes relacionados ao frete

Localização:

GFE066MKB - Função que mostra a tela de conferência

Programa Fonte:

GFEA066 - Auditoria/Aprovação de Documento de Frete

Parâmetros:

NomeTipoDescriçãoObrigatório
CategoriaCaractere

1 - Frete Unidade

2 - Frete Valor

3 - Taxas

4 - Pedágio

Sim

Retorno:

Não se aplica

Observações:


 

Exemplo: GFEA0665
#INCLUDE "PROTHEUS.CH"
#INCLUDE "FWMVCDEF.CH"

User Function GFEA0665()

   local nNrCalc := ""
   Local aCalcRel   := {}
   local cCatVal  := PARAMIXB[2] 
   local lObrigat  := ""
   Local lExistCamp:= GFXCP12116("GWF","GWF_CDESP") .And. (SuperGetMV("MV_DPSERV", .F., "1") == "1") .And. GFEA065VFIX()

	lObrigat := ""	
	If GetNewPAr('MV_DCABE','N') $ "1S"
		lObrigat := "X"
	EndIf   

   If lExistCamp //Utiliza novo índice para procurar os cálculos do documento de frete
			dbSelectArea('GWF')
			GWF->(DbOrderNickName("DOCFRETE"))// Indice 6: GWF_FILIAL+GWF_CDESP+GWF_EMISDF+GWF_SERDF+GWF_NRDF+DTOS(GWF_DTEMDF)

			dbSeek(xFilial("GWF")+GW3->GW3_CDESP+GW3->GW3_EMISDF+GW3->GW3_SERDF+GW3->GW3_NRDF+DTOS(GW3->GW3_DTEMIS))
			While !GWF->(Eof()) .And. xFilial("GWF")+GWF->(GWF_CDESP+GWF_EMISDF+GWF_SERDF+GWF_NRDF+DTOS(GWF_DTEMDF)) == GW3->(GW3_FILIAL+GW3_CDESP+GW3_EMISDF+GW3_SERDF+GW3_NRDF+DTOS(GW3_DTEMIS))

				If AScan(aCalcRel, {|x| x == GWF->GWF_NRCALC}) > 0
					dbSelectArea("GWF")	
					GWF->( dbSkip() )
					Loop
				EndIf

				nNrCalc := GWF->GWF_NRCALC
				GWF->(dbSkip())
			EndDo	
	Endif	

    //Valores dos Componentes
	dbSelectArea(cAliMKB)
	dbSelectArea("GWI")
	dbSetOrder(1)

	//GWI_FILIAL+GWI_NRCALC+GWI_CDCLFR+GWI_CDTPOP+GWI_CDCOMP
	dbSeek(xFilial("GWI")+nNrCalc)
	While !GWI->( Eof() ) .And. xFilial("GWI")+nNrCalc == GWI->GWI_FILIAL+GWI->GWI_NRCALC

		dbSelectArea("GV2")
		dbSetOrder(1)
		dbSeek(xFilial("GV2")+GWI->GWI_CDCOMP)
		If GWI->GWI_TOTFRE == "1"
			Do Case
				Case GV2->GV2_CATVAL == cCatVal  
				RecLock((cAliMKB),.T.)
					(cAliMKB)->OBRIGAT 	 := lObrigat
					(cAliMKB)->CAMPO  	 := GWI->GWI_CDCOMP
					(cAliMKB)->VALOR1  	 := 0
					(cAliMKB)->VALOR2  	 := GWI->GWI_VLFRET
					CalcDif(0, (cAliMKB)->VALOR2)
				(cAliMKB)->(MsUnLock())
			EndCase
		Endif

	GWI->( dbSkip())
	EndDo	
         
Return

Static Function CalcDif(iValor1, iValor2)
	(cAliMKB)->DIF := iValor1 - iValor2
Return