worker-automate-hub 0.5.16__py3-none-any.whl → 0.5.18__py3-none-any.whl

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.
Files changed (35) hide show
  1. worker_automate_hub/tasks/jobs/coleta_dje_process.py +12 -0
  2. worker_automate_hub/tasks/jobs/conexao_rdp.py +4 -4
  3. worker_automate_hub/tasks/jobs/descartes.py +21 -18
  4. worker_automate_hub/tasks/jobs/ecac_estadual_go.py +8 -6
  5. worker_automate_hub/tasks/jobs/ecac_estadual_main.py +4 -2
  6. worker_automate_hub/tasks/jobs/ecac_estadual_mt.py +8 -6
  7. worker_automate_hub/tasks/jobs/ecac_estadual_sc.py +5 -3
  8. worker_automate_hub/tasks/jobs/ecac_estadual_sp.py +9 -7
  9. worker_automate_hub/tasks/jobs/ecac_federal.py +11 -8
  10. worker_automate_hub/tasks/jobs/entrada_de_notas_15.py +14 -12
  11. worker_automate_hub/tasks/jobs/entrada_de_notas_16.py +19 -11
  12. worker_automate_hub/tasks/jobs/entrada_de_notas_207.py +23 -11
  13. worker_automate_hub/tasks/jobs/entrada_de_notas_32.py +63 -32
  14. worker_automate_hub/tasks/jobs/entrada_de_notas_33.py +56 -28
  15. worker_automate_hub/tasks/jobs/entrada_de_notas_34.py +54 -38
  16. worker_automate_hub/tasks/jobs/entrada_de_notas_36.py +35 -21
  17. worker_automate_hub/tasks/jobs/entrada_de_notas_39.py +53 -28
  18. worker_automate_hub/tasks/jobs/entrada_de_notas_500.py +40 -14
  19. worker_automate_hub/tasks/jobs/entrada_de_notas_505.py +28 -14
  20. worker_automate_hub/tasks/jobs/entrada_de_notas_7139.py +18 -12
  21. worker_automate_hub/tasks/jobs/entrada_de_notas_9.py +40 -13
  22. worker_automate_hub/tasks/jobs/exemplo_processo.py +3 -0
  23. worker_automate_hub/tasks/jobs/fechar_conexao_rdp.py +3 -3
  24. worker_automate_hub/tasks/jobs/fidc_gerar_nosso_numero.py +9 -7
  25. worker_automate_hub/tasks/jobs/login_emsys.py +2 -1
  26. worker_automate_hub/tasks/jobs/playground.py +4 -0
  27. worker_automate_hub/tasks/jobs/sped_fiscal.py +24 -0
  28. worker_automate_hub/tasks/jobs/transferencias.py +28 -26
  29. worker_automate_hub/tasks/task_executor.py +3 -0
  30. worker_automate_hub/utils/util.py +148 -141
  31. worker_automate_hub/utils/utils_nfe_entrada.py +10 -0
  32. {worker_automate_hub-0.5.16.dist-info → worker_automate_hub-0.5.18.dist-info}/METADATA +1 -1
  33. {worker_automate_hub-0.5.16.dist-info → worker_automate_hub-0.5.18.dist-info}/RECORD +35 -35
  34. {worker_automate_hub-0.5.16.dist-info → worker_automate_hub-0.5.18.dist-info}/WHEEL +0 -0
  35. {worker_automate_hub-0.5.16.dist-info → worker_automate_hub-0.5.18.dist-info}/entry_points.txt +0 -0
@@ -23,6 +23,8 @@ from worker_automate_hub.api.client import (
23
23
  from worker_automate_hub.models.dto.rpa_historico_request_dto import (
24
24
  RpaHistoricoStatusEnum,
25
25
  RpaRetornoProcessoDTO,
26
+ RpaTagDTO,
27
+ RpaTagEnum,
26
28
  )
27
29
  from worker_automate_hub.models.dto.rpa_processo_entrada_dto import (
28
30
  RpaProcessoEntradaDTO,
@@ -117,6 +119,7 @@ async def entrada_de_notas_33(task: RpaProcessoEntradaDTO) -> RpaRetornoProcesso
117
119
  sucesso=False,
118
120
  retorno=document_type.retorno,
119
121
  status=RpaHistoricoStatusEnum.Falha,
122
+ tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
120
123
  )
121
124
 
122
125
  await worker_sleep(4)
@@ -130,6 +133,7 @@ async def entrada_de_notas_33(task: RpaProcessoEntradaDTO) -> RpaRetornoProcesso
130
133
  sucesso=False,
131
134
  retorno=imported_nfe.retorno,
132
135
  status=RpaHistoricoStatusEnum.Falha,
136
+ tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
133
137
  )
134
138
 
135
139
  await worker_sleep(5)
@@ -148,6 +152,7 @@ async def entrada_de_notas_33(task: RpaProcessoEntradaDTO) -> RpaRetornoProcesso
148
152
  sucesso=False,
