Histórico da Página
...
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 |
...
03. INFORMAÇÕES TÉCNICAS
nOpcAuto | Operação: 4 - Inclusão/Alteração |
aCabAuto | Array com informações do funcionário a ser feita a manutenção dos lançamentos fixos: aCabAuto[1] Filial |
aItemAuto | Array com os campos da tabela RG1 - Lançamentos Fixos a serem informados informados: O array deve seguir o padrão exigido pela MsGetDAuto |
04. EXEMPLOS
Na inclusão, caso o campo SPJ_SEMANA não seja passado no array de cabeçalho, aTurno neste exemplo, será criada uma nova sequência.Ao efetuar as manutenções, é necessário posicionar no funcionário a ser feito o lançamento conforme exemplos abaixo:
Bloco de código | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
#INCLUDE "PROTHEUS.CH" #INCLUDE "TBICONN.CH" User Function fExecautofExecInc() Local cFilialog := "D MG 01 " Local aTurno cMatric := "000002" Local aCabAuto := {} Local aItensaItemAuto := {} Local nOpcAuto aLinha := 0{} Local nI lAutom := 0 .T. //execucao sem interface Local cTipoDia Local cCodHe Local cCodHeNot nOpc := 4 Private lMsErroAuto := .F. PREPARE ENVIRONMENT EMPRESA "T1" FILIAL "D MG 01" MODULO "GPE"cFilialog ConOut("Inicio: " + Time()) ConOut(PadC("Rotina Automática Tabela de Horário Padrão", 80) dbSelectArea("SRA") dbSetOrder(1) aAdd(aTurno, {"PJ_FILIAL", xFilial("SPJ", "D MG 01"), Nil}) // Código da Filial aAdd(aTurno, {"PJ_TURNO" , "001", Nil}) If SRA->(MsSeek(xFilial() + cMatric)) aadd(aCabAuto, { "RG1_FILIAL", cFilialog, Nil }) // Código doda TurnoFilial // For para facilitar o preenchimento dos campos For nI := 1 To 7 // Máximo de 7 Itens, sendo um para cada dia da semana aAdd( aItens,{}) If nI == 1 cTipoDia := "D" // DSR cCodHe := "2" cCodHeNot := "6" ElseIf nI == 7 cTipoDia := "C" // Compensado cCodHe := "3" cCodHeNot := "7" Else cTipoDia := "S" // Trabalhado cCodHe := "1" cCodHeNot := "5" EndIf // Abaixo tem alguns campos, os demais campos da tabela podem ser adicionados conforme necessidade aAdd(aItens[nI], {"PJ_DIA" , nI, Nil }) // Dia da Semana 1 = Domingo, 2 = Segunda... 7 = Sábado aAdd(aItens[nI], {"PJ_TPDIA" , cTipoDia, Nil }) // Tipo Dia aAdd(aItens[nI], {"PJ_HORMENO", 05.00, Nil }) // Limite Inferior aAdd(aItens[nI], {"PJ_ENTRA1" , 09.00, Nil }) // 1a Entrada aAdd(aItens[nI], {"PJ_SAIDA1" , 12.00, Nil }) // 1a Saida aAdd(aItens[nI], {"PJ_ENTRA2" , 13.00, Nil }) // 2a Entrada aAdd(aItens[nI], {"PJ_SAIDA2" , 18.00, Nil }) // 2a Saida aAdd(aItens[nI], {"PJ_HORMAIS", 05.00, Nil }) // Limite Superior aAdd(aItens[nI], {"PJ_CODREF" , "", Nil }) // Codigo Refeicao aAdd(aItens[nI], {"PJ_TPEXT" , cCodHe, Nil }) // Tipo Hora Extra Normal aAdd(aItens[nI], {"PJ_TPEXTN" , cCodHeNot, Nil }) // Tipo Hora Extra Noturna aAdd(aItens[nI], {"PJ_NONAHOR", "N", Nil }) // Nona Hora aAdd(aItens[nI], {"PJ_INTERV1", "S", Nil }) // 1a Saída Intervalo Next // Identifica que será uma inclusão nOpcAuto := 3 //Chamada do ExecAuto MSExecAuto( {|x, y, z| PONA080(x, y, z)}, aTurno, aItens, nOpcAuto ) If !lMsErroAuto ConOut(PadC("Cadastro realizado!", 80)) Else ConOut(PadC("Erro no cadastro!", 80)) EndIf 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 NILNil |
Para realizar uma edição é necessário posicionar no registro que será alterado, para isso utilizamos o LINPOS em um registro específico da RG1, é necessário identificar o item pelo recurso LINPOS da MsGetDAuto
Bloco de código | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
#INCLUDE "PROTHEUS.CH" #INCLUDE "TBICONN.CH" User Function fExecAlt() Local cFilialog := "D MG 01 " Local aTurno cMatric := "000002" Local aCabAuto := {} Local aItensaItemAuto := {} Local aAuxaLinha := {} Local lAutom := .T. //execucao sem interface Local nOpcAuto := 04 Private lMsErroAuto := .F. PREPARE ENVIRONMENT EMPRESA "T1" FILIAL "D MG 01" cFilialog MODULO "GPE" ConOut("Inicio: " + Time()) ConOutdbSelectArea(PadC("Rotina Automatica Tabela de Horário Padrão", 80)) aAdd(aTurno, {"PJ_FILIAL", "D MG 01 ", Nil}) // Código da Filial aAdd(aTurno, {"PJ_TURNO" , "001", Nil}) "SRA") dbSetOrder(1) If SRA->(MsSeek(xFilial() + cMatric)) aAdd(aCabAuto, { "RG1_FILIAL", cFilialog, Nil }) // Código doda TurnoFilial aAdd(aTurnoaCabAuto, { "PJRG1_SEMANAMAT", "01", Nil}) // Sequência // Utilizar o campo Dia para posicionar dentro da linha desejada de cada sequência // Deve informar o dia por extenso e sem acentos (Domingo, Segunda, Terca... Sabado) aAdd(aAux, {cMatric, Nil }) // Matrícula do funcionário aadd(aLinha, { "LINPOS", "PJRG1_DIAORDEM", "Segunda001" }) // PosicionaIdentificando naa linha // Adiciona os campos que serão alterados aAdd(aAux, {"PJ_ENTRA1" , 09.00, Nil }) // 1a Entrada aAdd(aAux, {"PJ_SAIDA1" , 12.00 da grid pela Ordem do lançamento //aadd(aLinha, { "AUTDELETA", "S", Nil }) // 1a Saida aAdd(aAux, {"PJ_ENTRA2" , 13.00, Nil }) // 2a Entrada aAdd(aAux, {"PJ_SAIDA2" , 18Uso em caso de exclusão de linha específica //Informações a serem alteradas aAdd(aLinha, { "RG1_VALOR", 500.00, Nil }) // 2a Saida Aadd(aItens, aAux) // Indica que será uma alteração nOpcAuto := 4 aadd(aItemAuto,aLinha) //Chamada do ExecAuto MSExecAutoMsExecAuto( {|xa, b, yc, zd| PONA080GPEA550(x, y, za,b,c,d)}, aTurnonOpcAuto, aItenslAutom, nOpcAutoaCabAuto, aItemAuto) If !lMsErroAuto ConOut(PadC("CadastroManutencao realizadoconcluida!", 80)) Else ConOut(PadC("Erro no cadastro!", 80)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 excluir deletar todos os registros de uma mesma sequência, não sendo necessário enviar o aItens
Ao executar uma exclusão o sistema irá validar se a tabela de horário está vinculada com alguma outra tabela, se existir relacionamento a exclusão não será realizadalançamentos de um mesmo funcionário, sem especificar a linha do grid.
Bloco de código | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
#INCLUDE "PROTHEUS.CH" #INCLUDE "TBICONN.CH" User Function fExecautofExecExcl() Local cFilialog := "D MG 01 " Local cMatric := "000002" Local aTurno aCabAuto := {} Local aItensaItemAuto := {{}} // Enviar vazio Local lAutom := .T. // SeráExecucao enviadosem vaziointerface Local nOpcAuto := 0 5 // Identifica Exclusão Private lMsErroAuto := .F. PREPARE ENVIRONMENT EMPRESA "T1" FILIAL "D MG 01"cFilialog MODULO "GPE" ConOut("Inicio: " + Time()) ConOut(PadC("Rotina Automatica Tabela de Horário Padrão", 80)) dbSelectArea("SRA") dbSetOrder(1) aAdd(aTurnoIf SRA->(MsSeek(xFilial() + cMatric)) aAdd(aCabAuto, {"PJRG1_FILIAL", "D MG 01 ", Nil}) , cFilialog, Nil}) // Código da Filial aAdd(aTurno, {"PJ_TURNO" , "001", Nil}) // Código do Turno aAdd(aTurnoaCabAuto, {"PJRG1_SEMANAMAT", "01", cMatric, Nil}) // Sequência // IdentificaMatrícula que será uma Exclusão nOpcAuto := 5 do funcionário //Chamada do ExecAuto MSExecAuto( {|x, y, z| PONA080(x, y, z MsExecAuto({|a, b, c, d| GPEA550(a,b,c,d)}, aTurnonOpcAuto, aItenslAutom, nOpcAutoaCabAuto, aItemAuto) If !lMsErroAuto ConOut(PadC("CadastroExclusao realizadorealizada!", 80)) Else ConOut(PadC("Erro no cadastro!", 80)) EndIf Else MostraErro() EndIf EndIf ConOut("Fim : " + Time()) RESET ENVIRONMENT Return NIL |
Templatedocumentos |
---|