worker-automate-hub 0.5.671__tar.gz → 0.5.672__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.

Potentially problematic release.


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

Files changed (103) hide show
  1. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/PKG-INFO +1 -1
  2. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/pyproject.toml +1 -1
  3. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/tasks/jobs/devolucao_prazo_a_faturar.py +53 -33
  4. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/tasks/jobs/entrada_de_notas_33.py +35 -5
  5. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/utils/util.py +30 -34
  6. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/README.md +0 -0
  7. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/__init__.py +0 -0
  8. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/api/__init__.py +0 -0
  9. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/api/ahead_service.py +0 -0
  10. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/api/client.py +0 -0
  11. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/api/datalake_service.py +0 -0
  12. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/api/helpers/__init__.py +0 -0
  13. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/api/helpers/api_helpers.py +0 -0
  14. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/api/rdp_service.py +0 -0
  15. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/api/rpa_fila_service.py +0 -0
  16. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/api/rpa_historico_service.py +0 -0
  17. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/api/webhook_service.py +0 -0
  18. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/cli.py +0 -0
  19. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/config/__init__.py +0 -0
  20. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/config/settings.py +0 -0
  21. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/config.py +0 -0
  22. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/core/so_manipulation.py +0 -0
  23. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/decorators/__init__.py +0 -0
  24. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/decorators/deprecation.py +0 -0
  25. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/decorators/rate_limit.py +0 -0
  26. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/decorators/repeat.py +0 -0
  27. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/decorators/retry.py +0 -0
  28. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/decorators/singleton.py +0 -0
  29. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/decorators/timeit.py +0 -0
  30. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/models/__init__.py +0 -0
  31. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/models/dao/__init__.py +0 -0
  32. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/models/dao/rpa_configuracao.py +0 -0
  33. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/models/dao/rpa_fila.py +0 -0
  34. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/models/dao/rpa_historico.py +0 -0
  35. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/models/dao/rpa_processo.py +0 -0
  36. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/models/dao/rpa_robo.py +0 -0
  37. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/models/dto/__init__.py +0 -0
  38. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/models/dto/rpa_historico_request_dto.py +0 -0
  39. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/models/dto/rpa_processo_entrada_dto.py +0 -0
  40. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/models/dto/rpa_processo_rdp_dto.py +0 -0
  41. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/models/dto/rpa_sap_dto.py +0 -0
  42. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/models/dto/rpa_sistema_dto.py +0 -0
  43. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/tasks/__init__.py +0 -0
  44. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/tasks/jobs/__init__.py +0 -0
  45. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/tasks/jobs/abertura_livros_fiscais.py +0 -0
  46. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/tasks/jobs/coleta_dje_process.py +0 -0
  47. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/tasks/jobs/conexao_rdp.py +0 -0
  48. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/tasks/jobs/cte_manual.py +0 -0
  49. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/tasks/jobs/cte_xml.py +0 -0
  50. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/tasks/jobs/descartes.py +0 -0
  51. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/tasks/jobs/devolucao_ctf.py +0 -0
  52. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/tasks/jobs/devolucao_ctf_35.py +0 -0
  53. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/tasks/jobs/ecac_estadual_go.py +0 -0
  54. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/tasks/jobs/ecac_estadual_main.py +0 -0
  55. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/tasks/jobs/ecac_estadual_mt.py +0 -0
  56. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/tasks/jobs/ecac_estadual_sc.py +0 -0
  57. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/tasks/jobs/ecac_estadual_sp.py +0 -0
  58. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/tasks/jobs/ecac_federal.py +0 -0
  59. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/tasks/jobs/entrada_cte_1353.py +0 -0
  60. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/tasks/jobs/entrada_cte_333.py +0 -0
  61. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/tasks/jobs/entrada_de_notas_15.py +0 -0
  62. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/tasks/jobs/entrada_de_notas_16.py +0 -0
  63. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/tasks/jobs/entrada_de_notas_207.py +0 -0
  64. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/tasks/jobs/entrada_de_notas_32.py +0 -0
  65. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/tasks/jobs/entrada_de_notas_34.py +0 -0
  66. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/tasks/jobs/entrada_de_notas_36.py +0 -0
  67. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/tasks/jobs/entrada_de_notas_39.py +0 -0
  68. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/tasks/jobs/entrada_de_notas_500.py +0 -0
  69. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/tasks/jobs/entrada_de_notas_503.py +0 -0
  70. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/tasks/jobs/entrada_de_notas_505.py +0 -0
  71. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/tasks/jobs/entrada_de_notas_7139.py +0 -0
  72. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/tasks/jobs/entrada_de_notas_9.py +0 -0
  73. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/tasks/jobs/entrada_de_notas_9000.py +0 -0
  74. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/tasks/jobs/exemplo_processo.py +0 -0
  75. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/tasks/jobs/extracao_fechamento_contabil.py +0 -0
  76. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/tasks/jobs/extracao_fechamento_emsys.py +0 -0
  77. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/tasks/jobs/fechar_conexao_rdp.py +0 -0
  78. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/tasks/jobs/fidc_exportacao_docs_portal_b2b.py +0 -0
  79. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/tasks/jobs/fidc_gerar_nosso_numero.py +0 -0
  80. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/tasks/jobs/fidc_remessa_cobranca_cnab240.py +0 -0
  81. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/tasks/jobs/fidc_retorno_cobranca.py +0 -0
  82. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/tasks/jobs/geracao_aprovacao_pedidos.py +0 -0
  83. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/tasks/jobs/geracao_aprovacao_pedidos_novo.py +0 -0
  84. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/tasks/jobs/integracao_contabil.py +0 -0
  85. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/tasks/jobs/integracao_contabil_generica.py +0 -0
  86. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/tasks/jobs/lancamento_pis_cofins.py +0 -0
  87. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/tasks/jobs/lancamento_rateio.py +0 -0
  88. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/tasks/jobs/login_emsys.py +0 -0
  89. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/tasks/jobs/login_emsys_versao_especifica.py +0 -0
  90. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/tasks/jobs/notas_faturamento_sap.py +0 -0
  91. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/tasks/jobs/playground.py +0 -0
  92. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/tasks/jobs/sped_fiscal.py +0 -0
  93. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/tasks/jobs/transferencias.py +0 -0
  94. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/tasks/task_definitions.py +0 -0
  95. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/tasks/task_executor.py +0 -0
  96. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/utils/__init__.py +0 -0
  97. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/utils/env.py +0 -0
  98. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/utils/get_creds_gworkspace.py +0 -0
  99. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/utils/logger.py +0 -0
  100. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/utils/toast.py +0 -0
  101. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/utils/updater.py +0 -0
  102. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/utils/utils_nfe_entrada.py +0 -0
  103. {worker_automate_hub-0.5.671 → worker_automate_hub-0.5.672}/worker_automate_hub/worker.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: worker-automate-hub
