worker-automate-hub 0.4.404__py3-none-any.whl → 0.4.406__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.
@@ -323,7 +323,7 @@ async def entrada_de_notas_33(task: RpaProcessoEntradaDTO) -> RpaRetornoProcesso
323
323
  status=RpaHistoricoStatusEnum.Falha,
324
324
  )
325
325
 
326
- await worker_sleep(6)
326
+ await worker_sleep(10)
327
327
 
328
328
  console.print(
329
329
  "Verificando a existencia de POP-UP de Itens não localizados ou NCM ...\n"
@@ -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
  )
@@ -382,7 +382,7 @@ async def sped_fiscal(task: RpaProcessoEntradaDTO) -> RpaRetornoProcessoDTO:
382
382
  )
383
383
 
384
384
 
385
- await worker_sleep(7)
385
+ await worker_sleep(12)
386
386
  console.print(f"Verificando sem possui o pop-up de Registro de Entrada... \n")
387
387
  registro_entrada_pop_up_title = await is_window_open("Registro de Entrada")
388
388
  if registro_entrada_pop_up_title["IsOpened"] == True:
@@ -402,7 +402,7 @@ async def sped_fiscal(task: RpaProcessoEntradaDTO) -> RpaRetornoProcessoDTO:
402
402
  )
403
403
 
404
404
  await worker_sleep(5)
405
- max_attempts = 35
405
+ max_attempts = 45
406
406
  i = 0
407
407
 
408
408
  while i < max_attempts:
@@ -2407,25 +2407,26 @@ async def error_before_persist_record() -> RpaRetornoProcessoDTO:
2407
2407
 
2408
2408
  # TODO: Melhorar o retorno
2409
2409
  async def itens_not_found_supplier(xml: str):
2410
- username = getpass.getuser()
2411
- console.print("Verificando se existe tela de multiplas referencias.\n")
2412
- await worker_sleep(10)
2410
+ try:
2411
+ username = getpass.getuser()
2412
+ console.print("Verificando se existe tela de multiplas referencias.\n")
2413
+ await worker_sleep(10)
2413
2414
 
2414
- itens_fornecedor = await is_window_open_by_class(
2415
- "TFrmSelecionaItensFornecedor", "TFrmSelecionaItensFornecedor"
2416
- )
2415
+ itens_fornecedor = await is_window_open_by_class(
2416
+ "TFrmSelecionaItensFornecedor", "TFrmSelecionaItensFornecedor"
2417
+ )
2417
2418
 
2418
- if itens_fornecedor["IsOpened"] == True:
2419
- console.print("Tela de multiplas referencias existe.\n")
2420
- return {
2421
- "sucesso": True,
2422
- "retorno": f"Tela de Itens fornecedor - Multiplas referencias",
2423
- "window": "MultiplasRef",
2424
- }
2419
+ if itens_fornecedor["IsOpened"] == True:
2420
+ console.print("Tela de multiplas referencias existe.\n")
2421
+ return {
2422
+ "sucesso": True,
2423
+ "retorno": f"Tela de Itens fornecedor - Multiplas referencias",
2424
+ "window": "MultiplasRef",
2425
+ }
2426
+
2427
+ console.print("Iteragindo com a tela de itens não localizados // NCM ...\n")
2425
2428
 
2426
- console.print("Iteragindo com a tela de itens não localizados // NCM ...\n")
2427
- try:
2428
- app = Application().connect(class_name="TFrmAguarde")
2429
+ app = Application().connect(class_name="TFrmAguarde", timeout=60)
2429
2430
 
2430
2431
  max_attempts = 60
2431
2432
  i = 0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: worker-automate-hub
3
- Version: 0.4.404
3
+ Version: 0.4.406
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
@@ -41,20 +41,20 @@ worker_automate_hub/tasks/jobs/entrada_de_notas_15.py,sha256=5Rqz_kf-399nEA3s1_6
41
41
  worker_automate_hub/tasks/jobs/entrada_de_notas_16.py,sha256=t13fW63d52OwIUHaJrHY3qxIkd1LjHE_bHkSWqVhy3I,21129
