Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Bloco de código
languagedelphi
titleExemplo: GFEXFB13
linenumberstrue
#INCLUDE#Include 'PROTHEUSProtheus.CHch'

 
User Function GFEXFB13()


Return

...

local;

...


	nValorComp := 0,;

...


	nValorTaxa  := 0,;

...


	cNrReg,;

...


	aAreaAnt:= getArea()

...



	
GFEXFB_1AREA(lTabTemp,cTRBTCF, @aTRBTCF1) //dbSelectArea(cTRBTCF)

...


GFEXFB_2TOP(lTabTemp, cTRBTCF, @aTRBTCF1, 5) //dbGoTop()	// Posiciona na 1a rota para selecao

...


GFEXFB_BORDER(lTabTemp,cTRBTCF,01,5) //dbSetOrder(1)

...



While !GFEXFB_3EOF(lTabTemp, cTRBTCF, @aTRBTCF1, 5)

...


	
	//percorre os componentes do calculo de frete relacionada

...


	nValorComp := 0

...


	nValorTaxa := 0

...


	
	GFEXFB_1AREA(lTabTemp,cTRBCCF, @aTRBCCF1) //dbSelectArea(cTRBCCF)

...


	GFEXFB_BORDER(lTabTemp,cTRBCCF,01,9) //dbSetOrder(01)

...


	GFEXFB_CSEEK(lTabTemp, cTRBCCF, @aTRBCCF1, 9,{GFEXFB_5CMP(lTabTemp, cTRBTCF, @aTRBTCF1, 5,"NRCALC")}) //dbSeek(,.T.)

...


	While  !GFEXFB_3EOF(lTabTemp, cTRBCCF, @aTRBCCF1, 9) .AND. ;

...


			GFEXFB_5CMP(lTabTemp, cTRBCCF, @aTRBCCF1, 9,"NRCALC") == GFEXFB_5CMP(lTabTemp, cTRBTCF, @aTRBTCF1, 5,"NRCALC")

...


	
		if alltrim(GFEXFB_5CMP(lTabTemp, cTRBCCF, @aTRBCCF1, 9,"CDCOMP")) <> 'TAXA DE ENTREGA' .And.

...

 ;
		   alltrim(GFEXFB_5CMP(lTabTemp, cTRBCCF, @aTRBCCF1, 9,"CDCOMP")) <> 'PEDÁGIO'

...

 
			nValorComp += GFEXFB_5CMP(lTabTemp, cTRBCCF, @aTRBCCF1, 9,"VALOR")

...


		EndIf
		
		GFEXFB_1AREA(lTabTemp,cTRBCCF, @aTRBCCF1) //dbSelectArea(cTRBCCF)

...


		GFEXFB_8SKIP(lTabTemp, cTRBCCF, 9) //dbSkip()

...


	EndDo
			    			 
		
	dbSelectArea("GV8")

...


	if(dbSeek(xFilial("GV8") + GFEXFB_5CMP(lTabTemp, cTRBTCF, @aTRBTCF1, 5,"CDTRP") +

...

 ;
	                           GFEXFB_5CMP(lTabTemp, cTRBTCF, @aTRBTCF1, 5,"NRTAB") +

...

 ;
	                           GFEXFB_5CMP(lTabTemp, cTRBTCF, @aTRBTCF1, 5,"NRNEG") +

...

 ;
							   GFEXFB_5CMP(lTabTemp, cTRBTCF, @aTRBTCF1, 5,"NRROTA")

...

 )) 	                             
							 
		cNrReg := ""
		If GV8->GV8_TPORIG != "2"

...


			If GV8->GV8_TPDEST == "3" // Busca tabela com região destino

...


				cNrReg := GV8->GV8_NRREDS

...


				dbSelectArea("GU9")

...


				dbSetOrder(1)

...


				if GU9->(dbSeek(xFilial("GU9") + cNrReg))

...


					// Se a classif. Frete do documento igual a classif. da

...

 região
					
					if alltrim(GFEXFB_5CMP(lTabTemp, cTRBTCF, @aTRBTCF1, 5,"CDCLFR")) == alltrim(GU9->GU9_XCLFR)

...


						nValorTaxa := (nValorComp * (GU9->GU9_PENT / 100))

...


						
					endif
				endif 			
			endif
		EndIf
	endif
	
	//Busca o componente Taxa de Entrega e gravo na, tabela temporária, o valor da taxa calculado anteriormente
	If nValorTaxa > 0
		GFEXFB_1AREA(lTabTemp,cTRBCCF, @aTRBCCF1) //dbSelectArea(cTRBCCF)

...


		GFEXFB_BORDER(lTabTemp,cTRBCCF,01,9) //dbSetOrder(01)

...


		GFEXFB_CSEEK(lTabTemp, cTRBCCF, @aTRBCCF1, 9,{GFEXFB_5CMP(lTabTemp, cTRBTCF, @aTRBTCF1, 5,"NRCALC")}) //dbSeek(,.T.)

...


		While  !GFEXFB_3EOF(lTabTemp, cTRBCCF, @aTRBCCF1, 9) .AND. ;

...


				GFEXFB_5CMP(lTabTemp, cTRBCCF, @aTRBCCF1, 9,"NRCALC") == GFEXFB_5CMP(lTabTemp, cTRBTCF, @aTRBTCF1, 5,"NRCALC")

...


		
			if alltrim(GFEXFB_5CMP(lTabTemp, cTRBCCF, @aTRBCCF1, 9,"CDCOMP")) == 'TAXA DE ENTREGA'

...


			
				GFEXFB_DRECLOCK(lTabTemp,cTRBCCF,.F.) //RecLock(cTRBTRE,.F.)

...


				GFEXFB_5CMP(lTabTemp, cTRBCCF, @aTRBCCF1, 9,"VALOR",nValorTaxa)

...


				
				GFEXFB_EMSUNLOCK(lTabTemp,cTRBCCF) //(cTRBTRE)->(MsUnLock())

...

	
				
			EndIf
			
			GFEXFB_1AREA(lTabTemp,cTRBCCF, @aTRBCCF1) //dbSelectArea(cTRBCCF)

...


			GFEXFB_8SKIP(lTabTemp, cTRBCCF, 9) //dbSkip()

...


		EndDo
	EndIf
	
	
	GFEXFB_8SKIP(lTabTemp, cTRBTCF, 5) //dbSkip()

...


enddo

...



	restArea(aAreaAnt)

...

 
Return