worker-automate-hub 0.5.87__py3-none-any.whl → 0.5.89__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,70 @@
1
+ from mimetypes import guess_type
2
+
3
+ import aiohttp
4
+ from rich.console import Console
5
+
6
+ from worker_automate_hub.config.settings import load_env_config
7
+ from worker_automate_hub.utils.logger import logger
8
+
9
+ console = Console()
10
+
11
+
12
+ async def send_file_to_datalake(
13
+ file: bytes, filename: str, file_extension: str = None
14
+ ) -> None:
15
+ """
16
+ Envia um arquivo para a datalake.
17
+
18
+ Args:
19
+ file (bytes): O conteúdo binário do arquivo.
20
+ filename (str): O nome do arquivo.
21
+ file_extension (str, optional): A extensão do arquivo. Caso não seja
22
+ passada, tenta determinar com base no nome do arquivo.
23
+
24
+ Raises:
25
+ aiohttp.ClientResponseError: Caso a API retorne um status de erro.
26
+ Exception: Caso ocorra um erro genérico durante o processo.
27
+
28
+ Returns:
29
+ None
30
+ """
31
+ try:
32
+ env_config, _ = load_env_config()
33
+
34
+ if not file_extension:
35
+ file_extension = filename.split(".")[-1]
36
+
37
+ mime_type, _ = guess_type(filename)
38
+ if not mime_type:
39
+ mime_type = "application/octet-stream"
40
+
41
+ body = aiohttp.FormData()
42
+ body.add_field("file", file, filename=filename, content_type=mime_type)
43
+
44
+ headers_basic = {"Authorization": f"Basic {env_config['API_AUTHORIZATION']}"}
45
+
46
+ async with aiohttp.ClientSession(
47
+ connector=aiohttp.TCPConnector(ssl=False)
48
+ ) as session:
49
+ async with session.post(
50
+ f"{env_config['API_BASE_URL']}/arquivo/send-file-to-datalake",
51
+ data=body,
52
+ headers=headers_basic,
53
+ ) as response:
54
+ response.raise_for_status()
55
+
56
+ response_text = await response.text()
57
+
58
+ log_msg = f"\nSucesso ao enviar arquivo: {filename}\nResposta da API: {response_text}"
59
+ console.print(log_msg, style="bold green")
60
+ logger.info(log_msg)
61
+
62
+ except aiohttp.ClientResponseError as e:
63
+ err_msg = f"Erro na resposta da API: {e.status} - {e.message}\nDetalhes: {await e.response.text()}"
64
+ console.print(f"\n{err_msg}\n", style="bold red")
65
+ logger.error(err_msg)
66
+
67
+ except Exception as e:
68
+ err_msg = f"Erro ao enviar arquivo: {str(e)}"
69
+ console.print(f"\n{err_msg}\n", style="bold red")
70
+ logger.error(err_msg)
@@ -826,8 +826,8 @@ async def devolucao_prazo_a_faturar(task: RpaProcessoEntradaDTO) -> RpaRetornoPr
826
826
  console.print("Aguardando pop de operacação concluida \n")
827
827
  while i < max_attempts:
828
828
  try:
829
- app = Application().connect(class_name="TFrmProcessamentoFEe2", timeout=10)
830
- main_window = app["TFrmProcessamentoFEe2"]
829
+ app = Application().connect(class_name="TFrmProcessamentoNFe2", timeout=10)
830
+ main_window = app["TFrmProcessamentoNFe2"]
831
831
 
832
832
  await worker_sleep(5)
833
833
  information_pop_up = await is_window_open_by_class("TMessageForm", "TMessageForm")
@@ -840,9 +840,9 @@ async def devolucao_prazo_a_faturar(task: RpaProcessoEntradaDTO) -> RpaRetornoPr
840
840
  btn_ok = information_operacao_concluida.child_window(class_name="TButton")
841
841
  btn_ok.click()
842
842
  await worker_sleep(4)
843
- main_window.close()
844
843
  except:
845
844
  pyautogui.press('enter')
845
+ await worker_sleep(4)
846
846
  break
847
847
  else:
848
848
  retorno = f"Pop up nao mapeado para seguimento do robo {msg_pop_up} \nEtapas Executadas:\n{steps}"
