...
Línea de producto |
...
: | Microsiga Protheus | ||||
Segmento: | ServiçosServicios | ||||
Módulo: | FaturamentoFacturación | ||||
RotinaRutina: |
| ||||
País(es): | Todos | Banco(s) de Dados||||
Bases de Datos: | Todos | ||||
Sistema(s) | Operacionaloperativo( | iss): | Todos |
Ponto
Descripción: | A finalidade do ponto La finalidad del punto de entrada MA411GRV | é permitir manipular os dados que serão gravados no pedido de vendas atravéses permitir manejar los datos que se grabarán en el pedido de ventas por medio del del TOTVS Colaboración. | ||||||||
LocalizaciónLocalização: | /Pedidos/Pedidos de Vendaventa | |||||||||
Eventos: | ||||||||||
Programa Fontefuente: | MATA411.PRW | Parâmetros|||||||||
Parámetros: | PARAMIXB[1] - Tipo: Array---> | Cabeçalho do encabezado del pedido PARAMIXB[2] - Tipo: Array--> | Itens do PedidoÍtems del pedido PARAMIXB[3] - Tipo: Numério--> | Operação Operación CRUD PARAMIXB[4] - Tipo: | CaractereCarácter--> | Conteúdo do contenido del XML | ||||
RetornoRespuesta: | Nome
| SimDados do cabeçalho, dados do(s) item(ns)
|
ExemploEjemplo:
| Bloco de código | ||||
|---|---|---|---|---|
| ||||
#Include 'PROTHEUS.CH' #Include 'XMLXFUN.CH' #Include 'FILEIO.CH' #Include "FWEVENTVIEWCONSTS.CH" User Function MA411Grv() Local aCabPed := PARAMIXB[1] //CabeçalhoEncabezado dodel pedido Local aItePed := PARAMIXB[2] //ItensÍtems dodel pedido Local nOpc := PARAMIXB[3] //OperaçãoOperación dodel sistema Local cXML := PARAMIXB[4] //ConteúdoContenido dodel XML Local nPosQuant := 0 Local nPosVlrUnit := 0 Local nPosTotal := 0 Local nPosTES := 0 Local nPosCusto := 0 Local nPosStore := 0 Local nPosProd := 0 Local nX := 0 Local nY := 0 Local oXML := TXMLManager():New() Local aItens := {} //------------------------------------------------------------------- // Parseia o XML. //------------------------------------------------------------------- If ( ! Empty( cXML ) .And. ( oXML:Read( cXML ) ) ) //------------------------------------------------------------------- // Recupera oslos itensítems dodel pedido. //------------------------------------------------------------------- aItens := oXML:XPathGetChildArray( "/BusinessContent/SalesOrderItens" ) 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 := 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_TES" } ) For nX := 1 To Len( aItens ) nVlrUnit := Val( oXML:XPathGetNodeValue( aItens[nX][2] +"/UnityPrice" ) ) //------------------------------------------------------------------- // AlteraModifica oel preçoprecio de vendaventa //------------------------------------------------------------------- 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 //-------------------------------------------------- ---------------- // PreencheCompleta oel TES de acordoacuerdo comcon oel TES Inteligente // ParâmetrosParámetros de dala rotinarutina: // ExpN1 = Documento de 1 - Entrada / 2 -Saida Salida // ExpC2 = Tipo de Operacaooperación TabelaTabla "DF" dodel SX5 // ExpC3 = CodigoCódigo dode Clientecliente ouo Fornecedorproveedor // ExpC4 = LojaTienda dodel Clientecliente ouo Fornecedorproveedor // ExpC5 = Tipo CF // ExpC6 = ProdutoProducto // 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 } |