Histórico da Página
01. CN121PED -
TratamentoTratamento especifico antes da geração do
pedido de compraPedido de Compra ou de Venda
Produto: |
| ||||
---|---|---|---|---|---|
Linha de Produto: |
| |||||||||
Segmento: |
| |||||
Módulo: | Gestão de Contratos |
Rotina:
Rotina | Nome Técnico |
CNTA121 | Medições do Contrato |
Parâmetro(s):
aCab - PARAMIXB[1]
aItem - PARAMIXB[2]
Ponto de Entrada:
CN121PED
Ponto de Entrada
Descrição:
O ponto de entrada poderá ser utilizado para tratamentos específicos antes da geração do pedido de compra, podendo manipular o cabeçalho, itens e rateio se necessário.
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 |
Eventos:
Na função da rotina CNTA121
Programa Fonte:
CNTA121.prw
Função:
CN121GerDoc()
Retorno:
Nome | Tipo |
aRet (aCab,aItem) | Array |
Exemplo:
#Include 'Protheus.ch'
User Function CN121PED()
Local aCab := PARAMIXB[1]
Local aItem := PARAMIXB[2]
//Validações do usuario
Return {aCab,aItem}(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 |