Árvore de páginas


CONTEÚDO


01. VISÃO GERAL

A rotina de Contrato de Venda(OGA290) foi criado usando a arquitetura Model-View-Controller ou MVC, possibilitando o uso da regra de negócio em aplicações automática.

A finalidade deste documento é exemplificar a inclusão, alteração e exclusão de um contrato de venda via rotina automática MVC. 

Para mais detalhes sobre a utilização do MVC, consulte a pagina: http://tdn.totvs.com/display/public/mp/AdvPl+utilizando+MVC

Deve ser adequado conforme a necessidade do cliente.


02. EXEMPLO DE UTILIZAÇÃO MODELO CLASSICO


User Function zIncReg()
    Local lRet := .F.
    Local oModel := Nil

    oModel	:= FWLoadModel('OGA290')   
    oModel:SetOperation(MODEL_OPERATION_INSERT) //INCLUSÃO
    oModel:Activate()
     
    //### Modelos de dados: NJRUNICO ###
    //modelo de dados do formulario "Contrato"
    oModel:GetModel('NJRUNICO'):SetValue('NJR_DATA', cTod('26/11/2021') ) 
    oModel:GetModel('NJRUNICO'):SetValue('NJR_DESCRI', 'Contrato Venda Teste') 
    oModel:GetModel('NJRUNICO'):SetValue('NJR_CODENT', '000001') 
    oModel:GetModel('NJRUNICO'):SetValue('NJR_LOJENT', '01')
    oModel:GetModel('NJRUNICO'):SetValue('NJR_CODSAF', '2122')
    oModel:GetModel('NJRUNICO'):SetValue('NJR_CODPRO', 'AGR-SOJA GRANEL')
	oModel:GetModel('NJRUNICO'):SetValue('NJR_TABELA', '000001')
	oModel:GetModel('NJRUNICO'):SetValue('NJR_TESEST', '501')
    oModel:GetModel('NJRUNICO'):SetValue('NJR_TIPFIX', '1')
    oModel:GetModel('NJRUNICO'):SetValue('NJR_VLRBAS', 60)
    oModel:GetModel('NJRUNICO'):SetValue('NJR_VLRUNI', 60)
    oModel:GetModel('NJRUNICO'):SetValue('NJR_VLRTOT', 10000)
  
    //modelo de dados da Grid "Previsão de Entregas / Cadências"
    oModel:GetModel('NNYUNICO'):GoLine( 1 ) //posicionando na linha
    oModel:GetModel('NNYUNICO'):SetValue('NNY_ITEM', '001')   
    oModel:GetModel('NNYUNICO'):SetValue('NNY_DATINI', cTod('30/11/2021'))           
    oModel:GetModel('NNYUNICO'):SetValue('NNY_DATFIM', cTod('10/12/2021'))           
    oModel:GetModel('NNYUNICO'):SetValue('NNY_QTDINT', 10000) 

    //modelo de dados da Grid "Dados das Previsões Financeiras"
    oModel:GetModel('NN7UNICO'):GoLine( 1 ) //posicionando na linha
    oModel:GetModel('NN7UNICO'):SetValue('NN7_ITEM', '001')   
    oModel:GetModel('NN7UNICO'):SetValue('NN7_VALOR', 10000)
    oModel:GetModel('NN7UNICO'):SetValue('NN7_PARCEL', '1')
    oModel:GetModel('NN7UNICO'):SetValue('NN7_DTVENC', cTod('10/12/2021'))      

    If oModel:VldData() //valida os dados
        oModel:CommitData() //realiza a gravação do registro
        conout("Registro incluído com sucesso!")
        MsgInfo("Registro incluído com sucesso!")   
        lRet := .T.
    Else   
        VarInfo("Erro ao incluir o registro!",oModel:GetErrorMessage())
        MsgAlert("Erro ao incluir o registro!")
    EndIf 
 