@@ -880,16 +880,18 @@ async def devolucao_prazo_a_faturar(task: RpaProcessoEntradaDTO) -> RpaRetornoPr
880
880
 
881
881
 
882
882
  console.print("Verificando se a nota foi transmitida com sucesso")
883
- app = Application().connect(class_name="TFrmProcessamentoFEe2", timeout=15)
884
- main_window = app["TFrmProcessamentoFEe2"]
883
+ app = Application().connect(class_name="TFrmProcessamentoNFe2", timeout=15)
884
+ main_window = app["TFrmProcessamentoNFe2"]
885
885
  main_window.set_focus()
886
886
 
887
- rect = main_window.rectangle()
887
+ tpanel_footer = main_window.child_window(class_name="TGroupBox", found_index=0)
888
+
889
+ rect = tpanel_footer.rectangle()
888
890
  center_x = (rect.left + rect.right) // 2
889
891
  center_y = (rect.top + rect.bottom) // 2
890
892
 
891
- adjusted_center_y = center_y + 10
892
- double_click(coords=(center_x, adjusted_center_y))
893
+ pyautogui.moveTo(center_x, center_y)
894
+ double_click(coords=(center_x, center_y))
893
895
 
894
896
  with pyautogui.hold('ctrl'):
895
897
  pyautogui.press('c')
@@ -907,7 +909,7 @@ async def devolucao_prazo_a_faturar(task: RpaProcessoEntradaDTO) -> RpaRetornoPr
907
909
  main_window.close()
908
910
  else:
909
911
  get_error_msg = await get_text_display_window(pop_up_status)
910
- console.print(f"Msg Rejeição: {get_error_msg}")
912
+ console.print(f"Mensagem Rejeição: {get_error_msg}")
911
913
  retorno = f"Erro ao transmitir, mensagem de rejeição {get_error_msg} \nEtapas Executadas:\n{steps}"