3
- Version: 0.5.671
3
+ Version: 0.5.672
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.671"
3
+ version = "0.5.672"
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"
@@ -318,6 +318,7 @@ async def devolucao_prazo_a_faturar(task: RpaProcessoEntradaDTO) -> RpaRetornoPr
318
318
  main_window.set_focus()
319
319
  modelo_select = main_window.child_window(class_name="TDBIComboBox", found_index=1)
320
320
  modelo_select.click()
321
+ await worker_sleep(3)
321
322
  try:
322
323
  # Verifica mensagem danfe 077
323
324
  imagem_alvo = "assets\\entrada_notas\\danfe077.png"
@@ -375,61 +376,79 @@ async def devolucao_prazo_a_faturar(task: RpaProcessoEntradaDTO) -> RpaRetornoPr
375
376
  else:
376
377
  field_fornecedor.set_edit_text(cod_empresa)
377
378
  field_fornecedor.click()
378
- pyautogui.press("tab")
379
+ pyautogui.press("enter")
379
380
  await worker_sleep(2)
380
381
 
381
382
 
382
383
  itens = nota.get('itens', [])
383
384
  itens_arla = [item for item in itens if item['descricao'].lower() == 'arla']
384
385
 
385
- #SELECIONAO A NOP
386
+ # SELECIONA A NOP
386
387
  console.print("SELECIONANDO A NOP...\n")
387
388
  select_box_nop_select = main_window.child_window(class_name="TDBIComboBox", found_index=0)
388
389
  select_box_nop_select.click()
389
390
 
391
+ await worker_sleep(3)
392
+
390
393
  itens_to_select = select_box_nop_select.texts()
391
394
  nop_to_be_select = ''
392
395
 
