01. VISÃO GERAL
Linha de Produto: | Microsiga Protheus |
Segmento: | Serviços |
Módulo: | SIGAGPE |
Função: | GPEA550 - Lançamentos Fixos |
Abrangências: | Microsiga Protheus 12 |
Versões: | Microsiga Protheus 12 |
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 manutenção de lançamentos fixos por funcionários via rotina automática (ExecAuto). Mais informações sobre a rotina em Lançamentos Fixos V12 - (GPEA550 - SIGAGPE - V12).
nOpcAuto | Operação: 4 - Inclusão/Alteração 5 - Exclusão |
aCabAuto | Array com informações do funcionário a ser feita a manutenção dos lançamentos fixos: aCabAuto[1] Filial aCabAuto[2] Matricula |
aItemAuto | Array com os campos da tabela RG1 - Lançamentos Fixos a serem informados: O array deve seguir o padrão exigido pela MsGetDAuto Sendo um array multi dimensional onde cada posição do array aItemAuto correspondente a uma linha da grid.
As informações devem ser passadas seguindo a estrutura: [nX][1] Nome do campo [nX][2] Conteúdo do campo [nX][3] Nil |
04. EXEMPLOS
Ao efetuar as manutenções, é necessário posicionar no funcionário a ser feito o lançamento conforme exemplos abaixo:
#INCLUDE "PROTHEUS.CH"
#INCLUDE "TBICONN.CH"
User Function fExecInc()
Local cFilialog := "D MG 01 "
Local cMatric := "000002"
Local aCabAuto := {}
Local aItemAuto := {}
Local aLinha := {}
Local lAutom := .T. //execucao sem interface
Local nOpc := 4
Private lMsErroAuto := .F.
PREPARE ENVIRONMENT EMPRESA "T1" FILIAL cFilialog
ConOut("Inicio: " + Time())
dbSelectArea("SRA")
dbSetOrder(1)
If SRA->(MsSeek(xFilial() + cMatric))
aadd(aCabAuto, { "RG1_FILIAL", cFilialog, Nil }) // Código da Filial
aadd(aCabAuto, { "RG1_MAT", cMatric, Nil }) // Matrícula do funcionário
//Campos RG1 a serem informados
aadd(aLinha, { "RG1_ORDEM", "001", Nil }) // Ordem do lançamento do funcionário
aadd(aLinha, { "RG1_TPCALC", "1", Nil })
aadd(aLinha, { "RG1_PD", "001", Nil })
aadd(aLinha, { "RG1_VALOR", 1000.00, Nil })
aadd(aLinha, { "RG1_DINIPG", Ctod("02/02/2024"), Nil })
aadd(aLinha, { "RG1_ROT", "FOL", Nil })
aadd(aItemAuto,aLinha)
//Chama a rotina
MsExecAuto({|a, b, c, d| GPEA550(a,b,c,d)}, nOpc, lAutom, aCabAuto, aItemAuto)
//Faz a validacao
If !lMsErroAuto
ConOut("Inclusao efetuada!")
Else
MostraErro()
EndIf
EndIf
ConOut("Fim : " + Time())
RESET ENVIRONMENT
Return Nil
Para realizar uma edição em um registro específico da RG1, é necessário identificar o item pelo recurso LINPOS da MsGetDAuto
#INCLUDE "PROTHEUS.CH"
#INCLUDE "TBICONN.CH"
User Function fExecAlt()
Local cFilialog := "D MG 01 "
Local cMatric := "000002"
Local aCabAuto := {}
Local aItemAuto := {}
Local aLinha := {}
Local lAutom := .T. //execucao sem interface
Local nOpcAuto := 4
Private lMsErroAuto := .F.
PREPARE ENVIRONMENT EMPRESA "T1" FILIAL cFilialog MODULO "GPE"
ConOut("Inicio: " + Time())
dbSelectArea("SRA")
dbSetOrder(1)
If SRA->(MsSeek(xFilial() + cMatric))
aAdd(aCabAuto, { "RG1_FILIAL", cFilialog, Nil }) // Código da Filial
aAdd(aCabAuto, { "RG1_MAT", cMatric, Nil }) // Matrícula do funcionário
aadd(aLinha, { "LINPOS", "RG1_ORDEM", "001" }) // Identificando a linha da grid pela Ordem do lançamento
//aadd(aLinha, { "AUTDELETA", "S", Nil }) // Uso em caso de exclusão de linha específica
//Informações a serem alteradas
aAdd(aLinha, { "RG1_VALOR", 500.00, Nil })
aadd(aItemAuto,aLinha)
//Chamada do ExecAuto
MsExecAuto({|a, b, c, d| GPEA550(a,b,c,d)}, nOpcAuto, lAutom, aCabAuto, aItemAuto)
If !lMsErroAuto
ConOut("Manutencao concluida!")
Else
MostraErro()
EndIf
EndIf
ConOut("Fim : " + Time())
RESET ENVIRONMENT
Return NIL
*Para exclusão de um registro específico da RG1, utilizar a opção de alteração acima com os recursos LINPOS e AUTDELETA.
Utilizando a operação 5 - Exclusão, é possível deletar todos os lançamentos de um mesmo funcionário, sem especificar a linha do grid.
#INCLUDE "PROTHEUS.CH"
#INCLUDE "TBICONN.CH"
User Function fExecExcl()
Local cFilialog := "D MG 01 "
Local cMatric := "000002"
Local aCabAuto := {}
Local aItemAuto := {} // Enviar vazio
Local lAutom := .T. // Execucao sem interface
Local nOpcAuto := 5 // Identifica Exclusão
Private lMsErroAuto := .F.
PREPARE ENVIRONMENT EMPRESA "T1" FILIAL cFilialog MODULO "GPE"
ConOut("Inicio: " + Time())
dbSelectArea("SRA")
dbSetOrder(1)
If SRA->(MsSeek(xFilial() + cMatric))
aAdd(aCabAuto, {"RG1_FILIAL", cFilialog, Nil}) // Código da Filial
aAdd(aCabAuto, {"RG1_MAT", cMatric, Nil}) // Matrícula do funcionário
//Chamada do ExecAuto
MsExecAuto({|a, b, c, d| GPEA550(a,b,c,d)}, nOpcAuto, lAutom, aCabAuto, aItemAuto)
If !lMsErroAuto
ConOut("Exclusao realizada!")
Else
MostraErro()
EndIf
EndIf
ConOut("Fim : " + Time())
RESET ENVIRONMENT
Return NIL