Histórico da Página
01. CN121PED - Tratamento especifico antes da geração do Pedido de Compra ou de Venda
Produto: |
| ||||||||
---|---|---|---|---|---|---|---|---|---|
Linha de Produto: |
| ||||||||
Segmento: |
| ||||||||
Módulo: | Gestão de Contratos | ||||||||
Função: | CNTA121 - Medições | ||||||||
Ponto de Entrada: | CN121PED |
02. DETALHES
Descrição: | Possibilita ao desenvolvedor realizar tratamentos específicos antes da geração do pedido de compra ou de venda, podendo manipular o cabeçalho e itens se necessário. | |||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Eventos: | Executado uma vez por pedido gerado pela medição | |||||||||||||||||||||||||||||||||
Programa Fonte: | CNTA121.PRW | |||||||||||||||||||||||||||||||||
Função: | CN121GerDoc | |||||||||||||||||||||||||||||||||
Parâmetros: |
| |||||||||||||||||||||||||||||||||
Retorno: |
|
Informações | ||
---|---|---|
| ||
Este ponto de entrada irá substituir os PE's CN120IT7, CN120ITM, CN120PED e CN120AEP da antiga rotina de medições(CNTA120) |
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
#include "PROTHEUS.CH" #INCLUDE "FWMVCDEF.CH" #INCLUDE "RWMAKE.CH" #INCLUDE "TBICONN.CH" User Function CN121PED() Local aCab := PARAMIXB[1] Local aItens := PARAMIXB[2] Local aResult := Array(2) Local oModel := Nil Local lVenda := .F. Local lCompra := .F. If !(Empty(aCab) .Or. Empty(aItens)) oModel := FwModelActive()//Modelo do CNTA121 /*Para obter dados do modelo, usar oModel:GetValue(cModelId, cCampo). Exemplo: oModel:GetValue("CNDMASTER", "CND_CONTRA") */ lVenda := Cn121RetSt( "VENDA" , 0, /*cPlan*/, /*cContra*/, .T., oModel ) lCompra := Cn121RetSt( "COMPRA" , 0, /*cPlan*/, /*cContra*/, .T., oModel ) /*Realizar a operação desejada aqui...*/ EndIf aResult[1] := aCab aResult[2] := aItens Return aResult |
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
#include "PROTHEUS.CH" #INCLUDE "FWMVCDEF.CH" #INCLUDE "RWMAKE.CH" #INCLUDE "TBICONN.CH" User Function CN121PED() Local aCab := PARAMIXB[1] Local aItens := PARAMIXB[2] Local aResult := Array(2) Local oModel := Nil Local lVenda := .F. Local aUmItem := {} Local nIndex := 0 Local nX := 0 Local aTemp := {} If !(Empty(aCab) .Or. Empty(aItens)) oModel := FwModelActive() lVenda := Cn121RetSt( "VENDA",0, /*cPlan*/, /*cContra*/, .T., oModel ) If lVenda for nX := 1 to Len(aItens) aUmItem := aItens[nX] nIndex := aScan(aUmItem, {|x| AllTrim(x[1]) == "C6_QTDVEN"}) if nIndex > 0 aTemp := aClone(aUmItem[nIndex]) aTemp[1]:= "C6_QTDLIB" aAdd(aUmItem, aTemp) //Equaliza a quantidade liberada com a quantidade, dessa forma o pedido é automaticamente liberado. /*É importante frisar que com essa liberação, ao tentar estornar a medição, será apresentado o alerta A410LIBER */ endif next nX EndIf EndIf aResult[1] := aCab aResult[2] := aItens Return aResult |