396
+ def normaliza(texto):
397
+ return texto.lower().replace(" ", "").strip()
398
+
399
+ # Função para buscar a NOP com sufixo prioritariamente
400
+ def buscar_nop(itens, codigo, sufixo_normalizado=None):
401
+ for item in itens:
402
+ if codigo in item:
403
+ item_normalizado = normaliza(item)
404
+ if sufixo_normalizado and sufixo_normalizado in item_normalizado:
405
+ return item # prioriza item com sufixo
406
+ for item in itens:
407
+ if codigo in item:
408
+ return item # fallback para item com mesmo código
409
+ return ''
410
+
411
+ # Lógica de seleção da NOP
393
412
  if len(itens_arla) == len(itens):
394
- for item in itens_to_select:
395
- if ('1202' in item and ('s/ est' in item.lower() or 's/est' in item.lower()) and ('c/ fin' in item.lower() or 'c/fin' in item.lower())):
396
- nop_to_be_select = item
397
- break
398
- elif '2202' in item and (('s/ est' in item.lower() or 's/est' in item.lower()) and ('c/ fin' in item.lower() or 'c/fin' in item.lower())):
399
- nop_to_be_select = item
400
- break
401
- else:
402
- for item in itens_to_select:
403
- if uf_posto:
404
- if uf_posto != uf_cliente:
405
- if '2662' in item and (('c/fi' in item.lower() or 'c /fi' in item.lower())):
406
- nop_to_be_select = item
407
- break
408
- else:
409
- if '1662' in item and (('c/fi' in item.lower() or 'c /fi' in item.lower())):
410
- nop_to_be_select = item
411
- break
412
- else:
413
- if '1662' in item and (('c/fi' in item.lower() or 'c /fi' in item.lower())):
414
- nop_to_be_select = item
415
- break
416
-
413
+ nop_to_be_select = buscar_nop(itens_to_select, '1202', 's/estc/fin')
414
+ if not nop_to_be_select:
415
+ nop_to_be_select = buscar_nop(itens_to_select, '2202', 's/estc/fin')
416
+ else:
417
+ if uf_posto and uf_posto != uf_cliente:
418
+ nop_to_be_select = buscar_nop(itens_to_select, '2662', 'devcombc/fi')
419
+ else:
420
+ nop_to_be_select = buscar_nop(itens_to_select, '1662', 'devcombc/fi')
417
421
 
422
+ # Se encontrou, faz a seleção precisa no combobox
418
423
  if nop_to_be_select != '':
419
424
  console.print(f"Nop a ser considerada: {nop_to_be_select}...\n")
420
425
  await worker_sleep(1)
421
426
  try:
422
- set_combobox("||List", nop_to_be_select)
423
- except:
427
+ # Clica para ativar o combobox
424
428
  select_box_nop_select.click()
425
429
  await worker_sleep(1)
426
- select_box_nop_select.click()
430
+
431
+ # Digita apenas o código inicial (ex: "1662") para posicionar
432
+ codigo_nop = nop_to_be_select.split('-')[0].strip()
433
+ select_box_nop_select.type_keys(codigo_nop)
427
434
  await worker_sleep(1)
428
- select_box_nop_select.select(nop_to_be_select)
429
- #set_combobox("||List", nop_to_be_select)
430
435
 
436
+ # Navega pela lista até encontrar o texto exato
437
+ for _ in range(10): # tenta até 10 movimentos para baixo
438
+ current_text = select_box_nop_select.window_text()
439
+ if nop_to_be_select.strip().lower() in current_text.strip().lower():
440
+ select_box_nop_select.type_keys('{ENTER}')
441
+ break
442
+ else:
443
+ select_box_nop_select.type_keys('{DOWN}')
444
+ await worker_sleep(0.5)
445
+
446
+ await worker_sleep(1)
447
+ select_box_nop_select.type_keys('{TAB}')
448
+ except Exception as e:
449
+ console.print(f"[red]Erro ao selecionar a NOP: {e}[/red]")
431
450
  else:
432
- retorno = f"Não foi possivel encontrar a nop \nEtapas Executadas:\n{steps}"
451
+ retorno = f"Não foi possível encontrar a NOP\nEtapas Executadas:\n{steps}"
433
452
  return RpaRetornoProcessoDTO(
434
453
  sucesso=False,
435
454
  retorno=retorno,
@@ -437,6 +456,7 @@ async def devolucao_prazo_a_faturar(task: RpaProcessoEntradaDTO) -> RpaRetornoPr
437
456
  tags=[RpaTagDTO(descricao=RpaTagEnum.Negocio)]
438
457
  )
439
458
 
459
+
440
460
  await worker_sleep(7)
441
461
  try:
