dts-backoffice-util 17.0.0 → 18.0.0

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.
package/README.md CHANGED
@@ -12,7 +12,8 @@ Segue abaixo as últimas versões da Biblioteca, conforme a versão do PO-UI e A
12
12
 
13
13
  | PO-UI | Angular | Versão dtsBackofficeUtil |
14
14
  |-|-|-|
15
- | v17 | v17 | 17.0.0 |
15
+ | v18 | v18 | 18.0.0 |
16
+ | v17 | v17 | 17.1.0 |
16
17
  | v16 | v16 | 16.1.0 |
17
18
  | v15 | v15 | 15.4.1 |
18
19
  | v14 | v14 | 14.4.1 |
@@ -34,35 +35,189 @@ npm install dts-backoffice-util
34
35
 
35
36
  <br>
36
37
 
37
- # Componentes e Serviços Disponíveis
38
+ # Componentes
38
39
 
40
+ ## TotvsScheduleExecutionComponent
39
41
  <br>
40
42
 
41
- # TranslateService
42
-
43
- **Objetivo:** Realizar o controle do idioma corrente, considerando o que estiver parametrizado no Cadastro de Usuários do Datasul, e caso não esteja informado, será considerado o idioma informado no Browse.
43
+ **Objetivo:** Componente para realização de agendamentos RPW.
44
44
 
45
- Importação:
45
+ **Dependências:** Para usar esse componente deve ser instalado no projeto o pacote rxjs-compat.<br/>
46
+ ```cmd
47
+ npm i rxjs-compat --save
46
48
  ```
47
- import { TranslateService } from 'dts-backoffice-util';
49
+ **Importação:** No módulo da aplicação importar o módulo abaixo:
50
+ ```ts
51
+ @NgModule({
52
+ declarations: [
53
+ ...
54
+ ],
55
+ imports: [
56
+ ...,
57
+ DtsBackofficeUtilsModule.forRoot()
58
+ ],
59
+ providers: [],
60
+ bootstrap: [...]
61
+ })
48
62
  ```
49
63
 
50
- Métodos:
64
+ **Parâmetros:**
65
+
66
+ | Nome | Tipo | Obrigatório | Descrição |
67
+ |-|-|-|-|
68
+ | programName | string | Sim | Código de Programa cadastrado no menu, do programa que será executado no RPW. |
69
+ | externalName | string | Sim | Nome completo do Programa que será executado no RPW, diretório + nome externo.<br>**Importante:** Em virtude do dicionário (Foundation), este parâmetro é limitado a 24 dígitos. |
70
+ | programEMS5 | boolean | Não | Indica se o programa progress é do EMS5. |
71
+ | programStyle | number | Não | Número que representa o Estilo do Relatório no EMS5. |
72
+ | programVersion | string | Não | Versão do programa progress. |
73
+ | parameters | Array | Sim | Objeto representando a Temp-Table que será enviada ao progress. |
74
+ | paramDigitDef | Array | Não | Definição da Temp-Table tt-digita. Utilizado apenas pelo EMS2. Para cada campo da tt-digita, deve ser enviado um objeto com o seguinte formato: **{"chave": "string", "tipo": "string" }**. Onde **chave** representa o nome do campo, e **tipo** representa o tipo de dado (exemplo: character, integer, etc...). |
75
+ | paramDigitData | Array | Não | Dados que serão enviados e alimentados na tt-digita. Utilizado apenas pelo EMS2. |
76
+ | paramSelections | Array | Não | Parâmetros de Seleção. Utilizado apenas pelo EMS5. |
77
+ | disabledParams | boolean | Não | Quando for igual a **"Sim"**, irá desabilitar todos os campos do Agendamento (Data Execução, Servidor, Repetir ocorrência, etc...). |
78
+ | loading | boolean | Não | Quando for igual a **"Sim"**, irá apresentar a tela de "loading" no momento da criação da agenda até o retorno do serviço. |
79
+ | endExecution | EventEmitter | Não | Evento que será disparado ao finalizar o agendamento. Ele irá enviar como parâmetro um objeto da interface **IScheduleParameters**, contendo os parâmetros informados pelo usuário. |
80
+ ---
81
+ **Métodos:**
51
82
 
52
83
  | Nome | Descrição |
53
84
  |-|-|
54
- | getCurrentLanguage | Retorna o idioma corrente. Será considerado no primeiro momento a chave "user.language" do localStorage. Caso ela não exista ou seja inválida, será considerado o idioma parametrizado no Browse. Além disso, o idioma deve estar disponível na lista de suportados, conforme métodos "getSuportLanguage".<br>**Parâmetros:** Não há.<br>**Retorno:** string |
55
- | getSuportLanguage | Retornar uma lista com os atuais idiomas suportados.<br>**Parâmetros:** Não há.<br>**Retorno:** Array(string) |
85
+ | setScheduleParameters | Atualiza as informações de agendamento com base no objeto que foi enviado como parâmetro.<br>**Parâmetros:**<br>- schParam (**IScheduleParameters**): Objeto com as informações do agendamento (Data Execução, Servidor, Repetir ocorrência, etc...).<br>**Retorno:** Não há. |
86
+ | getScheduleParameters | Retorna um objeto da interface **IScheduleParameters**, contendo os atuais parâmetros informados pelo usuário na tela de agendamento.<br>**Parâmetros:** Não há.<br>**Retorno:**<br>- schParam (**IScheduleParameters**): Objeto com as informações do agendamento (Data Execução, Servidor, Repetir ocorrência, etc...). |
56
87
  ---