149
153
  retorno=warning_work.retorno,
150
154
  status=RpaHistoricoStatusEnum.Falha,
155
+ tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
151
156
  )
152
157
 
153
158
  # VERIFICANDO A EXISTENCIA DE ERRO
@@ -187,6 +192,7 @@ async def entrada_de_notas_33(task: RpaProcessoEntradaDTO) -> RpaRetornoProcesso
187
192
  sucesso=False,
188
193
  retorno=f"Erro mapeado, CFOP diferente de inicio com 540 ou 510, necessario ação manual ou ajuste no robo.",
189
194
  status=RpaHistoricoStatusEnum.Falha,
195
+ tags=[RpaTagDTO(descricao=RpaTagEnum.Negocio)]
190
196
  )
191
197
 
192
198
  await worker_sleep(3)
@@ -214,6 +220,7 @@ async def entrada_de_notas_33(task: RpaProcessoEntradaDTO) -> RpaRetornoProcesso
214
220
  sucesso=False,
215
221
  retorno=f"Erro ao iterar itens de almoxarifado: {e}",
216
222
  status=RpaHistoricoStatusEnum.Falha,
223
+ tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
217
224
  )
218
225
 
219
226
  await worker_sleep(1)
@@ -229,6 +236,7 @@ async def entrada_de_notas_33(task: RpaProcessoEntradaDTO) -> RpaRetornoProcesso
229
236
  sucesso=False,
230
237
  retorno=f"Fornecedor não mapeado para andamento no processo, forneceodr: {fornecedor}",
231
238
  status=RpaHistoricoStatusEnum.Falha,
239
+ tags=[RpaTagDTO(descricao=RpaTagEnum.Negocio)]
232
240
  )
233
241
 
234
242
  tipo_despesa_work = await tipo_despesa(despesa)
@@ -239,6 +247,7 @@ async def entrada_de_notas_33(task: RpaProcessoEntradaDTO) -> RpaRetornoProcesso
239
247
  sucesso=False,
240
248
  retorno=tipo_despesa_work.retorno,
241
249
  status=RpaHistoricoStatusEnum.Falha,
250
+ tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
242
251
  )
243
252
 
244
253
  # INTERAGINDO COM O CHECKBOX ZERAR ICMS
@@ -250,6 +259,7 @@ async def entrada_de_notas_33(task: RpaProcessoEntradaDTO) -> RpaRetornoProcesso
250
259
  sucesso=False,
251
260
  retorno=checkbox_zerar_icms.retorno,
252
261
  status=RpaHistoricoStatusEnum.Falha,
262
+ tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
253
263
  )
254
264
 
255
265
  # INTERAGINDO COM O CAMPO DE CODIGO DO ICMS
@@ -261,6 +271,7 @@ async def entrada_de_notas_33(task: RpaProcessoEntradaDTO) -> RpaRetornoProcesso
261
271
  sucesso=False,
262
272
  retorno=cod_icms_work.retorno,
263
273
  status=RpaHistoricoStatusEnum.Falha,
274
+ tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
264
275
  )
265
276
 
266
277
  # INTERAGINDO COM O CAMPO Manter Natureza de Operação selecionada
@@ -321,24 +332,28 @@ async def entrada_de_notas_33(task: RpaProcessoEntradaDTO) -> RpaRetornoProcesso
321
332
  sucesso=False,
322
333
  retorno="Número máximo de tentativas atingido, Não foi possivel finalizar os trabalhos na tela de Informações para importação da Nota Fiscal Eletrônica",
323
334
  status=RpaHistoricoStatusEnum.Falha,
335
+ tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
324
336
  )
325
337
 
326
338
  await worker_sleep(10)
327
339
 
328
- console.print(
329
- "Verificando a existencia de POP-UP de Itens não localizados ou NCM ...\n"
330
- )
331
- itens_by_supplier = await is_window_open_by_class("TFrmAguarde", "TMessageForm")
332
- if itens_by_supplier["IsOpened"] == True:
333
- itens_by_supplier_work = await itens_not_found_supplier(nota.get("nfe"))
334
- if itens_by_supplier_work["window"] == "NCM" or itens_by_supplier_work["window"] == "MultiplasRef":
335
- console.log(itens_by_supplier_work["retorno"], style="bold green")
336
- else:
337
- return RpaRetornoProcessoDTO(
338
- sucesso=False,
339
- retorno=itens_by_supplier_work["retorno"],
340
- status=RpaHistoricoStatusEnum.Falha,
341
- )
340
+ try:
341
+ console.print("Verificando itens não localizados ou NCM...\n")
342
+ itens_by_supplier = await is_window_open_by_class("TFrmAguarde", "TMessageForm")
343
+
344
+ if itens_by_supplier["IsOpened"] == True:
345
+ itens_by_supplier_work = await itens_not_found_supplier(nota.get("nfe"))
346
+
347
+ if not itens_by_supplier_work.sucesso:
348
+ return itens_by_supplier_work
349
+
350
+ except Exception as error:
351
+ return RpaRetornoProcessoDTO(
352
+ sucesso=False,
353
+ retorno=f"Falha ao verificar a existência de POP-UP de itens não localizados: {error}",
354
+ status=RpaHistoricoStatusEnum.Falha,
355
+ tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
356
+ )
342
357
 