442
462
  pesquisar_icon = pyautogui.locateOnScreen(ASSETS_PATH + "\\emsys\\selecionar_venda.png", confidence=0.8)
@@ -1020,7 +1040,7 @@ async def devolucao_prazo_a_faturar(task: RpaProcessoEntradaDTO) -> RpaRetornoPr
1020
1040
  #STEP 3
1021
1041
  type_text_into_field("Gerenciador de Notas Fiscais", app["TFrmMenuPrincipal"]["Edit"], True, "50")
1022
1042
  pyautogui.press("enter")
1023
- await worker_sleep(2)
1043
+ await worker_sleep(5)
1024
1044
  pyautogui.press("enter")
1025
1045
  await worker_sleep(5)
1026
1046
  console.print(f"\nPesquisa: 'Gerenciador de Notas Fiscais' realizada com sucesso 1ª Etapa",style="bold green")
@@ -1198,7 +1218,7 @@ async def devolucao_prazo_a_faturar(task: RpaProcessoEntradaDTO) -> RpaRetornoPr
1198
1218
 
1199
1219
  type_text_into_field("Gerenciador de Notas Fiscais", app["TFrmMenuPrincipal"]["Edit"], True, "50")
1200
1220
  pyautogui.press("enter")
1201
- await worker_sleep(2)
1221
+ await worker_sleep(5)
1202
1222
  pyautogui.press("enter")
1203
1223
  await worker_sleep(5)
1204
1224
  console.print(f"\nPesquisa: 'Gerenciador de Notas Fiscais' realizada com sucesso 2ª Etapa",style="bold green")
@@ -17,6 +17,8 @@ from pywinauto.keyboard import send_keys
17
17
  from pywinauto.timings import wait_until
18
18
  from pywinauto_recorder.player import set_combobox
19
19
  from rich.console import Console
20
+ import sys
21
+ sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "..", "..")))
20
22
  from worker_automate_hub.api.ahead_service import save_xml_to_downloads
21
23
  from worker_automate_hub.api.client import (
22
24
  get_config_by_name,
@@ -325,7 +327,8 @@ async def entrada_de_notas_33(task: RpaProcessoEntradaDTO) -> RpaRetornoProcesso
325
327
  await worker_sleep(5)
326
328
 
327
329
  # Aguarda a tela de aguarde
328
- imagem_alvo = "assets\\entrada_notas\\aguarde.png"
330
+ # imagem_alvo = "assets\\entrada_notas\\aguarde.png"
331
+ imagem_alvo =r"C:\Users\automatehub\Documents\GitHub\worker-automate-hub\worker_automate_hub\assets\entrada_notas\aguarde.png"
329
332
  timeout = 300 # 5 minutos
330
333
  start_time = time.time()
331
334
 
@@ -362,7 +365,7 @@ async def entrada_de_notas_33(task: RpaProcessoEntradaDTO) -> RpaRetornoProcesso
362
365
  try:
363
366
  # Verifica erro ncm nao encontrado
364
367
  imagem_alvo = "assets\\entrada_notas\\nao_encontrado_ncm.png"
365
-
368
+ imagem_alvo = r"C:\Users\automatehub\Documents\GitHub\worker-automate-hub\worker_automate_hub\assets\entrada_notas\nao_encontrado_ncm.png"
366
369
  localizacao = pyautogui.locateOnScreen(imagem_alvo, confidence=0.9)
367
370
 
368
371
  if localizacao:
@@ -380,7 +383,8 @@ async def entrada_de_notas_33(task: RpaProcessoEntradaDTO) -> RpaRetornoProcesso
380
383
  )
381
384
 
382
385
  # Aguarda a tela de aguarde
383
- imagem_alvo = "assets\\entrada_notas\\aguarde.png"
386
+ # imagem_alvo = "assets\\entrada_notas\\aguarde.png"
387
+ imagem_alvo =r"C:\Users\automatehub\Documents\GitHub\worker-automate-hub\worker_automate_hub\assets\entrada_notas\aguarde.png"
384
388
  timeout = 300 # 5 minutos
385
389
  start_time = time.time()
386
390
 
@@ -693,10 +697,14 @@ async def entrada_de_notas_33(task: RpaProcessoEntradaDTO) -> RpaRetornoProcesso
693
697
  await worker_sleep(3)
694
698
  console.print(f"Incluindo registro...\n")
695
699
  try:
