import.css=/download/attachments/327912/newLayout.css |
Ponto-de-Entrada: PNM070BH01 - Apuração individual
Descrição:
Eventos
Na rotina de Cálculo Mensal, na apuração de Banco de Horas.
Programa Fonte
PONM070.PRW
Sintaxe
PNM070BH01 - Apuração individual ( < dData> , < cPerApur> , < aEveBH[nT,1]> , < aTotais> , < aBHAcum> , < aEveBH> , < lAcumBH> , < nTBHoras> ) --> aRetorno
Parâmetros:
Retorno
Observações
* Param1 – Data do evento. Tipo data. * Param2 – Período de Apuração do evento. Tipo caracter. Geralmente é ‘D’, diária. Determinados eventos possuem um período de apuração diferente, que é discriminado no cadastro de regras de apontamento. * Param3 – Código do Evento. * Param4 – Eventos para Folha de Pagamento. Tipo array. Criado pela função fGeraTot.
fGeraTot( aTotais ,; //01 -> Array com os Totais do Ponto. Deverá ser passado por referência. dData ,; //02 -> Data para Pesquisa e Gravacao no aTotais nHoras ,; //03 -> Horas para Soma ou Geracao nValor ,; //04 -> Valor para Soma ou Geracao cEvento ,; //05 -> Evento do Ponto para Pesquisa cCusto ,; //06 -> Centro de Custo para Comparacao cFil ,; //07 -> Filial para Pesquisa no SP9 cVerba ,; //08 -> Verba da Folha lSubstitui ; //09 -> Substitui a(s) Hora(s) Existente(s) em aTotais )
aTotais: = dData //01 - Data do Evento cEvento //02 - Codigo do Evento nHoras //03 - Quantidade do Evento cVerba //04 - Codigo para a Folha cCusto //05 - Centro de Custo do Evento nValor //06 - Valor do Evento Dtos( dData ) //07 - String de Data
Conteúdo padrão assumido quando não for informado : aTotais := {} dData := Ctod('//') nHoras := 0 nValor := 0 cEvento := Space( GetSx3Cache( 'PB_PD' , 'X3_TAMANHO' ) ) cCusto := Space( GetSx3Cache( 'PB_CC' , 'X3_TAMANHO' ) ) cFil := fFilFunc( 'SP9' ) cVerba := PosSP9( cEvento , cFil , 'P9_CODFOL' , 1 ) lSubstitui := .F.
* Param5 – Eventos para banco de horas. Tipo array. Herdado do array aTotais. Atualmente, obedece a estrutura abaixo, mas poderá ser modificada no futuro: Elemento 1 – Data do evento Elemento 2 – Código do Evento Elemento 3 – Totais de Horas Elemento 4 – Percentual de Valorizacao para banco, quando houver senão é 0. Elemento 5 – Centro de Custo
* Param6 – Códigos de Eventos para banco de horas. Tipo array. Obedece a estrutura: Elemento 1 - Código do Evento Elemento 2 - Período de Apuracao Elemento 3 - Número de Horas De Elemento 4 - Número de Horas Ate Elemento 5 - Percentual de Valorização do Evento Elemento 6 - Agrupa Evento (S/N) Elemento 7 - Valores Totais ou Proporcional a Faixa Elemento 8 - Percentual para Banco de Horas Elemento 9 - Percentual para Folha de Pagto
* Param 7 – Flag para realizar as operações de acúmulo no banco de horas após a saída do ponto entrada. * Param 8 – Total de horas calculada para o evento descrito no Param 3.
* Retorno 1 – aTotais : Eventos para Folha de Pagamento. Tipo array. Criado pela função fGeraTot. * Retorno 2 – aBHAcum : Eventos para banco de horas. Tipo array. Herdado do array aTotais. Atualmente, obedece a estrutura abaixo, mas poderá ser modificada no futuro. * Retorno 3 – lAcumBH :Flag para realizar as operações de acúmulo no banco de horas após a saída do ponto entrada. O valor será alterado a cada evento lido o que significa que qualquer alteração somente influenciará o evento corrente. * Retorno 4 – nTBHoras : Total de horas calculada para o evento descrito no Param 3.
Exemplos
Procedimentos para Implementação 1. No Rdmake obter o array enviado. 2. Realizar os procedimentos necessários.3. O retorno dos elementos poderá influenciar o resultado final da apuração. Assim, se parte das horas para banco forem recalculadas, as horas restantes poderão ser acumuladas no total de horas para folha de pagamento (nesse caso, utilize a função fGeratot, informando a nova quantidade de horas para o evento).Exemplo de ponto de entrada (ilustra a mudança de horas calculadas):#INCLUDE 'RWMAKE.CH'USER FUNCTION PNM070BH01 Local dData := Paramixb[1] //-- dData da apuracao do Evento (pode ser o dia, o ultimo dia da semana, da quinzena, do mes)Local cPerApur := Paramixb[2] //-- Periodo da apuracao do evento (D- diario, S - Semanal, Q - Quinzenal ou M - mensal)Local cCodEve := Paramixb[3] //-- Codigo do EventoLocal aTotais := Paramixb[4] //-- Array de eventos totalizados para Folha de PagamentoLocal aBHACum := Paramixb[5] //-- Array de eventos para o banco de horas Local aEveBH := Paramixb[6] //-- Array de Eventos para o banco de horas com informacoes do cadastro de eventos (SP9)Local lACum := Paramixb[7] //-- Flag para realizar as operacoes de acumulo no banco de horas apos a saida do ponto entradaLocal nTBHoras := Paramixb[8] //-- Total de horas calculada para o evento descrito no parametro 3nTbHoras:= If(nTbHoras < 1, 1, nTbHoras)Return({ aTotais,aBHAcum,lAcum,nTbhoras}) |