Histórico da Página
...
Linha de Produto: | Microsiga Protheus® |
Segmento: | Serviços |
Módulo: | SIGAGPE - Recursos HumanosSIGAPON |
Função: | PONA080 - Tabela de Horário Padrão |
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 |
...
Função utilizada para inclusão, alteração ou exclusão de uma tabela de horário padrão via rotina automática (ExecAuto).
Cada chamada da rotina automática permite manipular uma sequência da tabela de horário, seja para inclusão, alteração ou exclusão.
03. INFORMAÇÕES TÉCNICAS
nOpcAuto | Operação 3 - Inclusão |
aTurno | Array com informações do turno que será vinculada com o tabela de horário padrão criada via execauto aTurno[1] Filial Caso a sequência não seja informada e for uma inclusão o sistema irá realizar o cadastro na próxima sequência |
aItens | Array com as informações do dia da semana da tabela de horário padrão. |
aItens[x,1] Dia da Semana
aItens[x,2] Tipo Dia
aItens[x,3] Limite Inferior
aItens[x,4] 1a Entrada
aItens[x,5] 1a Saida
aItens[x,6] 2a Entrada
aItens[x,7] 2a Saida
aItens[x,8] 3a Entrada
aItens[x,9] 3a Saida
aItens[x,10] 4a Entrada
aItens[x,11] 4a Saida
aItens[x,12] Limite Superior
aItens[x,13] Codigo Refeicao
aItens[x,14] Tipo Hora Extra Normal
aItens[x,15] Tipo Hora Extra Noturna
aItens[x,16] Nona Hora
aItens[x,17] 1a Saída Intervalo
aItens[x,18] 2a Saída Intervalo
aItens[x,19] 3a Saída Intervalo
aItens[x,20] 1a Jor Cont.
aItens[x,21] 2a Jor Cont.
aItens[x,22] 3a Jor Cont.
aItens[x,23] 4a Jor Cont.
04. EXEMPLO
...
aAdd(aTurno, {"PJ_FILIAL" , xFilial("SPJ","D MG 01") , Nil}) // Código da Filial
aAdd(aTurno, {"PJ_TURNO" , "001" , Nil}) // Código do Turno
For nI:=1 To 7
aAdd( aItens,{})
If nI == 1
cTipoDia := "D"
cCodHe := "2"
cCodHeNot := "6"
ElseIf nI == 7
cTipoDia := "C"
cCodHe := "3"
cCodHeNot := "7"
Else
cTipoDia := "S"
cCodHe := "1"
cCodHeNot := "5"
EndIf
aAdd(aItens[nI],{"PJ_DIA" ,nI ,Nil }) // Dia da Semana
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_ENTRA3" ,00.00 ,Nil }) // 3a Entrada
aAdd(aItens[nI],{"PJ_SAIDA3" ,00.00 ,Nil }) // 3a Saida
aAdd(aItens[nI],{"PJ_ENTRA4" ,00.00 ,Nil }) // 4a Entrada
aAdd(aItens[nI],{"PJ_SAIDA4" ,00.00 ,Nil }) // 4a 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
aAdd(aItens[nI],{"PJ_INTERV2" ,"N" ,Nil }) // 2a Saída Intervalo
aAdd(aItens[nI],{"PJ_INTERV3" ,"N" ,Nil }) // 3a Saída Intervalo
aAdd(aItens[nI],{"PJ_JND1CON" ,"N" ,Nil }) // 1a Jor Cont.
aAdd(aItens[nI],{"PJ_JND2CON" ,"N" ,Nil }) // 2a Jor Cont.
aAdd(aItens[nI],{"PJ_JND3CON" ,"N" ,Nil }) // 3a Jor Cont.
aAdd(aItens[nI],{"PJ_JND4CON" ,"N" ,Nil }) // 4a Jor Cont.
Next
// nOpcAuto
//3 Inclusão
//4 Alteração
//5 Exclusão
nOpcAuto := 3
//Chamada do ExecAuto
MSExecAuto( {|x,y,z| PONA080(x,y,z)}, aTurno, aItens,nOpcAuto )
...
O array deve seguir o padrão exigido pela MsGetDAuto OBS: A rotina permite manipular apenas uma sequência da tabela por vez, com isso o tamanho máximo do aItens é 7, sendo uma posição para cada dia da semana, enviar mais de 7 registros pode gerar o erro de chave duplicada. |
04. EXEMPLO
Bloco de código | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
#INCLUDE "PROTHEUS.CH"
#INCLUDE "TBICONN.CH"
User Function fExecauto()
Local aTurno := {}
Local aItens := {}
Local nOpcAuto := 0
Local nI := 0
Local cTipoDia
Local cCodHe
Local cCodHeNot
Private lMsErroAuto := .F.
PREPARE ENVIRONMENT EMPRESA "T1" FILIAL "D MG 01" MODULO "GPE"
ConOut("Inicio: " + Time())
ConOut(PadC("Rotina Automatica Tabela de Horário Padrão", 80))
aAdd(aTurno, {"PJ_FILIAL", xFilial("SPJ", "D MG 01"), Nil}) // Código da Filial
aAdd(aTurno, {"PJ_TURNO" , "001", Nil}) // Código do Turno
For nI:=1 To 7
aAdd( aItens,{})
If nI == 1
cTipoDia := "D"
cCodHe := "2"
cCodHeNot := "6"
ElseIf nI == 7
cTipoDia := "C"
cCodHe := "3"
cCodHeNot := "7"
Else
cTipoDia := "S"
cCodHe := "1"
cCodHeNot := "5"
EndIf
aAdd(aItens[nI], {"PJ_DIA" , nI, Nil }) // Dia da Semana
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
// nOpcAuto
//3 Inclusão
//4 Alteração
//5 Exclusã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
ConOut("Fim : " + Time())
RESET ENVIRONMENT
Return NIL
|
...
HTML |
---|
<!-- esconder o menu --> <style> div.theme-default .ia-splitter #main { margin-left: 0px; } .ia-fixed-sidebar, .ia-splitter-left { display: none; } #main { padding-left: 10px; padding-right: 10px; overflow-x: hidden; } .aui-header-primary .aui-nav, .aui-page-panel { margin-left: 0px !important; } .aui-header-primary .aui-nav { margin-left: 0px !important; } </style> |