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
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
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
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