worker-automate-hub 0.4.404__py3-none-any.whl → 0.4.406__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
@@ -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,,