worker-automate-hub 0.4.403__py3-none-any.whl → 0.4.405__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.

Potentially problematic release.


This version of worker-automate-hub might be problematic. Click here for more details.

@@ -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
+ )
@@ -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
@@ -48,14 +48,14 @@ worker_automate_hub/tasks/jobs/entrada_de_notas_39.py,sha256=YMXbcQ-IXimJzH8npsG
48
48
  worker_automate_hub/tasks/jobs/entrada_de_notas_500.py,sha256=ryl5AZ2617aROSVcS-N5wQIBlFQ1Bp0khUH9fP4DOzU,26542
49
49
  worker_automate_hub/tasks/jobs/entrada_de_notas_505.py,sha256=jIml8gjXPdI6_x7S9VVV8IrKZRF7_PTNOMnhNmYMDTU,14490
50
50
  worker_automate_hub/tasks/jobs/entrada_de_notas_7139.py,sha256=8XP9G3n0PUeshbRWkWKOMnyUGRWspIolPZVqQTR3SMI,14184
51
- worker_automate_hub/tasks/jobs/entrada_de_notas_9.py,sha256=eAFBeEkhf7dLnj-vW7sEnxcBr1BJ6FkvIofNKaJcnyg,43877
51
+ worker_automate_hub/tasks/jobs/entrada_de_notas_9.py,sha256=OPOE43iMTUg3uNf2ZxqENV_NWn-g7HXBavHHgPN7RoA,47796
52
52
  worker_automate_hub/tasks/jobs/exemplo_processo.py,sha256=3-zxbb-9YHPmSA_K1Qgxp_FwSqg2QDjGBRCLxDZ8QoQ,3451
53
53
  worker_automate_hub/tasks/jobs/fidc_gerar_nosso_numero.py,sha256=Y-mKYcgX1kwcy_sOHvctn7clXnY3O3fohvOs7tKPMkM,9484
54
54
  worker_automate_hub/tasks/jobs/fidc_remessa_cobranca_cnab240.py,sha256=QBGm6eS5JghgNWNqZlk1g2a2iV8LnBLiOTBBL3Giet0,4181
55
55
  worker_automate_hub/tasks/jobs/login_emsys.py,sha256=IoGCIvO4UwmuxOZEn3cvYJlKyhsWvtHvbFk8vwjTroQ,5620
56
56
  worker_automate_hub/tasks/jobs/playground.py,sha256=bdnXv3C7WLQUxt4edGZDfAbRJJ2-q4zuIQaK3GLnaUc,1765
57
57
  worker_automate_hub/tasks/jobs/sped_fiscal.py,sha256=KquAdk26kvIKqT5hkHvzKMpa1UzJphx6s7qDv9pVuH4,26243
58
- worker_automate_hub/tasks/jobs/transferencias.py,sha256=keCUlvbPhLrTiZQ9Co_r6IqL5wjYqVGB_-mgvdDe9pM,36080
58
+ worker_automate_hub/tasks/jobs/transferencias.py,sha256=GM8OjjIgxu9biXYyQVnW3c-af06tdIPqy3s9QH9UXSs,38023
59
59
  worker_automate_hub/tasks/task_definitions.py,sha256=2Jp1H4_qJZqqGyaP6MA87KLt4QNrtWBYWbXu-2gymFo,4459
60
60
  worker_automate_hub/tasks/task_executor.py,sha256=eXFgWbcM8aMPwENvNix8KyFv7BqvIwhXUDkBSI1ul7M,8873
61
61
  worker_automate_hub/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -67,7 +67,7 @@ worker_automate_hub/utils/updater.py,sha256=en2FCGhI8aZ-JNP3LQm64NJDc4awCNW7UhbV
67
67
  worker_automate_hub/utils/util.py,sha256=YCbgMMBwhp9LD6NUmE5S2K6S12TNEpGJm25FqfsIKPE,119544
68
68
  worker_automate_hub/utils/utils_nfe_entrada.py,sha256=yQFyDzvXPSO-UYV1m38WLJ3AWQgZYcyUkHZdCKE1jG4,28360
69
69
  worker_automate_hub/worker.py,sha256=KDBU3L2kVobndrnN5coRZFTwVmBLKmPJjRv20sCo5Hc,4697
70
- worker_automate_hub-0.4.403.dist-info/entry_points.txt,sha256=sddyhjx57I08RY8X7UxcTpdoOsWULAWNKN9Xr6pp_Kw,54
71
- worker_automate_hub-0.4.403.dist-info/METADATA,sha256=IN1TuqG_rz_vigeyb-kIbf32zEusW-lXw_U3D7lFKwk,2895
72
- worker_automate_hub-0.4.403.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
73
- worker_automate_hub-0.4.403.dist-info/RECORD,,
70
+ worker_automate_hub-0.4.405.dist-info/entry_points.txt,sha256=sddyhjx57I08RY8X7UxcTpdoOsWULAWNKN9Xr6pp_Kw,54
71
+ worker_automate_hub-0.4.405.dist-info/METADATA,sha256=JxHUFknJopcBtPIJogmyAzwxlLNoOtbmoI4kr1RZkNs,2895
72
+ worker_automate_hub-0.4.405.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
73
+ worker_automate_hub-0.4.405.dist-info/RECORD,,