worker-automate-hub 0.4.403__tar.gz → 0.4.405__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (72) hide show
  1. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/PKG-INFO +1 -1
  2. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/pyproject.toml +1 -1
  3. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/worker_automate_hub/tasks/jobs/entrada_de_notas_9.py +65 -1
  4. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/worker_automate_hub/tasks/jobs/transferencias.py +60 -18
  5. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/README.md +0 -0
  6. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/worker_automate_hub/__init__.py +0 -0
  7. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/worker_automate_hub/api/__init__.py +0 -0
  8. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/worker_automate_hub/api/ahead_service.py +0 -0
  9. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/worker_automate_hub/api/client.py +0 -0
  10. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/worker_automate_hub/api/helpers/__init__.py +0 -0
  11. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/worker_automate_hub/api/helpers/api_helpers.py +0 -0
  12. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/worker_automate_hub/api/rpa_historico_service.py +0 -0
  13. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/worker_automate_hub/cli.py +0 -0
  14. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/worker_automate_hub/config/__init__.py +0 -0
  15. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/worker_automate_hub/config/settings.py +0 -0
  16. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/worker_automate_hub/config.py +0 -0
  17. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/worker_automate_hub/core/so_manipulation.py +0 -0
  18. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/worker_automate_hub/decorators/__init__.py +0 -0
  19. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/worker_automate_hub/decorators/deprecation.py +0 -0
  20. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/worker_automate_hub/decorators/rate_limit.py +0 -0
  21. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/worker_automate_hub/decorators/repeat.py +0 -0
  22. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/worker_automate_hub/decorators/retry.py +0 -0
  23. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/worker_automate_hub/decorators/singleton.py +0 -0
  24. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/worker_automate_hub/decorators/timeit.py +0 -0
  25. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/worker_automate_hub/models/__init__.py +0 -0
  26. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/worker_automate_hub/models/dao/__init__.py +0 -0
  27. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/worker_automate_hub/models/dao/rpa_configuracao.py +0 -0
  28. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/worker_automate_hub/models/dao/rpa_historico.py +0 -0
  29. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/worker_automate_hub/models/dao/rpa_processo.py +0 -0
  30. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/worker_automate_hub/models/dto/__init__.py +0 -0
  31. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/worker_automate_hub/models/dto/rpa_historico_request_dto.py +0 -0
  32. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/worker_automate_hub/models/dto/rpa_processo_entrada_dto.py +0 -0
  33. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/worker_automate_hub/models/dto/rpa_sistema_dto.py +0 -0
  34. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/worker_automate_hub/tasks/__init__.py +0 -0
  35. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/worker_automate_hub/tasks/jobs/__init__.py +0 -0
  36. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/worker_automate_hub/tasks/jobs/coleta_dje_process.py +0 -0
  37. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/worker_automate_hub/tasks/jobs/conexao_rdp.py +0 -0
  38. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/worker_automate_hub/tasks/jobs/descartes.py +0 -0
  39. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/worker_automate_hub/tasks/jobs/ecac_estadual_go.py +0 -0
  40. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/worker_automate_hub/tasks/jobs/ecac_estadual_main.py +0 -0
  41. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/worker_automate_hub/tasks/jobs/ecac_estadual_mt.py +0 -0
  42. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/worker_automate_hub/tasks/jobs/ecac_estadual_sc.py +0 -0
  43. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/worker_automate_hub/tasks/jobs/ecac_estadual_sp.py +0 -0
  44. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/worker_automate_hub/tasks/jobs/ecac_federal.py +0 -0
  45. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/worker_automate_hub/tasks/jobs/entrada_de_notas_15.py +0 -0
  46. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/worker_automate_hub/tasks/jobs/entrada_de_notas_16.py +0 -0
  47. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/worker_automate_hub/tasks/jobs/entrada_de_notas_207.py +0 -0
  48. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/worker_automate_hub/tasks/jobs/entrada_de_notas_32.py +0 -0
  49. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/worker_automate_hub/tasks/jobs/entrada_de_notas_33.py +0 -0
  50. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/worker_automate_hub/tasks/jobs/entrada_de_notas_34.py +0 -0
  51. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/worker_automate_hub/tasks/jobs/entrada_de_notas_36.py +0 -0
  52. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/worker_automate_hub/tasks/jobs/entrada_de_notas_39.py +0 -0
  53. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/worker_automate_hub/tasks/jobs/entrada_de_notas_500.py +0 -0
  54. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/worker_automate_hub/tasks/jobs/entrada_de_notas_505.py +0 -0
  55. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/worker_automate_hub/tasks/jobs/entrada_de_notas_7139.py +0 -0
  56. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/worker_automate_hub/tasks/jobs/exemplo_processo.py +0 -0
  57. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/worker_automate_hub/tasks/jobs/fidc_gerar_nosso_numero.py +0 -0
  58. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/worker_automate_hub/tasks/jobs/fidc_remessa_cobranca_cnab240.py +0 -0
  59. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/worker_automate_hub/tasks/jobs/login_emsys.py +0 -0
  60. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/worker_automate_hub/tasks/jobs/playground.py +0 -0
  61. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/worker_automate_hub/tasks/jobs/sped_fiscal.py +0 -0
  62. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/worker_automate_hub/tasks/task_definitions.py +0 -0
  63. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/worker_automate_hub/tasks/task_executor.py +0 -0
  64. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/worker_automate_hub/utils/__init__.py +0 -0
  65. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/worker_automate_hub/utils/env.py +0 -0
  66. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/worker_automate_hub/utils/get_creds_gworkspace.py +0 -0
  67. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/worker_automate_hub/utils/logger.py +0 -0
  68. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/worker_automate_hub/utils/toast.py +0 -0
  69. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/worker_automate_hub/utils/updater.py +0 -0
  70. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/worker_automate_hub/utils/util.py +0 -0
  71. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/worker_automate_hub/utils/utils_nfe_entrada.py +0 -0
  72. {worker_automate_hub-0.4.403 → worker_automate_hub-0.4.405}/worker_automate_hub/worker.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: worker-automate-hub
