worker-automate-hub 0.5.808__tar.gz → 0.5.810__tar.gz

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.
Files changed (108) hide show
  1. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/PKG-INFO +1 -1
  2. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/pyproject.toml +1 -1
  3. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/tasks/jobs/abertura_livros_fiscais.py +3 -5
  4. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/tasks/jobs/integracao_contabil_generica.py +81 -57
  5. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/README.md +0 -0
  6. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/__init__.py +0 -0
  7. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/api/__init__.py +0 -0
  8. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/api/ahead_service.py +0 -0
  9. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/api/client.py +0 -0
  10. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/api/datalake_service.py +0 -0
  11. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/api/helpers/__init__.py +0 -0
  12. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/api/helpers/api_helpers.py +0 -0
  13. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/api/rdp_service.py +0 -0
  14. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/api/rpa_fila_service.py +0 -0
  15. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/api/rpa_historico_service.py +0 -0
  16. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/api/webhook_service.py +0 -0
  17. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/cli.py +0 -0
  18. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/config/__init__.py +0 -0
  19. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/config/settings.py +0 -0
  20. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/config.py +0 -0
  21. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/core/so_manipulation.py +0 -0
  22. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/decorators/__init__.py +0 -0
  23. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/decorators/deprecation.py +0 -0
  24. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/decorators/rate_limit.py +0 -0
  25. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/decorators/repeat.py +0 -0
  26. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/decorators/retry.py +0 -0
  27. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/decorators/singleton.py +0 -0
  28. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/decorators/timeit.py +0 -0
  29. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/models/__init__.py +0 -0
  30. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/models/dao/__init__.py +0 -0
  31. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/models/dao/rpa_configuracao.py +0 -0
  32. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/models/dao/rpa_fila.py +0 -0
  33. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/models/dao/rpa_historico.py +0 -0
  34. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/models/dao/rpa_processo.py +0 -0
  35. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/models/dao/rpa_robo.py +0 -0
  36. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/models/dto/__init__.py +0 -0
  37. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/models/dto/rpa_historico_request_dto.py +0 -0
  38. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/models/dto/rpa_processo_entrada_dto.py +0 -0
  39. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/models/dto/rpa_processo_rdp_dto.py +0 -0
  40. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/models/dto/rpa_sap_dto.py +0 -0
  41. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/models/dto/rpa_sistema_dto.py +0 -0
  42. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/tasks/__init__.py +0 -0
  43. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/tasks/jobs/__init__.py +0 -0
  44. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/tasks/jobs/coleta_dje_process.py +0 -0
  45. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/tasks/jobs/conexao_rdp.py +0 -0
  46. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/tasks/jobs/cte_manual.py +0 -0
  47. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/tasks/jobs/cte_xml.py +0 -0
  48. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/tasks/jobs/descartes.py +0 -0
  49. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/tasks/jobs/devolucao_ctf.py +0 -0
  50. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/tasks/jobs/devolucao_ctf_35.py +0 -0
  51. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/tasks/jobs/devolucao_prazo_a_faturar.py +0 -0
  52. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/tasks/jobs/ecac_estadual_go.py +0 -0
  53. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/tasks/jobs/ecac_estadual_main.py +0 -0
  54. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/tasks/jobs/ecac_estadual_mt.py +0 -0
  55. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/tasks/jobs/ecac_estadual_sc.py +0 -0
  56. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/tasks/jobs/ecac_estadual_sp.py +0 -0
  57. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/tasks/jobs/ecac_federal.py +0 -0
  58. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/tasks/jobs/entrada_cte_1353.py +0 -0
  59. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/tasks/jobs/entrada_cte_333.py +0 -0
  60. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/tasks/jobs/entrada_de_notas_15.py +0 -0
  61. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/tasks/jobs/entrada_de_notas_16.py +0 -0
  62. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/tasks/jobs/entrada_de_notas_207.py +0 -0
  63. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/tasks/jobs/entrada_de_notas_22.py +0 -0
  64. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/tasks/jobs/entrada_de_notas_32.py +0 -0
  65. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/tasks/jobs/entrada_de_notas_33.py +0 -0
  66. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/tasks/jobs/entrada_de_notas_34.py +0 -0
  67. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/tasks/jobs/entrada_de_notas_36.py +0 -0
  68. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/tasks/jobs/entrada_de_notas_37.py +0 -0
  69. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/tasks/jobs/entrada_de_notas_39.py +0 -0
  70. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/tasks/jobs/entrada_de_notas_500.py +0 -0
  71. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/tasks/jobs/entrada_de_notas_503.py +0 -0
  72. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/tasks/jobs/entrada_de_notas_505.py +0 -0
  73. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/tasks/jobs/entrada_de_notas_7139.py +0 -0
  74. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/tasks/jobs/entrada_de_notas_9.py +0 -0
  75. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/tasks/jobs/entrada_de_notas_9000.py +0 -0
  76. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/tasks/jobs/exemplo_processo.py +0 -0
  77. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/tasks/jobs/extracao_fechamento_contabil.py +0 -0
  78. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/tasks/jobs/extracao_fechamento_emsys.py +0 -0
  79. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/tasks/jobs/extracao_saldo_estoque.py +0 -0
  80. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/tasks/jobs/extracao_saldo_estoque_fiscal.py +0 -0
  81. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/tasks/jobs/fechar_conexao_rdp.py +0 -0
  82. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/tasks/jobs/fidc_exportacao_docs_portal_b2b.py +0 -0
  83. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/tasks/jobs/fidc_gerar_nosso_numero.py +0 -0
  84. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/tasks/jobs/fidc_remessa_cobranca_cnab240.py +0 -0
  85. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/tasks/jobs/fidc_retorno_cobranca.py +0 -0
  86. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/tasks/jobs/geracao_aprovacao_pedidos.py +0 -0
  87. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/tasks/jobs/geracao_aprovacao_pedidos_novo.py +0 -0
  88. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/tasks/jobs/integracao_contabil.py +0 -0
  89. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/tasks/jobs/lancamento_pis_cofins.py +0 -0
  90. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/tasks/jobs/lancamento_rateio.py +0 -0
  91. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/tasks/jobs/login_emsys.py +0 -0
  92. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/tasks/jobs/login_emsys_versao_especifica.py +0 -0
  93. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/tasks/jobs/notas_faturamento_sap.py +0 -0
  94. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/tasks/jobs/opex_capex.py +0 -0
  95. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/tasks/jobs/playground.py +0 -0
  96. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/tasks/jobs/sped_fiscal.py +0 -0
  97. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/tasks/jobs/transferencias.py +0 -0
  98. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/tasks/task_definitions.py +0 -0
  99. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/tasks/task_executor.py +0 -0
  100. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/utils/__init__.py +0 -0
  101. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/utils/env.py +0 -0
  102. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/utils/get_creds_gworkspace.py +0 -0
  103. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/utils/logger.py +0 -0
  104. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/utils/toast.py +0 -0
  105. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/utils/updater.py +0 -0
  106. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/utils/util.py +0 -0
  107. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/utils/utils_nfe_entrada.py +0 -0
  108. {worker_automate_hub-0.5.808 → worker_automate_hub-0.5.810}/worker_automate_hub/worker.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: worker-automate-hub
