Árvore de páginas

Versões comparadas

Chave

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

...

Bloco de código
languagec#
linenumberstrue
#Include 'PROTHEUS.CH'
#Include 'XMLXFUN.CH'
#Include 'FILEIO.CH'
#Include "FWEVENTVIEWCONSTS.CH"


User Function MA411Grv()

Local aCabPed 		:= PARAMIXB[1] //Cabeçalho do pedido
Local aItePed 		:= PARAMIXB[2] //Itens do pedido
Local nOpc 			:= PARAMIXB[3] //Operação do sistema
Local cXML 			:= PARAMIXB[4] //Conteúdo do XML
Local nPosQuant		:= 0
Local nPosVlrUnit	:= 0
Local nPosTotal		:= 0
Local nX			:= 0
Local nY			:= 0
Local oXML 			:= TXMLManager():New()
Local aItens 		:= {}

//-------------------------------------------------------------------
// Parseia o XML.  
//-------------------------------------------------------------------	
If ( ! Empty( cXML ) .And. ( oXML:Read( cXML ) ) ) 

	//-------------------------------------------------------------------
	// Recupera os itens do pedido.   
	//-------------------------------------------------------------------			
	aItens 			:= oXML:XPathGetChildArray("/BusinessContent/SalesOrderItens")

	nPosQuant		:= aScan( aItePed[1], {|z| z[1] == "C6_QTDVEN"} )

	nPosVlrUnit		:= aScan( aItePed[1], {|z| z[1] == "C6_PRCVEN"} )

	nPosTotal		:= aScan( aItePed[1], {|z| z[1] == "C6_VALOR"} )

	For nX := 1 To Len( aItens )
	
		nVlrUnit 		:= Val( oXML:XPathGetNodeValue( aItens[nX][2] +"/UnityPrice" )	)
		
		//-------------------------------------------------------------------	
		// Altera o preço de venda
		//-------------------------------------------------------------------	
		If nVlrUnit > 0 
			aItePed[nX][nPosVlrUnit][2]	:= nVlrUnit + ( nVlrUnit * 0.20 ) 
			aItePed[nX][nPosTotal][2] 	:= A410Arred( aItePed[nX][nPosVlrUnit][2] * aItePed[nX][nPosQuant][2] , "C6_VALOR" )
		EndIf
		
	Next nX 
	
EndIf  


Return{ aCabPed, aItePed }

...