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.
- worker_automate_hub/api/datalake_service.py +70 -0
- worker_automate_hub/tasks/jobs/devolucao_prazo_a_faturar.py +11 -9
- worker_automate_hub/utils/util.py +3 -2
- {worker_automate_hub-0.5.87.dist-info → worker_automate_hub-0.5.89.dist-info}/METADATA +1 -1
- {worker_automate_hub-0.5.87.dist-info → worker_automate_hub-0.5.89.dist-info}/RECORD +7 -6
- {worker_automate_hub-0.5.87.dist-info → worker_automate_hub-0.5.89.dist-info}/WHEEL +0 -0
- {worker_automate_hub-0.5.87.dist-info → worker_automate_hub-0.5.89.dist-info}/entry_points.txt +0 -0
@@ -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="
|
830
|
-
main_window = app["
|
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="
|
884
|
-
main_window = app["
|
883
|
+
app = Application().connect(class_name="TFrmProcessamentoNFe2", timeout=15)
|
884
|
+
main_window = app["TFrmProcessamentoNFe2"]
|
885
885
|
main_window.set_focus()
|
886
886
|
|
887
|
-
|
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
|
-
|
892
|
-
double_click(coords=(center_x,
|
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"
|
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 "
|
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", "
|
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()
|
@@ -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=
|
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=
|
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.
|
80
|
-
worker_automate_hub-0.5.
|
81
|
-
worker_automate_hub-0.5.
|
82
|
-
worker_automate_hub-0.5.
|
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,,
|
File without changes
|
{worker_automate_hub-0.5.87.dist-info → worker_automate_hub-0.5.89.dist-info}/entry_points.txt
RENAMED
File without changes
|