Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Linha de Produto:Microsiga Protheus®
Segmento:BackOffice
Módulo:Gestão de Contratos 
Função:

CNTA121/CNTA120 - Medições

Ticket:8604688
Issue:DMANMAT02-27379


02. SITUAÇÃO/REQUISITO

O cliente solicita Desenvolvida uma função que retorne retorna as competências de determinado contrato, de forma que possa escolher qual competência ira irá medir no modelo MVC do CNTA121.

03. SOLUÇÃO

Disponibilizamos a função CtrCompetsfunção CtrCompets, que retorna um vetor contendo todas as competências passíveis de medição de determinado contrato.

O vetor contêm as competências no formato MM/AAAA, exemplo: {  '11/2020', '12/2020', '01/2021' }. Veja Utilizando o modelo do CNTA121 para mais detalhes.

Exemplo prático:

Bloco de código
titleObtendo a lista de competências de um contrato
linenumberstrue
Static Function CNT121_006()
    Local oModel    := Nil
    Local cCodCTR   := "CNTA121EXEMP006"
	Local aCompets	:= {}
	Local nCompet	:= 0
    Local cNumMed   := ""
    Local aMsgDeErro:= {}
    Local lRet      := .F.
     
    CN9->(DbSetOrder(1))
         
    If CN9->(DbSeek(xFilial("CN9") + cCodCTR))//Posicionar na CN9 para realizar a inclusão

		aCompets := CtrCompets()

		nCompet := aScan(aCompets, {|x| AllTrim(x) == '05/2020' })		

        oModel := FWLoadModel("CNTA121")
         
        oModel:SetOperation(MODEL_OPERATION_INSERT)
        If(oModel:CanActivate())           
            oModel:Activate()
            oModel:SetValue("CNDMASTER","CND_CONTRA"    ,CN9->CN9_NUMERO)

			
            oModel:SetValue("CNDMASTER","CND_RCCOMP"    , cValToChar(nCompet))//Selecionar competência
            
            oModel:SetValue("CXNDETAIL","CXN_CHECK" , .T.)//Marcar a planilha(nesse caso apenas uma)
             
            If (oModel:VldData()) /*Valida o modelo como um todo*/
                oModel:CommitData()
            EndIf
        EndIf
         
        If(oModel:HasErrorMessage())
            aMsgDeErro := oModel:GetErrorMessage()
        Else
            cNumMed := CND->CND_NUMMED          
            oModel:DeActivate()        
            lRet := CN121Encerr(.T.) //Realiza o encerramento da medição			
        EndIf
    EndIf  
Return lRet


04. DEMAIS INFORMAÇÕES

O campo CND_RCCOMP é um campo criado pelo modelo do programa. Não faz parte do dicionário de dados, desta forma, não necessidade de criá-lo.

05. ASSUNTOS RELACIONADOS

...