Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

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
4 - Alteração
5 - Exclusã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
aTurno[2] Turno
aTurno[3] Sequência 

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.

OBS: O valor de x poderá ser no máximo até 7

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
Sendo um array multi dimensional onde cada posição do array aItens 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

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
languagedelphi
firstline1
titleExemplo de Inclusão
linenumberstrue
collapsetrue
#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>