42
42
  worker_automate_hub/tasks/jobs/entrada_de_notas_207.py,sha256=TfvGmH1__OGRx5oYordEJt-gpcETKA9OFhwHQD3yqs4,24928
43
43
  worker_automate_hub/tasks/jobs/entrada_de_notas_32.py,sha256=0cneKY6bQU5neo3TKlGynney_CoOB_J_dctFMYf26WM,32388
44
- worker_automate_hub/tasks/jobs/entrada_de_notas_33.py,sha256=cR1a7Q61adYuCMCRxH71mxVnORvkeBbKZ8_dsnUNQ-g,31456
44
+ worker_automate_hub/tasks/jobs/entrada_de_notas_33.py,sha256=ktXc_kdMhlz9cbb7XjfMJhME29mgMFd_FnatxSZZU_s,31457
45
45
  worker_automate_hub/tasks/jobs/entrada_de_notas_34.py,sha256=iaSmtWTWlazHDtGp22yTV5J5rHDhUCbEaCAnpU7UWyM,31808
46
46
  worker_automate_hub/tasks/jobs/entrada_de_notas_36.py,sha256=vFkDcgJ9uxrMMLYdeONCMxh6_evnhgF1Sun5HEHAWa4,22716
47
47
  worker_automate_hub/tasks/jobs/entrada_de_notas_39.py,sha256=YMXbcQ-IXimJzH8npsGO3525aBrjSSsiiD-TlLdlURo,32664
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
- worker_automate_hub/tasks/jobs/sped_fiscal.py,sha256=KquAdk26kvIKqT5hkHvzKMpa1UzJphx6s7qDv9pVuH4,26243
57
+ worker_automate_hub/tasks/jobs/sped_fiscal.py,sha256=J6jfssiQTe1EWHIXnr9r73Y02NU17uWu8Ue2qnMkEfo,26244
58
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
@@ -64,10 +64,10 @@ worker_automate_hub/utils/get_creds_gworkspace.py,sha256=ZJ0IIEjM4IXIV9rwfbOZ1V1
64
64
  worker_automate_hub/utils/logger.py,sha256=FYV9fg0_RAYJF_ZOCJEbqQAiCXlXk2gMpvUU1rzT_xs,671
65
65
  worker_automate_hub/utils/toast.py,sha256=xPHc5r5uOxB_cZlCzm13Kt2qSKLLFZALncU6Qg3Ft68,1162
66
66
  worker_automate_hub/utils/updater.py,sha256=en2FCGhI8aZ-JNP3LQm64NJDc4awCNW7UhbVlwDl49Y,7972
67
- worker_automate_hub/utils/util.py,sha256=YCbgMMBwhp9LD6NUmE5S2K6S12TNEpGJm25FqfsIKPE,119544
67
+ worker_automate_hub/utils/util.py,sha256=PA5ZTg9ukfZpHXcGYwbSIf_ma42quFn3bRUJzXA_Zkw,119622
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.404.dist-info/entry_points.txt,sha256=sddyhjx57I08RY8X7UxcTpdoOsWULAWNKN9Xr6pp_Kw,54
71
- worker_automate_hub-0.4.404.dist-info/METADATA,sha256=JCgJOuaKdUaHqNe89o2mchau7CnsD5_rIpEqtLIxgU4,2895
72
- worker_automate_hub-0.4.404.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
73
- worker_automate_hub-0.4.404.dist-info/RECORD,,
70
+ worker_automate_hub-0.4.406.dist-info/entry_points.txt,sha256=sddyhjx57I08RY8X7UxcTpdoOsWULAWNKN9Xr6pp_Kw,54
71
+ worker_automate_hub-0.4.406.dist-info/METADATA,sha256=PfwORNpz3zibcWwAbfIDMkuAOSdQwHdACMU0paA0FdY,2895
72
+ worker_automate_hub-0.4.406.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
73
+ worker_automate_hub-0.4.406.dist-info/RECORD,,