Árvore de páginas

Versões comparadas

Chave

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

...

O Ponto de Entrada é executado para cada funcionário após a gravação dos apontamentos

Rotinas:

    • PONM010 - Leitura e Apontamento 
    • PONA040 - Lançamento de Marcações

...

Informações
titleImportante

No momento de execução do Ponto de Entrada PONAPO3 os apontamentos já foram gravados na tabela SPC. Para alterar os apontamentos gerados pelo sistema antes da gravação é possível utilizar o Ponto de Entrada PONAPO4


Parâmetros:

O ponto de entrada recebe por parâmetro as Marcações do funcionário e o Calendário do Ponto gerado para o Período

ParamIxb[1] // Marcações do funcionário

ParamIxb[2] // Calendário do Ponto

Retorno:

Não é esperado nenhum retorno do Ponto de Entrada

02. EXEMPLO DE UTILIZAÇÃO

Gera um evento de provento (bonus) se o funcionário trabalhar no seu aniversário

Bloco de código
languagedelphi
themeConfluence
firstline1
titleFiltro
linenumberstrue
#INCLUDE "TOTVS.CH"

User Function P340FILTPONAPO3()
	
	Local cFiltroaMarcacoes 	:= ParamIxb[1] // FiltroMarcações do funcionário
	Local aCalendario 	:= ParamIxb[2] // Calendário do Ponto
	Local dDataNiver	:= sToD(cValToChar(year(Date())) + MesDia(SRA->RA_NASC))
	Local cEvento		:= "001" // Evento já cadastrado para o usuáriono ponto que será gerado nos apontamentos
	Local nPosMarc		:= 0
	
	If !Empty(cFiltro)
		cFiltro += " .And. SPY->PY_DTBAIXA == cToD('')"
	Else
		cFiltro += " SPY->PY_DTBAIXA == cToD('')"
	EndIf
	
Return cFiltro Len(aCalendario) > 0 .And. dDataNiver >= aCalendario[1][1] .And. dDataNiver <= aCalendario[Len(aCalendario)][1]
		If (nPosMarc := aScan(aMarcacoes, {|x| x[1] == dDataNiver})) > 0
			
			dbSelectArea("SPC")
			dbSetOrder(1)
			
			If SPC->(!dbSeek(SRA->RA_FILIAL + SRA->RA_MAT + cEvento + dToS(dDataNiver)))
				
				RecLock("SPC")
					
					SPC->PC_FILIAL	:= SRA->RA_FILIAL
					SPC->PC_MAT		:= SRA->RA_MAT
					SPC->PC_DATA	:= dDataNiver
					SPC->PC_PD		:= cEvento
					SPC->PC_QUANTC	:= 1
					SPC->PC_CC		:= aMarcacoes[nPosMarc][9]
					SPC->PC_TURNO	:= aMarcacoes[nPosMarc][6]
					
				SPC->(msUnlock())
			EndIf
		EndIf
	EndIf
	
Return NIL


Estrutura do aMarcacoes


Bloco de código
languagedelphi
firstline1
titleEstrutura do aMarcacoes
linenumberstrue
collapsetrue
aMarcacoes[n][01]	//Data da Marcacao
aMarcacoes[n][02]	//Hora da Marcacao
aMarcacoes[n][03]	//Ordem da Marcacao
aMarcacoes[n][04]	//Flag (Origem) da Marcacao
aMarcacoes[n][05]	//Recno ou Logico Alterar Ordem/Turno
aMarcacoes[n][06]	//Turno da Marcacao
aMarcacoes[n][07]	//Funcao do Relogio
aMarcacoes[n][08]	//Giro do Relogio
aMarcacoes[n][09]	//Centro de Custo da Marcacao
aMarcacoes[n][10]	//Flag de Marcacao Apontada
aMarcacoes[n][11]	//Relogio da Marcacao
aMarcacoes[n][12]	//Flag de Tipo de Marcacao
aMarcacoes[n][13]	//Define Se a Marcacao Pode ou Nao ser (Re)Ordenada
aMarcacoes[n][14]	//String de Data/Hora para aSort
aMarcacoes[n][15]	//String de Data com o Periodo de Apontamento
aMarcacoes[n][16]	//String de Sequencia da Tabela Padrao
aMarcacoes[n][17]	//String de Dia da Semana da Tabela de Horario Padrao
aMarcacoes[n][18]	//Processo
aMarcacoes[n][19]	//Roteiro
aMarcacoes[n][20]	//Periodo
aMarcacoes[n][21]	//Num. pagto						
aMarcacoes[n][22]	//Depto
aMarcacoes[n][23]	//Posto
aMarcacoes[n][24]	//Cód. FUnc		
aMarcacoes[n][25]	//Data de Apontamento
aMarcacoes[n][26]	//Némero do REP
aMarcacoes[n][27]	//Tipo de Marcação no REP
aMarcacoes[n][28]	//Tipo de Registro
aMarcacoes[n][29]	//Motivo Modificação do Registro
aMarcacoes[n][30]	//Flag para controlar turno opcional
aMarcacoes[n][31]	//Empresa Origem da marcacao
aMarcacoes[n][32]	//Filial Origem da marcacao
aMarcacoes[n][33]	//Matricula Origem da marcacao
aMarcacoes[n][34]	//Data/Hora Origem da marcacao
aMarcacoes[n][35]	//Identificacao da Origem da marcacao
aMarcacoes[n][36]	//Latitude 
aMarcacoes[n][37]	//Longitude
aMarcacoes[n][38]	//Define se a marcação está dentro ou fora do perímetro
aMarcacoes[n][39]	//Filial da convenção coletiva
aMarcacoes[n][40]	//Código da convenção coletiva
aMarcacoes[n][41]	//Fuso horário da marcação
aMarcacoes[n][42]	//Código da convenção coletiva da marcação