88
+ **Exemplo de Uso:**
89
+
90
+ Em conjunto com o parâmetro **endExecution** o método **setScheduleParameters** pode ser utilizado para salvar e recuperar as informações de agendamento informadas pelo usuário.
91
+
92
+ **Definições no HTML:**
93
+ ```html
94
+ // EXEMPLO PARA EMS5
95
+ <app-totvs-schedule-execution #schParam
96
+ programName="rpt_grp_repres"
97
+ externalName="rpt_grp_repres"
98
+ programEMS5="true"
99
+ programStyle="40"
100
+ programVersion="1.00.00.004"
101
+ [parameters]="parametersRpw"
102
+ [paramSelections]="paramSelectionsRpw"
103
+ (endExecution)="endExecutionSchedule($event)">
104
+ </app-totvs-schedule-execution>
105
+
106
+ // EXEMPLO PARA EMS2
107
+ <app-totvs-schedule-execution #schParam
108
+ programName="pdapi701"
109
+ externalName="pdp/pdapi701.p"
110
+ [parameters]="parametersRpw"
111
+ [paramDigitDef]="paramDigitDefRpw"
112
+ [paramDigitData]="paramDigitDataRpw"
113
+ (endExecution)="endExecutionSchedule($event)">
114
+ </app-totvs-schedule-execution>
115
+ ```
116
+ **Definições no JavaScript:**
117
+ ```ts
118
+ @ViewChild('schParam', { static: true }) schParam: TotvsScheduleExecutionComponent;
119
+
120
+ scheduleParams: IScheduleParameters;
121
+ parametersRpw = new Array<any>();
122
+ paramDigitDefRpw = new Array<any>();
123
+ paramDigitDataRpw = new Array<any>();
124
+ paramSelectionsRpw = new Array<any>();
125
+
126
+ ngOnInit(): void {
127
+ this.loadLocalStorage();
128
+ this.schParam.setScheduleParameters(this.scheduleParams);
129
+
130
+ this.createParametersRpw();
131
+ }
132
+
133
+ createParametersRpw(): void {
134
+ // Parâmetros
135
+ this.parametersRpw = [
136
+ { chave: 'destino', valor: 2, tipo: 'integer' },
137
+ { chave: 'arquivo', valor: '', tipo: 'character' },
138
+ { chave: 'usuario', valor: 'FERNANDO', tipo: 'character' },
139
+ { chave: 'perfil', valor: 880, tipo: 'integer' }
140
+ ];
141
+
142
+ // Definição da tt-digita (EMS2)
143
+ this.paramDigitDefRpw = [
144
+ { chave: 'cod-estab', tipo: 'character' },
145
+ { chave: 'cod-ccusto', tipo: 'integer' }
146
+ ];
147
+
148
+ // Dados da tt-digita (EMS2)
149
+ this.paramDigitDataRpw = [
150
+ { "cod-estab": '19', "cod-ccusto": 17 },
151
+ { "cod-estab": '28', "cod-ccusto": 11 },
152
+ { "cod-estab": '73', "cod-ccusto": 90 }
153
+ ];
154
+
155
+ // Seleção (Relatório Regra/Exceção do EMS5)
156
+ this.paramSelectionsRpw = [
157
+ { ind_dwb_set_type: "Regra", cod_dwb_set: "estab",
158
+ cod_dwb_set_initial: "01", cod_dwb_set_final: "FF", log_dwb_rule: true },
159
+ { ind_dwb_set_type: "Exceção", cod_dwb_set: "ccusto",
160
+ cod_dwb_set_initial: "30", cod_dwb_set_final: "35", log_dwb_rule: false }
161
+ ]
162
+ }
163
+
164
+ endExecutionSchedule(event): void {
165
+ this.scheduleParams = event;
166
+ this.saveLocalStorage();
167
+ }
168
+
169
+ private saveLocalStorage(): void {
170
+ if (typeof (Storage) === 'undefined') { return; }
171
+ localStorage.setItem('param-maint.schParam', JSON.stringify(this.scheduleParams));
172
+ }
173
+
174
+ private loadLocalStorage(): void {
175
+ if (typeof (Storage) === 'undefined') { return; }
176
+ this.scheduleParams = JSON.parse(localStorage.getItem('param-maint.schParam'));
177
+ }
178
+ ```
179
+ **Definições no Progress:**
180
+ ```
181
+ DEFINE TEMP-TABLE tt-param NO-UNDO
182
+ FIELD destino AS INTEGER
183
+ FIELD arquivo AS CHARACTER
184
+ FIELD usuario AS CHARACTER
185
+ FIELD perfil AS INTEGER.
186
+
187
+ DEFINE TEMP-TABLE tt-digita NO-UNDO
188
+ FIELD cod-estab AS CHARACTER
189
+ FIELD cod-ccusto AS INTEGER.
190
+ ```
57
191
 
192
+ Interfaces:
193
+
194
+ IScheduleParameters
195
+ | Nome | Tipo | Descrição | Valor - Label Valor |
196
+ |-|-|-|-|
197
+ | executionType | number | Tipo Execução | 1 - Executar Hoje<br>2 - Agendar Execução |
198
+ | execAppointDate | date | Data Agendada | |
199
+ | execAppointHour | string | Hora Agendada | |
200
+ | executionServer | string | Servidor RPW | |
201
+ | repeatExecution | boolean | Repetir Ocorrência | |
202
+ | repeatType | number | Tipo Repetição | 1 - Diária<br>2 - Semanal<br>3 - Mensal |
203
+ | frequency | string | Frequência | "no" - Uma vez no dia<br>"yes" - Várias vezes no dia |
204
+ | frequencyValue | number | Quantidade da Frequência | |
205
+ | frequencyType | string | Tipo Frequência | "hour" - Hora(s)<br>"minute" - Minuto(s) |
206
+ | execAppointHourInit | string | Hora Inicial Frequência | |
207
+ | execAppointHourFinal | string | Hora Final Frequência | |
208
+ | selectWeeklys | Array | Dia da Semana<br>Frequência Semanal | Sunday - Domingo<br>Monday - Segunda<br>Tuesday - Terça<br>Wednesday - Quarta<br>Thursday - Quinta<br>Friday - Sexta<br>Saturday - Sábado |
209
+ | dayOfMonth | number | Dia do Mês<br>Frequência Mensal | |
210
+ ---
58
211
  <br>
59
212
 
60
- # dtsDateFormat
213
+ # Pipes
214
+
215
+ ## dtsDateFormat
61
216
 
62
217
  **Objetivo:** PIPE para formatar datas, ele foi criado pois o PIPE date do angular não consegue formatada datas inferiores a 1901.
63
218
 
64
219
  **Importação:** No módulo de funcionalidade importar o módulo abaixo:
65
- ```
220
+ ```ts
66
221
  @NgModule({
67
222
  declarations: [
68
223
  ...
@@ -77,7 +232,7 @@ Métodos:
77
232
  ```
78
233
 
79
234
  Exemplo de uso:
80
- ```
235
+ ```html
81
236
  <po-info p-label="Data"
82
237
  [p-value]="date | dtsDateFormat : 'dd/MM/yyyy'">
83
238
  </po-info>
@@ -86,22 +241,49 @@ Exemplo de uso:
86
241
  [p-value]="date | dtsDateFormat : 'MM/dd/yyyy'">
87
242
  </po-info>
88
243
  ```
244
+ <br>
245
+
246
+ # Serviços
247
+
248
+ ## BreadcrumbControlService
249
+
250
+ **Objetivo:** Realiza a criação e controle do breadcrumb das telas.
251
+
252
+ **Importação:**
253
+ ```ts
254
+ import { BreadcrumbControlService } from 'dts-backoffice-util';
255
+ ```
256
+
257
+ **Métodos:**
258
+
259
+ | Nome | Descrição |
260
+ |-|-|
261
+ | newBreadcrumb | "Reinicia" o breadcrumb quando necessário. Ex: Telas que possuem menu lateral, ao passar de um menu para outro, o breadcrumb deve ser reiniciado.<br>**Parâmetros:** Não há.<br>**Retorno:** Não há. |
262
+ | addBreadcrumb | Adiciona um item ao breadcrumb, considerando a URL atual da tela.<br>**Parâmetros:**<br>- literal (string): Nome da tela que será apresentado no breadcrumb.<br>- activatedRoute (ActivatedRoute): ActivedRoute da tela.<br>**Retorno:** Não há. |
263
+ | addBreadcrumbURL | Adiciona um item ao breadcrumb, informando uma URL específica.<br>**Parâmetros:**<br>- literal (string): Nome da tela que será apresentado no breadcrumb.<br>- url (string): URL específica.<br>**Retorno:** Não há. |
264
+ | updBreadcrumbURL | Altera uma informação qualquer contida na URL do item informado.<br>**Parâmetros:**<br>- literal (string): Nome da tela que está no breadcrumb.<br>- valueOld (string): Valor a ser substituído.<br>- valueNew (string): Novo valor.<br>**Retorno:** Não há. |
265
+ | delBreadcrumb | Exclui um item do breadcrumb.<br>**Parâmetros:**<br>- literal (string): Nome do item (nome da tela), que deve ser excluído do breadcrumb.<br>**Retorno:** Não há. |
266
+ | getBreadcrumb | Retorna o breadcrumb atual completo.<br>**Parâmetros:** Não há.<br>**Retorno:**<br>- breadcrumb (PoBreadcrumb) |
267
+ | getCurrentRouter | Retorna a URL do breadcrumb do item corrente.<br>**Parâmetros:** Não há.<br>**Retorno:**<br>- url (string) |
268
+ | getPrevRouter | Retorna a URL do breadcrumb do item anterior.<br>**Parâmetros:** Não há.<br>**Retorno:**<br>- url (string) |
269
+ | hasPreviousRouter | Indica se existe um item de breadcrumb anterior.<br>**Parâmetros:** Não há.<br>**Retorno:**<br>- exist (boolean) |
270
+ ---
89
271
 
90
272
  <br>
91
273
 
92
- # MenuDatasulService
274
+ ## MenuDatasulService
93
275
 
94
276
  **Objetivo:** Interagir com o Menu do Datasul.
95
277
 
96
- Importação:
97
- ```
278
+ **Importação:**
279
+ ```ts
98
280
  import { MenuDatasulService } from 'dts-backoffice-util';
99
281
 
100
282
  constructor(public menuDatasulService: MenuDatasulService) {
101
283
  }
102
284
  ```
103
285
 
104
- Métodos:
286
+ **Métodos:**
105
287
 
106
288
  | Nome | Descrição |
107
289
  |-|-|
@@ -112,8 +294,8 @@ Métodos:
112
294
  | programSecurity | Verifica a Segurança do Menu, identificando se o usuário corrente possui acesso a um ou mais programas.<br>**Parâmetros:**<br>- programName (string ou Array): Nome do Programa cadastro no Menu, que se deseja consultar a segurança. Podendo ser informado uma string simples com o Nome do Programa, ou um Array de strings com a lista de Programas.<br>**Retorno:** response (Observable(Array)): Array com as informações dos Programas pesquisados. O objeto contido no Array terá dois atributos:<br>programName (string): Nome do Programa no Menu.<br>hasAccess (boolean): Valor "TRUE" ou "FALSE", indicando se o usuário tem acesso ao programa. **Obs:** Se o programa não estiver cadastro no Menu, o retorno deste atributo será "FALSE". |
113
295
  ---
114
296
 
115
- Exemplo de uso:
116
- ```
297
+ **Exemplo de uso:**
298
+ ```ts
117
299
  // Executando uma tela Progress
118
300
  program = {
119
301
  prg: 'bas_lote_liquidac_acr',
@@ -167,182 +349,150 @@ this.menuDatasulService
167
349
 
168
350
  <br>
169
351
 
170
- # TotvsScheduleExecutionComponent
352
+ ## ProfileService
171
353
 
172
- **Objetivo:** Componente para realização de agendamentos RPW.
354
+ **Objetivo:** Salvar preferências do usuário.
173
355
 
174
- **Dependências:** Para usar esse componente deve ser instalado no projeto o pacote rxjs-compat.<br/>
175
- - **npm i rxjs-compat --save**
356
+ **Importação:**
357
+ ```ts
358
+ import { ProfileService, IProfile } from 'dts-backoffice-util';
176
359
 
177
- **Importação:** No módulo da aplicação importar o módulo abaixo:
178
- ```
179
- @NgModule({
180
- declarations: [
181
- ...
182
- ],
183
- imports: [
184
- ...,
185
- DtsBackofficeUtilsModule.forRoot()
186
- ],
187
- providers: [],
188
- bootstrap: [...]
189
- })
360
+ constructor(public preferenceService: ProfileService) {
361
+ }
190
362
  ```
191
363
 
192
- Parâmetros:
193
-
194
- | Nome | Tipo | Obrigatório | Descrição |
195
- |-|-|-|-|
196
- | programName | string | Sim | Código de Programa cadastrado no menu, do programa que será executado no RPW. |
197
- | externalName | string | Sim | Nome completo do Programa que será executado no RPW, diretório + nome externo.<br>**Importante:** Em virtude do dicionário (Foundation), este parâmetro é limitado a 24 dígitos. |
198
- | programEMS5 | boolean | Não | Indica se o programa progress é do EMS5. |
199
- | programStyle | number | Não | Número que representa o Estilo do Relatório no EMS5. |
200
- | programVersion | string | Não | Versão do programa progress. |
201
- | parameters | Array | Sim | Objeto representando a Temp-Table que será enviada ao progress. |
202
- | paramDigitDef | Array | Não | Definição da Temp-Table tt-digita. Utilizado apenas pelo EMS2. Para cada campo da tt-digita, deve ser enviado um objeto com o seguinte formato: **{"chave": "string", "tipo": "string" }**. Onde **chave** representa o nome do campo, e **tipo** representa o tipo de dado (exemplo: character, integer, etc...). |
203
- | paramDigitData | Array | Não | Dados que serão enviados e alimentados na tt-digita. Utilizado apenas pelo EMS2. |
204
- | paramSelections | Array | Não | Parâmetros de Seleção. Utilizado apenas pelo EMS5. |
205
- | disabledParams | boolean | Não | Quando for igual a **"Sim"**, irá desabilitar todos os campos do Agendamento (Data Execução, Servidor, Repetir ocorrência, etc...). |
206
- | loading | boolean | Não | Quando for igual a **"Sim"**, irá apresentar a tela de "loading" no momento da criação da agenda até o retorno do serviço. |
207
- | endExecution | EventEmitter | Não | Evento que será disparado ao finalizar o agendamento. Ele irá enviar como parâmetro um objeto da interface **IScheduleParameters**, contendo os parâmetros informados pelo usuário. |
208
-
209
- Métodos:
364
+ **Métodos:**
210
365
 
211
366
  | Nome | Descrição |
212
367
  |-|-|
213
- | setScheduleParameters | Atualiza as informações de agendamento com base no objeto que foi enviado como parâmetro.<br>**Parâmetros:**<br>- schParam (**IScheduleParameters**): Objeto com as informações do agendamento (Data Execução, Servidor, Repetir ocorrência, etc...).<br>**Retorno:** Não há. |
214
- | getScheduleParameters | Retorna um objeto da interface **IScheduleParameters**, contendo os atuais parâmetros informados pelo usuário na tela de agendamento.<br>**Parâmetros:** Não há.<br>**Retorno:**<br>- schParam (**IScheduleParameters**): Objeto com as informações do agendamento (Data Execução, Servidor, Repetir ocorrência, etc...). |
368
+ | setProfile | Salva informações no profile do usuário.<br>**Parâmetros:**<br>- profile (IProfile): Objeto com as informações do usuário e as informações serem salvas.<br>**Retorno:**<br>- response (Observable(any)): Retorno do BackEnd. |
369
+ | getProfileAsString | Retorna os valores salvos no formato de uma string.<br>**Parâmetros:**<br>- profile (IProfile): Objeto com as informações do usuário.<br>- showLoading (boolean): Indica se deve apresentar a tela de loading enquanto busca as informações.<br>**Retorno:**<br>- response (Observable(string)): Informações salvas. |
370
+ | getProfileAsJSON | Retorna os valores salvos no formato de um JSON.<br>**Parâmetros:**<br>- profile (IProfile): Objeto com as informações do usuário.<br>- showLoading (boolean): Indica se deve apresentar a tela de loading enquanto busca as informações.<br>**Retorno:**<br>- response (Observable(object)): Informações salvas. |
371
+ ---
215
372
 
216
- Exemplo de Uso:
373
+ **Interfaces:**
217
374
 
218
- Em conjunto com o parâmetro **endExecution** o método **setScheduleParameters** pode ser utilizado para salvar e recuperar as informações de agendamento informadas pelo usuário.
375
+ IProfile
376
+ | Nome | Tipo | Obrigatório | Descrição |
377
+ |-|-|-|-|
378
+ | pageId | string | Sim | Um ID para identificar a Tela que está salvando os parâmetros. |
379
+ | userCode | string | Sim | Código do usuário (login). |
380
+ | dataCode | string | Sim | Um ID para identificar o parâmetro. |
381
+ | dataValue | string | Não | Valor a ser salvo, nos GET's é opcional. |
382
+ ---
219
383
 
220
- **Definições no HTML:**
221
- ```
222
- // EXEMPLO PARA EMS5
223
- <app-totvs-schedule-execution #schParam
224
- programName="rpt_grp_repres"
225
- externalName="rpt_grp_repres"
226
- programEMS5="true"
227
- programStyle="40"
228
- programVersion="1.00.00.004"
229
- [parameters]="parametersRpw"
230
- [paramSelections]="paramSelectionsRpw"
231
- (endExecution)="endExecutionSchedule($event)">
232
- </app-totvs-schedule-execution>
384
+ **Exemplo de Uso:**
385
+ ```ts
386
+ const profile: IProfile = {
387
+ pageId: 'about-component',
388
+ userCode: 'super',
389
+ dataCode: 'preference',
390
+ dataValue: this.preference
391
+ };
233
392
 
234
- // EXEMPLO PARA EMS2
235
- <app-totvs-schedule-execution #schParam
236
- programName="pdapi701"
237
- externalName="pdp/pdapi701.p"
238
- [parameters]="parametersRpw"
239
- [paramDigitDef]="paramDigitDefRpw"
240
- [paramDigitData]="paramDigitDataRpw"
241
- (endExecution)="endExecutionSchedule($event)">
242
- </app-totvs-schedule-execution>
243
- ```
244
- **Definições no JavaScript:**
393
+ this.preferenceService
394
+ .setProfile(profile)
395
+ .subscribe((response) => {
396
+ this.notification.success('Preferência salva com sucesso!');
397
+ }, (error) => {
398
+ this.notification.error('Não foi possível salvar a preferência');
399
+ });
245
400
  ```
246
- @ViewChild('schParam', { static: true }) schParam: TotvsScheduleExecutionComponent;
247
401
 
248
- scheduleParams: IScheduleParameters;
249
- parametersRpw = new Array<any>();
250
- paramDigitDefRpw = new Array<any>();
251
- paramDigitDataRpw = new Array<any>();
252
- paramSelectionsRpw = new Array<any>();
402
+ <br>
253
403
 
254
- ngOnInit(): void {
255
- this.loadLocalStorage();
256
- this.schParam.setScheduleParameters(this.scheduleParams);
404
+ ## ReportService
257
405
 
258
- this.createParametersRpw();
406
+ **Objetivo:** Faz a chamada do datasul-report e realiza o download do arquivo caso seja especificado.
407
+
408
+ **Importação:**
409
+ ```ts
410
+ import {
411
+ ReportService,
412
+ IReportServiceParams,
413
+ ReportFormats
414
+ } from 'dts-backoffice-util';
415
+
416
+ constructor(public reportService: ReportService) {
259
417
  }
418
+ ```
419
+ **Métodos:**
260
420
 
261
- createParametersRpw(): void {
262
- // Parâmetros
263
- this.parametersRpw = [
264
- { chave: 'destino', valor: 2, tipo: 'integer' },
265
- { chave: 'arquivo', valor: '', tipo: 'character' },
266
- { chave: 'usuario', valor: 'FERNANDO', tipo: 'character' },
267
- { chave: 'perfil', valor: 880, tipo: 'integer' }
268
- ];
421
+ | Nome | Descrição |
422
+ |-|-|
423
+ | generate | Retorna o arquivo binário gerado pelo datasul-report e faz o download do arquivo.<br>**Parâmetros:**<br>- params (IReportServiceParams): Parâmetros para execução do relatório.<br>- showLoading (boolean): Indica se deve apresentar a tela de loading enquanto busca as informações.<br>**Retorno:**<br>- response (Observable(Blob)) |
424
+ ---
425
+ <br>
269
426
 
270
- // Definição da tt-digita (EMS2)
271
- this.paramDigitDefRpw = [
272
- { chave: 'cod-estab', tipo: 'character' },
273
- { chave: 'cod-ccusto', tipo: 'integer' }
274
- ];
427
+ **Interfaces:**
275
428
 
276
- // Dados da tt-digita (EMS2)
277
- this.paramDigitDataRpw = [
278
- { "cod-estab": '19', "cod-ccusto": 17 },
279
- { "cod-estab": '28', "cod-ccusto": 11 },
280
- { "cod-estab": '73', "cod-ccusto": 90 }
281
- ];
429
+ IReportServiceParams
430
+
431
+ | Nome | Tipo | Obrigatório | Descrição |
432
+ |-|-|-|-|
433
+ | reportName | string | Sim | Nome do arquivo .rptDesign |
434
+ | programName | string | Sim | Nome do programa progress. |
435
+ | properties | Array | Sim | Lista de parâmetros que serão enviados ao progress. O objeto do Array deve implementar a interface **IProperty**. |
436
+ | dialect | string | Sim | Idioma do usuário. |
437
+ | downloadName | string | Sim | Nome que será dado ao arquivo de download. |
438
+ | download | boolean | Sim | O download deve ser efetuado |
439
+ | format | enum | Sim | Formato do Arquivo (XLSX, PDF, DOCX ou HTML). Enum: **ReportFormats**. |
440
+ ---
282
441
 
283
- // Seleção (Relatório Regra/Exceção do EMS5)
284
- this.paramSelectionsRpw = [
285
- { ind_dwb_set_type: "Regra", cod_dwb_set: "estab",
286
- cod_dwb_set_initial: "01", cod_dwb_set_final: "FF", log_dwb_rule: true },
287
- { ind_dwb_set_type: "Exceção", cod_dwb_set: "ccusto",
288
- cod_dwb_set_initial: "30", cod_dwb_set_final: "35", log_dwb_rule: false }
289
- ]
290
- }
442
+ IProperty
291
443
 
292
- endExecutionSchedule(event): void {
293
- this.scheduleParams = event;
294
- this.saveLocalStorage();
295
- }
444
+ | Nome | Tipo | Obrigatório | Descrição |
445
+ |-|-|-|-|
446
+ | name | string | Sim | Nome do parâmetro |
447
+ | value | string | Sim | Valor do parâmetro |
448
+ ---
296
449
 
297
- private saveLocalStorage(): void {
298
- if (typeof (Storage) === 'undefined') { return; }
299
- localStorage.setItem('param-maint.schParam', JSON.stringify(this.scheduleParams));
300
- }
450
+ <br>
301
451
 
302
- private loadLocalStorage(): void {
303
- if (typeof (Storage) === 'undefined') { return; }
304
- this.scheduleParams = JSON.parse(localStorage.getItem('param-maint.schParam'));
452
+ **Enums**
453
+ ```ts
454
+ declare enum ReportFormats {
455
+ XLSX = "xlsx",
456
+ PDF = "pdf",
457
+ DOCX = "docx",
458
+ HTML = "html"
305
459
  }
306
460
  ```
307
- **Definições no Progress:**
308
- ```
309
- DEFINE TEMP-TABLE tt-param NO-UNDO
310
- FIELD destino AS INTEGER
311
- FIELD arquivo AS CHARACTER
312
- FIELD usuario AS CHARACTER
313
- FIELD perfil AS INTEGER.
314
-
315
- DEFINE TEMP-TABLE tt-digita NO-UNDO
316
- FIELD cod-estab AS CHARACTER
317
- FIELD cod-ccusto AS INTEGER.
318
- ```
319
461
 
320
- Interfaces:
462
+ **Exemplo de Uso:**
463
+ ```ts
464
+ const properties: Array<IProperty> = [
465
+ {
466
+ name: 'custom.quick_search',
467
+ value: '186'
468
+ }
469
+ ];
321
470
 
322
- IScheduleParameters
323
- | Nome | Tipo | Descrição | Valor - Label Valor |
324
- |-|-|-|-|
325
- | executionType | number | Tipo Execução | 1 - Executar Hoje<br>2 - Agendar Execução |
326
- | execAppointDate | date | Data Agendada | |
327
- | execAppointHour | string | Hora Agendada | |
328
- | executionServer | string | Servidor RPW | |
329
- | repeatExecution | boolean | Repetir Ocorrência | |
330
- | repeatType | number | Tipo Repetição | 1 - Diária<br>2 - Semanal<br>3 - Mensal |
331
- | frequency | string | Frequência | "no" - Uma vez no dia<br>"yes" - Várias vezes no dia |
332
- | frequencyValue | number | Quantidade da Frequência | |
333
- | frequencyType | string | Tipo Frequência | "hour" - Hora(s)<br>"minute" - Minuto(s) |
334
- | execAppointHourInit | string | Hora Inicial Frequência | |
335
- | execAppointHourFinal | string | Hora Final Frequência | |
336
- | selectWeeklys | Array | Dia da Semana<br>Frequência Semanal | Sunday - Domingo<br>Monday - Segunda<br>Tuesday - Terça<br>Wednesday - Quarta<br>Thursday - Quinta<br>Friday - Sexta<br>Saturday - Sábado |
337
- | dayOfMonth | number | Dia do Mês<br>Frequência Mensal | |
471
+ const params: IReportServiceParams = {
472
+ reportName: 'crm/rel_campaign_export',
473
+ programName: '/report/crm/crm0010',
474
+ properties,
475
+ dialect: 'pt',
476
+ download: true,
477
+ downloadName: '2020-1-10_13-51-53_CRM_CAMPANHAS',
478
+ format: ReportFormats.XLSX
479
+ };
338
480
 
481
+ this.reportService
482
+ .generate(params)
483
+ .subscribe(() => {
484
+ this.notification.error("Arquivo baixado com sucesso!");
485
+ }, () => {
486
+ this.notification.error("Não foi possível baixar o arquivo");
487
+ });
488
+ ```
339
489
  <br>
340
490
 
341
- # TotvsScheduleExecutionService
491
+ ## TotvsScheduleExecutionService
342
492
 
343
493
  **Objetivo:** Serviço que disponibiliza métodos para geração de agendamento e acompanhamento do RPW.
344
494
 
345
- Métodos:
495
+ **Métodos:**
346
496
 
347
497
  | Nome | Descrição |
348
498
  |-|-|
@@ -352,13 +502,13 @@ Métodos:
352
502
  | followUpExcByJobScheduleID | Utilizado para acompanhar a execução do agendamento realizado no RPW, verificando o status da execução, até que ele seja finalizado.<br>**Parâmetros:**<br>- jobScheduleID (string): ID interno do Agendamento que se deseja acompanhar.<br>- intervalNum (number): Tempo em milisegundos para verificação do status do agendamento. Por exemplo, se for informado **5000**, será verificado o status do agendamento em 5 e 5 segundos até a execução terminar.<br>- fncCallBack (Function): Método que será executado após a tela receber o status da execução do agendamento. Ele será executado várias vezes até a execução terminar, no intervalo de tempo determinado no parâmetro **intervalNum**. Este método irá receber um objeto da interface **IExecutionStatus** com o status da execução. O método deverá retornar um valor **boolean** indicando se o processo deve continuar sendo monitorado ou não. Se for retornado "false", o agendamento não será mais monitorado. **Observação**: Isto não afeta a execução do agendamento no RPW, ele continuará executando normalmente.<br>- loading (boolean): Quando for igual a **"Sim"**, irá apresentar a tela de "loading" até finalizar o acompanhamento do agendamento.<br>**Retorno:** Não há. |
353
503
  | followUpExcByExecutionID | Utilizado para acompanhar a execução do agendamento realizado no RPW, verificando o status da execução, até que ele seja finalizado.<br>**Parâmetros:**<br>- executionID (string): Número do Agendamento que se deseja acompanhar.<br>- intervalNum (number): Tempo em milisegundos para verificação do status do agendamento. Por exemplo, se for informado **5000**, será verificado o status do agendamento em 5 e 5 segundos até a execução terminar.<br>- fncCallBack (Function): Método que será executado após a tela receber o status da execução do agendamento. Ele será executado várias vezes até a execução terminar, no intervalo de tempo determinado no parâmetro **intervalNum**. Este método irá receber um objeto da interface **IExecutionStatus** com o status da execução. O método deverá retornar um valor **boolean** indicando se o processo deve continuar sendo monitorado ou não. Se for retornado "false", o agendamento não será mais monitorado. **Observação**: Isto não afeta a execução do agendamento no RPW, ele continuará executando normalmente.<br>- loading (boolean): Quando for igual a **"Sim"**, irá apresentar a tela de "loading" até finalizar o acompanhamento do agendamento.<br>**Retorno:** Não há. |
354
504
  | getObjectByValue <br> getFilteredItems | Métodos utilizados pelo componente PO-LOOKUP. Desta forma, é possível utilizar o **TotvsScheduleExecutionService** para disponibilizar um lookup de Servidor de Execução RPW na tela. |
355
-
356
- Exemplo de Uso:
505
+ ---
506
+ **Exemplo de Uso:**
357
507
 
358
508
  Segue abaixo exemplos da geração de agendamento, busca e acompanhamento da execução.
359
509
 
360
510
  **Definições no HTML:**
361
- ```
511
+ ```html
362
512
  <po-lookup
363
513
  p-label="Servidor RPW"
364
514
  p-placeholder="Servidor RPW"
@@ -371,7 +521,7 @@ Segue abaixo exemplos da geração de agendamento, busca e acompanhamento da exe
371
521
  </po-lookup>
372
522
  ```
373
523
  **Definições no JavaScript:**
374
- ```
524
+ ```ts
375
525
  executionServer: string;
376
526
  jobScheduleID: string;
377
527
  executionID: string;
@@ -536,7 +686,7 @@ DEFINE TEMP-TABLE tt-digita NO-UNDO
536
686
  FIELD cod-ccusto AS INTEGER.
537
687
  ```
538
688
 
539
- Interfaces:
689
+ **Interfaces:**
540
690
 
541
691
  IExecutionParameters
542
692
  | Nome | Tipo | Obrigatório | Descrição |
@@ -551,6 +701,7 @@ IExecutionParameters
551
701
  | paramDigitDef | Array | Não | Definição da Temp-Table tt-digita. Utilizado apenas pelo EMS2. Para cada campo da tt-digita, deve ser enviado um objeto com o seguinte formato: **{"chave": "string", "tipo": "string" }**. Onde **chave** representa o nome do campo, e **tipo** representa o tipo de dado (exemplo: character, integer, etc...). |
552
702
  | paramDigitData | Array | Não | Dados que serão enviados e alimentados na tt-digita. Utilizado apenas pelo EMS2. |
553
703
  | paramSelections | Array | Não | Parâmetros de Seleção. Utilizado apenas pelo EMS5. |
704
+ ---
554
705
 
555
706
  IExecutionStatus
556
707
  | Nome | Tipo | Descrição |
@@ -560,214 +711,137 @@ IExecutionStatus
560
711
  | startedDate | Date | Data e hora em que o agendamento iniciou a execução no RPW. |
561
712
  | error | string | Quando o status for igual a **'FAILURE'**, esta propriedade terá a descrição do erro. |
562
713
  | status | string | Status da execução, podendo ser:<br>- PENDING: O agendamento está enfileirado, aguardando o início da execução.<br>- RUNNING: O agendamento está em execução.<br>- SUCCESS: O agendamento terminou corretamente, sem erros.<br>- FAILURE: O agendamento terminou com erro. A descrição do erro estará disponível na propriedade **error**. Observação: Caso não exista um agendamento com o ID informado, também será retornar este status de erro. |
563
-
564
714
  ---
565
715
 
566
716
  <br>
567
717
 
568
- # ProfileService
569
-
570
- **Objetivo:** Salvar preferências do usuário.
718
+ ## TranslateService
571
719
 
572
- Importação:
573
- ```
574
- import { ProfileService, IProfile } from 'dts-backoffice-util';
720
+ **Objetivo:** Realizar o controle do idioma corrente, considerando o que estiver parametrizado no Cadastro de Usuários do Datasul, e caso não esteja informado, será considerado o idioma informado no Browse.
575
721
 
576
- constructor(public preferenceService: ProfileService) {
577
- }
722
+ **Importação:**
723
+ ```ts
724
+ import { TranslateService } from 'dts-backoffice-util';
578
725
  ```
579
726
 
580
- Métodos:
727
+ **Métodos:**
581
728
 
582
729
  | Nome | Descrição |
583
730
  |-|-|
584
- | setProfile | Salva informações no profile do usuário.<br>**Parâmetros:**<br>- profile (IProfile): Objeto com as informações do usuário e as informações serem salvas.<br>**Retorno:**<br>- response (Observable(any)): Retorno do BackEnd. |
585
- | getProfileAsString | Retorna os valores salvos no formato de uma string.<br>**Parâmetros:**<br>- profile (IProfile): Objeto com as informações do usuário.<br>- showLoading (boolean): Indica se deve apresentar a tela de loading enquanto busca as informações.<br>**Retorno:**<br>- response (Observable(string)): Informações salvas. |
586
- | getProfileAsJSON | Retorna os valores salvos no formato de um JSON.<br>**Parâmetros:**<br>- profile (IProfile): Objeto com as informações do usuário.<br>- showLoading (boolean): Indica se deve apresentar a tela de loading enquanto busca as informações.<br>**Retorno:**<br>- response (Observable(object)): Informações salvas. |
587
- ---
588
-
589
- Interfaces:
590
-
591
- IProfile
592
- | Nome | Tipo | Obrigatório | Descrição |
593
- |-|-|-|-|
594
- | pageId | string | Sim | Um ID para identificar a Tela que está salvando os parâmetros. |
595
- | userCode | string | Sim | Código do usuário (login). |
596
- | dataCode | string | Sim | Um ID para identificar o parâmetro. |
597
- | dataValue | string | Não | Valor a ser salvo, nos GET's é opcional. |
731
+ | getCurrentLanguage | Retorna o idioma corrente. Será considerado no primeiro momento a chave "user.language" do localStorage. Caso ela não exista ou seja inválida, será considerado o idioma parametrizado no Browse. Além disso, o idioma deve estar disponível na lista de suportados, conforme métodos "getSuportLanguage".<br>**Parâmetros:** Não há.<br>**Retorno:** string |
732
+ | getSuportLanguage | Retornar uma lista com os atuais idiomas suportados.<br>**Parâmetros:** Não há.<br>**Retorno:** Array(string) |
598
733
  ---
599
734
 
600
- Exemplo de Uso:
601
- ```
602
- const profile: IProfile = {
603
- pageId: 'about-component',
604
- userCode: 'super',
605
- dataCode: 'preference',
606
- dataValue: this.preference
607
- };
608
-
609
- this.preferenceService
610
- .setProfile(profile)
611
- .subscribe((response) => {
612
- this.notification.success('Preferência salva com sucesso!');
613
- }, (error) => {
614
- this.notification.error('Não foi possível salvar a preferência');
615
- });
616
- ```
617
-
618
735
  <br>
619
736
 
620
- # UserLoginService
737
+ ## UserLoginService
621
738
 
622
739
  **Objetivo:** Retorna o login do usuário tanto no framework atual e quanto no novo framework.
623
740
 
624
- Importação:
625
- ```
741
+ **Importação:**
742
+ ```ts
626
743
  import { UserLoginService } from 'dts-backoffice-util';
627
744
 
628
745
  constructor( public sessionService: UserLoginService) {
629
746
  }
630
747
  ```
631
748
 
632
- Métodos:
749
+ **Métodos:**
633
750
 
634
751
  | Nome | Descrição |
635
752
  |-|-|
636
753
  | getUserLogin | Retorna o login do usuário.<br>**Parâmetros:** Não há.<br>**Retorno:**<br>- response (Observable(string)) |
637
754
  ---
638
755
 
639
- Exemplo de Uso:
640
- ```
756
+ **Exemplo de Uso:**
757
+ ```ts
641
758
  this.sessionService
642
759
  .getUserLogin()
643
760
  .subscribe((user) => {
644
761
  this.notification.success(`O usuário logado é ${user}`);
645
762
  });
646
763
  ```
647
-
648
764
  <br>
649
765
 
650
- # ReportService
766
+ ## ValidateService
651
767
 
652
- **Objetivo:** Faz a chamada do datasul-report e realiza o download do arquivo caso seja especificado.
768
+ **Objetivo:** Realizar o tratamento da validação de campos em formulários, quando utilizados vários componentes **Dynamic Form** na tela de criação/edição. Nesse caso, ao disparar uma validação através de um campo presente em um formulário e nessa validação alterar propriedades e valores de campos que estão em um formulário diferente, a validação não é aplicada. Para o correto funcionamento das validações, é necessário que haja um tratamento da validação no Front End utilizando os métodos criados neste serviço.
653
769
 
654
- Importação:
655
- ```
656
- import {
657
- ReportService,
658
- IReportServiceParams,
659
- ReportFormats
660
- } from 'dts-backoffice-util';
770
+ **Importação:**
771
+ ```ts
772
+ import { ValidateService } from 'dts-backoffice-util';
661
773
 
662
- constructor(public reportService: ReportService) {
774
+ constructor(private validateService: ValidateService) {
663
775
  }
664
776
  ```
665
- Métodos:
777
+
778
+ **Métodos:**
666
779
 
667
780
  | Nome | Descrição |
668
781
  |-|-|
669
- | generate | Retorna o arquivo binário gerado pelo datasul-report e faz o download do arquivo.<br>**Parâmetros:**<br>- params (IReportServiceParams): Parâmetros para execução do relatório.<br>- showLoading (boolean): Indica se deve apresentar a tela de loading enquanto busca as informações.<br>**Retorno:**<br>- response (Observable(Blob)) |
670
- ---
671
-
672
- Interfaces:
673
-
674
- IReportServiceParams
675
-
676
- | Nome | Tipo | Obrigatório | Descrição |
677
- |-|-|-|-|
678
- | reportName | string | Sim | Nome do arquivo .rptDesign |
679
- | programName | string | Sim | Nome do programa progress. |
680
- | properties | Array | Sim | Lista de parâmetros que serão enviados ao progress. O objeto do Array deve implementar a interface **IProperty**. |
681
- | dialect | string | Sim | Idioma do usuário. |
682
- | downloadName | string | Sim | Nome que será dado ao arquivo de download. |
683
- | download | boolean | Sim | O download deve ser efetuado |
684
- | format | enum | Sim | Formato do Arquivo (XLSX, PDF, DOCX ou HTML). Enum: **ReportFormats**. |
782
+ | validate | Realiza uma requisição com o verbo POST para a URL de validação recebida por parâmetro e enviando no payload o objeto de validação também recebido por parâmetro.<br>**Parâmetros:** <br>- url (string): URL referente ao endPoint de validação de formulários da API. Ex.: "/api/rep/v1/userParameters/validateForm".<br>- value ([PoDynamicFormFieldChanged](https://github.com/po-ui/po-angular/blob/master/projects/ui/src/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-validation/po-dynamic-form-field-changed.interface.ts)): Objeto com a interface do PO UI que é recebido na função de `validate` do [Dynamic Form](https://po-ui.io/documentation/po-dynamic-form).<br>**Retorno:** Promise([PoDynamicFormValidation](https://github.com/po-ui/po-angular/blob/master/projects/ui/src/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-validation/po-dynamic-form-validation.interface.ts)) - Retorna uma promise de um objeto com a interface PoDynamicFormValidation. |
783
+ | updateFormFields | Atualiza as propriedades dos campos do formulário enviado por parâmetro com base nas validações, também recebidas por parâmetro.<br>**Parâmetros:** <br>- validation ([PoDynamicFormValidation](https://github.com/po-ui/po-angular/blob/master/projects/ui/src/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-validation/po-dynamic-form-validation.interface.ts)): Objeto com o resultado das validações retornado pelo método validate.<br>- fields (Array([PoDynamicFormField](https://github.com/po-ui/po-angular/blob/master/projects/ui/src/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-field.interface.ts))): Array de objetos com a interface do PO UI. Esse array corresponde à lista de campos do formulário, utilizado para definir a propriedade `fields` no [Dynamic Form](https://po-ui.io/documentation/po-dynamic-form).<br>**Retorno:** Array([PoDynamicFormField](https://github.com/po-ui/po-angular/blob/master/projects/ui/src/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-field.interface.ts)) - Retorna o array de campos com as propriedades atualizadas conforme a validação. |
784
+ | updateFormValue | Atualiza os valores dos campos utilizados no formulário com base nas validações.<br>**Parâmetros:** <br>- validation ([PoDynamicFormValidation](https://github.com/po-ui/po-angular/blob/master/projects/ui/src/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-validation/po-dynamic-form-validation.interface.ts)): Objeto com o resultado das validações retornado pelo método validate.<br>- value (Objeto(any)): Objeto com os dados da entidade/recurso utilizado para alimentar os campos dos formulários, utilizado para definir a propriedade `fields` no [Dynamic Form](https://po-ui.io/documentation/po-dynamic-form).<br>**Retorno:** Objeto(any) - Retorna o objeto de dados da entidade/recurso com os dados atualizados conforme a validação. |
685
785
  ---
686
786
 
687
- IProperty
787
+ **Exemplo de Uso:**
688
788
 
689
- | Nome | Tipo | Obrigatório | Descrição |
690
- |-|-|-|-|
691
- | name | string | Sim | Nome do parâmetro |
692
- | value | string | Sim | Valor do parâmetro |
693
- ---
789
+ **Definições no HTML:**
694
790
 
695
- Enums
696
- ```
697
- declare enum ReportFormats {
698
- XLSX = "xlsx",
699
- PDF = "pdf",
700
- DOCX = "docx",
701
- HTML = "html"
791
+ Ao invés de passar diretamente a url do endPoint para a propriedade `p-validate` do componente Dynamic Form, deve ser passada uma função `[p-validate]="onValidate.bind(this)"`, como apresentado a seguir. Fazer isso para todos os componentes Dynamic Form.
792
+ ```html
793
+ <po-accordion-item [p-label]="metadata?.literals?.enableDisableFields" #enableDisableFields>
794
+ <po-dynamic-form name="formEnableDisableFields"
795
+ [p-fields]="metadata?.fieldsTypingEnableDisable"
796
+ [p-value]="userParameters"
797
+ [p-validate]="onValidate.bind(this)"
798
+ [p-validate-fields]='metadata?.validateFields'>
799
+ </po-dynamic-form>
800
+ </po-accordion-item>
801
+
802
+ <po-accordion-item [p-label]="metadata?.literals?.configurations" #configurationsTyping>
803
+ <po-dynamic-form name="formConfigurations"
804
+ [p-fields]="metadata?.fieldsTypingConfigurations"
805
+ [p-value]="userParameters"
806
+ [p-validate]="onValidate.bind(this)"
807
+ [p-validate-fields]='metadata?.validateFields'>
808
+ </po-dynamic-form>
809
+ </po-accordion-item>
810
+ ```
811
+ **Definições no TypeScript:**
812
+
813
+ No typescript de controle do componente defina a função de validação conforme apresentado a seguir.
814
+ ```ts
815
+ public async onValidate(fieldChanged: PoDynamicFormFieldChanged){
816
+ let validation: PoDynamicFormValidation = await this.validateService.validate('/api/rep/v1/userParameters/validateForm', fieldChanged);
817
+
818
+ this.metadata.fieldsTypingEnableDisable = [...this.validateService.updateFormFields(validation, this.metadata.fieldsTypingEnableDisable)];
819
+ this.metadata.fieldsTypingConfigurations = [...this.validateService.updateFormFields(validation, this.metadata.fieldsTypingConfigurations)];
820
+
821
+ this.userParameters = {...this.validateService.updateFormValue(validation, this.userParameters)};
822
+
823
+ return validation;
702
824
  }
703
825
  ```
704
-
705
- Exemplo de Uso:
706
- ```
707
- const properties: Array<IProperty> = [
708
- {
709
- name: 'custom.quick_search',
710
- value: '186'
711
- }
712
- ];
713
-
714
- const params: IReportServiceParams = {
715
- reportName: 'crm/rel_campaign_export',
716
- programName: '/report/crm/crm0010',
717
- properties,
718
- dialect: 'pt',
719
- download: true,
720
- downloadName: '2020-1-10_13-51-53_CRM_CAMPANHAS',
721
- format: ReportFormats.XLSX
722
- };
723
-
724
- this.reportService
725
- .generate(params)
726
- .subscribe(() => {
727
- this.notification.error("Arquivo baixado com sucesso!");
728
- }, () => {
729
- this.notification.error("Não foi possível baixar o arquivo");
730
- });
731
- ```
732
-
733
- <br>
734
-
735
- # BreadcrumbControlService
736
-
737
- **Objetivo:** Realiza a criação e controle do breadcrumb das telas.
738
-
739
- Importação:
740
- ```
741
- import { BreadcrumbControlService } from 'dts-backoffice-util';
742
- ```
743
-
744
- Métodos:
745
-
746
- | Nome | Descrição |
747
- |-|-|
748
- | newBreadcrumb | "Reinicia" o breadcrumb quando necessário. Ex: Telas que possuem menu lateral, ao passar de um menu para outro, o breadcrumb deve ser reiniciado.<br>**Parâmetros:** Não há.<br>**Retorno:** Não há. |
749
- | addBreadcrumb | Adiciona um item ao breadcrumb, considerando a URL atual da tela.<br>**Parâmetros:**<br>- literal (string): Nome da tela que será apresentado no breadcrumb.<br>- activatedRoute (ActivatedRoute): ActivedRoute da tela.<br>**Retorno:** Não há. |
750
- | addBreadcrumbURL | Adiciona um item ao breadcrumb, informando uma URL específica.<br>**Parâmetros:**<br>- literal (string): Nome da tela que será apresentado no breadcrumb.<br>- url (string): URL específica.<br>**Retorno:** Não há. |
751
- | updBreadcrumbURL | Altera uma informação qualquer contida na URL do item informado.<br>**Parâmetros:**<br>- literal (string): Nome da tela que está no breadcrumb.<br>- valueOld (string): Valor a ser substituído.<br>- valueNew (string): Novo valor.<br>**Retorno:** Não há. |
752
- | delBreadcrumb | Exclui um item do breadcrumb.<br>**Parâmetros:**<br>- literal (string): Nome do item (nome da tela), que deve ser excluído do breadcrumb.<br>**Retorno:** Não há. |
753
- | getBreadcrumb | Retorna o breadcrumb atual completo.<br>**Parâmetros:** Não há.<br>**Retorno:**<br>- breadcrumb (PoBreadcrumb) |
754
- | getCurrentRouter | Retorna a URL do breadcrumb do item corrente.<br>**Parâmetros:** Não há.<br>**Retorno:**<br>- url (string) |
755
- | getPrevRouter | Retorna a URL do breadcrumb do item anterior.<br>**Parâmetros:** Não há.<br>**Retorno:**<br>- url (string) |
756
- | hasPreviousRouter | Indica se existe um item de breadcrumb anterior.<br>**Parâmetros:** Não há.<br>**Retorno:**<br>- exist (boolean) |
757
- ---
826
+ > Notas:
827
+ > + A função `onValidate` precisar ser definado com a palavre `async`, pois precisa aguardar o retorno da função `validate` do serviço.
828
+ > + Substitua o array de campos nas chamadas do método `updateFormFields` para corresponder ao array utilizado no Dynamic Form. Para cada formulário dinâmico existente na tela, deve haver uma chamada ao método `updateFormFields`.
829
+ > + Substitua o objeto na chamada do método `updateFormValue` para corresponder ao objeto utilizado no `p-value` dos formulários. Como será utilizado o mesmo objeto para os valores essa chamada ocorrerá apenas uma vez.
758
830
 
759
831
  <br>
760
832
 
761
- # DateUtil
833
+ # Utils
834
+
835
+ ## DateUtil
762
836
 
763
837
  **Objetivo:** Manipula informações de data.
764
838
 
765
- Importação:
766
- ```
839
+ **Importação:**
840
+ ```ts
767
841
  import { DateUtil } from 'dts-backoffice-util';
768
842
  ```
769
843
 
770
- Métodos:
844
+ **Métodos:**
771
845
 
772
846
  | Nome | Descrição |
773
847
  |-|-|
@@ -778,19 +852,30 @@ Métodos:
778
852
  | ajustDateToModel | Ajusta a data para o padrão do objeto Date. Utilizado nos construtores dos modelos.<br>**Parâmetros:**<br>- object (object): Objeto que possui atributos do tipo data.<br>- fieldName (string): Nome do Atributo que possui a data.<br>**Retorno:**<br>- date (date) |
779
853
  | pad | Adiciona zero à esquerda do número.<br>**Parâmetros:**<br>- number (number): Número.<br>**Retorno:**<br>- number (string) |
780
854
  ---
855
+ <br>
856
+
857
+ ## DisclaimerUtil
858
+
859
+ xxxx
860
+
861
+ <br>
862
+
863
+ ## FieldValidationUtil
864
+
865
+ xxxx
781
866
 
782
867
  <br>
783
868
 
784
- # FileUtil
869
+ ## FileUtil
785
870
 
786
871
  **Objetivo:** Auxílio na manipulação de Arquivos.
787
872
 
788
- Importação:
789
- ```
873
+ **Importação:**
874
+ ```ts
790
875
  import { FileUtil } from 'dts-backoffice-util';
791
876
  ```
792
877
 
793
- Métodos:
878
+ **Métodos:**
794
879
 
795
880
  | Nome | Descrição |
796
881
  |-|-|
@@ -798,13 +883,12 @@ Métodos:
798
883
  | downloadData | Realiza a criação e o download de um arquivo CSV gerado a partir de um listagem de dados (criada diretamente no FrontEnd ou retornada do BackEnd). Este método pode ser utilizado para, por exemplo, exportar os dados de um Grid.<br>**Parâmetros:**<br>- data (Array): Um Array com a listagem de dados, por exemplo, uma lista de clientes.<br>- dwldDataParam (IDownloadDataParams): Parâmetros de configuração do arquivo. Este parâmetro é opcional, caso ele não seja informado, serão assumidos valores padrões de configuração, conforme descrito na inteface **IDownloadDataParams**.<br>**Retorno:** não há. |
799
884
  | fileToB64 | Realiza a conversão de um arquivo para o formato Base64.<br>**Parâmetros:**<br>- file (File): Objeto do Tipo "File".<br>**Retorno:**<br>- content (string): Conteúdo do arquivo no formato Base64. |
800
885
  | b64toBlob | Realiza a conversão de um arquivo que está no formato Base64, para o formato Blob.<br>**Parâmetros:**<br>- b64Data (any): Conteúdo do Arquivo no formato Base64.<br>- contentType (string): Tipo do Arquivo no formato [**MIME Type**](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types). Este parâmetro é opcional.<br>**Retorno:**<br>- content (Blob): Conteúdo do arquivo no formato Blob. |
801
-
802
886
  ---
803
887
 
804
- Exemplo de Uso:
888
+ **Exemplo de Uso:**
805
889
 
806
890
  **Definições no JavaScript:**
807
- ```
891
+ ```ts
808
892
  // TS da Tela
809
893
 
810
894
  import { FileUtil } from 'dts-backoffice-util';
@@ -885,7 +969,7 @@ oOutput:ADD("filename", v_cod_arq).
885
969
  oOutput:ADD("content", v_lch_arq).
886
970
  ```
887
971
 
888
- Interfaces:
972
+ **Interfaces:**
889
973
 
890
974
  IDownloadDataParams
891
975
 
@@ -896,27 +980,16 @@ IDownloadDataParams
896
980
  | columnDelimiter | string | Não | Caracter utilizado para separação das colunas. Caso não seja informado, será utilizado o caracter **";"**. |
897
981
  | columnList | Array(string) | Não | Lista das colunas que devem ser exportadas para o arquivo. As colunas serão exportadas na mesma ordem informada neste parâmetro. Caso não seja informada, serão exportadas todas as colunas da listagem. |
898
982
  | columnExclude | Array(string) | Não | Lista das colunas que não devem ser exportadas para o arquivo. Caso não seja informada, serão exportadas todas as colunas da listagem. |
983
+ ---
899
984
 
900
985
  <br>
901
986
 
902
- # DisclaimerUtil
903
-
904
- xxxx
905
-
906
- <br>
907
-
908
- # FieldValidationUtil
909
-
910
- xxxx
911
-
912
- <br>
913
-
914
- # FilterRangeUtil
987
+ ## FilterRangeUtil
915
988
 
916
989
  xxxx
917
990
 
918
991
  <br>
919
992
 
920
- # GenericFunctionsUtils
993
+ ## GenericFunctionsUtils
921
994
 
922
995
  xxxx