343
358
  await worker_sleep(3)
344
359
  console.print(f"Trabalhando com itens com multiplas referencias.\n")
@@ -424,6 +439,7 @@ async def entrada_de_notas_33(task: RpaProcessoEntradaDTO) -> RpaRetornoProcesso
424
439
  sucesso=False,
425
440
  retorno="Quantidade de tentativa atingida (3), não foi possivel capturar o item da nota com multiplas referencias para andamento no processo",
426
441
  status=RpaHistoricoStatusEnum.Falha,
442
+ tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
427
443
  )
428
444
 
429
445
  console.print(
@@ -519,6 +535,7 @@ async def entrada_de_notas_33(task: RpaProcessoEntradaDTO) -> RpaRetornoProcesso
519
535
  sucesso=False,
520
536
  retorno=f"Não foi possivel encontrar o item mais proximo ao item da nota com multiplas referencias {itens_nao_semelhantes}",
521
537
  status=RpaHistoricoStatusEnum.Falha,
538
+ tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
522
539
  )
523
540
 
524
541
  # VERIFICANDO A EXISTENCIA DE ERRO
@@ -529,22 +546,26 @@ async def entrada_de_notas_33(task: RpaProcessoEntradaDTO) -> RpaRetornoProcesso
529
546
  sucesso=False,
530
547
  retorno=error_work.retorno,
531
548
  status=RpaHistoricoStatusEnum.Falha,
549
+ tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
532
550
  )
533
551
 
534
- console.print(
535
- "Verificando a existencia de POP-UP de Itens não localizados ou NCM ...\n"
536
- )
537
- itens_by_supplier = await is_window_open_by_class("TFrmAguarde", "TMessageForm")
538
- if itens_by_supplier["IsOpened"] == True:
539
- itens_by_supplier_work = await itens_not_found_supplier(nota.get("nfe"))
540
- if itens_by_supplier_work["window"] == "NCM":
541
- console.log(itens_by_supplier_work["retorno"], style="bold green")
542
- else:
543
- return RpaRetornoProcessoDTO(
544
- sucesso=False,
545
- retorno=f"{itens_by_supplier_work['retorno']}",
546
- status=RpaHistoricoStatusEnum.Falha,
547
- )
552
+ try:
553
+ console.print("Verificando itens não localizados ou NCM...\n")
554
+ itens_by_supplier = await is_window_open_by_class("TFrmAguarde", "TMessageForm")
555
+
556
+ if itens_by_supplier["IsOpened"] == True:
557
+ itens_by_supplier_work = await itens_not_found_supplier(nota.get("nfe"))
558
+
559
+ if not itens_by_supplier_work.sucesso:
560
+ return itens_by_supplier_work
561
+
562
+ except Exception as error:
563
+ return RpaRetornoProcessoDTO(
564
+ sucesso=False,
565
+ retorno=f"Falha ao verificar a existência de POP-UP de itens não localizados: {error}",
566
+ status=RpaHistoricoStatusEnum.Falha,
567
+ tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
568
+ )
548
569
 
549
570
  await worker_sleep(2)
550
571
  console.print("Navegando pela Janela de Nota Fiscal de Entrada...\n")
@@ -621,6 +642,7 @@ async def entrada_de_notas_33(task: RpaProcessoEntradaDTO) -> RpaRetornoProcesso
621
642
  sucesso=False,
622
643
  retorno=f"A soma dos pagamentos não bate com o valor da nota.",
623
644
  status=RpaHistoricoStatusEnum.Falha,
645
+ tags=[RpaTagDTO(descricao=RpaTagEnum.Negocio)]
624
646
  )
625
647
  else:
626
648
  console.print(
@@ -654,6 +676,7 @@ async def entrada_de_notas_33(task: RpaProcessoEntradaDTO) -> RpaRetornoProcesso
654
676
  sucesso=False,
655
677
  retorno=f"Número máximo de tentativas atingido. A tela para Rateio da Despesa não foi encontrada.",
656
678
  status=RpaHistoricoStatusEnum.Falha,
679
+ tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
657
680
  )
658
681
 
659
682
  despesa_rateio_work = await rateio_despesa(filialEmpresaOrigem)
@@ -664,6 +687,7 @@ async def entrada_de_notas_33(task: RpaProcessoEntradaDTO) -> RpaRetornoProcesso
664
687
  sucesso=False,
665
688
  retorno=despesa_rateio_work.retorno,
666
689
  status=RpaHistoricoStatusEnum.Falha,
690
+ tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
667
691
  )
668
692
 
669
693
  # Verifica se a info 'Nota fiscal incluida' está na tela
