worker-automate-hub 0.4.404__tar.gz → 0.4.406__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.404 → worker_automate_hub-0.4.406}/PKG-INFO +1 -1
  2. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/pyproject.toml +1 -1
  3. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/worker_automate_hub/tasks/jobs/entrada_de_notas_33.py +1 -1
  4. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/worker_automate_hub/tasks/jobs/entrada_de_notas_9.py +65 -1
  5. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/worker_automate_hub/tasks/jobs/sped_fiscal.py +2 -2
  6. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/worker_automate_hub/utils/util.py +17 -16
  7. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/README.md +0 -0
  8. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/worker_automate_hub/__init__.py +0 -0
  9. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/worker_automate_hub/api/__init__.py +0 -0
  10. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/worker_automate_hub/api/ahead_service.py +0 -0
  11. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/worker_automate_hub/api/client.py +0 -0
  12. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/worker_automate_hub/api/helpers/__init__.py +0 -0
  13. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/worker_automate_hub/api/helpers/api_helpers.py +0 -0
  14. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/worker_automate_hub/api/rpa_historico_service.py +0 -0
  15. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/worker_automate_hub/cli.py +0 -0
  16. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/worker_automate_hub/config/__init__.py +0 -0
  17. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/worker_automate_hub/config/settings.py +0 -0
  18. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/worker_automate_hub/config.py +0 -0
  19. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/worker_automate_hub/core/so_manipulation.py +0 -0
  20. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/worker_automate_hub/decorators/__init__.py +0 -0
  21. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/worker_automate_hub/decorators/deprecation.py +0 -0
  22. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/worker_automate_hub/decorators/rate_limit.py +0 -0
  23. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/worker_automate_hub/decorators/repeat.py +0 -0
  24. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/worker_automate_hub/decorators/retry.py +0 -0
  25. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/worker_automate_hub/decorators/singleton.py +0 -0
  26. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/worker_automate_hub/decorators/timeit.py +0 -0
  27. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/worker_automate_hub/models/__init__.py +0 -0
  28. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/worker_automate_hub/models/dao/__init__.py +0 -0
  29. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/worker_automate_hub/models/dao/rpa_configuracao.py +0 -0
  30. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/worker_automate_hub/models/dao/rpa_historico.py +0 -0
  31. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/worker_automate_hub/models/dao/rpa_processo.py +0 -0
  32. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/worker_automate_hub/models/dto/__init__.py +0 -0
  33. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/worker_automate_hub/models/dto/rpa_historico_request_dto.py +0 -0
  34. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/worker_automate_hub/models/dto/rpa_processo_entrada_dto.py +0 -0
  35. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/worker_automate_hub/models/dto/rpa_sistema_dto.py +0 -0
  36. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/worker_automate_hub/tasks/__init__.py +0 -0
  37. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/worker_automate_hub/tasks/jobs/__init__.py +0 -0
  38. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/worker_automate_hub/tasks/jobs/coleta_dje_process.py +0 -0
  39. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/worker_automate_hub/tasks/jobs/conexao_rdp.py +0 -0
  40. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/worker_automate_hub/tasks/jobs/descartes.py +0 -0
  41. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/worker_automate_hub/tasks/jobs/ecac_estadual_go.py +0 -0
  42. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/worker_automate_hub/tasks/jobs/ecac_estadual_main.py +0 -0
  43. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/worker_automate_hub/tasks/jobs/ecac_estadual_mt.py +0 -0
  44. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/worker_automate_hub/tasks/jobs/ecac_estadual_sc.py +0 -0
  45. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/worker_automate_hub/tasks/jobs/ecac_estadual_sp.py +0 -0
  46. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/worker_automate_hub/tasks/jobs/ecac_federal.py +0 -0
  47. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/worker_automate_hub/tasks/jobs/entrada_de_notas_15.py +0 -0
  48. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/worker_automate_hub/tasks/jobs/entrada_de_notas_16.py +0 -0
  49. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/worker_automate_hub/tasks/jobs/entrada_de_notas_207.py +0 -0
  50. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/worker_automate_hub/tasks/jobs/entrada_de_notas_32.py +0 -0
  51. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/worker_automate_hub/tasks/jobs/entrada_de_notas_34.py +0 -0
  52. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/worker_automate_hub/tasks/jobs/entrada_de_notas_36.py +0 -0
  53. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/worker_automate_hub/tasks/jobs/entrada_de_notas_39.py +0 -0
  54. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/worker_automate_hub/tasks/jobs/entrada_de_notas_500.py +0 -0
  55. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/worker_automate_hub/tasks/jobs/entrada_de_notas_505.py +0 -0
  56. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/worker_automate_hub/tasks/jobs/entrada_de_notas_7139.py +0 -0
  57. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/worker_automate_hub/tasks/jobs/exemplo_processo.py +0 -0
  58. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/worker_automate_hub/tasks/jobs/fidc_gerar_nosso_numero.py +0 -0
  59. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/worker_automate_hub/tasks/jobs/fidc_remessa_cobranca_cnab240.py +0 -0
  60. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/worker_automate_hub/tasks/jobs/login_emsys.py +0 -0
  61. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/worker_automate_hub/tasks/jobs/playground.py +0 -0
  62. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/worker_automate_hub/tasks/jobs/transferencias.py +0 -0
  63. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/worker_automate_hub/tasks/task_definitions.py +0 -0
  64. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/worker_automate_hub/tasks/task_executor.py +0 -0
  65. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/worker_automate_hub/utils/__init__.py +0 -0
  66. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/worker_automate_hub/utils/env.py +0 -0
  67. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/worker_automate_hub/utils/get_creds_gworkspace.py +0 -0
  68. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/worker_automate_hub/utils/logger.py +0 -0
  69. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/worker_automate_hub/utils/toast.py +0 -0
  70. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/worker_automate_hub/utils/updater.py +0 -0
  71. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/worker_automate_hub/utils/utils_nfe_entrada.py +0 -0
  72. {worker_automate_hub-0.4.404 → worker_automate_hub-0.4.406}/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.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
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "worker-automate-hub"
3
- version = "0.4.404"
3
+ version = "0.4.406"
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"
@@ -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