912
914
  return RpaRetornoProcessoDTO(
913
915
  sucesso=False,
@@ -3806,11 +3806,12 @@ async def gerenciador_nf_header(periodo: str, cod_cliente: str) -> RpaRetornoPro
3806
3806
 
3807
3807
  console.print("Verificando a situação...\n")
3808
3808
  situacao_text = situacao_select.window_text()
3809
- if "não transmitida" in situacao_text.lower():
3809
+ if "XPTO" in situacao_text.lower():
3810
3810
  console.print("Situação corretamente selecionada...\n")
3811
3811
  else:
3812
3812
  situacao_select.click()
3813
- set_combobox("||List", "Não Transmitida")
3813
+ set_combobox("||List", "Todas")
3814
+ #set_combobox("||List", "Não Transmitida")
3814
3815
 
3815
3816
  console.print("Inserindo o codigo do cliente...\n")
3816
3817
  field_cod_cliente.click()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: worker-automate-hub
3
- Version: 0.5.87
3
+ Version: 0.5.89
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
@@ -2,6 +2,7 @@ worker_automate_hub/__init__.py,sha256=LV28uQvBfpPIqudGIMJmVB8E941MjXHcu8DMoX5n8
2
2
  worker_automate_hub/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
3
  worker_automate_hub/api/ahead_service.py,sha256=QbNrZf9q7fS0s-S5fZVytqC7dINi9u2f6aB6SDrGVVA,2231
4
4
  worker_automate_hub/api/client.py,sha256=uYmKPEdt2zUS7tKYJpk4NqXAGS413rpR4m33Eq3_5IU,19840
5
+ worker_automate_hub/api/datalake_service.py,sha256=UZTxbJFZSQ0Po2N5lWg4gRZBr0Zr0BGR5f6uGjmWCOQ,2387
5
6
  worker_automate_hub/api/helpers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
7
  worker_automate_hub/api/helpers/api_helpers.py,sha256=SkheO2fXexeh-a4shr8Qzsz_kZhuSG0DJ7kbODctRbM,3696
7
8
  worker_automate_hub/api/rdp_service.py,sha256=L7orr60FkJr6zjETtA4me8tRYCW9m1g-i5pq6AILUFo,1647
@@ -37,7 +38,7 @@ worker_automate_hub/tasks/jobs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5
37
38
  worker_automate_hub/tasks/jobs/coleta_dje_process.py,sha256=UkLWTC5Ub2qBb0yY-8IZ0DLLOVJOfNTq_z9krx_t25Q,29476
38
39
  worker_automate_hub/tasks/jobs/conexao_rdp.py,sha256=S6QC4xhuo0pB5FjaUJZNMm1LIgEjpjifReCTBDqxH-U,11719
39
40
  worker_automate_hub/tasks/jobs/descartes.py,sha256=0bMCJ0xIcK8TLSgjF6taAbGFLMU-sGDVFIhUYSRtrbg,41092
40
- worker_automate_hub/tasks/jobs/devolucao_prazo_a_faturar.py,sha256=xy7k_MYVHWBcOjD_rnVO1fUSxIBudwWb8eA1UFnF2Ec,86704
41
+ worker_automate_hub/tasks/jobs/devolucao_prazo_a_faturar.py,sha256=BfX6N-L8wYW9xpwfPk2L6G5jYhlqT5NWrRUFfMR17Rk,86806
41
42
  worker_automate_hub/tasks/jobs/ecac_estadual_go.py,sha256=dKkf22nH5gp3RErq5u0UzRsKyJ81fc6ZZ4vLtUuMwHA,21002
42
43
  worker_automate_hub/tasks/jobs/ecac_estadual_main.py,sha256=8WmKe4-MRtzHobXz2S4YBDNN8alfawkC-BBlRY-mn1g,1726
43
44
  worker_automate_hub/tasks/jobs/ecac_estadual_mt.py,sha256=C26zmpGQGUq6sP9lU9nanM3Fje-rkyx5tjwmRy4lyL8,25300
@@ -73,10 +74,10 @@ worker_automate_hub/utils/get_creds_gworkspace.py,sha256=ZJ0IIEjM4IXIV9rwfbOZ1V1
73
74
  worker_automate_hub/utils/logger.py,sha256=FYV9fg0_RAYJF_ZOCJEbqQAiCXlXk2gMpvUU1rzT_xs,671
74
75
  worker_automate_hub/utils/toast.py,sha256=xPHc5r5uOxB_cZlCzm13Kt2qSKLLFZALncU6Qg3Ft68,1162
75
76
  worker_automate_hub/utils/updater.py,sha256=en2FCGhI8aZ-JNP3LQm64NJDc4awCNW7UhbVlwDl49Y,7972
76
- worker_automate_hub/utils/util.py,sha256=ZMbWjvZ6vbDgkosFAt2xUJGoAJOIZhxNfJyYplvyN3Q,162310
77
+ worker_automate_hub/utils/util.py,sha256=g0wcqb9m9Xd-SI4-FP-UODu0qxP_FUa-2uA147Zm1dU,162342
77
78
  worker_automate_hub/utils/utils_nfe_entrada.py,sha256=iYpOs7fb7C3bY61QHySr00xlDNzrrCP0zaexOpBPuaQ,31930
78
79
  worker_automate_hub/worker.py,sha256=CT-poyP1ZYvubArYsnnNd9oJ53SPaDwgr6p6keS3nI4,6248
79
- worker_automate_hub-0.5.87.dist-info/entry_points.txt,sha256=sddyhjx57I08RY8X7UxcTpdoOsWULAWNKN9Xr6pp_Kw,54
80
- worker_automate_hub-0.5.87.dist-info/METADATA,sha256=Zr2zxQd6u1VHpUZNWhXz_w7LQnm8HzWvHrB6cV0krvA,2894
81
- worker_automate_hub-0.5.87.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
82
- worker_automate_hub-0.5.87.dist-info/RECORD,,
80
+ worker_automate_hub-0.5.89.dist-info/entry_points.txt,sha256=sddyhjx57I08RY8X7UxcTpdoOsWULAWNKN9Xr6pp_Kw,54
81
+ worker_automate_hub-0.5.89.dist-info/METADATA,sha256=ZAm6ZEqvFquHPmnr1rrhbaUOpnGQ6bsvFY7wDJVdwPk,2894
82
+ worker_automate_hub-0.5.89.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
83
+ worker_automate_hub-0.5.89.dist-info/RECORD,,