Árvore de páginas

Versões comparadas

Chave

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

...

  1. Visão Geral
  2. Medição com itens
  3. Medição sem Itens
  4. Medição com Rateio pré-configurado
  5. Medição com Rateio
  6. Medição configurado para ignorar produtos bloqueados
  7. Obtendo a lista de competências
  8. Estorno de uma medição
  9. Exclusão de uma medição
  10. Inclusão medição com multa/bonificação por planilha
  11. Inclusão medição com multa/bonificação por item da planilha

01. VISÃO GERAL

Objetivo desse documento é exemplificar a utilização do ExecAuto da nova rotina de Medições(CNTA121). 

...

Bloco de código
titleExcluindo uma medição
linenumberstrue
#INCLUDE "PROTHEUS.CH"
#INCLUDE "FWMVCDEF.CH"

User Function CNT121_009()
    Local oModel    := Nil
    Local cCodCTR   := "CNTA121EXEMP009"
    Local cNumMed   := ""
    Local aMsgDeErro:= {}
    Local lRet      := .F. 
     
    CN9->(DbSetOrder(1))
         
    If CN9->(DbSeek(xFilial("CN9") + cCodCTR))//Posicionar na CN9 para realizar a inclusão
        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"    ,"1")//Selecionar competência
             
            oModel:SetValue("CXNDETAIL","CXN_CHECK" , .T.)//Marcar a planilha(nesse caso apenas uma)
            
            oModel:GetModel('CNRDETAIL1'):GoLine(1)//<CNRDETAIL1> é o submodelo das multas da planilha(CNACXN)
            oModel:SetValue("CNRDETAIL1","CNR_TIPO"     , '1')//1=Multa/2=Bonificação
            oModel:SetValue("CNRDETAIL1","CNR_DESCRI"   , 'TESTE MULTA')
            oModel:SetValue("CNRDETAIL1","CNR_VALOR"    , 100)
            
            oModel:GetModel('CNRDETAIL1'):AddLine()            
            oModel:SetValue("CNRDETAIL1","CNR_TIPO"     , '2')//1=Multa/2=Bonificação
            oModel:SetValue("CNRDETAIL1","CNR_DESCRI"   , 'TESTE BONIFICACAO')
            oModel:SetValue("CNRDETAIL1","CNR_VALOR"    , 101)
             
            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

11. Inclusão medição com multa/bonificação por item da planilha

Bloco de código
titleExcluindo uma medição
linenumberstrue
#INCLUDE "PROTHEUS.CH"
#INCLUDE "FWMVCDEF.CH"

User Function CNT121_010()
    Local oModel    := Nil
    Local cCodCTR   := "CNTA121EXEMP010"
    Local cNumMed   := ""
    Local aMsgDeErro:= {}
    Local lRet      := .F. 
     
    CN9->(DbSetOrder(1))
         
    If CN9->(DbSeek(xFilial("CN9") + cCodCTR))//Posicionar na CN9 para realizar a inclusão
        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"    ,"1")//Selecionar competência
             
            oModel:SetValue("CXNDETAIL","CXN_CHECK" , .T.)//Marcar a planilha(nesse caso apenas uma)
            
            oModel:GetModel('CNEDETAIL'):GoLine(1)//Posiciona no item da medicao desejada

            oModel:GetModel('CNRDETAIL2'):GoLine(1)//<CNRDETAIL2> é o submodelo das multas dos itens da planilha(CNE)
            oModel:SetValue("CNRDETAIL2","CNR_TIPO"     , '1')//1=Multa/2=Bonificação
            oModel:SetValue("CNRDETAIL2","CNR_DESCRI"   , 'TESTE MULTA')
            oModel:SetValue("CNRDETAIL2","CNR_VALOR"    , 100)
            
            oModel:GetModel('CNRDETAIL2'):AddLine()            
            oModel:SetValue("CNRDETAIL2","CNR_TIPO"     , '2')//1=Multa/2=Bonificação
            oModel:SetValue("CNRDETAIL2","CNR_DESCRI"   , 'TESTE BONIFICACAO')
            oModel:SetValue("CNRDETAIL2","CNR_VALOR"    , 101)
             
            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

...