@@ -711,12 +735,14 @@ async def entrada_de_notas_33(task: RpaProcessoEntradaDTO) -> RpaRetornoProcesso
711
735
  sucesso=False,
712
736
  retorno=f"Filial: {filialEmpresaOrigem} está com o livro fechado ou encerrado, verificar com o setor fiscal",
713
737
  status=RpaHistoricoStatusEnum.Falha,
738
+ tags=[RpaTagDTO(descricao=RpaTagEnum.Negocio)]
714
739
  )
715
740
  else:
716
741
  return RpaRetornoProcessoDTO(
717
742
  sucesso=False,
718
743
  retorno=f"Warning não mapeado para seguimento do robo, mensagem: {captured_text}",
719
744
  status=RpaHistoricoStatusEnum.Falha,
745
+ tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
720
746
  )
721
747
 
722
748
  await worker_sleep(3)
@@ -739,6 +765,7 @@ async def entrada_de_notas_33(task: RpaProcessoEntradaDTO) -> RpaRetornoProcesso
739
765
  sucesso=False,
740
766
  retorno=f"Pop-up nota incluida encontrada, porém nota não encontrada no EMSys - Reprocessar",
741
767
  status=RpaHistoricoStatusEnum.Falha,
768
+ tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
742
769
  )
743
770
  else:
744
771
  console.print("Erro ao lançar nota", style="bold red")
@@ -746,6 +773,7 @@ async def entrada_de_notas_33(task: RpaProcessoEntradaDTO) -> RpaRetornoProcesso
746
773
  sucesso=False,
747
774
  retorno=f"Erro ao lançar nota, erro: {nf_imported.retorno}",
748
775
  status=RpaHistoricoStatusEnum.Falha,
776
+ tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
749
777
  )
750
778
 
751
779
  except Exception as ex:
@@ -23,6 +23,8 @@ from worker_automate_hub.api.client import (
23
23
  from worker_automate_hub.models.dto.rpa_historico_request_dto import (
24
24
  RpaHistoricoStatusEnum,
25
25
  RpaRetornoProcessoDTO,
26
+ RpaTagDTO,
27
+ RpaTagEnum,
26
28
  )
27
29
  from worker_automate_hub.models.dto.rpa_processo_entrada_dto import (
28
30
  RpaProcessoEntradaDTO,
@@ -117,6 +119,7 @@ async def entrada_de_notas_34(task: RpaProcessoEntradaDTO) -> RpaRetornoProcesso
117
119
  sucesso=False,
118
120
  retorno=document_type.retorno,
119
121
  status=RpaHistoricoStatusEnum.Falha,
122
+ tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
120
123
  )
121
124
 
122
125
  await worker_sleep(4)
@@ -130,6 +133,7 @@ async def entrada_de_notas_34(task: RpaProcessoEntradaDTO) -> RpaRetornoProcesso
130
133
  sucesso=False,
131
134
  retorno=imported_nfe.retorno,
132
135
  status=RpaHistoricoStatusEnum.Falha,
136
+ tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
133
137
  )
134
138
 
135
139
  await worker_sleep(5)
@@ -148,6 +152,7 @@ async def entrada_de_notas_34(task: RpaProcessoEntradaDTO) -> RpaRetornoProcesso
148
152
  sucesso=False,
149
153
  retorno=warning_work.retorno,
150
154
  status=RpaHistoricoStatusEnum.Falha,
155
+ tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
151
156
  )
152
157
 
153
158
  # VERIFICANDO A EXISTENCIA DE ERRO
@@ -187,6 +192,7 @@ async def entrada_de_notas_34(task: RpaProcessoEntradaDTO) -> RpaRetornoProcesso
187
192
  sucesso=False,
188
193
  retorno=f"Erro mapeado, CFOP diferente de inicio com 540 ou 510, necessario ação manual ou ajuste no robo.",
189
194
  status=RpaHistoricoStatusEnum.Falha,
195
+ tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
190
196
  )
191
197
 
192
198
  await worker_sleep(3)
@@ -214,6 +220,7 @@ async def entrada_de_notas_34(task: RpaProcessoEntradaDTO) -> RpaRetornoProcesso
214
220
  sucesso=False,
215
221
  retorno=f"Erro ao iterar itens de almoxarifado: {e}",
216
222
  status=RpaHistoricoStatusEnum.Falha,
223
+ tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
217
224
  )
218
225
 
219
226
  await worker_sleep(1)
@@ -229,6 +236,7 @@ async def entrada_de_notas_34(task: RpaProcessoEntradaDTO) -> RpaRetornoProcesso
229
236
  sucesso=False,
230
237
  retorno=f"Fornecedor não mapeado para andamento no processo, forneceodr: {fornecedor}",
231
238
  status=RpaHistoricoStatusEnum.Falha,
239
+ tags=[RpaTagDTO(descricao=RpaTagEnum.Negocio)]
232
240
  )
233
241
 
