Árvore de páginas



01. VISÃO GERAL

No cadastro de fornecedores (MATA020), há o recurso em tela para relacionar as Chaves PIX (FINA885)que armazenará esse vinculo através da tabela F72.

Porém, quando esse vinculo tiver que ser feito de forma automática (sem interface), o mesmo deve ser feito através de comandos MVC (FwLoadModel) para a rotina FINA885.

02. EXEMPLOS


#INCLUDE "TBICONN.CH"
#INCLUDE "PROTHEUS.CH"
#INCLUDE "FWMVCDef.CH"

//-----------------------------------------------------------------
//Função de usuário para inclusão de chave PIX para fornecedor via execauto (MVC)
//-----------------------------------------------------------------
User Function F885AMVC()

    Local oModel   := Nil
    Local cFornec  := '000050'
    Local cForLoja := '01'

    PREPARE ENVIRONMENT EMPRESA "01" FILIAL "0101" MODULO "FIN" TABLES "SA2", "F72"

    DbSelectArea("SA2")
    SA2->(DbSetOrder(1))

    If SA2->(DBSeek(xFilial("SA2") + cFornec + cForLoja))
        oModel := FwLoadModel ("FINA885")
        oModel:SetOperation(MODEL_OPERATION_INSERT)
        oModel:Activate()

        oModel:SetValue("FORMCAB","F72_FILIAL", xFilial("SA2"))
        oModel:SetValue("FORMCAB","F72_COD"   , cFornec)
        oModel:SetValue("FORMCAB","F72_LOJA"  , cForLoja)
        oModel:SetValue("FORMCAB","F72_NOME"  , SA2->A2_NOME)

        oModel:SetValue("FORDETAIL", "F72_TPCHV" , "02")
        oModel:SetValue("FORDETAIL", "F72_CHVPIX", "[email protected]")
        oModel:SetValue("FORDETAIL", "F72_ACTIVE", "1")

        If oModel:VldData()
            oModel:CommitData()
            MsgInfo("Registro INCLUÍDO!", "Atenção")
        Else
            VarInfo("",oModel:GetErrorMessage())
        EndIf

        oModel:DeActivate()
        oModel:Destroy()
        oModel := NIL
    EndiF

    RESET ENVIRONMENT

Return Nil

#INCLUDE "TBICONN.CH"
#INCLUDE "PROTHEUS.CH"
#INCLUDE "FWMVCDef.CH"

//-----------------------------------------------------------------
//Função de usuário para inclusão de fornecedor via execauto (MVC)
//-----------------------------------------------------------------

User Function MT020MVC()

   Local oModel   := Nil
   Local cFornec  := '000100'
   Local cForLoja := '01'
   Local lIncOk   := .F.

   PREPARE ENVIRONMENT EMPRESA "01" FILIAL "0101" MODULO "FIN" TABLES "SA2", "F72"

   oModel := FwLoadModel ("MATA020")
   oModel:SetOperation(MODEL_OPERATION_INSERT)
   oModel:Activate()

   oModel:SetValue("SA2MASTER","A2_COD"   , cFornec)
   oModel:SetValue("SA2MASTER","A2_LOJA"  , cForLoja)
   oModel:SetValue("SA2MASTER","A2_NOME"  , "FORN TESTE PIX")
   oModel:SetValue("SA2MASTER","A2_NREDUZ", "F TESTE PIX")
   oModel:SetValue("SA2MASTER","A2_END"   , "RUA FORN PIX ")
   oModel:SetValue("SA2MASTER","A2_EST"   , "SP")
   oModel:SetValue("SA2MASTER","A2_MUN"   , "SAO PAULO")
   oModel:SetValue("SA2MASTER","A2_TIPO"  , "F")

   If oModel:VldData()
      oModel:CommitData()
      MsgInfo("Registro INCLUÍDO!", "Atenção")
      lIncOk:=.T.
   Else
      VarInfo("",oModel:GetErrorMessage())
   EndIf

   oModel:DeActivate()
   oModel:Destroy()
   oModel := NIL

   If lIncOk
      U_F885MVC(cFornec,cForLoja)
   EndIf

   RESET ENVIRONMENT

Return Nil

//-----------------------------------------------------------------
//Função de usuário para inclusão de chave PIX para fornecedor via execauto (MVC)
//-----------------------------------------------------------------

User Function F885MVC(cFornec As Character, cForLoja As Character)

   Local oModel      := Nil

   Default cFornec   := ""
   Default cForLoja  := ""

   DbSelectArea("SA2")
   SA2->(DbSetOrder(1))

   If SA2->(DBSeek(xFilial("SA2") + cFornec + cForLoja))
      oModel := FwLoadModel ("FINA885")
      oModel:SetOperation(MODEL_OPERATION_INSERT)
      oModel:Activate()

      oModel:SetValue("FORMCAB","F72_FILIAL", xFilial("SA2"))
      oModel:SetValue("FORMCAB","F72_COD"   , cFornec)
      oModel:SetValue("FORMCAB","F72_LOJA"  , cForLoja)
      oModel:SetValue("FORMCAB","F72_NOME"  , SA2->A2_NOME)

      oModel:SetValue("FORDETAIL", "F72_TPCHV" , "02")
      oModel:SetValue("FORDETAIL", "F72_CHVPIX", "[email protected]")
      oModel:SetValue("FORDETAIL", "F72_ACTIVE", "1")
      
      If oModel:VldData()
         oModel:CommitData()
         MsgInfo("Registro INCLUÍDO!", "Atenção")
      Else
         VarInfo("",oModel:GetErrorMessage())
      EndIf

      oModel:DeActivate()
      oModel:Destroy()
      oModel := NIL
   EndiF

Return Nil