Histórico da Página
01. CN300RST - Modificar verificação de propriedade do contrato
Produto: |
| ||||||||
---|---|---|---|---|---|---|---|---|---|
Linha de Produto: |
| ||||||||
Segmento: |
| ||||||||
Módulo: | Gestão de Contratos | ||||||||
Função: | CNTA300 - Contratos | ||||||||
Ponto de Entrada: | CN300RST |
Aviso | ||
---|---|---|
| ||
Esse ponto de entrada é chamado em muitos pontos do módulo de gestão de contratos, por isso sua implementação deve ser cuidadosa pois pode haver considerável impacto na performance do sistema. |
02. DETALHES
Descrição: | Possibilita que o desenvolvedor modifique o comportamento da função responsável por verificar propriedades do contrato com base no tipo do contrato e tipo da planilha | |||||
---|---|---|---|---|---|---|
Eventos: | Executado em diversos pontos do módulo, por exemplo durante a inclusão e revisão de contratos, além da inclusão e encerramento da medição | |||||
Programa Fonte: | CNTA300.PRW | |||||
Função: | CN300RetSt | |||||
Parâmetros: |
|
Valor | Tipo | Descrição |
---|---|---|
lCommit | lógico | Deve retornar falso para cancelar a operação, verdadeiro prossegue com a gravação do registro |
Ponto de Entrada
Descrição:
Ponto de entrada para validação do retorno da situação do contrato.
Eventos:
Na função da rotina CNTA300
Programa Fonte:
CNTA300.prw
Função:
CN300RetSt
Retorno:
xRet
Exemplo:
#Include 'Protheus.ch'
##Include 'FWMVCDef.ch'
User Function CN300RST()
Local xRet := ParamixB[1]
Local cTpCnt := ParamixB[2]
If FWIsInCallStack('CNTA120') .And. FWIsInCallStack('CN130TudOk') .And. (cTpCnt == "003" .Or. cTpCnt == "004")
xRet := .T.
EndIf
| |||||||||||||||||||||||||||||||||||||||||||||||||
Retorno: |
|
---|
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
#INCLUDE "PROTHEUS.CH"
#INCLUDE "FWMVCDEF.CH"
User Function CN300RST()
Local xRet := ParamIxb[1]//Valor atual da propriedade
Local cTipoCtr := ParamIxb[2]//Tipo do Contrato(campo CN9_TPCTO, referente a tabela CN1)
Local cProp := ParamIxb[3]//Código da propridade(Exemplo: COMPRA, SERVIÇO, EVENTUAL)
Local cPlan := AllTrim(ParamIxb[4])//Número da planilha
Local nModo := ParamIxb[5]//Modo de busca(0=Posicionada | 1=Todas | 2=Ao menos uma)
Local lModel := ParamIxb[6]//Se a propriedade deve ser buscada do modelo(só utilizar p/ cenários dentro do CNTA300)
Local cChaveZNA := ""
Local cFilCTR := CN9->CN9_FILCTR
Local cTpsCustom:= "001"//Informar o tipo customizado desejado
if !lModel .And.;//Se não for chamada via CNTA300
cTipoCtr $ cTpsCustom //Se o contrato for do tipo customizado
cChaveZNA := CN9->(xFilial("ZNA", CN9_FILCTR) + CN9_NUMERO + CN9_REVISA)
ZNA->(DbSetOrder(1))//ZNA_FILIAL+ZNA_CONTRA+ZNA_REVISA+ZNA_NUMERO
If ZNA->(DbSeek(cChaveZNA + cPlan)) //Nesse exemplo se usa uma tabela customizada ao invés do padrão CNA
If nModo == 0
xRet := CN300PlaSt( cProp, cTipoCtr, ZNA->ZNA_TIPO, cFilCTR )
Else
While ZNA->( !Eof() .And. ZNA_FILIAL+ZNA_CONTRA+ZNA_REVISA == cChaveZNA )
xRet := CN300PlaSt( cProp, cTipoCtr, ZNA->ZNA_TIPO, cFilCTR )
If (!xRet .And. nModo == 1) .Or. (xRet .And. nModo == 2)
Exit
Endif
ZNA->( dbSkip() )
EndDo
Endif
EndIf
endif
Return xRet |
03. ASSUNTOS RELACIONADOS
- Não há