worker-automate-hub 0.4.337__py3-none-any.whl → 0.4.339__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.
@@ -103,22 +103,27 @@ async def descartes(task: RpaProcessoEntradaDTO) -> RpaRetornoProcessoDTO:
103
103
  await worker_sleep(7)
104
104
 
105
105
  # Preenche data de validade
106
- console.print("Preenchendo a data de validade...\n")
107
- screenshot_path = take_screenshot()
108
- target_pos = (
109
- 961,
110
- 331,
111
- ) # find_target_position(screenshot_path, "Validade", 10, 0, 15)
112
- if target_pos == None:
113
- return RpaRetornoProcessoDTO(
114
- sucesso=False,
115
- retorno="Não foi possivel encontrar o campo de validade",
116
- status=RpaHistoricoStatusEnum.Falha,
117
- )
106
+ console.print("Preenchendo a data de validade...", style="bold green")
107
+
108
+ pre_venda = app["TFrmPreVenda"]
109
+ app = Application().connect(class_name="TFrmPreVenda")
110
+ validade_field = pre_venda.child_window(class_name="TDBIEditDate", found_index=0)
111
+ validade_field.set_text(f'{datetime.now().strftime("%d/%m/%Y")}')
112
+ # screenshot_path = take_screenshot()
113
+ # target_pos = (
114
+ # 961,
115
+ # 321,
116
+ # ) # find_target_position(screenshot_path, "Validade", 10, 0, 15)
117
+ # if target_pos == None:
118
+ # return RpaRetornoProcessoDTO(
119
+ # sucesso=False,
120
+ # retorno="Não foi possivel encontrar o campo de validade",
121
+ # status=RpaHistoricoStatusEnum.Falha,
122
+ # )
118
123
 
119
- pyautogui.click(target_pos)
120
- pyautogui.write(f'{datetime.now().strftime("%d/%m/%Y")}', interval=0.1)
121
- pyautogui.press("tab")
124
+ # pyautogui.click(target_pos)
125
+ # pyautogui.write(f'{datetime.now().strftime("%d/%m/%Y")}', interval=0.1)
126
+ # pyautogui.press("tab")
122
127
  console.print(
123
128
  f"\nValidade Digitada: '{datetime.now().strftime("%d/%m/%Y")}'\n",
124
129
  style="bold green",
@@ -127,17 +132,20 @@ async def descartes(task: RpaProcessoEntradaDTO) -> RpaRetornoProcessoDTO:
127
132
 
128
133
  # Condição da Pré-Venda
129
134
  console.print("Selecionando a Condição da Pré-Venda\n")
130
- condicao_field = find_target_position(screenshot_path, "Condição", 10, 0, 15)
131
- if condicao_field == None:
132
- condicao_field = (1054, 330)
133
-
134
- pyautogui.click(condicao_field)
135
- await worker_sleep(1)
136
- pyautogui.write("A")
137
- await worker_sleep(1)
138
- pyautogui.press("down")
139
- pyautogui.press("enter")
140
- await worker_sleep(1)
135
+ condicao_field = pre_venda.child_window(class_name="TDBIComboBox", found_index=2)
136
+ condicao_field.select("A VISTA")
137
+
138
+ # condicao_field = find_target_position(screenshot_path, "Condição", 10, 0, 15)
139
+ # if condicao_field == None:
140
+ # condicao_field = (1054, 330)
141
+
142
+ # pyautogui.click(condicao_field)
143
+ # await worker_sleep(1)
144
+ # pyautogui.write("A")
145
+ # await worker_sleep(1)
146
+ # pyautogui.press("down")
147
+ # pyautogui.press("enter")
148
+ # await worker_sleep(1)
141
149
 
142
150
  # Preenche o campo do cliente com o número da filial
143
151
  console.print("Preenchendo o campo do cliente com o número da filial...\n")
@@ -65,21 +65,15 @@ async def sped_fiscal(task: RpaProcessoEntradaDTO) -> RpaRetornoProcessoDTO:
65
65
  )
66
66
 
67
67
  await worker_sleep(4)