3
- Version: 0.5.808
3
+ Version: 0.5.810
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.5.808"
3
+ version = "0.5.810"
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"
@@ -331,8 +331,7 @@ async def abertura_livros_fiscais(task: RpaProcessoEntradaDTO) -> RpaRetornoProc
331
331
  console.print("Aguardar o término de carregar")
332
332
  # imagem = r"C:\Users\automatehub\Documents\GitHub\worker-automate-hub\assets\abertura_livros\livros_incluidos.png"
333
333
  imagem = "assets\\abertura_livros\\livros_incluidos.png"
334
-
335
- tempo_limite = 1200 # 20 minutos
334
+ tempo_limite = 3600 # 1h
336
335
  intervalo = 2 # segundos entre as verificações
337
336
 
338
337
  inicio = time.time()
@@ -375,7 +374,7 @@ async def abertura_livros_fiscais(task: RpaProcessoEntradaDTO) -> RpaRetornoProc
375
374
  # img_dialog = r"C:\Users\automatehub\Documents\GitHub\worker-automate-hub\assets\abertura_livros\notas_rejeitadas.png"
376
375
  img_dialog = "assets\\abertura_livros\\notas_rejeitadas.png"
377
376
  if os.path.exists(img_dialog):
378
- caixa = pyautogui.locateOnScreen(img_dialog, confidence=0.86, grayscale=True)
377
+ caixa = pyautogui.locateOnScreen(img_dialog, confidence=0.9, grayscale=True)
379
378
  if caixa:
