#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)) //SeNesse pressupõeexemplo quese háusa umuma campotabela na ZNA que guarda o tipo da planilha, porém seria possível passar um valor fixo customizada ao invés do depadrão ZNA_TIPOCNA
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 |