68
- max_attempts = 15
69
- i = 0
70
- while i < max_attempts:
71
- try:
72
- app = Application(backend="win32").connect(class_name="TFrmLoginModulo")
73
- break
74
- except:
75
- i = i+1
76
-
77
- if i >= max_attempts:
68
+
69
+ try:
70
+ app = Application(backend="win32").connect(class_name="TFrmLoginModulo", timeout=50)
71
+ except:
78
72
  return RpaRetornoProcessoDTO(
79
73
  sucesso=False,
80
74
  retorno="Erro ao abrir o EMSys Fiscal, tela de login não encontrada",
81
75
  status=RpaHistoricoStatusEnum.Falha,
82
- )
76
+ )
83
77
 
84
78
 
85
79
  return_login = await login_emsys_fiscal(config.conConfiguracao, app, task)
@@ -107,22 +107,12 @@ async def transferencias(task: RpaProcessoEntradaDTO) -> RpaRetornoProcessoDTO:
107
107
  # return {"sucesso": False, "retorno": f"Não foi possivel encontrar o campo de validade"}
108
108
 
109
109
  # Condição da Pré-Venda
110
- screenshot_path = take_screenshot()
111
- condicao_field = find_target_position(screenshot_path, "Condição", 10, 0, 15)
112
- if condicao_field == None:
113
- return RpaRetornoProcessoDTO(
114
- sucesso=False,
115
- retorno="Não foi possivel encontrar o campo de condição",
116
- status=RpaHistoricoStatusEnum.Falha,
117
- )
118
-
119
- pyautogui.click(condicao_field)
120
- await worker_sleep(1)
121
- pyautogui.write("T")
122
- await worker_sleep(1)
123
- pyautogui.press("down")
124
- pyautogui.press("enter")
125
- await worker_sleep(1)
110
+ console.print("Selecionando a Condição da Pré-Venda\n")
111
+ app = Application().connect(class_name="TFrmPreVenda")
112
+ pre_venda = app["TFrmPreVenda"]
113
+ condicao_field = pre_venda.child_window(class_name="TDBIComboBox", found_index=2)
114
+ condicao_field.select("TRANSFERENCIA")
115
+
126
116
 
127
117
  # Preenche o campo do cliente com o número da filial