return lRet
User Function zAltReg()
    Local lRet := .F.
    Local oModel := Nil
 
    dbSelectArea("NJR")
    NJR->(DbSetOrder(1))
    If NJR->(DbSeek(xFilial("NJR") + '000201'))
        oModel  := FWLoadModel('OGA290')   
        oModel:SetOperation(MODEL_OPERATION_UPDATE) //ALTERAÇÃO
        oModel:Activate()
        
        //### Modelos de dados: NJRUNICO ###
        //modelo de dados do formulario "Contrato"
        oModel:GetModel('NJRUNICO'):SetValue('NJR_DESCRI', 'Contrato Venda Teste 2') 
    
        //modelo de dados da Grid "Previsão de Entregas / Cadências"
        oModel:GetModel('NNYUNICO'):GoLine( 1 ) //posicionando na linha
        oModel:GetModel('NNYUNICO'):SetValue('NNY_DATFIM', cTod('21/12/2021'))           

        //modelo de dados da Grid "Dados das Previsões Financeiras"
        oModel:GetModel('NN7UNICO'):GoLine( 1 ) //posicionando na linha
        oModel:GetModel('NN7UNICO'):SetValue('NN7_DTVENC', cTod('21/12/2021'))      

        If oModel:VldData() //valida os dados
            oModel:CommitData() //realiza a gravação do registro
            MsgInfo("Registro alterado com sucesso!")   
            lRet := .T.
        Else   
            VarInfo("Erro ao alterar o registro!",oModel:GetErrorMessage())
            MsgAlert("Erro ao alterar o registro!")
        EndIf 
    Else    
        MsgInfo("Registro alterado com sucesso!")
    EndIf
 
return lRet
User Function zDelReg()
    Local lRet := .F.
    Local oModel := Nil

    dbSelectArea("NJR")
    NJR->(DbSetOrder(1))
    If NJR->(DbSeek(xFilial("NJR") + '000201'))
        oModel  := FWLoadModel('OGA290')   
        oModel:SetOperation(MODEL_OPERATION_DELETE) //EXCLUSÃO
        oModel:Activate()

        If oModel:VldData() //valida os dados
            oModel:CommitData() //realiza a gravação do registro
            MsgInfo("Registro excluido com sucesso!")   
            lRet := .T.
        Else   
            VarInfo("Erro ao excluir o registro!",oModel:GetErrorMessage())
            MsgAlert("Erro ao excluir o registro!")
        EndIf 
    Else
        MsgInfo("Registro não localizado!")
    EndIf
 
return lRet

03. EXEMPLO DE UTILIZAÇÃO MODELO NOVA COMERCIALIZAÇÃO

User Function zIncReg()
    Local lRet := .F.
    Local oModel := Nil

    oModel	:= FWLoadModel('OGA290')   
    oModel:SetOperation(MODEL_OPERATION_INSERT) //INCLUSÃO
    oModel:Activate()
     
    //### Modelos de dados: NJRUNICO ###
    //modelo de dados do formulario "Contrato"
    oModel:GetModel('NJRUNICO'):SetValue('NJR_DATA', cTod('26/11/2021') ) 
    oModel:GetModel('NJRUNICO'):SetValue('NJR_DESCRI', 'Contrato Compra Teste') 
    oModel:GetModel('NJRUNICO'):SetValue('NJR_CODENT', '000001') 
    oModel:GetModel('NJRUNICO'):SetValue('NJR_LOJENT', '01')
    oModel:GetModel('NJRUNICO'):SetValue('NJR_CODSAF', '2122')
    oModel:GetModel('NJRUNICO'):SetValue('NJR_CODPRO', 'AGR-SOJA GRANEL')
	oModel:GetModel('NJRUNICO'):SetValue('NJR_TABELA', '000001')
    oModel:GetModel('NJRUNICO'):SetValue('NJR_TIPFIX', '1')
  
    //modelo de dados da Grid "Previsão de Entregas / Cadências"
    oModel:GetModel('NNYUNICO'):GoLine( 1 ) //posicionando na linha
    oModel:GetModel('NNYUNICO'):SetValue('NNY_ITEM', '001')   
    oModel:GetModel('NNYUNICO'):SetValue('NNY_DATINI', cTod('30/11/2021'))           
    oModel:GetModel('NNYUNICO'):SetValue('NNY_DATFIM', cTod('15/12/2021'))           
    oModel:GetModel('NNYUNICO'):SetValue('NNY_QTDINT', 10000) 
    oModel:GetModel('NNYUNICO'):SetValue('NNY_FILORG', 'D MG 01') 

    //modelo de dados da Grid "Dados das Previsões Financeiras"
    oModel:GetModel('N9AUNICO'):GoLine( 1 ) //posicionando na linha
    oModel:GetModel('N9AUNICO'):SetValue('N9A_SEQPRI', '001')   
    oModel:GetModel('N9AUNICO'):SetValue('N9A_CODFIN', '000004')
    oModel:GetModel('N9AUNICO'):SetValue('N9A_TES', '501')
    oModel:GetModel('N9AUNICO'):SetValue('N9A_QUANT', 10000) 
    
    //modelo de dados da Grid "Dados das Previsões Financeiras"
    oModel:GetModel('N84UNICO'):GoLine( 1 ) //posicionando na linha
    oModel:GetModel('N84UNICO'):SetValue('N84_SEQUEN', '01')   
    oModel:GetModel('N84UNICO'):SetValue('N84_REFCTR', '7')
    oModel:GetModel('N84UNICO'):SetValue('N84_TIPVAL', '2')
    oModel:GetModel('N84UNICO'):SetValue('N84_PCT', 100)   
    oModel:GetModel('N84UNICO'):SetValue('N84_DTFIXA', cTod('15/12/2021'))   


    If oModel:VldData() //valida os dados
        oModel:CommitData() //realiza a gravação do registro
        MsgInfo("Registro incluído com sucesso!")   
        lRet := .T.
    Else   
        VarInfo("Erro ao incluir o registro!",oModel:GetErrorMessage())
        MsgAlert("Erro ao incluir o registro!")
    EndIf 
 