380
379
  print("Janela 'notas rejeitadas' detectada por imagem.")
381
380
  region = (caixa.left, caixa.top, caixa.width, caixa.height)
@@ -394,7 +393,7 @@ async def abertura_livros_fiscais(task: RpaProcessoEntradaDTO) -> RpaRetornoProc
394
393
  # img_dialog = r"C:\Users\automatehub\Documents\GitHub\worker-automate-hub\assets\abertura_livros\gerar_rel_notas_rejeitadas.png"
395
394
  img_dialog = "assets\\abertura_livros\\gerar_rel_notas_rejeitadas.png"
396
395
  if os.path.exists(img_dialog):
397
- caixa = pyautogui.locateOnScreen(img_dialog, confidence=0.86, grayscale=True)
396
+ caixa = pyautogui.locateOnScreen(img_dialog, confidence=0.9, grayscale=True)
398
397
  if caixa:
399
398
  print("Janela 'notas rejeitadas' detectada por imagem.")
400
399
  region = (caixa.left, caixa.top, caixa.width, caixa.height)
@@ -632,4 +631,3 @@ async def abertura_livros_fiscais(task: RpaProcessoEntradaDTO) -> RpaRetornoProc
632
631
  status=RpaHistoricoStatusEnum.Falha,
633
632
  tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)],
634
633
  )
