MATA103-NFECTSEV - Customiza dados das múltiplas naturezas. MULTINATUREZA compra

MATA103-NFECTSEV - Customiza dados das múltiplas naturezas. MULTINATUREZA compra
Author: Eurai
Inclusão: 16/09/2023
Alteração: 22/08/2023

Salve salve....

 

Ponto de entrada NFECTSEV - ( Compras - Documento de Entrada )

MATA103-NFECTSEV - Customiza dados das múltiplas naturezas. MULTINATUREZA no compras

 

#INCLUDE "TOTVS.CH"

/*/{Protheus.doc} NFECTSEV
Customiza dados das múltiplas naturezas. MULTINATUREZA no compras

@type 		function
@author    	Eurai Rapelli
@since     	2023.01.01
/*/
User Function NFECTSEV()
Local cFilialSB1		:= xFilial('SB1') as character
Local cFilialSF4		:= xFilial('SF4') as character

Local nTamArray1	:= 0 as numeric
Local nTamArray2	:= 0 as numeric
Local nTamArray3	:= 0 as numeric
Local nTotalNF		:= 0 as numeric
Local nTotalItem	:= 0 as numeric
Local nX			:= 0 as numeric
Local nY			:= 0 as numeric
Local nPosAt		:= 0 as numeric

Local nDesconto	:= MaFisRet(,"NF_DESCONTO") as numeric
Local nFrete	:= MaFisRet(,"NF_FRETE") as numeric
Local nDespesa	:= MaFisRet(,"NF_DESPESA") as numeric
Local nSeguro	:= MaFisRet(,"NF_SEGURO") as numeric
Local nTotal	:= MaFisRet(,"NF_TOTAL") as numeric

Local aHeadSEV	:= PARAMIXB[1] as array
Local aColsSEV	:= PARAMIXB[2] as array
Local aNaturez	:= {} as array


aColsSEV 	:= {}
nTamArray1	:= Len( aCols )
nTamArray3	:= Len( aHeader )
               
For nX:=1 to nTamArray1
	If( aCols[nX][nTamArray3 + 1] )
		Loop
	Endif
    
	SB1->( MsSeek( cFilialSB1 + aCols[nX][ GdFieldPos('D1_COD') ] ) )
    SF4->( MsSeek( cFilialSF4 + aCols[nX][ GdFieldPos('D1_TES') ] ) )
                                                      
	If( SF4->F4_DUPLIC == 'N' )
		Loop
	Endif
	  
	If( Empty( SB1->B1_XNAT ) )
		Loop
	Endif
	
	nTotalItem	:= aCols[nX][ GdFieldPos('D1_TOTAL') ] + aCols[nX][ GdFieldPos('D1_VALIPI') ]
	
	nTotalNF	+= nTotalItem

	nPosAt := aScan( aNaturez, { |x| x[1] == SB1->B1_XNAT } )
	If( nPosAt == 0 )
		aAdd( aNaturez, { SB1->B1_XNAT, nTotalItem } )
	Else
		aNaturez[nPosAt][2] += nTotalItem
	Endif
Next nI

nTamArray2	:= Len( aNaturez )
For nX:=1 to nTamArray2

	aAdd( aColsSEV, Array( Len( aHeadSEV ) + 1 ) )
	For nY := 1 To Len( aHeadSEV )
		If IsHeadRec(aHeadSEV[nY][2])
			aColsSEV[Len( aColsSEV )][nY] := 0
		ElseIf IsHeadAlias(aHeadSEV[nY][2])
			aColsSEV[Len( aColsSEV )][nY] := "SEV"
		Else
			aColsSEV[Len( aColsSEV )][nY] := CriaVar( aHeadSEV[nY,2], .F. )	
		EndIf
	Next nY
	aColsSEV[Len( aColsSEV )][Len( aHeadSEV )+1] := .F.

	aColsSEV[nX][1] := aNaturez[nX][1]
	aColsSEV[nX][2] := ( aNaturez[nX][2] / nTotalNF ) * 100 
	
Next nX

Return( { aHeadSEV, aColsSEV } )




 

 

 

Gostou? Compartilhe com seus amigos e deixe um comentário! 😎  

Um abraço, e até a próxima

 

 

 

 

 

 

Esse conteúdo te ajudou? Ajude o canal com doação
Compartilhar
Comentários