234
242
  tipo_despesa_work = await tipo_despesa(despesa)
@@ -239,6 +247,7 @@ async def entrada_de_notas_34(task: RpaProcessoEntradaDTO) -> RpaRetornoProcesso
239
247
  sucesso=False,
240
248
  retorno=tipo_despesa_work.retorno,
241
249
  status=RpaHistoricoStatusEnum.Falha,
250
+ tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
242
251
  )
243
252
 
244
253
  # INTERAGINDO COM O CHECKBOX ZERAR ICMS
@@ -249,7 +258,7 @@ async def entrada_de_notas_34(task: RpaProcessoEntradaDTO) -> RpaRetornoProcesso
249
258
  return RpaRetornoProcessoDTO(
250
259
  sucesso=False,
251
260
  retorno=checkbox_zerar_icms.retorno,
252
- status=RpaHistoricoStatusEnum.Falha,
261
+ tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)],
253
262
  )
254
263
 
255
264
  # INTERAGINDO COM O CAMPO DE CODIGO DO ICMS
@@ -260,7 +269,7 @@ async def entrada_de_notas_34(task: RpaProcessoEntradaDTO) -> RpaRetornoProcesso
260
269
  return RpaRetornoProcessoDTO(
261
270
  sucesso=False,
262
271
  retorno=cod_icms_work.retorno,
263
- status=RpaHistoricoStatusEnum.Falha,
272
+ tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)],
264
273
  )
265
274
 
266
275
  # INTERAGINDO COM O CAMPO Manter Natureza de Operação selecionada
@@ -320,25 +329,27 @@ async def entrada_de_notas_34(task: RpaProcessoEntradaDTO) -> RpaRetornoProcesso
320
329
  return RpaRetornoProcessoDTO(
321
330
  sucesso=False,
322
331
  retorno="Número máximo de tentativas atingido, Não foi possivel finalizar os trabalhos na tela de Informações para importação da Nota Fiscal Eletrônica",
323
- status=RpaHistoricoStatusEnum.Falha,
332
+ tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)],
324
333
  )
325
334
 
326
335
  await worker_sleep(6)
327
336
 
328
- console.print(
329
- "Verificando a existencia de POP-UP de Itens não localizados ou NCM ...\n"
330
- )
331
- itens_by_supplier = await is_window_open_by_class("TFrmAguarde", "TMessageForm")
332
- if itens_by_supplier["IsOpened"] == True:
333
- itens_by_supplier_work = await itens_not_found_supplier(nota.get("nfe"))
334
- if itens_by_supplier_work["window"] == "NCM" or itens_by_supplier_work["window"] == "MultiplasRef":
335
- console.log(itens_by_supplier_work["retorno"], style="bold green")
336
- else:
337
- return RpaRetornoProcessoDTO(
338
- sucesso=False,
339
- retorno=itens_by_supplier_work["retorno"],
340
- status=RpaHistoricoStatusEnum.Falha,
341
- )
337
+ try:
338
+ console.print("Verificando itens não localizados ou NCM...\n")
339
+ itens_by_supplier = await is_window_open_by_class("TFrmAguarde", "TMessageForm")
340
+
341
+ if itens_by_supplier["IsOpened"] == True:
342
+ itens_by_supplier_work = await itens_not_found_supplier(nota.get("nfe"))
343
+
344
+ if not itens_by_supplier_work.sucesso:
345
+ return itens_by_supplier_work
346
+
347
+ except Exception as error:
348
+ return RpaRetornoProcessoDTO(
349
+ sucesso=False,
350
+ retorno=f"Falha ao verificar a existência de POP-UP de itens não localizados: {error}",
351
+ tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)],
352
+ )
342
353
 
343
354
  await worker_sleep(3)
344
355
  console.print(f"Trabalhando com itens com multiplas referencias.\n")
@@ -431,7 +442,7 @@ async def entrada_de_notas_34(task: RpaProcessoEntradaDTO) -> RpaRetornoProcesso
431
442
  return RpaRetornoProcessoDTO(
432
443
  sucesso=False,
433
444
  retorno="Quantidade de tentativa atingida (3), não foi possivel capturar o item da nota com multiplas referencias para andamento no processo",
434
- status=RpaHistoricoStatusEnum.Falha,
445
+ tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)],
435
446
  )
436
447
  console.print(
437
448
  f"Interagindo com os multiplos itens e detectando qual ira ser selecionado para andamento no processo... \n"
@@ -525,7 +536,7 @@ async def entrada_de_notas_34(task: RpaProcessoEntradaDTO) -> RpaRetornoProcesso
525
536
  return RpaRetornoProcessoDTO(
526
537
  sucesso=False,
527
538
  retorno=f"Não foi possivel encontrar o item mais proximo ao item da nota com multiplas referencias {itens_nao_semelhantes}",
528
- status=RpaHistoricoStatusEnum.Falha,
539
+ tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)],
529
540
  )
530
541
 
