Árvore de páginas


CONTEÚDO

  1. Dados Gerais
  2. Descrição
  3. Sintaxe
  4. Parâmetros
  5. Retorno
  6. Exemplos

01. DADOS GERAIS

Linha de Produto:Microsiga Protheus®
Segmento:Serviços
Módulo:SIGAFAT - Faturamento
Função:FATA050 - Metas de Venda
Abrangências:Microsiga Protheus 12, Protheus 11
Versões:Microsiga Protheus 12, Protheus 11
Compatível Países:Todos
Sistemas Operacionais:Todos
Compatível com as Bases de Dados:Todos
Nível de Acesso:Nível 1 (Acesso Clientes)
Idiomas:Todos


02. DESCRIÇÃO

Função utilizada para inclusão, alteração ou exclusão de Metas de Venda via rotina automática (ExecAuto).

Observação

Apesar do cadastro de Metas de Vendas possuir cabeçalho e grid, as informações são registradas em uma única tabela (SCT)


03. SINTAXE

MSExecAuto({|a, b, c| FATA050(a, b, c)}, aCabec, aGrid, nOpcX)

04. PARÂMETROS

Nome

Tipo

Descrição

Obrigatório

aCabecArray de registrosArray contendo os campos do cabeçalho (SCT)Sim
aGridArray de registrosArray contendo os campos da Grid (SCT)Sim
nOpcXNumérico (opção de execução)3 = Inclusão; 4 = Alteração; 5 = ExclusãoSim

05. RETORNO

{}

06. EXEMPLOS

Escolha o modelo desejado abaixo de acordo com a operação a ser executada:

Exemplo básico para a execução de Inclusão de Metas de Venda via Rotina Automática:

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

User Function MyFATA050

Local cDescri 	:= "META DE VENDA"
Local cVend1	:= "Vend01"
Local nQtd1     := 1
Local nValor1   := 100
Local cVend2	:= "Vend02"
Local nQtd2     := 2
Local nValor2   := 200
Local nOpcX     := 3
Local nCount    := 0
Local aErroAuto := {}

Private lMsErroAuto    := .F.
Private lAutoErrNoFile := .F.

//* Abertura do ambiente
ConOut("Inicio: " + Time())
 
ConOut(Repl("-",80))
ConOut(PadC("Inclusao de Meta de Venda", 80))
 
PREPARE ENVIRONMENT EMPRESA "T1" FILIAL "D MG 01" MODULO "FAT" TABLES "SCT","SA3"

//* Inclusao - INÍCIO
aCabec  := {}
aGrid   := {}
aLinha  := {}

//--- Informando os dados do Cabeçalho
//****************************************************************
//* Por default da rotina o código da meta de venda é gerado de forma automática
//* Caso queira informar um código  especifico adicione o campo CT_DOC na array aCabec
//* Exemplo: aadd(aCabec, {"CT_DOC",     "Meta00001",     Nil})
//****************************************************************
aadd(aCabec, {"CT_DESCRI",  cDescri,   Nil})


//--- Informando os dados da Grid
aLinha := {}
aadd(aLinha,{"CT_SEQUEN",   '001',     Nil})
aadd(aLinha,{"CT_VEND",     cVend1,    Nil})
aadd(aLinha,{"CT_QUANT",    nQtd1,     Nil})
aadd(aLinha,{"CT_VALOR",    nValor1,   Nil})
aadd(aGrid, aLinha)

aLinha := {}
aadd(aLinha,{"CT_SEQUEN",   '002',     Nil})
aadd(aLinha,{"CT_VEND",     cVend2,    Nil})
aadd(aLinha,{"CT_QUANT",    nQtd2,     Nil})
aadd(aLinha,{"CT_VALOR",    nValor2,   Nil})
aadd(aGrid, aLinha)


//--- Commit da rotina
MSExecAuto({|a, b, c| FATA050(a, b, c)}, aCabec, aGrid, nOpcX)

