Árvore de páginas


CONTEÚDO

01. VISÃO GERAL

A rotina de romaneio(OGA250) 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 romaneio via rotina automática MVC. 

O romaneio sem pesagem/simbólico(OGA251) também faz uso da rotina de romaneio(OGA250), se diferenciando por não fazer uso da balança, não sendo necessário informar o peso de entrada e saída, mas somente o peso bruto do romaneio.


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

Deve ser adequado conforme a necessidade do cliente.

02. EXEMPLO DE UTILIZAÇÃO


Exemplo de código - Inclusão Romaneio com Pesagem
User Function zIncRomP()
	Local lRet := .F.
	Local oModel := Nil
    
	oModel	:= FWLoadModel('OGA250')    
	oModel:SetOperation(MODEL_OPERATION_INSERT) //INCLUSÃO
	oModel:Activate()
	
	//### Modelos de dados: NJJUNICO, NJKUNICO, NK4UNICO, NJMUNICO ###
	//Setando valores nos campos
	oModel:GetModel('NJJUNICO'):SetValue('NJJ_TIPENT', '0') //COM PESAGEM
	oModel:GetModel('NJJUNICO'):SetValue('NJJ_TIPO', '4') //SAIDA POR VENDA
	oModel:GetModel('NJJUNICO'):SetValue('NJJ_CODCTR', '000116') //NUMERO DO CONTRATO
	oModel:GetModel('NJJUNICO'):SetValue('NJJ_TPFORM', '1')
	oModel:GetModel('NJJUNICO'):SetValue('NJJ_LOCAL', '01')
	oModel:GetModel('NJJUNICO'):SetValue('NJJ_TABELA', '000001')
	oModel:GetModel('NJJUNICO'):SetValue('NJJ_PESO1', 1000)
	oModel:GetModel('NJJUNICO'):SetValue('NJJ_PESO2', 2000)
	oModel:GetModel('NJJUNICO'):SetValue('NJJ_PSSUBT', 1000)
 
    //modelo de dados da aba Classificação(Grid)   
    oModel:GetModel('NJKUNICO'):GoLine( 1 ) //posicionando na linha
    oModel:GetModel('NJKUNICO'):SetValue('NJK_PERDES', 1)  
    oModel:GetModel('NJKUNICO'):GoLine( 2 ) //posicionando na linha            
    oModel:GetModel('NJKUNICO'):SetValue('NJK_PERDES', 0.8)  

    //modelo de dados da aba Comercialização(Grid)  
    oModel:GetModel( "NJMUNICO" ):GoLine( 1 ) //posicionando na linha           
    oModel:GetModel('NJMUNICO'):SetValue('NJM_ITEROM', '01')    

    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 - Inclusão Romaneio sem Pesagem(simbólico)
User Function zIncRomS()
	Local lRet := .F.
    Local oModel := Nil
    
    SetFunName("OGA251") //para definir que deve ser considerado a chamada pelo OGA251(Romaneio sem pesagem)
	//chamada da função acima necessário para algumas validações, importante seu uso somente nos romaneio com o campo NJJ_TIPENT='2' 

    oModel	:= FWLoadModel('OGA250')
    oModel:SetOperation(MODEL_OPERATION_INSERT)
    oModel:Activate()
   
    oModel:GetModel('NJJUNICO'):SetValue('NJJ_TIPENT', '2') //SEM PESAGEM
    oModel:GetModel('NJJUNICO'):SetValue('NJJ_TIPO', '4') //SAIDA POR VENDA
    oModel:GetModel('NJJUNICO'):SetValue('NJJ_CODCTR', '000116') //NUMERO DO CONTRATO
    oModel:GetModel('NJJUNICO'):SetValue('NJJ_TPFORM', '1')
    oModel:GetModel('NJJUNICO'):SetValue('NJJ_LOCAL', '01')
	oModel:GetModel('NJJUNICO'):SetValue('NJJ_TABELA', '000001')
    oModel:GetModel('NJJUNICO'):SetValue('NJJ_PSSUBT', 1000)
    
    //modelo de dados da aba Classificação(Grid)   
    oModel:GetModel('NJKUNICO'):GoLine( 1 ) //posicionando na linha
    oModel:GetModel('NJKUNICO'):SetValue('NJK_PERDES', 1)  
    oModel:GetModel('NJKUNICO'):GoLine( 2 ) //posicionando na linha            
    oModel:GetModel('NJKUNICO'):SetValue('NJK_PERDES', 0.8)  

    //modelo de dados da aba Comercialização(Grid)  
    oModel:GetModel( "NJMUNICO" ):GoLine( 1 ) //posicionando na linha           
    oModel:GetModel('NJMUNICO'):SetValue('NJM_ITEROM', '01')    

    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 Romaneio
User Function zEditRom()
	Local lRet := .F.
    Local oModel := Nil
    
    dbSelectArea("NJJ")
    NJJ->(DbSetOrder(1))
    If NJJ->(DbSeek(xFilial("NJJ") + '0000000447'))
        
		//SetFunName("OGA251") //importante definir para o romaneio sem pesagem, campo NJJ_TIPENT='2', para executar as validações corretas

		oModel	:= FWLoadModel('OGA250')
        oModel:SetOperation(MODEL_OPERATION_UPDATE) //Alteração
        oModel:Activate()
		
		//### Modelos de dados: NJJUNICO, NJKUNICO, NK4UNICO, NJMUNICO ###
		//Setando valores nos campos
        oModel:GetModel('NJJUNICO'):SetValue('NJJ_LOCAL', '02')
        
        //modelo de dados da aba Classificação(Grid)     
        oModel:GetModel( "NJKUNICO" ):GoLine( 1 )   
        oModel:GetModel('NJKUNICO'):SetValue('NJK_PERDES', 1.1)  
        
        //modelo de dados da aba Comercialização(Grid)   
        oModel:GetModel( "NJMUNICO" ):GoLine( 1 )            
        oModel:GetModel('NJMUNICO'):SetValue('NJM_TES', '501')    

        If oModel:VldData()	
            oModel:CommitData()
            MsgInfo("Registro alterado com sucesso")
            lRet := .T.
        Else	
            VarInfo("",oModel:GetErrorMessage())
            MsgAlert("Erro ao alterar o registro")
        EndIf   
    Else
        MsgAlert("Registro não localizado!")
    EndIf

return lRet
Exemplo de código - Exclusão do Romaneio
User Function zDeletRom()
	Local lRet := .F.
    Local oModel := Nil
   
    dbSelectArea("NJJ")
    NJJ->(DbSetOrder(1))
    If NJJ->(DbSeek(xFilial("NJJ") + '0000000449'))
        
		oModel	:= FWLoadModel('OGA250')
        oModel:SetOperation(MODEL_OPERATION_DELETE) //Exclusão
        oModel:Activate()

        If oModel:VldData()	
            oModel:CommitData()
            MsgInfo("Registro excluido com sucesso")
            lRet := .T.
        Else	
            VarInfo("",oModel:GetErrorMessage())
            MsgAlert("Erro ao excluir o registro")
        EndIf   
    Else
        MsgAlert("Registro não localizado!")
    EndIf

return lRet


03. ASSUNTOS RELACIONADOS