Estrutura do aCalendario

Bloco de código
languagedelphi
firstline1
titleEstrutura do aCalendario
linenumberstrue
collapsetrue
aCalendario[n][01]	// Data
aCalendario[n][02]	// Ordem
aCalendario[n][03]	// Hora
aCalendario[n][04]	// Tipo Marc
aCalendario[n][05]	// No Marc.
aCalendario[n][06]	// Tipo Dia
aCalendario[n][07]	// Horas Trabalhada no Periodo
aCalendario[n][08]	// Sequˆncia de Turno
aCalendario[n][09]	// Horas de Intervalo
aCalendario[n][10]	// Excecao ( E-Excecao, # E - nao e excecao )
aCalendario[n][11]	// Motivo da Excecao
aCalendario[n][12]	// Tipo de hora extra normal
aCalendario[n][13]	// Tipo de hora extra noturna
aCalendario[n][14]	// Turno de Trabalho
aCalendario[n][15]	// Centro de Custo do Periodo 
aCalendario[n][16]	// Pagamento de Nona Hora
aCalendario[n][17]	// Limite de Marcacao Inicial/Final
aCalendario[n][18]	// Codigo da Refeicao
aCalendario[n][19]	// Dia e Feriado
aCalendario[n][20]	// Tipo de Hora Extra Feriado Normal
aCalendario[n][21]	// Tipo de Hora Extra Feriado Noturna
aCalendario[n][22]	// Descricao do Feriado
aCalendario[n][23]	// Regra de Apontamento
aCalendario[n][24]	// Funcionario Afastado
aCalendario[n][25]	// Tipo do Afastamento
aCalendario[n][26]	// Data Inicial do Afastamento
aCalendario[n][27]	// Data Final   do Afastamento
aCalendario[n][28]	// Inicio do Horario Noturno
aCalendario[n][29]	// Final do Horario Noturno
aCalendario[n][30]	// Minutos da Hora Noturna
aCalendario[n][31]	// Se funcionario Trabalha em Dias Feriados
aCalendario[n][32]	// Se Aponta Quando Afastamento em Ferias
aCalendario[n][33]	// Tipo de hora extra normal (Ferias)
aCalendario[n][34]	// Tipo de hora extra noturna (Ferias)
aCalendario[n][35]	// Tipos de Intervalos Que sao Pagos conforme Regra
aCalendario[n][36]	// Tipo Original do Dia conforme excecao mas sem considerar a regra e/ou afastamentos
aCalendario[n][37]	// Se H.Extras são autorizadas para funcionario em ferias
aCalendario[n][38]  // Codigo da Funcao do funcionario
aCalendario[n][39]  // Codigo de Depto. do funcionario
aCalendario[n][40]  // Codigo do Posto do funcionario
aCalendario[n][41]	// Periodo
aCalendario[n][42]	// Roterio
aCalendario[n][43]	// Processo
aCalendario[n][44]	// Num. de Pagamento
aCalendario[n][45]  // Cod. da Jornada
aCalendario[n][46]	// Lote da excecao
aCalendario[n][47]	// Identificacao afastamento
aCalendario[n][48]  // Data de apontamento
aCalendario[n][49]  // Jornada continua
aCalendario[n][50]  // Limite inferior da primeira entrada
aCalendario[n][51]  // Limite superior da primeira entrada	
aCalendario[n][52]  // Limite inferior da primeira saida
aCalendario[n][53]  // Limite superior da primeira saida
aCalendario[n][54]	// Tipo de Excecao 'F' = Funcionario / 'P' = Periodo
aCalendario[n][55]	// Intervalo para Geracao do ACJEF
aCalendario[n][56]	// Isento de marcação



Templatedocumentos