3
- Version: 0.4.403
3
+ Version: 0.4.405
4
4
  Summary: Worker Automate HUB é uma aplicação para automatizar rotinas de RPA nos ambientes Argenta.
5
5
  Author: Joel Paim
6
6
  Requires-Python: >=3.12,<4.0
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "worker-automate-hub"
3
- version = "0.4.403"
3
+ version = "0.4.405"
4
4
  description = "Worker Automate HUB é uma aplicação para automatizar rotinas de RPA nos ambientes Argenta."
5
5
  authors = ["Joel Paim"]
6
6
  readme = "README.md"
@@ -400,7 +400,7 @@ async def entrada_de_notas_9(task: RpaProcessoEntradaDTO) -> RpaRetornoProcessoD
400
400
  send_keys("{LEFT 3}")
401
401
 
402
402
  distribuiu_algo = False
403
-
403
+ distribuicao_atual = []
404
404
  last_line_almoxarifado_emsys = 'x'
405
405
  max_distribuicao = 0
406
406
 
@@ -448,6 +448,7 @@ async def entrada_de_notas_9(task: RpaProcessoEntradaDTO) -> RpaRetornoProcessoD
448
448
  pyautogui.write(quantidade_combustivel)
449
449
  pyautogui.press('enter')
450
450
  list_tanques_distribuidos.append(second_info_distribuicao_obs)
451
+ distribuicao_atual.append(f"Valor do tipo de combustivel:{codigo_almoxarifado_emsys} nas observações é {quantidade_combustivel}")
451
452
  distribuiu_algo = True
452
453
 
453
454
  max_distribuicao = max_distribuicao + 1
@@ -458,7 +459,70 @@ async def entrada_de_notas_9(task: RpaProcessoEntradaDTO) -> RpaRetornoProcessoD
458
459
  console.print(f"Index Tanque: {index_tanque}")
459
460
 
460
461
  if distribuiu_algo:
