dts-backoffice-util 2.8.1 → 2.8.3

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/CHANGELOG.md CHANGED
@@ -1,9 +1,9 @@
1
1
  # Changelog
2
2
 
3
- **2.8.1 (20-10-2021):**
3
+ **2.8.1 / 2.8.2 / 2.8.3 (16-11-2021):**
4
4
 
5
5
  Melhorias:
6
- - **FileUtil** - No método **downloadData**, caso seja informado o parâmetro **IDownloadDataParams.columnList**, indicando as colunas a serem exportadas, o método irá respeitar a ordem informada dos campos, desta forma, as colunas estarão na mesma ordem no arquivo.
6
+ - **FileUtil**<br>- No método **downloadFile** foi incluído o parâmetro "base64" (boolean) para indicar se o conteúdo recebido do backEnd está no formato base64 ou Blob.<br>- No método **downloadData**, caso seja informado o parâmetro **IDownloadDataParams.columnList**, indicando as colunas a serem exportadas, o método irá respeitar a ordem informada dos campos, desta forma, as colunas estarão na mesma ordem no arquivo.
7
7
 
8
8
  **2.8.0 (13-10-2021):**
9
9
 
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Documentação dos Componentes e Utils
2
2
 
3
- ÚLTIMA VERSÃO: **2.8.1 (20-10-2021)** **([**VER CHANGE LOG**](https://github.com/ModernizaDatasul/dts-backoffice-util/blob/master/projects/dts-backoffice-util/CHANGELOG.md))**
3
+ ÚLTIMA VERSÃO: **2.8.3 (16-11-2021)** **([**VER CHANGE LOG**](https://github.com/ModernizaDatasul/dts-backoffice-util/blob/master/projects/dts-backoffice-util/CHANGELOG.md))**
4
4
 
5
5
  <br>
6
6
 
@@ -262,28 +262,52 @@ Métodos:
262
262
  | getExecutionByExecutionID | Retorna os dados e status de um agendamento com base no número da agenda: **executionID**.<br>**Parâmetros:**<br>- executionID (string): Número da agenda.<br>- loading (boolean): Quando for igual a **"Sim"**, irá apresentar a tela de "loading" até finalizar a busca do agendamento.<br>**Retorno:** response (Observable(IExecutionStatus)): Objeto com as informações do Agendamento (Data de Criação, ID interno do Agendamento (**jobScheduleID**), Número da Agenda (**executionID**) etc...).|
263
263
  | 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á. |
264
264
  | 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á. |
265
+ | 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. |
265
266
 
266
267
  Exemplo de Uso:
267
268
 
268
269
  Segue abaixo exemplos da geração de agendamento, busca e acompanhamento da execução.
269
270
 
270
271
  ```
271
- private schedExecSubscription$: Subscription;
272
+ - HTML -
273
+ <po-lookup
274
+ p-label="Servidor RPW"
275
+ p-placeholder="Servidor RPW"
276
+ [p-columns]="zoomRpwServiceColumns"
277
+ [p-field-format]="fieldRpwServiceFormat"
278
+ [p-filter-service]="scheduleExecution"
279
+ p-field-label="name"
280
+ p-field-value="code"
281
+ [(ngModel)]="executionServer">
282
+ </po-lookup>
272
283
 
284
+ - TS -
285
+ executionServer: string;
273
286
  jobScheduleID: string;
274
287
  executionID: string;
275
288
  execStatus: string;
276
289
 
290
+ zoomRpwServiceColumns: Array<PoLookupColumn> = [
291
+ { property: 'code', label: 'Servidor', type: 'string', width: '20%' },
292
+ { property: 'name', label: 'Descrição', type: 'string', width: '80%' }
293
+ ];
294
+
295
+ private schedExecSubscription$: Subscription;
296
+
277
297
  constructor(
278
298
  ...
279
- private scheduleExecution: TotvsScheduleExecutionService
299
+ public scheduleExecution: TotvsScheduleExecutionService
300
+ }
301
+
302
+ fieldRpwServiceFormat(value) {
303
+ return `${value.code} - ${value.name}`;
280
304
  }
281
305
 
282
306
  createSchedule(): void {
283
307
 
284
308
  // Criar um Agendamento para ser Executado "agora"
285
309
  const execParam = new ExecutionParameters();
286
- execParam.executionServer = 'rpwFinanc';
310
+ execParam.executionServer = executionServer;
287
311
  execParam.programName = 'api_executa_carga_dados_carol';
288
312
  execParam.externalName = 'api_executa_carga_dados_carol';
289
313
  execParam.programEMS5 = true;
@@ -632,7 +656,7 @@ Métodos:
632
656
 
633
657
  | Nome | Descrição |
634
658
  |-|-|
635
- | downloadFile | Realiza o Download de um arquivo que foi enviado do backEnd.<br>**Parâmetros:**<br>- fileContent (any): Conteúdo do Arquivo no formato Base64.<br>- fileName (string): Nome do Arquivo, podendo ser diferente do nome original. O valor informado, será o nome que o arquivo terá, quando for realizado o download.<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, mas quando não informado, deve-se garantir que a extensão do arquivo, informado no nome do arquivo, esteja correta.<br>**Retorno:** não há. |
659
+ | downloadFile | Realiza o Download de um arquivo que foi enviado do backEnd.<br>**Parâmetros:**<br>- data (any): Conteúdo do Arquivo, podendo estar no formato Base64 ou Blob.<br>- fileName (string): Nome do Arquivo, podendo ser diferente do nome original. O valor informado, será o nome que o arquivo terá, quando for realizado o download.<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, mas quando não informado, deve-se garantir que a extensão do arquivo, informado no nome do arquivo, esteja correta.<br>- base64 (boolean): Indica se o conteúdo do arquivo está no formato Base64. Se o parâmetro não for informado ou for igual a **"true"**, será considerado como Base64. Se for informado **"false"**, será considerado o formato Blob.<br>**Retorno:** não há. |
636
660
  | 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á. |
637
661
  ---
638
662
 
@@ -640,18 +664,27 @@ Exemplo de Uso:
640
664
  ```
641
665
  -- JavaScript --
642
666
 
667
+ - TS da Tela -
643
668
  import { FileUtil } from 'dts-backoffice-util';
644
669
 
645
670
  downloadFile() {
646
671
  this.servCustomerSubscription$ = this.servCustomer
647
- .getFile() // Método do Serviço de Cliente que devolve do BackEnd um arquivo em base64
672
+ .getFile('1') // Código do cliente 1
648
673
  .subscribe((response: Object) => {
649
674
 
650
675
  FileUtil.downloadFile(response['content'], response['filename']);
651
-
652
676
  });
653
677
  }
654
678
 
679
+ downloadQrCode() {
680
+ this.servCustomerSubscription$ = this.servCustomer
681
+ .getQrCode('00020126360014BR.GOV.BCB.PIX0114+554798402310452040000530398654071500.005802BR5916Robervaldo6009Joinville62070503Novo%20QR%20pix63047EF5') // Texto Exemplo para Geração do QrCode
682
+ .subscribe((response: Blob) => {
683
+
684
+ FileUtil.downloadFile(response, 'qrCode.png', '', false);
685
+ });
686
+ }
687
+
655
688
  downloadList() {
656
689
  this.servCustomerSubscription$ = this.servCustomer
657
690
  .query([], [], 1, 999) // Método padrão de Query do Serviço de Cliente
@@ -664,13 +697,23 @@ downloadList() {
664
697
  dwldDataParam.columnList = ['shortName', 'name', 'country', 'status', 'tax'];
665
698
 
666
699
  FileUtil.downloadData(response.items, dwldDataParam);
700
+ });
701
+ }
667
702
 
668
- });
703
+ - TS do Serviço -
704
+ getFile(id: string): Observable<Object> {
705
+ const url = `/customer/${id}/file`;
706
+ return this.http.get(url);
707
+ }
708
+
709
+ getQrCode(text: string): Observable<Blob> {
710
+ const url = `/qrcode/download?text=${text}`;
711
+ return this.http.get(url, { responseType: 'blob' });
669
712
  }
670
713
 
671
714
  -- Progress --
672
715
 
673
- // Conteúdo do Método que BackEnd que retorna o Arquivo
716
+ // Conteúdo do Método que BackEnd que retorna o Arquivo em Base64
674
717
  DEFINE VARIABLE v_dir_arq AS CHARACTER NO-UNDO.
675
718
  DEFINE VARIABLE v_cod_arq AS CHARACTER NO-UNDO.
676
719
  DEFINE VARIABLE v_mtr_arq AS MEMPTR NO-UNDO.
@@ -2525,20 +2525,23 @@
2525
2525
  function FileUtil() {
2526
2526
  }
2527
2527
  /**
2528
- * @param {?} datab64
2528
+ * @param {?} data
2529
2529
  * @param {?} fileName
2530
2530
  * @param {?=} contentType
2531
+ * @param {?=} base64
2531
2532
  * @return {?}
2532
2533
  */
2533
2534
  FileUtil.downloadFile = /**
2534
- * @param {?} datab64
2535
+ * @param {?} data
2535
2536
  * @param {?} fileName
2536
2537
  * @param {?=} contentType
2538
+ * @param {?=} base64
2537
2539
  * @return {?}
2538
2540
  */
2539
- function (datab64, fileName, contentType) {
2541
+ function (data, fileName, contentType, base64) {
2542
+ base64 = (base64 === false) ? false : true;
2540
2543
  /** @type {?} */
2541
- var dataBlob = this.b64toBlob(datab64, contentType);
2544
+ var dataBlob = base64 ? this.b64toBlob(data, contentType) : data;
2542
2545
  this.download(dataBlob, fileName);
2543
2546
  };
2544
2547
  /**