return lRet
User Function zAltReg()
    Local lRet := .F.
    Local oModel := Nil
 
    dbSelectArea("NJR")
    NJR->(DbSetOrder(1))
    If NJR->(DbSeek(xFilial("NJR") + '000217'))
        oModel  := FWLoadModel('OGA290')   
        oModel:SetOperation(MODEL_OPERATION_UPDATE) //ALTERAÇÃO
        oModel:Activate()
        
        //### Modelos de dados: NJRUNICO ###
        //modelo de dados do formulario "Contrato"
        oModel:GetModel('NJRUNICO'):SetValue('NJR_DESCRI', 'Contrato venda teste alterar') 
    
        //modelo de dados da Grid "Previsão de Entregas / Cadências"
        oModel:GetModel('NNYUNICO'):GoLine( 1 ) //posicionando na linha
        oModel:GetModel('NNYUNICO'):SetValue('NNY_DATFIM', cTod('21/12/2021'))           

        //modelo de dados da Grid "Dados das Previsões Financeiras"
        oModel:GetModel('N9AUNICO'):GoLine( 1 ) //posicionando na linha
        oModel:GetModel('N9AUNICO'):SetValue('N9A_TES', '506')
        
        //modelo de dados da Grid "Dados das Previsões Financeiras"
        oModel:GetModel('N84UNICO'):GoLine( 1 ) //posicionando na linha
        oModel:GetModel('N84UNICO'):SetValue('N84_DTFIXA', cTod('21/12/2021'))        

        If oModel:VldData() //valida os dados
            oModel:CommitData() //realiza a gravação do registro
            MsgInfo("Registro alterado com sucesso!")   
            lRet := .T.
        Else   
            VarInfo("Erro ao alterar o registro!",oModel:GetErrorMessage())
            MsgAlert("Erro ao alterar o registro!")
        EndIf 
    Else    
        MsgInfo("Registro alterado com sucesso!")
    EndIf
 
return lRet
User Function zDelReg()
    Local lRet := .F.
    Local oModel := Nil

    dbSelectArea("NJR")
    NJR->(DbSetOrder(1))
    If NJR->(DbSeek(xFilial("NJR") + '000218'))
        oModel  := FWLoadModel('OGA290')   
        oModel:SetOperation(MODEL_OPERATION_DELETE) //EXCLUSÃO
        oModel:Activate()

        If oModel:VldData() //valida os dados
            oModel:CommitData() //realiza a gravação do registro
            MsgInfo("Registro excluido com sucesso!")   
            lRet := .T.
        Else   
            VarInfo("Erro ao excluir o registro!",oModel:GetErrorMessage())
            MsgAlert("Erro ao excluir o registro!")
        EndIf 
    Else
        MsgInfo("Registro não localizado!")
    EndIf
 
return lRet

04. ASSUNTOS RELACIONADOS