635
-
@@ -202,7 +202,7 @@ async def integracao_contabil_generica(
202
202
 
203
203
  # console.print("Selecionando item do campo origem...")
204
204
  uuid_processo = task.uuidProcesso
205
- caminho_imagem = f"assets\\integracao_contabil\\{uuid_processo}.png"
205
+ caminho_imagem = os.path.join(ASSETS_PATH_BASE, "integracao_contabil", f"{uuid_processo}.png")
206
206
 
207
207
  await metodo_selecao_origem_especial()
208
208
  await localizar_e_clicar(caminho_imagem) # main_window.set_focus()
@@ -258,7 +258,7 @@ async def integracao_contabil_generica(
258
258
  console.print("Verificar se existem lotes")
259
259
  try:
260
260
  # Verifica mensagem sem lote pra integrar
261
- imagem_alvo = "assets\\integracao_contabil\\sem_lote.png"
261
+ imagem_alvo = os.path.join(ASSETS_PATH_BASE, "integracao_contabil", "sem_lote.png")
262
262
 
263
263
  localizacao = pyautogui.locateOnScreen(imagem_alvo, confidence=0.9)
264
264
 
@@ -297,7 +297,7 @@ async def integracao_contabil_generica(
297
297
  await worker_sleep(5)
298
298
 
299
299
  try:
300
- imagem_finalizada = "assets\\integracao_contabil\\pesquisa_finalizada.png"
300
+ imagem_finalizada = os.path.join(ASSETS_PATH_BASE, "integracao_contabil", "pesquisa_finalizada.png")
301
301
 
302
302
  if not os.path.exists(imagem_finalizada):
303
303
  raise FileNotFoundError(
@@ -399,9 +399,9 @@ async def integracao_contabil_generica(
399
399
  total_debito = numeros[1].window_text()
400
400
  total_credito = numeros[2].window_text()
401
401
 
402
- print("Diferença:", diferenca)
403
- print("Total Débito:", total_debito)
404
- print("Total Crédito:", total_credito)
402
+ console.print("Diferença:", diferenca)
403
+ console.print("Total Débito:", total_debito)
404
+ console.print("Total Crédito:", total_credito)
405
405
 
406
406
  if diferenca > "0,00":
407
407
  clicou = True
@@ -433,19 +433,16 @@ async def integracao_contabil_generica(
433
433
 
434
434
  await worker_sleep(5)
435
435
 
436
- assets_int_cont = "assets\\integracao_contabil\\"
436
+ # --- AJUSTE: retorno de SUCESSO quando detectar integracao_sucesso.png
437
+ assets_int_cont = os.path.join(ASSETS_PATH_BASE, "integracao_contabil")
437
438
  err_dict = {
438
- assets_int_cont
439
- + "erro_duplicidade.png": "Integração não realizada. Erro de Duplicidade localizado enquanto finalizava a integração, contate o suporte do Emsys.",
440
- assets_int_cont
441
- + "conta_indefinida_error.png": "Integração não realizada. Conta contábil indefinida no sistema.",
442
- assets_int_cont
443
- + "lote_sem_complemento_error.png": "Integração não realizada. Lote encontrado sem complemento obrigatório.",
444
- assets_int_cont
445
- + "diferenca_cred_deb.png": "Integração não realizada. Existem diferença em lotes consistentes, por favor verificar.",
446
- assets_int_cont
447
- + "integracao_sucesso.png": "Integração Finalizada com Sucesso.",
439
+ os.path.join(assets_int_cont, "erro_duplicidade.png"): "Integração não realizada. Erro de Duplicidade localizado enquanto finalizava a integração, contate o suporte do Emsys.",
440
+ os.path.join(assets_int_cont, "conta_indefinida_error.png"): "Integração não realizada. Conta contábil indefinida no sistema.",
441
+ os.path.join(assets_int_cont, "lote_sem_complemento_error.png"): "Integração não realizada. Lote encontrado sem complemento obrigatório.",
442
+ os.path.join(assets_int_cont, "diferenca_cred_deb.png"): "Integração não realizada. Existem diferença em lotes consistentes, por favor verificar.",
443
+ os.path.join(assets_int_cont, "integracao_sucesso.png"): "Integração Finalizada com Sucesso.",
448
444
  }
445
+
449
446
  # Aguardar finalizar
450
447
  while True:
451
448
  try:
@@ -454,23 +451,56 @@ async def integracao_contabil_generica(
454
451
  )
455
452
  msg_box = app["TMsgBox"]
456
453
 
457
- # Antes de qualquer coisa, verifica por imagem de erro
454
+ # Verifica por imagens de SUCESSO/ERRO
458
455
  for img_path, mensagem in err_dict.items():
459
456
  try:
460
- err = pyautogui.locateOnScreen(img_path, confidence=0.90)
461
- except:
462
- continue
457
+ found = pyautogui.locateOnScreen(img_path, confidence=0.90)
458
+ except Exception:
459
+ found = None
463
460
 
464
- if err:
465
- if "integracao_sucesso.png" in img_path:
461
+ if found:
462
+ # Caso SUCESSO
463
+ if img_path.endswith("integracao_sucesso.png"):
466
464
  console.print(f"[green]{mensagem}[/green]")
467
- msg_box.child_window(
468
- class_name="TBitBtn", found_index=0
469
- ).click_input()
470
- break
471
-
465
+ # fecha a TMsgBox se estiver aberta (best-effort)
466
+ try:
467
+ msg_box.child_window(class_name="TBitBtn", found_index=0).click_input()
468
+ except:
469
+ pass
470
+
471
+ # Se integrou com 'Lotes Consistentes' marcados, é FALHA
472
+ if lotesMarcados:
473
+ try:
474
+ # busca novamente o checkbox para garantir escopo
475
+ cb = dlg.child_window(title="Lotes Consistentes", class_name="TCheckBox")
476
+ if cb.exists() and cb.is_enabled() and cb.is_visible():
477
+ cb.click_input()
478
+ print("Checkbox 'Lotes Consistentes' desmarcado com sucesso.")
479
+ except Exception as e:
480
+ print(f"Não foi possível desmarcar checkbox: {e}")
481
+
482
+ time.sleep(5)
483
+ return RpaRetornoProcessoDTO(
484
+ sucesso=False,
485
+ retorno="Integração realizada, porém, existem LOTES INCONSISTENTES.",
486
+ status=RpaHistoricoStatusEnum.Falha,
487
+ tags=[RpaTagDTO(descricao=RpaTagEnum.Negocio)],
488
+ )
489
+
490
+ # Se não estava marcado, aí sim é sucesso
491
+ return RpaRetornoProcessoDTO(
492
+ sucesso=True,
493
+ retorno=mensagem,
494
+ status=RpaHistoricoStatusEnum.Sucesso,
495
+ tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)],
496
+ )
497
+
498
+ # Demais imagens tratadas como ERRO
472
499
  console.print(f"[red]Erro encontrado:[/red] {mensagem}")
473
-
500
+ try:
501
+ msg_box.child_window(class_name="TBitBtn", found_index=0).click_input()
502
+ except:
503
+ pass
474
504
  return RpaRetornoProcessoDTO(
475
505
  sucesso=False,
476
506
  retorno=mensagem,
@@ -480,19 +510,16 @@ async def integracao_contabil_generica(
480
510
 
481
511
  await worker_sleep(1)
482
512
 
513
+ # Se nenhuma imagem foi encontrada, tenta só fechar a TMsgBox (se existir) e sai
483
514
  try:
484
515
  app = Application(backend="win32").connect(
485
516
  class_name="TMsgBox", found_index=0
486
517
  )
487
518
  main_window = app["TMsgBox"]
488
- main_window.child_window(
489
- class_name="TBitBtn", found_index=0
490
- ).click_input()
519
+ main_window.child_window(class_name="TBitBtn", found_index=0).click_input()
491
520
  break
492
521
  except ElementNotFoundError:
493
- console.print(
494
- "[yellow]Janela TMsgBox ainda não visível.[/yellow]"
495
- )
522
+ console.print("[yellow]Janela TMsgBox ainda não visível.[/yellow]")
496
523
  break
497
524
 
498
525
  except ElementNotFoundError:
@@ -503,6 +530,23 @@ async def integracao_contabil_generica(
503
530
 
504
531
  await worker_sleep(1)
505
532
 
533
+ try:
534
+ app = Application(backend="win32").connect(
535
+ class_name="TMsgBox", found_index=0
536
+ )
537
+ main_window = app["TMsgBox"]
538
+ main_window.child_window(class_name="TBitBtn", found_index=0).click_input()
539
+ time.sleep(5)
540
+ break
541
+ except ElementNotFoundError:
542
+ console.print("[yellow]Janela TMsgBox ainda não visível.[/yellow]")
543
+
544
+ except Exception as e:
545
+ print(f"Erro inesperado ao verificar janela de confirmação: {e}")
546
+ break
547
+
548
+ await worker_sleep(1)
549
+
506
550
  try:
507
551
  app = Application(backend="win32").connect(
508
552
  class_name="TMsgBox", found_index=0
@@ -516,28 +560,7 @@ async def integracao_contabil_generica(
516
560
  except ElementNotFoundError:
517
561
  console.print("[yellow]Janela TMsgBox ainda não visível.[/yellow]")
518
562
 
519
- if lotesMarcados:
520
- if (
521
- checkbox.exists()
522
- and checkbox.is_enabled()
523
- and checkbox.is_visible()
524
- ):
525
- checkbox.click_input()
526
- print("Checkbox 'Lotes Consistentes' desmarcado com sucesso.")
527
- time.sleep(5)
528
- return RpaRetornoProcessoDTO(
529
- sucesso=False,
530
- retorno=f"Integração realizada, porém, existem LOTES INCONSISTENTES.",
531
- status=RpaHistoricoStatusEnum.Falha,
532
- tags=[RpaTagDTO(descricao=RpaTagEnum.Negocio)],
533
- )
534
- else:
535
- return RpaRetornoProcessoDTO(
536
- sucesso=True,
537
- retorno=f"Sucesso ao executar processo de integracao contabil",
538
- status=RpaHistoricoStatusEnum.Sucesso,
539
- tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)],
540
- )
563
+
541
564
  except Exception as erro:
542
565
  return RpaRetornoProcessoDTO(
543
566
  sucesso=False,
@@ -553,3 +576,4 @@ async def integracao_contabil_generica(
553
576
  status=RpaHistoricoStatusEnum.Falha,
554
577
  tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)],
555
578
  )
579
+