696
- ASSETS_PATH = "assets"
700
+ # ASSETS_PATH = "assets"
701
+ ASSETS_PATH = r"C:\Users\automatehub\Documents\GitHub\worker-automate-hub\worker_automate_hub\assets\entrada_notas\IncluirRegistro.png"
697
702
  inserir_registro = pyautogui.locateOnScreen(
698
- ASSETS_PATH + "\\entrada_notas\\IncluirRegistro.png", confidence=0.8
703
+ ASSETS_PATH, confidence=0.8
699
704
  )
705
+ # inserir_registro = pyautogui.locateOnScreen(
706
+ # ASSETS_PATH + "\\entrada_notas\\IncluirRegistro.png", confidence=0.8
707
+ # )
700
708
  pyautogui.click(inserir_registro)
701
709
  except Exception as e:
702
710
  console.print(
@@ -886,3 +894,25 @@ async def entrada_de_notas_33(task: RpaProcessoEntradaDTO) -> RpaRetornoProcesso
886
894
  finally:
887
895
  # Deleta o xml
888
896
  await delete_xml(nota.get("nfe"))
897
+
898
+ if __name__ == "__main__":
899
+
900
+ task = RpaProcessoEntradaDTO(
901
+ datEntradaFila= datetime.now(),
902
+ configEntrada= {"nfe":"43250703746938001387550040005122881902295895","cfop":"5102","itens":[{"qtd":"2.00","ocst":"000","ncmsh":"39232990","valorIpi":"0.00","valorIcms":"3.63","valorTotal":"21.34","aliquotaIpi":"0.00","cfopProduto":"5102","aliquotaIcms":"17.00","bCalculoIcms":"21.34","codigoProduto":"030338","unidadeMedida":"UN","valorUnitario":"10.67","descricaoProduto":"Saco Plastico para Moedas Transparente 0,10m PCT 100UN"},{"qtd":"1.00","ocst":"000","ncmsh":"48211000","valorIpi":"0.00","valorIcms":"5.39","valorTotal":"31.72","aliquotaIpi":"0.00","cfopProduto":"5102","aliquotaIcms":"17.00","bCalculoIcms":"31.72","codigoProduto":"044867","unidadeMedida":"ROL","valorUnitario":"31.72","descricaoProduto":"Etiqueta Adesiva 100X50mm Amarelo 101C RL 200UN"},{"qtd":"1.00","ocst":"000","ncmsh":"49111090","valorIpi":"0.00","valorIcms":"14.43","valorTotal":"84.90","aliquotaIpi":"0.00","cfopProduto":"5102","aliquotaIcms":"17.00","bCalculoIcms":"84.90","codigoProduto":"041749","unidadeMedida":"PAC","valorUnitario":"84.90","descricaoProduto":"Bloco de Abastecimento 1 via 8 x 6,5cm PCT 50BL de 100fls"},{"qtd":"12.00","ocst":"000","ncmsh":"96081000","valorIpi":"0.00","valorIcms":"1.24","valorTotal":"7.32","aliquotaIpi":"0.00","cfopProduto":"5102","aliquotaIcms":"17.00","bCalculoIcms":"7.32","codigoProduto":"029618","unidadeMedida":"UN","valorUnitario":"0.61","descricaoProduto":"Caneta Esferografica Compactor Economic 1.0mm Azul"},{"qtd":"20.00","ocst":"000","ncmsh":"96081000","valorIpi":"0.00","valorIcms":"2.07","valorTotal":"12.20","aliquotaIpi":"0.00","cfopProduto":"5102","aliquotaIcms":"17.00","bCalculoIcms":"12.20","codigoProduto":"029618","unidadeMedida":"UN","valorUnitario":"0.61","descricaoProduto":"Caneta Esferografica Compactor Economic 1.0mm Azul"},{"qtd":"1.00","ocst":"100","ncmsh":"39191010","valorIpi":"0.83","valorIcms":"1.08","valorTotal":"5.50","aliquotaIpi":"15.00","cfopProduto":"5102","aliquotaIcms":"17.00","bCalculoIcms":"6.33","codigoProduto":"050894","unidadeMedida":"UN","valorUnitario":"5.50","descricaoProduto":"Fita Adesiva Hot Melt Sooper PRO 45mmX45m Transparente"},{"qtd":"2.00","ocst":"000","ncmsh":"48119019","valorIpi":"6.78","valorIcms":"36.63","valorTotal":"208.66","aliquotaIpi":"3.25","cfopProduto":"5102","aliquotaIcms":"17.00","bCalculoIcms":"215.44","codigoProduto":"041690","unidadeMedida":"UN","valorUnitario":"104.33","descricaoProduto":"Bobina Termica Rede Sim 80mmx80m 44g CX 16UN"},{"qtd":"1.00","ocst":"020","ncmsh":"17019900","valorIpi":"0.00","valorIcms":"1.57","valorTotal":"22.41","aliquotaIpi":"0.00","cfopProduto":"5102","aliquotaIcms":"17.00","bCalculoIcms":"9.23","codigoProduto":"050962","unidadeMedida":"UN","valorUnitario":"22.41","descricaoProduto":"Acucar Refinado Alto Alegre Sache CX 400x5g"},{"qtd":"2.00","ocst":"000","ncmsh":"48232099","valorIpi":"0.00","valorIcms":"1.42","valorTotal":"8.38","aliquotaIpi":"0.00","cfopProduto":"5102","aliquotaIcms":"17.00","bCalculoIcms":"8.38","codigoProduto":"009014","unidadeMedida":"UN","valorUnitario":"4.19","descricaoProduto":"Filtro de Papel Melitta No103 30UN"},{"qtd":"1.00","ocst":"200","ncmsh":"40151900","valorIpi":"0.00","valorIcms":"7.72","valorTotal":"45.41","aliquotaIpi":"0.00","cfopProduto":"5102","aliquotaIcms":"17.00","bCalculoIcms":"45.41","codigoProduto":"020964","unidadeMedida":"CX","valorUnitario":"45.41","descricaoProduto":"Luva Latex Volk Cleanline Descartavel com Po G CX 100UN"},{"qtd":"2.00","ocst":"000","ncmsh":"68053090","valorIpi":"0.00","valorIcms":"0.33","valorTotal":"1.96","aliquotaIpi":"0.00","cfopProduto":"5102","aliquotaIcms":"17.00","bCalculoIcms":"1.96","codigoProduto":"050637","unidadeMedida":"UN","valorUnitario":"0.98","descricaoProduto":"Esponja Esfrelux Lava Loucas Anti Bacteria"},{"qtd":"2.00","ocst":"200","ncmsh":"62160000","valorIpi":"0.00","valorIcms":"1.53","valorTotal":"9.00","aliquotaIpi":"0.00","cfopProduto":"5102","aliquotaIcms":"17.00","bCalculoIcms":"9.00","codigoProduto":"025306","unidadeMedida":"PAR","valorUnitario":"4.50","descricaoProduto":"Luva Poliamida Volk Tatil PU Palma e Dedos Preta M"},{"qtd":"1.00","ocst":"000","ncmsh":"21039011","valorIpi":"0.00","valorIcms":"4.55","valorTotal":"26.78","aliquotaIpi":"0.00","cfopProduto":"5102","aliquotaIcms":"17.00","bCalculoIcms":"26.78","codigoProduto":"100011581","unidadeMedida":"CX","valorUnitario":"26.78","descricaoProduto":"Maionese Sache Junior 7g CX 160UN"},{"qtd":"1.00","ocst":"100","ncmsh":"39235000","valorIpi":"3.45","valorIcms":"12.33","valorTotal":"69.05","aliquotaIpi":"5.00","cfopProduto":"5102","aliquotaIcms":"17.00","bCalculoIcms":"72.50","codigoProduto":"053593","unidadeMedida":"CX","valorUnitario":"69.05","descricaoProduto":"Tampa Versaline PP Preta Copo de Papel PD 210ml CX 500UN"},{"qtd":"1.00","ocst":"000","ncmsh":"48211000","valorIpi":"0.00","valorIcms":"2.63","valorTotal":"15.46","aliquotaIpi":"0.00","cfopProduto":"5102","aliquotaIcms":"17.00","bCalculoIcms":"15.46","codigoProduto":"053356","unidadeMedida":"ROL","valorUnitario":"15.46","descricaoProduto":"Etiqueta Validade Rede Sim 40x24mm RL 1000UN"},{"qtd":"12.00","ocst":"000","ncmsh":"39241000","valorIpi":"0.00","valorIcms":"9.28","valorTotal":"54.60","aliquotaIpi":"0.00","cfopProduto":"5102","aliquotaIcms":"17.00","bCalculoIcms":"54.60","codigoProduto":"011523","unidadeMedida":"UN","valorUnitario":"4.55","descricaoProduto":"Copo Descartavel PS Branco 180ml PCT 100UN"},{"qtd":"1.00","ocst":"000","ncmsh":"21032010","valorIpi":"0.00","valorIcms":"4.53","valorTotal":"26.62","aliquotaIpi":"0.00","cfopProduto":"5102","aliquotaIcms":"17.00","bCalculoIcms":"26.62","codigoProduto":"053435","unidadeMedida":"UN","valorUnitario":"26.62","descricaoProduto":"Ketchup Sache Junior 7g CX 168UN"},{"qtd":"1.00","ocst":"000","ncmsh":"39173229","valorIpi":"0.00","valorIcms":"0.83","valorTotal":"4.91","aliquotaIpi":"0.00","cfopProduto":"5102","aliquotaIcms":"17.00","bCalculoIcms":"4.91","codigoProduto":"041209","unidadeMedida":"UN","valorUnitario":"4.91","descricaoProduto":"Canudo Oxi Biodegrad Strawplast Embalado Indiv 100UN"},{"qtd":"3.00","ocst":"000","ncmsh":"38089919","valorIpi":"0.00","valorIcms":"3.48","valorTotal":"20.49","aliquotaIpi":"0.00","cfopProduto":"5102","aliquotaIcms":"17.00","bCalculoIcms":"20.49","codigoProduto":"054500","unidadeMedida":"UN","valorUnitario":"6.83","descricaoProduto":"Alcool Liquido 70o Super Vale 1L"},{"qtd":"2.00","ocst":"000","ncmsh":"48182000","valorIpi":"0.00","valorIcms":"13.49","valorTotal":"79.38","aliquotaIpi":"0.00","cfopProduto":"5102","aliquotaIcms":"17.00","bCalculoIcms":"79.38","codigoProduto":"100010494","unidadeMedida":"CX","valorUnitario":"39.69","descricaoProduto":"Papel Higienico Rolo 300m Softpaper Eco FS 17g CX 8UN"},{"qtd":"2.00","ocst":"000","ncmsh":"39232190","valorIpi":"0.00","valorIcms":"2.15","valorTotal":"12.64","aliquotaIpi":"0.00","cfopProduto":"5102","aliquotaIcms":"17.00","bCalculoIcms":"12.64","codigoProduto":"038796","unidadeMedida":"UN","valorUnitario":"6.32","descricaoProduto":"Saco para Lixo Basic Up Bag Azul 30L 50UN"},{"qtd":"2.00","ocst":"500","ncmsh":"48182000","valorIpi":"0.00","valorIcms":"29.07","valorTotal":"171.00","aliquotaIpi":"0.00","cfopProduto":"5102","aliquotaIcms":"17.00","bCalculoIcms":"171.00","codigoProduto":"020684","unidadeMedida":"CX","valorUnitario":"85.50","descricaoProduto":"Papel Toalha Bobina 200m Softpaper Basic FS 24g CX 6UN"},{"qtd":"2.00","ocst":"020","ncmsh":"09012100","valorIpi":"0.00","valorIcms":"5.03","valorTotal":"71.78","aliquotaIpi":"0.00","cfopProduto":"5102","aliquotaIcms":"17.00","bCalculoIcms":"29.56","codigoProduto":"047037","unidadeMedida":"UN","valorUnitario":"35.89","descricaoProduto":"Cafe em Po 1707 Tradicional Vacuo 500g"},{"qtd":"2.00","ocst":"100","ncmsh":"48236900","valorIpi":"37.59","valorIcms":"71.93","valorTotal":"385.54","aliquotaIpi":"9.75","cfopProduto":"5102","aliquotaIcms":"17.00","bCalculoIcms":"423.13","codigoProduto":"053592","unidadeMedida":"CX","valorUnitario":"192.77","descricaoProduto":"Copo Papel SIM PD 210ml FSCMisto70% CU-COC-855709 CX500UN"}],"natureza":"33","alocacoes":[],"valorNota":"1445.70","nomeFilial":"PF Praça Itália\t","numeroNota":"512288","dataEmissao":"14/07/2025","observacoes":"Vcto: 06/10/2025","existeDespesa":"Não","cnpjFornecedor":"03746938001387","dataVencimento":"06/10/2025","nomeFornecedor":"BRS SUPRIMENTOS CORPORATIVOS S/A","recebimentoFisico":"17/07/2025 14:52","filialEmpresaOrigem":"109"},
903
+ uuidProcesso='def194c2-ffa0-4b9e-b95c-920fb4ad4150',
904
+ nomProcesso='extracao_fechamento_emsys',
905
+ uuidFila="",
906
+ sistemas=[
907
+ {
908
+ "sistema": "EMSys",
909
+ "timeout": "1.0"
910
+ },
911
+ {
912
+ "sistema": "AutoSystem",
913
+ "timeout": "1.0"
914
+ }
915
+ ],
916
+ historico_id='2c4429c8-26ae-4ec6-b775-21583992e82f'
917
+ )
918
+ asyncio.run(entrada_de_notas_33(task))
@@ -4509,49 +4509,45 @@ async def cadastro_pre_venda_header(
4509
4509
 
4510
4510
  console.print("Navegando nos elementos...\n")
4511
4511
  panel_TPage = main_window.child_window(class_name="TPage", found_index=0)
4512
- panel_TGroup_Box = panel_TPage.child_window(
4513
- class_name="TGroupBox", found_index=0
4514
- )
4512
+ panel_TGroup_Box = panel_TPage.child_window(class_name="TGroupBox", found_index=0)
4515
4513
 
4516
4514
  console.print("Selecionando a condição de pagamento...\n")
4517
- condicao_select = panel_TGroup_Box.child_window(
4518
- class_name="TDBIComboBox", found_index=2
4519
- )
4515
+ condicao_select = panel_TGroup_Box.child_window(class_name="TDBIComboBox", found_index=2)
4520
4516
  condicao_select.click_input()
4521
- await worker_sleep(3)
4522
- if "vista" in cod_pagamento.lower():
4523
- try:
4524
- # Verifica mensagem sem lote pra integrar
4525
- imagem_alvo ="assets\\entrada_notas\\a_vista.png" #ALTERAR CAMINHO PARA ASSETS
4526
-
4527
- localizacao = pyautogui.locateOnScreen(imagem_alvo, confidence=0.9)
4517
+ await worker_sleep(2)
4528
4518
 
4529
- if localizacao:
4530
- centro = pyautogui.center(localizacao)
4531
- await worker_sleep(1)
4532
- pyautogui.click(centro)
4519
+ condicao_desejada = ""
4533
4520
 
4534
- except ImageNotFoundException:
4535
- console.print(
4536
- "Imagem não encontrada (exceção capturada). Tentando clicar no OK."
4537
- )
4538
-
4521
+ if "vista" in cod_pagamento.lower():
4522
+ condicao_desejada = "A VISTA"
4539
4523
  elif "21 dias" in cod_pagamento.lower():
4524
+ condicao_desejada = "21 DIAS"
4525
+
4526
+ if condicao_desejada:
4527
+ # Opcional: capturar os itens disponíveis, para debug
4540
4528
  try:
4541
- # Verifica mensagem sem lote pra integrar
4542
- imagem_alvo = "assets\\entrada_notas\\21_dias.png"
4543
- # imagem_alvo = r"C:\Users\automatehub\Documents\GitHub\worker-automate-hub\worker_automate_hub\assets\entrada_notas\21_dias.png"
4544
- localizacao = pyautogui.locateOnScreen(imagem_alvo, confidence=0.9)
4529
+ itens_disponiveis = condicao_select.texts()
4530
+ console.print(f"Opções disponíveis: {itens_disponiveis}")
4531
+ except:
4532
+ itens_disponiveis = []
4545
4533
 
4546
- if localizacao:
4547
- centro = pyautogui.center(localizacao)
4548
- await worker_sleep(1)
4549
- pyautogui.click(centro)
4534
+ # Digita parte inicial para ajudar no filtro (por exemplo "21" ou "A")
4535
+ condicao_select.type_keys(condicao_desejada[:2], with_spaces=True)
4536
+ await worker_sleep(1)
4537
+
4538
+ # Percorre até encontrar o valor exato
4539
+ for _ in range(10):
4540
+ texto_atual = condicao_select.window_text()
4541
+ if condicao_desejada.lower() in texto_atual.lower():
4542
+ condicao_select.type_keys("{ENTER}")
4543
+ break
4544
+ else:
4545
+ condicao_select.type_keys("{DOWN}")
4546
+ await worker_sleep(0.5)
4547
+
4548
+ # Confirma e sai do campo
4549
+ condicao_select.type_keys("{TAB}")
4550
4550
 
4551
- except ImageNotFoundException:
4552
- console.print(
4553
- "Imagem não encontrada (exceção capturada). Tentando clicar no OK."
4554
- )
4555
4551
  await worker_sleep(2)
4556
4552
 
4557
4553
  console.print("Inserindo codigo do cliente...\n")