462
+ console.print(f"Extraindo informação da Janela de Distribuir Itens para realização do OCR...\n")
463
+
464
+ main_window.set_focus()
465
+ window_rect = main_window.rectangle()
466
+ screenshot = pyautogui.screenshot(
467
+ region=(
468
+ window_rect.left,
469
+ window_rect.top,
470
+ window_rect.width(),
471
+ window_rect.height(),
472
+ )
473
+ )
474
+ username = getpass.getuser()
475
+ path_to_png = f"C:\\Users\\{username}\\Downloads\\distribuir_iten_{nota.get("nfe")}.png"
476
+ screenshot.save(path_to_png)
477
+ console.print(f"Print salvo em {path_to_png}...\n")
478
+
479
+ console.print(
480
+ f"Preparando a imagem para maior resolução e assertividade no OCR...\n"
481
+ )
482
+ image = Image.open(path_to_png)
483
+ image = image.convert("L")
484
+ enhancer = ImageEnhance.Contrast(image)
485
+ image = enhancer.enhance(2.0)
486
+ image.save(path_to_png)
487
+ console.print(f"Imagem preparada com sucesso...\n")
488
+ console.print(f"Realizando OCR...\n")
489
+ captured_text = pytesseract.image_to_string(Image.open(path_to_png))
490
+ console.print(
491
+ f"Texto Full capturado {captured_text}...\n"
492
+ )
493
+ os.remove(path_to_png)
494
+
495
+ pattern_qtd_restante = r"Quantidade restante:\s([\d,]+)"
496
+ resultado = re.search(pattern_qtd_restante, captured_text)
497
+
498
+ try:
499
+ if resultado:
500
+ quantidade_restante = int(resultado.group(1).replace(",", ""))
501
+
502
+ if quantidade_restante > 0:
503
+ return RpaRetornoProcessoDTO(
504
+ sucesso=False,
505
+ retorno=f"A distribuição informada diverge do que está na nota, {', '.join(distribuicao_atual)} e o valor da quantidade restante é de {str(quantidade_restante)}.",
506
+ status=RpaHistoricoStatusEnum.Falha,
507
+ )
508
+ else:
509
+ console.print(f"A quantidade restante é igual ou menor que 0, seguindo... \n")
510
+ else:
511
+ return RpaRetornoProcessoDTO(
512
+ sucesso=False,
513
+ retorno=f"Não foi possivel obter o resultado da quantidade restante, texto extraido: {resultado}",
514
+ status=RpaHistoricoStatusEnum.Falha,
515
+ )
516
+ except Exception as e:
517
+ return RpaRetornoProcessoDTO(
518
+ sucesso=False,
519
+ retorno=f"Erro {e}, Não foi possivel obter o resultado da quantidade restante, texto extraido: {resultado}",
520
+ status=RpaHistoricoStatusEnum.Falha,
521
+ )
522
+
461
523
  console.print(f"Algum Item foi distribuido, clicando em OK para salvar")
524
+ main_window.set_focus()
525
+ await worker_sleep(1)
462
526
  btn_ok = main_window.child_window(
463
527
  class_name="TBitBtn", found_index=1
464
528
  )
@@ -613,10 +613,10 @@ async def transferencias(task: RpaProcessoEntradaDTO) -> RpaRetornoProcessoDTO:
613
613
  app = Application().connect(title="Informação")
614
614
  dialog = app.window(title="Informação")
615
615
 
616
- btn_ok = dialog.child_window(title="OK", class_name="Button")
617
- if btn_ok.exists():
616
+ btn_yes = dialog.child_window(title="OK", class_name="Button")
617
+ if btn_yes.exists():
618
618
  try:
619
- btn_ok.click()
619
+ btn_yes.click()
620
620
  await worker_sleep(3)
621
621
  console.print(
622
622
  "O botão OK de pré-venda incluída foi clicado com sucesso.",
@@ -632,7 +632,6 @@ async def transferencias(task: RpaProcessoEntradaDTO) -> RpaRetornoProcessoDTO:
632
632
  retorno=f"Falha ao clicar no botão OK de pré-venda incluída: {e}",
633
633
  status=RpaHistoricoStatusEnum.Falha,
634
634
  )
635
-
636
635
  else:
637
636
 
