flit-modulo-exportacoes 2.0.11 → 2.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,6 @@
1
+ import { ElasticBase } from './elastic-base';
2
+ import { SearchHit } from '@elastic/elasticsearch/lib/api/types';
3
+ export declare class ContasElastic extends ElasticBase {
4
+ private internalGetContasElastic;
5
+ getContaElastic(contaId: string): Promise<SearchHit<any>>;
6
+ }
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ContasElastic = void 0;
4
+ const elastic_base_1 = require("./elastic-base");
5
+ class ContasElastic extends elastic_base_1.ElasticBase {
6
+ async internalGetContasElastic(contaId) {
7
+ return await this.elasticClient.search({
8
+ scroll: '1m',
9
+ index: 'contas',
10
+ size: this.totalRegistrosFiltradosElastic,
11
+ _source: [
12
+ 'parametros.horario_noturno'
13
+ ],
14
+ query: {
15
+ bool: {
16
+ must: [{
17
+ match: {
18
+ i_id: contaId
19
+ }
20
+ }, {
21
+ match: {
22
+ excluido: false
23
+ }
24
+ }]
25
+ }
26
+ },
27
+ sort: [{
28
+ i_id: 'asc'
29
+ }]
30
+ });
31
+ }
32
+ async getContaElastic(contaId) {
33
+ return (await this.retornaTodosDadosPaginacaoElastic(await this.internalGetContasElastic(contaId)))[0];
34
+ }
35
+ }
36
+ exports.ContasElastic = ContasElastic;
package/dist/index.d.ts CHANGED
@@ -13,5 +13,9 @@ export declare function calcularValoresExportacao({ contaId, dataFinal, dataInic
13
13
  jornadas: Array<SearchHit<any>>;
14
14
  formaEnvioFaltas: EnumFormaEnvioFaltasEventosExportacoes;
15
15
  }): Promise<ValoresEventosExportacao>;
16
+ export declare function aplicarFatorConversaoValoresEventos({ fatorConversao, valoresEventos }: {
17
+ fatorConversao: number;
18
+ valoresEventos: ValoresEventosExportacao;
19
+ }): ValoresEventosExportacao;
16
20
  export declare function retornaValorEvento(tipoEvento: TipoEventoExportacao, valoresEventos: ValoresEventosExportacao): number;
17
21
  export declare function processarTiposEventosExportar(tiposEventos: Array<TiposEventosExportar>): TiposEventosExportacaoArquivo;
package/dist/index.js CHANGED
@@ -1,12 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.processarTiposEventosExportar = exports.retornaValorEvento = exports.calcularValoresExportacao = exports.validarDadosPayload = void 0;
3
+ exports.processarTiposEventosExportar = exports.retornaValorEvento = exports.aplicarFatorConversaoValoresEventos = exports.calcularValoresExportacao = exports.validarDadosPayload = void 0;
4
+ const contas_elastic_1 = require("./dao/contas-elastic");
4
5
  const feriados_elastic_1 = require("./dao/feriados-elastic");
5
6
  const flit_calcular_jornada_1 = require("flit-calcular-jornada");
6
7
  const unificacao_eventos_repetidos_1 = require("./unificacao-eventos-repetidos");
7
8
  const eventos_exportacoes_model_1 = require("./eventos-exportacoes-model");
8
- const utils_1 = require("./utils");
9
+ const utils_1 = require("flit-calcular-jornada/dist/lib/helpers/utils");
10
+ const parametrosHorasNoturnas_model_1 = require("flit-calcular-jornada/dist/lib/models/parametrosHorasNoturnas.model");
9
11
  const models_1 = require("./models");
12
+ const utils_2 = require("./utils");
10
13
  function validarCampo(fn, fieldName, campo) {
11
14
  if (!campo || campo.length <= 0) {
12
15
  fn().push(`${fieldName} não informada.`);
@@ -26,6 +29,16 @@ async function calcularValoresExportacao({ contaId, dataFinal, dataInicial, elas
26
29
  dataFinal: dataFinal,
27
30
  dataInicial: dataInicial
28
31
  });
32
+ const conta = await new contas_elastic_1.ContasElastic(elasticClient).getContaElastic(contaId);
33
+ let horarioNoturno = undefined;
34
+ if (conta?._source?.parametros?.horario_noturno) {
35
+ horarioNoturno = (0, utils_1.calcularConfiguracoesHorarioNoturnoJornada)(new parametrosHorasNoturnas_model_1.ParametrosHorarioNoturno({
36
+ fim: conta?._source?.parametros?.horario_noturno?.fim || '22:00',
37
+ inicio: conta?._source?.parametros?.horario_noturno?.inicio || '05:00',
38
+ tipo: (0, utils_2.getEnumParametrosTipoHorarioNoturno)(conta?._source?.parametros?.horario_noturno?.tipo),
39
+ hora_reduzida_segundos: conta?._source?.parametros?.horario_noturno?.hora_reduzida_segundos || 3600
40
+ }));
41
+ }
29
42
  const valoresEventos = {
30
43
  ValorFaltas: 0,
31
44
  ValorAtraso: 0,
@@ -58,15 +71,15 @@ async function calcularValoresExportacao({ contaId, dataFinal, dataInicial, elas
58
71
  };
59
72
  for (const jornadaElastic of jornadas) {
60
73
  const jornada = jornadaElastic._source ?? {};
61
- if ((0, utils_1.colaboradorFaltou)(jornada.jornada_realizada)) {
74
+ if ((0, utils_2.colaboradorFaltou)(jornada.jornada_realizada)) {
62
75
  valoresEventos.datas_faltas.push(new Date(jornada.data_hora));
63
- const minutosFalta = (0, utils_1.retornaNumeroMinutosPrevistosEscala)(jornada.jornada_prevista?.periodos ?? []);
64
- valoresEventos.ValorHorasFaltas += (0, utils_1.arredondarTempoDecimal)(minutosFalta / 60, 1);
76
+ const minutosFalta = (0, utils_2.retornaNumeroMinutosPrevistosEscala)(jornada.jornada_prevista?.periodos ?? []);
77
+ valoresEventos.ValorHorasFaltas += (0, utils_2.arredondarTempoDecimal)(minutosFalta / 60, 1);
65
78
  if (formaEnvioFaltas === eventos_exportacoes_model_1.EnumFormaEnvioFaltasEventosExportacoes.Dias) {
66
79
  valoresEventos.ValorFaltas += 1;
67
80
  }
68
81
  else {
69
- valoresEventos.ValorFaltas += (0, utils_1.arredondarTempoDecimal)(minutosFalta / (formaEnvioFaltas === eventos_exportacoes_model_1.EnumFormaEnvioFaltasEventosExportacoes.Horas ? 60 : 1), 1);
82
+ valoresEventos.ValorFaltas += (0, utils_2.arredondarTempoDecimal)(minutosFalta / (formaEnvioFaltas === eventos_exportacoes_model_1.EnumFormaEnvioFaltasEventosExportacoes.Horas ? 60 : 1), 1);
70
83
  }
71
84
  }
72
85
  valoresEventos.ValorNormal += jornada.horas_normais ?? 0;
@@ -83,7 +96,8 @@ async function calcularValoresExportacao({ contaId, dataFinal, dataInicial, elas
83
96
  valoresEventos.FaixaDiferenciada.ValorFaixa1 += jornada.faixas_horas_extras?.diferenciada?.faixa1 ?? 0;
84
97
  valoresEventos.FaixaDiferenciada.ValorFaixa2 += jornada.faixas_horas_extras?.diferenciada?.faixa2 ?? 0;
85
98
  valoresEventos.FaixaDiferenciada.ValorFaixa3 += jornada.faixas_horas_extras?.diferenciada?.faixa3 ?? 0;
86
- if (await (0, utils_1.feriado)({
99
+ valoresEventos.ValorExtraIntrajornadaComReducao += (jornada.horas_extras_intrajornada ?? 0) * (horarioNoturno?.base_reducao_horario_noturno || 1);
100
+ if (await (0, utils_2.feriado)({
87
101
  empresas: empresas,
88
102
  feriados: feriados,
89
103
  elasticClient: elasticClient,
@@ -97,12 +111,12 @@ async function calcularValoresExportacao({ contaId, dataFinal, dataInicial, elas
97
111
  valoresEventos.ValorExtraNoturnoFeriado += jornada.horas_noturnas_extras ?? 0;
98
112
  }
99
113
  else {
100
- if (jornada.data_hora && (0, utils_1.sabado)(new Date(jornada.data_hora))) {
114
+ if (jornada.data_hora && (0, utils_2.sabado)(new Date(jornada.data_hora))) {
101
115
  valoresEventos.ValorExtraSabado += jornada.horas_extras ?? 0;
102
116
  valoresEventos.ValorExtraNoturnoSabado += jornada.horas_noturnas_extras ?? 0;
103
117
  }
104
118
  else {
105
- if (jornada.data_hora && (0, utils_1.domingo)(new Date(jornada.data_hora))) {
119
+ if (jornada.data_hora && (0, utils_2.domingo)(new Date(jornada.data_hora))) {
106
120
  valoresEventos.ValorExtraDomingo += jornada.horas_extras ?? 0;
107
121
  valoresEventos.ValorExtraNoturnoDomingo += jornada.horas_noturnas_extras ?? 0;
108
122
  }
@@ -121,6 +135,31 @@ async function calcularValoresExportacao({ contaId, dataFinal, dataInicial, elas
121
135
  return valoresEventos;
122
136
  }
123
137
  exports.calcularValoresExportacao = calcularValoresExportacao;
138
+ function aplicarFatorConversaoValoresEventos({ fatorConversao, valoresEventos }) {
139
+ return {
140
+ ValorFaltas: valoresEventos.ValorFaltas,
141
+ datas_faltas: valoresEventos.datas_faltas,
142
+ FaixaSemanal: valoresEventos.FaixaSemanal,
143
+ ValorHorasFaltas: valoresEventos.ValorHorasFaltas,
144
+ FaixaDiferenciada: valoresEventos.FaixaDiferenciada,
145
+ ValorNormal: (0, utils_2.arredondarTempoDecimal)(valoresEventos.ValorNormal * fatorConversao, 1),
146
+ ValorAtraso: (0, utils_2.arredondarTempoDecimal)(valoresEventos.ValorAtraso * fatorConversao, 1),
147
+ ValorNoturno: (0, utils_2.arredondarTempoDecimal)(valoresEventos.ValorNoturno * fatorConversao, 1),
148
+ ValorExtraSegSex: (0, utils_2.arredondarTempoDecimal)(valoresEventos.ValorExtraSegSex * fatorConversao, 1),
149
+ ValorExtraSabado: (0, utils_2.arredondarTempoDecimal)(valoresEventos.ValorExtraSabado * fatorConversao, 1),
150
+ ValorExtraDomingo: (0, utils_2.arredondarTempoDecimal)(valoresEventos.ValorExtraDomingo * fatorConversao, 1),
151
+ ValorExtraFeriado: (0, utils_2.arredondarTempoDecimal)(valoresEventos.ValorExtraFeriado * fatorConversao, 1),
152
+ ValorNoturnoTotal: (0, utils_2.arredondarTempoDecimal)(valoresEventos.ValorNoturnoTotal * fatorConversao, 1),
153
+ ValorHorasTrabalhadas: (0, utils_2.arredondarTempoDecimal)(valoresEventos.ValorHorasTrabalhadas * fatorConversao, 1),
154
+ ValorExtraIntrajornada: (0, utils_2.arredondarTempoDecimal)(valoresEventos.ValorExtraIntrajornada * fatorConversao, 1),
155
+ ValorExtraNoturnoSegSex: (0, utils_2.arredondarTempoDecimal)(valoresEventos.ValorExtraNoturnoSegSex * fatorConversao, 1),
156
+ ValorExtraNoturnoSabado: (0, utils_2.arredondarTempoDecimal)(valoresEventos.ValorExtraNoturnoSabado * fatorConversao, 1),
157
+ ValorExtraNoturnoDomingo: (0, utils_2.arredondarTempoDecimal)(valoresEventos.ValorExtraNoturnoDomingo * fatorConversao, 1),
158
+ ValorExtraNoturnoFeriado: (0, utils_2.arredondarTempoDecimal)(valoresEventos.ValorExtraNoturnoFeriado * fatorConversao, 1),
159
+ ValorExtraIntrajornadaComReducao: (0, utils_2.arredondarTempoDecimal)(valoresEventos.ValorExtraIntrajornadaComReducao * fatorConversao, 1)
160
+ };
161
+ }
162
+ exports.aplicarFatorConversaoValoresEventos = aplicarFatorConversaoValoresEventos;
124
163
  function retornaValorEvento(tipoEvento, valoresEventos) {
125
164
  switch (tipoEvento) {
126
165
  case models_1.TipoEventoExportacao.HORA_EXTRA_NOTURNA_SEG_SEX:
package/dist/utils.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { Client } from '@elastic/elasticsearch';
2
2
  import { SearchHit } from '@elastic/elasticsearch/lib/api/types';
3
+ import { EnumParametrosTipoHorarioNoturno } from 'flit-calcular-jornada/dist/lib/models/parametrosHorasNoturnas.model';
3
4
  export declare function arredondarTempoDecimal(tempoDecimal: number, minutosArred: number): number;
4
5
  export declare function colaboradorFaltou(jornadaRealizada?: any): boolean;
5
6
  export declare function sabado(data: Date): boolean;
@@ -16,3 +17,4 @@ export declare function feriado({ elasticClient, dataHoraJornada, empresas, feri
16
17
  }): Promise<boolean>;
17
18
  export declare function retornaNumeroMinutosPrevistosEscala(periodosJornadaPrevista: any[]): number;
18
19
  export declare function retornaListaUsuariosJornadas(jornadas: Array<SearchHit<any>>): Array<string>;
20
+ export declare function getEnumParametrosTipoHorarioNoturno(tipoHorarioNoturno?: string): EnumParametrosTipoHorarioNoturno;
package/dist/utils.js CHANGED
@@ -3,9 +3,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.retornaListaUsuariosJornadas = exports.retornaNumeroMinutosPrevistosEscala = exports.feriado = exports.domingo = exports.sabado = exports.colaboradorFaltou = exports.arredondarTempoDecimal = void 0;
6
+ exports.getEnumParametrosTipoHorarioNoturno = exports.retornaListaUsuariosJornadas = exports.retornaNumeroMinutosPrevistosEscala = exports.feriado = exports.domingo = exports.sabado = exports.colaboradorFaltou = exports.arredondarTempoDecimal = void 0;
7
7
  const moment_1 = __importDefault(require("moment"));
8
8
  const empresas_feriado_elastic_1 = require("./dao/empresas-feriado-elastic");
9
+ const parametrosHorasNoturnas_model_1 = require("flit-calcular-jornada/dist/lib/models/parametrosHorasNoturnas.model");
9
10
  function arredondarTempoDecimal(tempoDecimal, minutosArred) {
10
11
  return (Math.round((tempoDecimal * 60) / minutosArred) * minutosArred) / 60;
11
12
  }
@@ -148,3 +149,16 @@ function retornaListaUsuariosJornadas(jornadas) {
148
149
  return usuarios;
149
150
  }
150
151
  exports.retornaListaUsuariosJornadas = retornaListaUsuariosJornadas;
152
+ function getEnumParametrosTipoHorarioNoturno(tipoHorarioNoturno) {
153
+ switch ((tipoHorarioNoturno ?? '').toUpperCase()) {
154
+ case parametrosHorasNoturnas_model_1.EnumParametrosTipoHorarioNoturno.RURAL:
155
+ return parametrosHorasNoturnas_model_1.EnumParametrosTipoHorarioNoturno.RURAL;
156
+ case parametrosHorasNoturnas_model_1.EnumParametrosTipoHorarioNoturno.URBANO:
157
+ return parametrosHorasNoturnas_model_1.EnumParametrosTipoHorarioNoturno.URBANO;
158
+ case parametrosHorasNoturnas_model_1.EnumParametrosTipoHorarioNoturno.PECUARIA:
159
+ return parametrosHorasNoturnas_model_1.EnumParametrosTipoHorarioNoturno.PECUARIA;
160
+ default:
161
+ return parametrosHorasNoturnas_model_1.EnumParametrosTipoHorarioNoturno.CUSTOMIZADO;
162
+ }
163
+ }
164
+ exports.getEnumParametrosTipoHorarioNoturno = getEnumParametrosTipoHorarioNoturno;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "flit-modulo-exportacoes",
3
- "version": "2.0.11",
3
+ "version": "2.0.13",
4
4
  "description": "",
5
5
  "main": "dist/lib/index.js",
6
6
  "directories": {
@@ -16,10 +16,11 @@
16
16
  },
17
17
  "devDependencies": {
18
18
  "@elastic/elasticsearch": "^8.8.1",
19
+ "@types/luxon": "^3.3.0",
19
20
  "flit-calcular-jornada": "^2.1.4",
20
21
  "prettier": "^2.8.8",
21
22
  "tsc-alias": "^1.8.6",
22
- "typescript": "^5.1.3"
23
+ "typescript": "^5.1.5"
23
24
  },
24
25
  "scripts": {
25
26
  "build": "tsc --project tsconfig.json && tsc-alias -p tsconfig.json",
@@ -28,4 +29,4 @@
28
29
  "version": "npm run format && git add -A lib",
29
30
  "postversion": "git push && git push --tags"
30
31
  }
31
- }
32
+ }