531
542
  # VERIFICANDO A EXISTENCIA DE ERRO
@@ -535,23 +546,25 @@ async def entrada_de_notas_34(task: RpaProcessoEntradaDTO) -> RpaRetornoProcesso
535
546
  return RpaRetornoProcessoDTO(
536
547
  sucesso=False,
537
548
  retorno=error_work.retorno,
538
- status=RpaHistoricoStatusEnum.Falha,
549
+ tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)],
539
550
  )
540
551
 
541
- console.print(
542
- "Verificando a existencia de POP-UP de Itens não localizados ou NCM ...\n"
543
- )
544
- itens_by_supplier = await is_window_open_by_class("TFrmAguarde", "TMessageForm")
545
- if itens_by_supplier["IsOpened"] == True:
546
- itens_by_supplier_work = await itens_not_found_supplier(nota.get("nfe"))
547
- if itens_by_supplier_work["window"] == "NCM":
548
- console.log(itens_by_supplier_work["retorno"], style="bold green")
549
- else:
550
- return RpaRetornoProcessoDTO(
551
- sucesso=False,
552
- retorno=f"{itens_by_supplier_work['retorno']}",
553
- status=RpaHistoricoStatusEnum.Falha,
554
- )
552
+ try:
553
+ console.print("Verificando itens não localizados ou NCM...\n")
554
+ itens_by_supplier = await is_window_open_by_class("TFrmAguarde", "TMessageForm")
555
+
556
+ if itens_by_supplier["IsOpened"] == True:
557
+ itens_by_supplier_work = await itens_not_found_supplier(nota.get("nfe"))
558
+
559
+ if not itens_by_supplier_work.sucesso:
560
+ return itens_by_supplier_work
561
+
562
+ except Exception as error:
563
+ return RpaRetornoProcessoDTO(
564
+ sucesso=False,
565
+ retorno=f"Falha ao verificar a existência de POP-UP de itens não localizados: {error}",
566
+ tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)],
567
+ )
555
568
 
556
569
  await worker_sleep(2)
557
570
  console.print("Navegando pela Janela de Nota Fiscal de Entrada...\n")
@@ -627,7 +640,7 @@ async def entrada_de_notas_34(task: RpaProcessoEntradaDTO) -> RpaRetornoProcesso
627
640
  return RpaRetornoProcessoDTO(
628
641
  sucesso=False,
629
642
  retorno=f"A soma dos pagamentos não bate com o valor da nota.",
630
- status=RpaHistoricoStatusEnum.Falha,
643
+ tags=[RpaTagDTO(descricao=RpaTagEnum.Negocio)],
631
644
  )
632
645
  else:
633
646
  console.print(
@@ -660,7 +673,7 @@ async def entrada_de_notas_34(task: RpaProcessoEntradaDTO) -> RpaRetornoProcesso
660
673
  return RpaRetornoProcessoDTO(
661
674
  sucesso=False,
662
675
  retorno=f"Número máximo de tentativas atingido. A tela para Rateio da Despesa não foi encontrada.",
663
- status=RpaHistoricoStatusEnum.Falha,
676
+ tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)],
664
677
  )
665
678
 
666
679
  despesa_rateio_work = await rateio_despesa(filialEmpresaOrigem)
@@ -670,7 +683,7 @@ async def entrada_de_notas_34(task: RpaProcessoEntradaDTO) -> RpaRetornoProcesso
670
683
  return RpaRetornoProcessoDTO(
671
684
  sucesso=False,
672
685
  retorno=despesa_rateio_work.retorno,
673
- status=RpaHistoricoStatusEnum.Falha,
686
+ tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)],
674
687
  )
675
688
 
676
689
  # Verifica se a info 'Nota fiscal incluida' está na tela
@@ -717,13 +730,14 @@ async def entrada_de_notas_34(task: RpaProcessoEntradaDTO) -> RpaRetornoProcesso
717
730
  return RpaRetornoProcessoDTO(
718
731
  sucesso=False,
719
732
  retorno=f"Filial: {filialEmpresaOrigem} está com o livro fechado ou encerrado, verificar com o setor fiscal",
720
- status=RpaHistoricoStatusEnum.Falha,
733
+ tags=[RpaTagDTO(descricao=RpaTagEnum.Negocio)],
721
734
  )
722
735
  else:
723
736
  return RpaRetornoProcessoDTO(
724
737
  sucesso=False,
725
738
  retorno=f"Warning não mapeado para seguimento do robo, mensagem: {captured_text}",
726
739
  status=RpaHistoricoStatusEnum.Falha,
740
+ tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
727
741
  )
728
742
 
729
743
  await worker_sleep(3)
@@ -746,6 +760,7 @@ async def entrada_de_notas_34(task: RpaProcessoEntradaDTO) -> RpaRetornoProcesso
746
760
  sucesso=False,
747
761
  retorno=f"Pop-up nota incluida encontrada, porém nota não encontrada no EMSys - Reprocessar",