If !lMsErroAuto
    ConOut("Incluida com sucesso!)
Else
    ConOut("Erro na inclusao!")
    aErroAuto := GetAutoGRLog()
    For nCount := 1 To Len(aErroAuto)
        cLogErro += StrTran(StrTran(aErroAuto[nCount], "<", ""), "-", "") + " "
        ConOut(cLogErro)
    Next nCount
EndIf

RESET ENVIRONMENT
Return(.T.)

Exemplo básico para a execução de Alteração de Metas de Venda via Rotina Automática:

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

User Function MyFATA050

Local cMeta  	:= "Meta00001" //Meta a ser alterada
Local cDescri 	:= "META DE VENDA ALT"
Local nOpcX     := 4
Local nCount    := 0
Local cSequen   := "002"
Local aErroAuto := {}

Private lMsErroAuto    := .F.
Private lAutoErrNoFile := .F.

//* Abertura do ambiente
ConOut("Inicio: " + Time())
 
ConOut(Repl("-",80))
ConOut(PadC("Alteracao de Meta de Venda", 80))
 
PREPARE ENVIRONMENT EMPRESA "T1" FILIAL "D MG 01" MODULO "FAT" TABLES "SCT","SA3"

// Verifica se o registro que sera alterado existe
SCT->(DBSetOrder(1))
If SCT->(! MsSeek(xFilial("SCT") + cMeta + cSequen))
   cMsgLog += "Não foi localizada a Meta de Venda: " + cB1Cod + ",Sequencia: " + cSequen + CRLF
   lOk     := .F.
EndIf

//* Alteracao - INÍCIO
aCabec  := {}
aGrid   := {}
aLinha  := {}

//************************************************************************************************
//*** Neste exemplo estamos alterando a descrição no cabeçalho e a quantidade da sequencia 002 ***
//************************************************************************************************

//--- Informando os dados do Cabeçalho
aadd(aCabec, {"CT_DOC",     cMeta,     Nil})
aadd(aCabec, {"CT_DESCRI",  cDescri,   Nil})


//--- Informando os dados da Grid
aLinha := {}
aadd(aLinha,{"LINPOS",		"CT_SEQUEN",	'002'}) // Para alterar um item da grid é necessario informar sua sequencia com "LIMPOS"
aadd(aLinha,{"AUTDELETA",	"N",			Nil})
aadd(aLinha,{"CT_QUANT",    5,     			Nil})
aadd(aGrid, aLinha)


//--- Commit da rotina
MSExecAuto({|a, b, c| FATA050(a, b, c)}, aCabec, aGrid, nOpcX)

If !lMsErroAuto
    ConOut("Alterada com sucesso! " + cMeta)
Else
    ConOut("Erro na alteração!")
    aErroAuto := GetAutoGRLog()
    For nCount := 1 To Len(aErroAuto)
        cLogErro += StrTran(StrTran(aErroAuto[nCount], "<", ""), "-", "") + " "
        ConOut(cLogErro)
    Next nCount
EndIf

RESET ENVIRONMENT
Return(.T.)

Exemplo básico para a execução de Exclusão de Metas de Venda via Rotina Automática:

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

User Function MyFATA050

Local cMeta  	:= "Meta00001"
Local nOpcX     := 5
Local nCount    := 0
Local aErroAuto := {}

Private lMsErroAuto    := .F.
Private lAutoErrNoFile := .F.

//* Abertura do ambiente
ConOut("Inicio: " + Time())
 
ConOut(Repl("-",80))
ConOut(PadC("Exclusão de Meta de Venda", 80))
 
PREPARE ENVIRONMENT EMPRESA "T1" FILIAL "D MG 01" MODULO "FAT" TABLES "SCT","SA3"

// Verifica se o registro que sera alterado existe
SCT->(DBSetOrder(1))
If SCT->(! MsSeek(xFilial("SCT") + cMeta))
   cMsgLog += "Não foi localizada a Meta de Venda: " + CRLF
   lOk     := .F.
EndIf

//* Exclusão - INÍCIO
aCabec  := {}

//--- Informando os dados do Cabeçalho
aadd(aCabec, {"CT_DOC",     cMeta,     Nil})

//--- Commit da rotina
MSExecAuto({|a, b, c| FATA050(a, b, c)}, aCabec, , nOpcX)

If !lMsErroAuto
    ConOut("Excluida com sucesso! ")
Else
    ConOut("Erro na exclusão!")
    aErroAuto := GetAutoGRLog()
    For nCount := 1 To Len(aErroAuto)
        cLogErro += StrTran(StrTran(aErroAuto[nCount], "<", ""), "-", "") + " "
        ConOut(cLogErro)
    Next nCount
EndIf

RESET ENVIRONMENT
Return(.T.)