128
118
  cliente_field_position = await find_element_center(
@@ -313,125 +313,103 @@ async def login_emsys_fiscal(
313
313
 
314
314
  filial_cod = task.configEntrada.get("empresa")
315
315
 
316
- # Testa se existe alguma mensagem no Emsys
317
- console.print("Testando se existe alguma mensagem no Emsys...")
318
- window_message_login_emsys = await find_element_center(
319
- "assets/emsys/window_message_login_emsys.png", (560, 487, 1121, 746), 15
320
- )
316
+ try:
317
+ console.print("\nEMSys Fiscal inciado com sucesso...", style="bold green")
318
+ app = Application().connect(class_name="TFrmLoginModulo")
319
+ main_window = app["Login"]
321
320
 
322
- # Clica no "Não mostrar novamente" se existir
323
- console.print("Clicando no 'Não mostrar novamente' se existir...")
324
- if window_message_login_emsys:
325
- pyautogui.click(window_message_login_emsys.x, window_message_login_emsys.y)
326
- pyautogui.click(
327
- window_message_login_emsys.x + 383, window_message_login_emsys.y + 29
328
- )
329
- console.print("Mensagem de login encontrada e fechada.", style="bold green")
321
+ main_window.set_focus()
330
322
 
331
- try:
332
- console.print("\nEMSys Fiscal inciado com sucesso...", style="bold green")
333
- app = Application().connect(class_name="TFrmLoginModulo")
334
- main_window = app["Login"]
323
+ edit_password = main_window.child_window(class_name="TcxCustomInnerTextEdit", found_index=0)
324
+ password = config.get("pass")
325
+ edit_password.set_edit_text(password)
335
326
 
336
- edit_password = main_window.child_window(class_name="TcxTextEdit", found_index=0)
337
- password = config.get("pass")
338
- edit_password.set_edit_text(password)
327
+ await worker_sleep(1)
328
+ edit_user = main_window.child_window(class_name="TcxCustomInnerTextEdit", found_index=1)
329
+ user = config.get("user")
330
+ edit_user.set_edit_text(user)
339
331
 
340
- await worker_sleep(1)
341
- edit_user = main_window.child_window(class_name="TcxTextEdit", found_index="1")
342
- user = config.get("user")
343
- edit_user.set_edit_text(user)
332
+ await worker_sleep(2)
333
+ pyautogui.press("enter")
344
334
 
345
- await worker_sleep(2)
346
- pyautogui.press("enter")
335
+ # Seleciona a filial do emsys
336
+ console.print("Seleciona a filial do emsys...")
337
+ selecao_filial = await find_element_center(
338
+ "assets/emsys/selecao_filial.png", (480, 590, 820, 740), 15
339
+ )
347
340
 
348
- # Seleciona a filial do emsys
349
- console.print("Seleciona a filial do emsys...")
350
- selecao_filial = await find_element_center(
351
- "assets/emsys/selecao_filial.png", (480, 590, 820, 740), 15
341
+ console.print(f"Selecao filial via imagem: {selecao_filial}")
342
+ if selecao_filial == None:
343
+ screenshot_path = take_screenshot()
344
+ selecao_filial = find_target_position(
345
+ screenshot_path, "Grupo", 0, -50, attempts=15
346
+ )
347
+ console.print(
348
+ f"Selecao filial localização de texto: {selecao_filial}"
352
349
  )
353
-
354
- console.print(f"Selecao filial via imagem: {selecao_filial}")
355
350
  if selecao_filial == None:
356
- screenshot_path = take_screenshot()
357
- selecao_filial = find_target_position(
358
- screenshot_path, "Grupo", 0, -50, attempts=15
359
- )
360
- console.print(
361
- f"Selecao filial localização de texto: {selecao_filial}"
362
- )
363
- if selecao_filial == None:
364
- selecao_filial = (700, 639)
365
- console.print(f"Selecao filial posição fixa: {selecao_filial}")
351
+ selecao_filial = (700, 639)
352
+ console.print(f"Selecao filial posição fixa: {selecao_filial}")
366
353
 
367
- pyautogui.click(selecao_filial)
368
- console.print(
369
- f"Escrevendo [{filial_cod}] no campo filial..."
370
- )
371
-
372
- pyautogui.write(
373
- task.configEntrada.get("Código da Filial")
374
- )
354
+ pyautogui.click(selecao_filial)
355
+ console.print(
356
+ f"Escrevendo [{filial_cod}] no campo filial..."
357
+ )
375
358
 
376
- else:
377
- console.print(
378
- f"Escrevendo [{filial_cod}] no campo filial..."
379
- )
380
- type_text_into_field(
381
- task.configEntrada.get("Código da Filial"),
382
- app["Seleção de Empresas"]["Edit"],
383
- True,
384
- "50",
385
- )
386
- pyautogui.press("enter")
359
+ pyautogui.write(
360
+ task.configEntrada.get("Código da Filial")
361
+ )
387
362
 
388
- await worker_sleep(5)
363
+ else:
389
364
  console.print(
390
- f"Verificando a presença de Warning..."
365
+ f"Escrevendo [{filial_cod}] no campo filial..."
366
+ )
367
+ type_text_into_field(
368
+ task.configEntrada.get("Código da Filial"),
369
+ app["Seleção de Empresas"]["Edit"],
370
+ True,
371
+ "50",
372
+ )
373
+ pyautogui.press("enter")
374
+
375
+ await worker_sleep(5)
376
+ console.print(
377
+ f"Verificando a presença de Warning..."
378
+ )
379
+ warning_pop_up = await is_window_open("Warning")
380
+ if warning_pop_up["IsOpened"] == True:
381
+ return RpaRetornoProcessoDTO(
382
+ sucesso=False,
383
+ retorno=f"Erro: Não foi possível acessar a filial {filial_cod}, esta com o CNPJ bloqueado, por favor verificar",
384
+ status=RpaHistoricoStatusEnum.Falha,
391
385
  )
392
- warning_pop_up = await is_window_open("Warning")
393
- if warning_pop_up["IsOpened"] == True:
394
- return RpaRetornoProcessoDTO(
395
- sucesso=False,
396
- retorno=f"Erro: Não foi possível acessar a filial {filial_cod}, esta com o CNPJ bloqueado, por favor verificar",
397
- status=RpaHistoricoStatusEnum.Falha,
398
- )
399
-
400
- max_attempts = 10
401
- i = 0
402
- while i < max_attempts:
403
- console.print("Aguardando o EMSys Fiscal...\n")
404
- emsys_opened= await is_window_open_by_class("TFrmPrincipalFiscal", "TFrmPrincipalFiscal")
405
- if emsys_opened["IsOpened"] == True:
406
- console.print("Login realizado com sucesso.", style="bold green")
407
- return RpaRetornoProcessoDTO(
408
- sucesso=True,
409
- retorno="Logou com sucesso no emsys!",
410
- status=RpaHistoricoStatusEnum.Sucesso,
411
- )
412
- else:
413
- i = i+1
414
- await worker_sleep(1)
415
386
 
416
- if i >= max_attempts:
387
+ max_attempts = 10
388
+ i = 0
389
+ while i < max_attempts:
390
+ console.print("Aguardando o EMSys Fiscal...\n")
391
+ emsys_opened= await is_window_open_by_class("TFrmPrincipalFiscal", "TFrmPrincipalFiscal")
392
+ if emsys_opened["IsOpened"] == True:
393
+ console.print("Login realizado com sucesso.", style="bold green")
417
394
  return RpaRetornoProcessoDTO(
418
- sucesso=False,
419
- retorno="Erro ao abrir o EMSys Fiscal, tela de login não encontrada",
420
- status=RpaHistoricoStatusEnum.Falha,
395
+ sucesso=True,
396
+ retorno="Logou com sucesso no emsys!",
397
+ status=RpaHistoricoStatusEnum.Sucesso,
421
398
  )
422
-
423
-
424
- except Exception as e:
425
- log_msg = f"Erro ao realizar login no EMSys Fiscal. Resolução atual: {screen_width}x{screen_height}, erro: {e}..."
426
- console.print(log_msg, style="bold red")
399
+ else:
400
+ i = i+1
401
+ await worker_sleep(1)
402
+
403
+ if i >= max_attempts:
427
404
  return RpaRetornoProcessoDTO(
428
- sucesso=False, retorno=log_msg, status=RpaHistoricoStatusEnum.Falha
405
+ sucesso=False,
406
+ retorno="Erro ao abrir o EMSys Fiscal, tela de login não encontrada",
407
+ status=RpaHistoricoStatusEnum.Falha,
429
408
  )
430
409
 
431
- else:
432
- screen_width, screen_height = pyautogui.size()
433
- log_msg = f"A tela de login não foi encontrada. Resolução atual: {screen_width}x{screen_height}."
434
- logger.info(log_msg)
410
+
411
+ except Exception as e:
412
+ log_msg = f"Erro ao realizar login no EMSys Fiscal, erro: {e}..."
435
413
  console.print(log_msg, style="bold red")
436
414
  return RpaRetornoProcessoDTO(
437
415
  sucesso=False, retorno=log_msg, status=RpaHistoricoStatusEnum.Falha
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: worker-automate-hub
3
- Version: 0.4.337
3
+ Version: 0.4.339
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
@@ -30,7 +30,7 @@ worker_automate_hub/tasks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJW
30
30
  worker_automate_hub/tasks/jobs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
31
31
  worker_automate_hub/tasks/jobs/coleta_dje_process.py,sha256=rf4fW-FaHUl1MS7b03z4cwI3zHfNw8FWxvjvNY3Xn20,28773
32
32
  worker_automate_hub/tasks/jobs/conexao_rdp.py,sha256=0-oLMupu6zucZ9kVshLjG94i0W9v4pbcgYHvI6uipGc,10376
33
- worker_automate_hub/tasks/jobs/descartes.py,sha256=hwSPY0HWFyKMl0RvLKi8h24D2klhPkQcLHW-_GGDtng,39149
33
+ worker_automate_hub/tasks/jobs/descartes.py,sha256=cdzWujAZLUnc2y_h-ztGYdMz8EhR41V7D5xpTgQvc7w,39631
34
34
  worker_automate_hub/tasks/jobs/ecac_estadual_go.py,sha256=aPckQRlRozFS_OK3C9wNdMCmqO6AM4djwqY2uSSaPmo,20687
35
35
  worker_automate_hub/tasks/jobs/ecac_estadual_main.py,sha256=FFpAdtZLO4uelWZooCVpm4JePv_iDt5nwVKrk1ipZJQ,1599
36
36
  worker_automate_hub/tasks/jobs/ecac_estadual_mt.py,sha256=4fe5Ri--lNIlRBSusbjyYtFKwYpu1P4Y2EYgHgQsrqE,24985
@@ -54,8 +54,8 @@ worker_automate_hub/tasks/jobs/fidc_gerar_nosso_numero.py,sha256=Y-mKYcgX1kwcy_s
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=aWPiAVzG4UiOIfrjGzky-dcyU-ovJwbV2PHdJwAT40w,19699
58
- worker_automate_hub/tasks/jobs/transferencias.py,sha256=ldry9J7s_8S_IUEfH5zEWja-_BWe3kK7EI19TOALzv4,35868
57
+ worker_automate_hub/tasks/jobs/sped_fiscal.py,sha256=7HxF-bHoBXtLmJFAWoG556e9NlmjyvbkI6zdlYdynNg,19548
58
+ worker_automate_hub/tasks/jobs/transferencias.py,sha256=_2MWBy-jUNW5yDS0eCKE1EeFdd2K72yX0EZtd9iJQrk,35565
59
59
  worker_automate_hub/tasks/task_definitions.py,sha256=2Jp1H4_qJZqqGyaP6MA87KLt4QNrtWBYWbXu-2gymFo,4459
60
60
  worker_automate_hub/tasks/task_executor.py,sha256=QqVNRljSlSbSXzTwKLezMjCLej6AixuBcDAhDrqmAkU,8435
61
61
  worker_automate_hub/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -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=0LR6Xpe3HZk-xu-trH7vKRhP5FXp0nhp1qxtygE2Jps,7280
67
- worker_automate_hub/utils/util.py,sha256=s3t51co6jUdPR-IZJVtGeivw8wfs97dLBfr3C35sjc0,118424
67
+ worker_automate_hub/utils/util.py,sha256=v2N2Sr5dtW_k4GObh0FB5cKv64hRs-rTjKLeyMsKcdU,116963
68
68
  worker_automate_hub/utils/utils_nfe_entrada.py,sha256=4--3HDyWddT8vw2mBNY_-9IscvAQYBygwPIMiKvAG-w,27583
69
69
  worker_automate_hub/worker.py,sha256=vkl_x7gSo6nQlhSBLwRkGx6LEONnYptfBaGxOy1ZLsE,4634
70
- worker_automate_hub-0.4.337.dist-info/entry_points.txt,sha256=sddyhjx57I08RY8X7UxcTpdoOsWULAWNKN9Xr6pp_Kw,54
71
- worker_automate_hub-0.4.337.dist-info/METADATA,sha256=dPu_uucr9B00DhepooB6Zrh8OgTIwZW5GH_HfqyTyJc,2884
72
- worker_automate_hub-0.4.337.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
73
- worker_automate_hub-0.4.337.dist-info/RECORD,,
70
+ worker_automate_hub-0.4.339.dist-info/entry_points.txt,sha256=sddyhjx57I08RY8X7UxcTpdoOsWULAWNKN9Xr6pp_Kw,54
71
+ worker_automate_hub-0.4.339.dist-info/METADATA,sha256=L29JSbIgFRllmqR8zZjr1sxV3iO3jhbTRGuY5-rTG0A,2884
72
+ worker_automate_hub-0.4.339.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
73
+ worker_automate_hub-0.4.339.dist-info/RECORD,,