748
762
  status=RpaHistoricoStatusEnum.Falha,
763
+ tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
749
764
  )
750
765
  else:
751
766
  console.print("Erro ao lançar nota", style="bold red")
@@ -753,6 +768,7 @@ async def entrada_de_notas_34(task: RpaProcessoEntradaDTO) -> RpaRetornoProcesso
753
768
  sucesso=False,
754
769
  retorno=f"Erro ao lançar nota, erro: {nf_imported.retorno}",
755
770
  status=RpaHistoricoStatusEnum.Falha,
771
+ tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
756
772
  )
757
773
 
758
774
  except Exception as ex:
@@ -23,6 +23,8 @@ from worker_automate_hub.api.client import (
23
23
  from worker_automate_hub.models.dto.rpa_historico_request_dto import (
24
24
  RpaHistoricoStatusEnum,
25
25
  RpaRetornoProcessoDTO,
26
+ RpaTagDTO,
27
+ RpaTagEnum,
26
28
  )
27
29
  from worker_automate_hub.models.dto.rpa_processo_entrada_dto import (
28
30
  RpaProcessoEntradaDTO,
@@ -114,6 +116,7 @@ async def entrada_de_notas_36(task: RpaProcessoEntradaDTO) -> RpaRetornoProcesso
114
116
  sucesso=False,
115
117
  retorno=document_type.retorno,
116
118
  status=RpaHistoricoStatusEnum.Falha,
119
+ tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
117
120
  )
118
121
 
119
122
  await worker_sleep(4)
@@ -127,6 +130,7 @@ async def entrada_de_notas_36(task: RpaProcessoEntradaDTO) -> RpaRetornoProcesso
127
130
  sucesso=False,
128
131
  retorno=imported_nfe.retorno,
129
132
  status=RpaHistoricoStatusEnum.Falha,
133
+ tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
130
134
  )
131
135
 
132
136
  await worker_sleep(5)
@@ -145,17 +149,15 @@ async def entrada_de_notas_36(task: RpaProcessoEntradaDTO) -> RpaRetornoProcesso
145
149
  sucesso=False,
146
150
  retorno=warning_work.retorno,
147
151
  status=RpaHistoricoStatusEnum.Falha,
152
+ tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
148
153
  )
149
154
 
150
155
  # VERIFICANDO A EXISTENCIA DE ERRO
151
156
  erro_pop_up = await is_window_open("Erro")
152
157
  if erro_pop_up["IsOpened"] == True:
153
158
  error_work = await error_after_xml_imported()
154
- return RpaRetornoProcessoDTO(
155
- sucesso=error_work.sucesso,
156
- retorno=error_work.retorno,
157
- status=error_work.status,
158
- )
159
+ if not error_work.sucesso:
160
+ return error_work
159
161
 
160
162
  app = Application().connect(
161
163
  title="Informações para importação da Nota Fiscal Eletrônica"
@@ -194,6 +196,7 @@ async def entrada_de_notas_36(task: RpaProcessoEntradaDTO) -> RpaRetornoProcesso
194
196
  sucesso=False,
195
197
  retorno=f"Erro mapeado, CFOP diferente de inicio com 540 ou 510, necessario ação manual ou ajuste no robo.",
196
198
  status=RpaHistoricoStatusEnum.Falha,
199
+ tags=[RpaTagDTO(descricao=RpaTagEnum.Negocio)]
197
200
  )
198
201
 
199
202
  # INTERAGINDO COM O CAMPO ALMOXARIFADO
@@ -219,6 +222,7 @@ async def entrada_de_notas_36(task: RpaProcessoEntradaDTO) -> RpaRetornoProcesso
219
222
  sucesso=False,
220
223
  retorno=f"Erro ao iterar itens de almoxarifado: {e}",
221
224
  status=RpaHistoricoStatusEnum.Falha,
225
+ tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
222
226
  )
223
227
 
224
228
  await worker_sleep(2)
@@ -265,6 +269,7 @@ async def entrada_de_notas_36(task: RpaProcessoEntradaDTO) -> RpaRetornoProcesso
265
269
  sucesso=False,
266
270
  retorno="Número máximo de tentativas atingido, Não foi possivel finalizar os trabalhos na tela de Informações para importação da Nota Fiscal Eletrônica",
267
271
  status=RpaHistoricoStatusEnum.Falha,
272
+ tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
268
273
  )
269
274
 
270
275
 
@@ -276,25 +281,26 @@ async def entrada_de_notas_36(task: RpaProcessoEntradaDTO) -> RpaRetornoProcesso
276
281
  sucesso=False,
277
282
  retorno=waiting_for_delay.retorno,
278
283
  status=RpaHistoricoStatusEnum.Falha,
284
+ tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
279
285
  )
280
286
 