638
637
  console.print(
@@ -656,22 +655,66 @@ async def transferencias(task: RpaProcessoEntradaDTO) -> RpaRetornoProcessoDTO:
656
655
 
657
656
  await worker_sleep(3)
658
657
 
659
- screenshot_path = take_screenshot()
658
+ # screenshot_path = take_screenshot()
660
659
  # Message 'Deseja pesquisar pré-venda?'
661
660
  console.print(
662
661
  "Verificando a existencia da mensagem: 'Deseja pesquisar pré-venda?'...\n"
663
662
  )
664
- message_prevenda = take_target_position(screenshot_path, "Deseja")
665
- if message_prevenda is not None:
666
- button_yes = find_target_position(screenshot_path, "Yes", attempts=5)
667
- if button_yes is not None:
668
- pyautogui.click(button_yes)
663
+ try:
664
+ app = Application().connect(title="Confirm")
665
+ dialog_prevenda = app.window(title="Confirm")
666
+
667
+ btn_yes = dialog_prevenda.child_window(title="&Yes", class_name="TButton")
668
+ if btn_yes.exists():
669
+ try:
670
+ btn_yes.click()
671
+ await worker_sleep(3)
672
+ console.print(
673
+ "O botão YES de pesquisa pré-venda incluída foi clicado com sucesso.",
674
+ style="green",
675
+ )
676
+ except Exception as e:
677
+ console.print(
678
+ f"Falha ao clicar no botão YES de pesquisa pré-venda incluída: {e}",
679
+ style="red",
680
+ )
681
+ return RpaRetornoProcessoDTO(
682
+ sucesso=False,
683
+ retorno=f"Falha ao clicar no botão YES de pesquisa pré-venda incluída: {e}",
684
+ status=RpaHistoricoStatusEnum.Falha,
685
+ )
669
686
  else:
670
- pyautogui.click(914,560)
671
- console.log('Clicou em "Yes" para confirmar pré-venda', style="bold green")
672
- else:
673
- log_msg = f"Mensagem 'Deseja pesquisar pré-venda?' não encontrada."
674
- console.print(log_msg, style="bold yellow")
687
+
688
+ console.print(
689
+ "O Botão OK de pré-venda incluída não foi encontrado.", style="red"
690
+ )
691
+ return RpaRetornoProcessoDTO(
692
+ sucesso=False,
693
+ retorno="O Botão YES de pesquisa pré-venda incluída não foi encontrado.",
694
+ status=RpaHistoricoStatusEnum.Falha,
695
+ )
696
+
697
+ except Exception as e:
698
+ console.print(
699
+ f"O Botão YES de pesquisa pré-venda incluída não foi encontrado: {e}", style="red"
700
+ )
701
+ return RpaRetornoProcessoDTO(
702
+ sucesso=False,
703
+ retorno=f"O Botão YES de pesquisa pré-venda incluída não foi encontrado: {e}",
704
+ status=RpaHistoricoStatusEnum.Falha,
705
+ )
706
+
707
+ # message_prevenda = take_target_position(screenshot_path, "Deseja")
708
+ # if message_prevenda is not None:
709
+ # button_yes = find_target_position(screenshot_path, "Yes", attempts=5)
710
+ # if button_yes is not None:
711
+ # pyautogui.click(button_yes)
712
+ # else:
713
+ # pyautogui.click(914,560)
714
+ # console.log('Clicou em "Yes" para confirmar pré-venda', style="bold green")
715
+ # else:
716
+ # log_msg = f"Mensagem 'Deseja pesquisar pré-venda?' não encontrada."
717
+ # console.print(log_msg, style="bold yellow")
675
718
  await worker_sleep(5)
676
719
 
677
720
  # screenshot_path = take_screenshot()
@@ -767,7 +810,7 @@ async def transferencias(task: RpaProcessoEntradaDTO) -> RpaRetornoProcessoDTO:
767
810
  pyautogui.click(pre_venda_sucesso)
768
811
  console.log('Clicou em "OK" na mensagem de sucesso', style="bold green")
769
812
 
770
- await worker_sleep(5)
813
+ await worker_sleep(10)
771
814
 
772
815
  # Faturando Pre-venda
773
816
  retorno = await faturar_pre_venda(task)
@@ -856,5 +899,4 @@ async def transferencias(task: RpaProcessoEntradaDTO) -> RpaRetornoProcessoDTO:
856
899
  sucesso=False,
857
900
  retorno=log_msg,
858
901
  status=RpaHistoricoStatusEnum.Falha,
859
- )
860
-
902
+ )