Histórico da Página
MA411GRV - Manipula os dados do pedido de vendas gerado através do EDI de Vendas (TOTVS Colaboração)
Características do Requisito
...
Bloco de código | ||||
---|---|---|---|---|
| ||||
#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 nPosTES := 0 Local nPosCusto := 0 Local nXnPosStore := 0 Local nYnPosProd := 0 Local oXML 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 aItens := oXML:XPathGetChildArray( "/BusinessContent/SalesOrderItens" ) nPosQuant nPosCusto := aScan( aCabPed, { |z| z[1] == "C5_CLIENTE" } ) nPosStore := aScan( aCabPed, { |z| z[1] == "C5_LOJACLI" } ) nPosQuant := aScan( aItePed[1], {|z| z[1] == "C6_QTDVEN" } ) nPosVlrUnit := aScan( aItePed[1], {|z| z[1] == "C6_PRCVEN" } ) nPosTotal nPosTotal := aScan( aItePed[1], {|z| z[1] == "C6_VALOR" } ) nPosProd := aScan( aItePed[1], { |z| z[1] == "C6_PRODUTO" } ) nPosTES := aScan( aItePed[1], { |z| z[1] == "C6_VALORTES" } ) For nX := 1 To Len( aItens ) nVlrUnit 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 EndIf //-------------------------------------------------- ---------------- // Preenche o TES de acordo com o TES Inteligente // Parâmetros da rotina: // ExpN1 = Documento de 1-Entrada / 2-Saida // ExpC2 = Tipo de Operacao Tabela "DF" do SX5 // ExpC3 = Codigo do Cliente ou Fornecedor // ExpC4 = Loja do Cliente ou Fornecedor // ExpC5 = Tipo CF // ExpC6 = Produto // ExpC7 = Campo //------------------------------------------------------------------- aItePed[nX][nPosTES][2] := MaTesInt( 2, '01', aCabPed[nPosCusto][2], aCabPed[nPosStore][2], 'C', aItePed[nX][nPosProd][2] ) Next nX EndIf Return{ aCabPed, aItePed } |
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas