Árvore de páginas


CONTEÚDO

01. VISÃO GERAL

A rotina de Serviço de Armazenagem (OGA261) foi criado usando a arquitetura Model-View-Controller ou MVC, possibilitando o uso da regra de negócio em aplicações automática. Esta rotina faz uso da tabela NKG.

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

No Padrão, os registros de serviço de armazenagem são exclusivamente gerados via rotina de cálculo de Serviço de Armazenagem (OGA262), não sendo possível via rotina de serviço de armazenagem a inclusão e/ou alteração destes registros, apenas exclusão.

Porém por se tratar de uma rotina que usa a arquitetura MVC, é possível usar seu modelo para customização.
Contudo, qualquer customização que faz uso do modelo de dados em MVC, deverá ser de responsabilidade do cliente a origem e validações dos registros.


Documentação se aplica ao Protheus a partir da versão 12.1.2310.

Deve ser adequado conforme a necessidade do cliente.

02. EXEMPLO DE UTILIZAÇÃO


Exemplo de código - Inclusão de um registro
User Function zIMVC261()
    Local lRet := .F.
    Local oModel := Nil
     //Exemplo inclusao serviço de entrada
    oModel  := FWLoadModel('OGA261')   
    oModel:GetModel('NKGUNICO'):GetStruct():SetProperty('NKG_FECSER',MODEL_FIELD_OBRIGAT, .F.) //remove obrigatoriedade do campo.
    
    oModel:SetOperation(3) //INCLUSÃO
    oModel:Activate()
     
    //Setando valores nos campos
    oModel:GetModel('NKGUNICO'):SetValue('NKG_ITEMOV', '00000003') 
    oModel:GetModel('NKGUNICO'):SetValue('NKG_CODROM', '0000000643') 
    oModel:GetModel('NKGUNICO'):SetValue('NKG_ITEROM', '01') 
    oModel:GetModel('NKGUNICO'):SetValue('NKG_CODDEV', '000002') 
    oModel:GetModel('NKGUNICO'):SetValue('NKG_LOJDEV', '01') 
    oModel:GetModel('NKGUNICO'):SetValue('NKG_CODENT', '000002') 
    oModel:GetModel('NKGUNICO'):SetValue('NKG_LOJENT', '01') 
    oModel:GetModel('NKGUNICO'):SetValue('NKG_CODSAF', '2122') 
    oModel:GetModel('NKGUNICO'):SetValue('NKG_CODPRO', 'AGR-SOJA GRANEL') 
    oModel:GetModel('NKGUNICO'):SetValue('NKG_UM1PRO', 'KG') 
    oModel:GetModel('NKGUNICO'):SetValue('NKG_DOCSER', '267') 
    oModel:GetModel('NKGUNICO'):SetValue('NKG_DOCNUM', '267178001') 
    oModel:GetModel('NKGUNICO'):SetValue('NKG_DOCEMI', ctod('01/07/2024')) 
    oModel:GetModel('NKGUNICO'):SetValue('NKG_DATCAL', ctod('01/08/2024')) 
    oModel:GetModel('NKGUNICO'):SetValue('NKG_CODTSE', '0001') 
    oModel:GetModel('NKGUNICO'):SetValue('NKG_ITETSE', '001') 
    oModel:GetModel('NKGUNICO'):SetValue('NKG_CODDES', '003') 
    oModel:GetModel('NKGUNICO'):SetValue('NKG_FATGER', '1') //Entrada
    oModel:GetModel('NKGUNICO'):SetValue('NKG_PERCOB', '0') 
    oModel:GetModel('NKGUNICO'):SetValue('NKG_DATINI', ctod('01/08/2024')) 
    oModel:GetModel('NKGUNICO'):SetValue('NKG_DATFIM', ctod('01/08/2024')) 
    oModel:GetModel('NKGUNICO'):SetValue('NKG_QTDPER', 1) 
    oModel:GetModel('NKGUNICO'):SetValue('NKG_TIPRET', '1') //cobrança
    oModel:GetModel('NKGUNICO'):SetValue('NKG_VALTAR', 25) 
    oModel:GetModel('NKGUNICO'):SetValue('NKG_UMTAR', 'TN') 
    oModel:GetModel('NKGUNICO'):SetValue('NKG_QTDBAS', 20) 
    oModel:GetModel('NKGUNICO'):SetValue('NKG_VLTARC', 500) 
    oModel:GetModel('NKGUNICO'):SetValue('NKG_VALSER', 500) 
    oModel:GetModel('NKGUNICO'):LoadValue('NKG_CODCTR', "000178")  
    
    oModel:GetModel('NKGUNICO'):SetValue('NKG_STATUS', '1') 
  
    If oModel:VldData() //valida os dados
        oModel:CommitData() //realiza a gravação do registro
        MsgInfo("Registro incluído com sucesso")   
        lRet := .T.
    Else   
        VarInfo("",oModel:GetErrorMessage())

        MsgAlert("Erro ao incluir o registro")
    EndIf 
 
return lRet
Exemplo de código - Alteração do registro
User Function zUMVC261()  
	Local lRet := .F.
    Local oModel := Nil
    
	//Exemplo de alteração 
    dbSelectArea("NKG")
    NKG->(DbSetOrder(1))
    If NKG->(DbSeek(xFilial("NKG") + '000178' + '00000003'))
         
        oModel  := FWLoadModel('OGA261')
        oModel:SetOperation(MODEL_OPERATION_UPDATE) //Alteração
        oModel:Activate()
         
        //Setando valores nos campos
        oModel:GetModel('NKGUNICO'):SetValue('NKG_VALTAR', 26)
        oModel:GetModel('NKGUNICO'):SetValue('NKG_VLTARC', 520) 
        oModel:GetModel('NKGUNICO'):SetValue('NKG_VALSER', 520) 
        
        If oModel:VldData() //valida os dados
            oModel:CommitData() //realiza a gravação do registro
            MsgInfo("Registro incluído com sucesso")   
            lRet := .T.
        Else   
            VarInfo("",oModel:GetErrorMessage())
            MsgAlert("Erro ao incluir o registro")
        EndIf 
    Else
        MsgAlert("Registro não localizado!")
    EndIf
 
return lRet
Exemplo de código - Exclusão do registro
User Function zDMVC261()  
	Local lRet := .F.
    Local oModel := Nil
    //Exemplo de exclusão 
    dbSelectArea("NKG")
    NKG->(DbSetOrder(1))
    If NKG->(DbSeek(xFilial("NKG") + '000178' + '00000003'))

        oModel  := FWLoadModel('OGA261')  
        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
        MsgAlert("Registro não localizado!")
    EndIf
 
return lRet


03. ASSUNTOS RELACIONADOS