281
- console.print(
282
- "Verificando a existencia de POP-UP de Itens não localizados ou NCM ...\n"
283
- )
284
- itens_by_supplier = await is_window_open_by_class("TFrmAguarde", "TMessageForm")
285
- if itens_by_supplier["IsOpened"] == True:
286
- console.print(
287
- "Tela de POP-UP de Itens não localizados ou NCM encontrado ...\n"
287
+ try:
288
+ console.print("Verificando itens não localizados ou NCM...\n")
289
+ itens_by_supplier = await is_window_open_by_class("TFrmAguarde", "TMessageForm")
290
+
291
+ if itens_by_supplier["IsOpened"] == True:
292
+ itens_by_supplier_work = await itens_not_found_supplier(nota.get("nfe"))
293
+
294
+ if not itens_by_supplier_work.sucesso:
295
+ return itens_by_supplier_work
296
+
297
+ except Exception as error:
298
+ return RpaRetornoProcessoDTO(
299
+ sucesso=False,
300
+ retorno=f"Falha ao verificar a existência de POP-UP de itens não localizados: {error}",
301
+ status=RpaHistoricoStatusEnum.Falha,
302
+ tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
288
303
  )
289
- itens_by_supplier_work = await itens_not_found_supplier(nota.get("nfe"))
290
- if itens_by_supplier_work["window"] == "NCM" or itens_by_supplier_work["window"] == "MultiplasRef":
291
- console.log(itens_by_supplier_work["retorno"], style="bold green")
292
- else:
293
- return RpaRetornoProcessoDTO(
294
- sucesso=False,
295
- retorno=itens_by_supplier_work["retorno"],
296
- status=RpaHistoricoStatusEnum.Falha,
297
- )
298
304
 
299
305
  await worker_sleep(3)
300
306
 
@@ -306,6 +312,7 @@ async def entrada_de_notas_36(task: RpaProcessoEntradaDTO) -> RpaRetornoProcesso
306
312
  sucesso=False,
307
313
  retorno=error_work.retorno,
308
314
  status=RpaHistoricoStatusEnum.Falha,
315
+ tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
309
316
  )
310
317
 
311
318
  # # Trabalhando com o NOP Nota
@@ -320,6 +327,7 @@ async def entrada_de_notas_36(task: RpaProcessoEntradaDTO) -> RpaRetornoProcesso
320
327
  # sucesso=False,
321
328
  # retorno=document_type.retorno,
322
329
  # status=RpaHistoricoStatusEnum.Falha,
330
+ tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
323
331
  # )
324
332
 
325
333
 
@@ -409,6 +417,7 @@ async def entrada_de_notas_36(task: RpaProcessoEntradaDTO) -> RpaRetornoProcesso
409
417
  sucesso=False,
410
418
  retorno=f"Erro ao adicionar o pagamento, valor informado {valores_informado_text}.",
411
419
  status=RpaHistoricoStatusEnum.Falha,
420
+ tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
412
421
  )
413
422
  console.print(f"Processo de incluir pagamento realizado com sucesso... \n")
414
423
 
@@ -484,18 +493,21 @@ async def entrada_de_notas_36(task: RpaProcessoEntradaDTO) -> RpaRetornoProcesso
484
493
  sucesso=False,
485
494
  retorno=f"Filial: {filialEmpresaOrigem} está com o livro fechado ou encerrado, verificar com o setor fiscal",
486
495
  status=RpaHistoricoStatusEnum.Falha,
496
+ tags=[RpaTagDTO(descricao=RpaTagEnum.Negocio)]
487
497
  )
488
498
  elif 'informe o tipo de' in captured_text.lower():
489
499
  return RpaRetornoProcessoDTO(
490
500
  sucesso=False,
491
501
  retorno=f"Mensagem do Warning, Informe o tipo cobraça ",
492
502
  status=RpaHistoricoStatusEnum.Falha,
503
+ tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
493
504
  )
494
505
  else:
495
506
  return RpaRetornoProcessoDTO(
496
507
  sucesso=False,
497
508
  retorno=f"Warning não mapeado para seguimento do robo, mensagem: {captured_text}",
498
509
  status=RpaHistoricoStatusEnum.Falha,
510
+ tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
499
511
  )
500
512
 
501
513
 
@@ -530,6 +542,7 @@ async def entrada_de_notas_36(task: RpaProcessoEntradaDTO) -> RpaRetornoProcesso
530
542
  sucesso=False,
531
543
  retorno=f"Pop-up nota incluida encontrada, porém nota não encontrada no EMSys - Reprocessar",
532
544
  status=RpaHistoricoStatusEnum.Falha,
545
+ tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
533
546
  )
534
547
  else:
535
548
  console.print("Erro ao lançar nota", style="bold red")
@@ -537,6 +550,7 @@ async def entrada_de_notas_36(task: RpaProcessoEntradaDTO) -> RpaRetornoProcesso
537
550
  sucesso=False,
538
551
  retorno=f"Erro ao lançar nota, erro: {nf_imported.retorno}",
539
552
  status=RpaHistoricoStatusEnum.Falha,
553
+ tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
540
554
  )
541
555
 
542
556
  except Exception as ex: