Regra por processo 845 - Alocação de Marcações
É utilizada apenas no Cálculo de Apuração, antes da Alocação de Marcações. O uso especifico de funções está limitado a RetornaHorario e RetornaBatidaHorario.
Exemplo:
<div class="Code"><p>/* Lista contendo os Horários no Período. */</p><p>definir numero vposmar;</p><p>definir numero vdatini;</p><p>definir numero vdatfim;</p><p>definir numero vhorini;</p><p>definir numero vhorfim;</p><p>definir lista ListaHorario;</p><p></p><p>ListaHorario.DefinirCampos();</p><p>ListaHorario.AdicionarCampo("Horario", numero);</p><p>ListaHorario.AdicionarCampo("Data", data);</p><p>ListaHorario.AdicionarCampo("DataIni", data);</p><p>ListaHorario.AdicionarCampo("HoraIni", numero);</p><p>ListaHorario.AdicionarCampo("DataFim", data);</p><p>ListaHorario.AdicionarCampo("HoraFim", numero);</p><p>ListaHorario.EfetivarCampos();</p><p></p><p>xDatAux=0;</p><p>Para (xDatAux = DatIni; xDatAux <= DatFim; xDatAux++)</p><p>Inicio</p><p class="Ident1">/* Retorna o Horário do Colaborador. */</p><p class="Ident1">RetornaHorario(R034Fun.NumEmp, R034Fun.TipCol, R034Fun.NumCad, xDatAux,"S",xCodHor);</p><p class="Ident1">xHorBase = 0;</p><p class="Ident1">/* Seta a sequência da batida. */</p><p class="Ident1">xContaSeq = 1;</p><p class="Ident1">/* Retorna as Batidas do Horário na Data. */</p><p class="Ident1">xtembat = RetornaBatidaHorario(xCodHor,xContaSeq,xUsoMar,xHorMar,xTolAnt,xTolApo,xFaiMov);</p><p class="Ident1">/* Armazena os dados do Horário na Data. */</p><p class="Ident1">ListaHorario.Adicionar();</p><p class="Ident1">/* Horário Inicio da Data. */</p><p class="Ident1">ListaHorario.DataIni = xDatAux;</p><p class="Ident1">ListaHorario.HoraIni = xTolAnt;</p><p class="Ident1">xHorBase = xTolAnt;</p><p class="Ident1">Enquanto(xtembat <> 0)</p><p class="Ident1">Inicio</p><p class="Ident3">Se (xContaSeq > 1)</p><p class="Ident3">Inicio</p><p class="Ident4">/* Horário Final da Data. */</p><p class="Ident4">ListaHorario.HoraFim = xTolApo;</p><p class="Ident4">Se (xTolApo < xHorBase)</p><p class="Ident5">ListaHorario.DataFim = xDatAux + 1;</p><p class="Ident4">Senao ListaHorario.DataFim = xDatAux;</p><p class="Ident3">Fim;</p><p class="Ident3">xContaSeq++;</p><p class="Ident3">xtembat = RetornaBatidaHorario (xCodHor, xContaSeq,xUsoMar, xHorMar,xTolAnt,xTolApo,xFaiMov);</p><p class="Ident2">Fim;</p><p class="Ident2">ListaHorario.Gravar();</p><p>Fim;</p><p>/* Verifica as Marcações Não Consideradas do Periodo para o Colaborador, conforme os Horários do Período. */</p><p>Tem = ListaHorario.Primeiro();</p><p>Enquanto (Tem = 1)</p><p>Inicio</p><p class="Ident2">/* Loop testando e alocando Marcações Desconsideradas. */</p><p class="Ident2">vposmar = 1;</p><p class="Ident2">Enquanto (ADatMa[vposmar] <> 0)</p><p class="Ident2">Inicio</p><p class="Ident3">vdatini = ListaHorario.DataIni;</p><p class="Ident3">vdatfim = ListaHorario.DataFim;</p><p class="Ident3">vhorini = ListaHorario.HoraIni;</p><p class="Ident3">vhorfim = ListaHorario.HoraFim;</p><p class="Ident3">Se (((aDatMa[vposmar] > vdatini) ou ((aDatMa[vposmar] = vdatini) e (AHorMa[vposmar] >= vhorini))) e</p><p class="Ident3">((aDatMa[vposmar] < vdatfim) ou ((aDatMa[vposmar] = vdatfim) e (AHorMa[vposmar] <= vhorfim))))</p><p class="Ident4">Inicio</p><p class="Ident5">AConMa[vposmar] = 1;</p><p class="Ident4">Fim;</p><p class="Ident4">vposmar = vposmar + 1;</p><p class="Ident3">Fim;</p><p class="Ident1">Tem = ListaHorario.Proximo();</p><p>Fim;</p></div>
Utilização: É utilizada apenas no Cálculo e Recálculo de Apuração. Antes da Rotina de Alocação de Marcações.
Disponível para o Módulo: Controle de Ponto e Refeitório Portaria 1015.
English
Español

English
Español

