worker-automate-hub 0.5.767__py3-none-any.whl → 0.5.769__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.
- worker_automate_hub/tasks/jobs/entrada_de_notas_9.py +27 -4
- worker_automate_hub/tasks/jobs/extracao_saldo_estoque_fiscal.py +33 -14
- {worker_automate_hub-0.5.767.dist-info → worker_automate_hub-0.5.769.dist-info}/METADATA +1 -1
- {worker_automate_hub-0.5.767.dist-info → worker_automate_hub-0.5.769.dist-info}/RECORD +6 -6
- {worker_automate_hub-0.5.767.dist-info → worker_automate_hub-0.5.769.dist-info}/WHEEL +0 -0
- {worker_automate_hub-0.5.767.dist-info → worker_automate_hub-0.5.769.dist-info}/entry_points.txt +0 -0
@@ -974,7 +974,7 @@ async def entrada_de_notas_9(task: RpaProcessoEntradaDTO) -> RpaRetornoProcessoD
|
|
974
974
|
recebimento_fisico = datetime.strptime(recebimento_fisico, "%d/%m/%Y")
|
975
975
|
|
976
976
|
#se a data do aceite no Ahead ultrapassar dois dias após a emissão da nota, deve-se colocar o vencimento para a mesma data do “Receb. Físico”/Aceite.
|
977
|
-
if ((recebimento_fisico >= dt_emissao + timedelta(days=2)) and ("vibra" in nota.get("nomeFornecedor").lower() or "ipiranga" in nota.get("nomeFornecedor").lower() or "raizen" in nota.get("nomeFornecedor").lower() or
|
977
|
+
if ((recebimento_fisico >= dt_emissao + timedelta(days=2)) and ("vibra" in nota.get("nomeFornecedor").lower() or "ipiranga" in nota.get("nomeFornecedor").lower() or "raizen" in nota.get("nomeFornecedor").lower())): # or "charru" in nota.get("nomeFornecedor").lower())):
|
978
978
|
recebimento_fisico = recebimento_fisico.strftime("%d/%m/%Y")
|
979
979
|
console.print(f"Informando a data de vencimento, {recebimento_fisico}... \n")
|
980
980
|
vencimento = panel_TabParcelamento.child_window(
|
@@ -987,6 +987,18 @@ async def entrada_de_notas_9(task: RpaProcessoEntradaDTO) -> RpaRetornoProcessoD
|
|
987
987
|
)
|
988
988
|
data_vencimento = nota.get("dataVencimento")
|
989
989
|
vencimento.set_edit_text(data_vencimento)
|
990
|
+
elif "charru" in nota.get("nomeFornecedor").lower():
|
991
|
+
vencimento = panel_TabParcelamento.child_window(
|
992
|
+
class_name="TDBIEditDate"
|
993
|
+
)
|
994
|
+
data_vencimento = nota.get("dataEmissao")
|
995
|
+
# Converte string para datetime
|
996
|
+
data_dt = datetime.strptime(data_vencimento, "%d/%m/%Y")
|
997
|
+
# Soma 30 dias
|
998
|
+
data_dt_venc = data_dt + timedelta(days=30)
|
999
|
+
# Converte de volta para string no mesmo formato
|
1000
|
+
data_vencimento = data_dt_venc.strftime("%d/%m/%Y")
|
1001
|
+
vencimento.set_edit_text(data_vencimento)
|
990
1002
|
else:
|
991
1003
|
#Senão adicionar 1 dia a emissao
|
992
1004
|
dt_emissao = nota.get("dataEmissao")
|
@@ -1027,7 +1039,7 @@ async def entrada_de_notas_9(task: RpaProcessoEntradaDTO) -> RpaRetornoProcessoD
|
|
1027
1039
|
console.print(f"Processo de incluir pagamento realizado com sucesso... \n")
|
1028
1040
|
else:
|
1029
1041
|
data_vencimento = ""
|
1030
|
-
if "vibra" in nota.get("nomeFornecedor").lower() or "ipiranga" in nota.get("nomeFornecedor").lower() or "raizen" in nota.get("nomeFornecedor").lower() or "charru" in nota.get("nomeFornecedor").lower():
|
1042
|
+
if "vibra" in nota.get("nomeFornecedor").lower() or "ipiranga" in nota.get("nomeFornecedor").lower() or "raizen" in nota.get("nomeFornecedor").lower(): #or "charru" in nota.get("nomeFornecedor").lower():
|
1031
1043
|
dt_emissao = nota.get("dataEmissao")
|
1032
1044
|
dt_emissao = datetime.strptime(dt_emissao, "%d/%m/%Y")
|
1033
1045
|
pattern = r"(\d{2}/\d{2}/\d{4})"
|
@@ -1042,9 +1054,20 @@ async def entrada_de_notas_9(task: RpaProcessoEntradaDTO) -> RpaRetornoProcessoD
|
|
1042
1054
|
dt_emissao = dt_emissao + timedelta(days=1)
|
1043
1055
|
dt_emissao = dt_emissao.strftime("%d/%m/%Y")
|
1044
1056
|
data_vencimento = dt_emissao
|
1057
|
+
elif "charru" in nota.get("nomeFornecedor").lower():
|
1058
|
+
vencimento = panel_TabParcelamento.child_window(
|
1059
|
+
class_name="TDBIEditDate"
|
1060
|
+
)
|
1061
|
+
data_vencimento = nota.get("dataEmissao")
|
1062
|
+
# Converte string para datetime
|
1063
|
+
data_dt = datetime.strptime(data_vencimento, "%d/%m/%Y")
|
1064
|
+
# Soma 30 dias
|
1065
|
+
data_dt_venc = data_dt + timedelta(days=30)
|
1066
|
+
# Converte de volta para string no mesmo formato
|
1067
|
+
data_vencimento = data_dt_venc.strftime("%d/%m/%Y")
|
1068
|
+
# vencimento.set_edit_text(data_vencimento)
|
1045
1069
|
else:
|
1046
1070
|
data_vencimento = nota.get("dataVencimento")
|
1047
|
-
|
1048
1071
|
await worker_sleep(2)
|
1049
1072
|
console.print(f"Removendo registro de parcelamento do pagamento... \n")
|
1050
1073
|
btn_remove = panel_TabParcelamento.child_window(
|
@@ -1325,4 +1348,4 @@ async def entrada_de_notas_9(task: RpaProcessoEntradaDTO) -> RpaRetornoProcessoD
|
|
1325
1348
|
|
1326
1349
|
finally:
|
1327
1350
|
# Deleta o xml
|
1328
|
-
await delete_xml(nota["nfe"])
|
1351
|
+
await delete_xml(nota["nfe"])
|
@@ -19,6 +19,7 @@ from worker_automate_hub.models.dto.rpa_processo_entrada_dto import (
|
|
19
19
|
)
|
20
20
|
from rich.console import Console
|
21
21
|
import re
|
22
|
+
import time
|
22
23
|
from pywinauto.keyboard import send_keys
|
23
24
|
import warnings
|
24
25
|
from pywinauto.application import Application
|
@@ -60,7 +61,9 @@ async def extracao_saldo_estoque_fiscal(
|
|
60
61
|
# Fecha a instancia do emsys - caso esteja aberta
|
61
62
|
await kill_all_emsys()
|
62
63
|
|
63
|
-
app = Application(backend="win32").start(
|
64
|
+
app = Application(backend="win32").start(
|
65
|
+
"C:\\Rezende\\EMSys3\\EMSysFiscal_38.exe"
|
66
|
+
)
|
64
67
|
warnings.filterwarnings(
|
65
68
|
"ignore",
|
66
69
|
category=UserWarning,
|
@@ -119,7 +122,7 @@ async def extracao_saldo_estoque_fiscal(
|
|
119
122
|
campo_data.click_input()
|
120
123
|
|
121
124
|
# Limpa e digita
|
122
|
-
keyboard.send_keys("^a{BACKSPACE}
|
125
|
+
keyboard.send_keys("^a{BACKSPACE}" + periodo)
|
123
126
|
|
124
127
|
# Seleciona inventário
|
125
128
|
chk_inventario = main_window.child_window(
|
@@ -171,10 +174,9 @@ async def extracao_saldo_estoque_fiscal(
|
|
171
174
|
##### Janela Gerar Registros #####
|
172
175
|
app = Application(backend="win32").connect(title="Gerar Registros")
|
173
176
|
main_window = app.window(title="Gerar Registros")
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
).click_input()
|
177
|
+
|
178
|
+
# Clicar no botão "Sim"
|
179
|
+
main_window.child_window(title="&Sim", class_name="Button").click_input()
|
178
180
|
|
179
181
|
await worker_sleep(2)
|
180
182
|
|
@@ -185,21 +187,38 @@ async def extracao_saldo_estoque_fiscal(
|
|
185
187
|
slc_01 = main_window.child_window(
|
186
188
|
class_name="TDBIComboBoxValues", found_index=0
|
187
189
|
).click_input()
|
188
|
-
await worker_sleep(
|
190
|
+
await worker_sleep(1)
|
189
191
|
keyboard.send_keys("01" + "{ENTER}")
|
190
|
-
await worker_sleep(
|
192
|
+
await worker_sleep(2)
|
191
193
|
|
192
194
|
# Clicar em confirmar
|
193
195
|
main_window.child_window(class_name="TBitBtn", found_index=0).click_input()
|
194
196
|
|
195
197
|
await worker_sleep(5)
|
196
198
|
|
197
|
-
|
198
|
-
|
199
|
+
CLASS = "TFrmPreviewRelatorio"
|
200
|
+
|
201
|
+
# 1) Espera a janela aparecer (até 180s)
|
202
|
+
desk = Desktop(backend="win32")
|
203
|
+
deadline = time.time() + 180
|
204
|
+
win = None
|
205
|
+
while time.time() < deadline:
|
206
|
+
try:
|
207
|
+
w = desk.window(class_name=CLASS)
|
208
|
+
if w.exists(timeout=0.5):
|
209
|
+
w.wait("visible enabled ready", timeout=30)
|
210
|
+
win = w
|
211
|
+
break
|
212
|
+
except Exception:
|
213
|
+
pass
|
214
|
+
time.sleep(0.5)
|
215
|
+
|
216
|
+
if win is None:
|
217
|
+
raise TimeoutError(f"Janela '{CLASS}' não apareceu dentro do timeout.")
|
199
218
|
|
200
|
-
#
|
201
|
-
|
202
|
-
main_window.
|
219
|
+
# 2) Conecta ao app usando o handle da janela encontrada
|
220
|
+
app = Application(backend="win32").connect(handle=win.handle)
|
221
|
+
main_window = app.window(handle=win.handle)
|
203
222
|
|
204
223
|
# Dá o foco na janela
|
205
224
|
main_window.set_focus()
|
@@ -295,7 +314,7 @@ async def extracao_saldo_estoque_fiscal(
|
|
295
314
|
|
296
315
|
# 1) Abrir o picker pelo botão (imagem)
|
297
316
|
console.print("Procurando botão de salvar (imagem)...", style="bold cyan")
|
298
|
-
caminho_img = r
|
317
|
+
caminho_img = r'assets\\extracao_relatorios\btn_salvar.png'
|
299
318
|
if os.path.isfile(caminho_img):
|
300
319
|
pos = pyautogui.locateCenterOnScreen(caminho_img, confidence=0.9)
|
301
320
|
if pos:
|
@@ -65,13 +65,13 @@ worker_automate_hub/tasks/jobs/entrada_de_notas_500.py,sha256=WBsCRbH7ANiCjEn0aE
|
|
65
65
|
worker_automate_hub/tasks/jobs/entrada_de_notas_503.py,sha256=bcNKy6X1aaVe6lxW-TMyUKJ_GXzHEK-8V6x9SOzOshw,48365
|
66
66
|
worker_automate_hub/tasks/jobs/entrada_de_notas_505.py,sha256=xXeNipdXTSll8yAtAmN7v0sjN3oMlWU4THu30mKDddc,30339
|
67
67
|
worker_automate_hub/tasks/jobs/entrada_de_notas_7139.py,sha256=7POfKc7nisc8-ysgqazrK8kT7kmFIq8irGwCMixPAE0,37948
|
68
|
-
worker_automate_hub/tasks/jobs/entrada_de_notas_9.py,sha256=
|
68
|
+
worker_automate_hub/tasks/jobs/entrada_de_notas_9.py,sha256=19Lgq9ml4pK4UUrSq_KcgMTtaiVHocS5rurdKWkTRqI,66345
|
69
69
|
worker_automate_hub/tasks/jobs/entrada_de_notas_9000.py,sha256=0mOmS28tQKF5m7vMzInblDuWH48_qIgrohOU5UwYZ10,65498
|
70
70
|
worker_automate_hub/tasks/jobs/exemplo_processo.py,sha256=nV0iLoip2FH2-FhLmhX3nPqsfl_MPufZ3E5Q5krJvdc,3544
|
71
71
|
worker_automate_hub/tasks/jobs/extracao_fechamento_contabil.py,sha256=6Kr5DKjKLqtFvGzyiXtt7xrQsuU898l8pQXDq9C6AX8,19567
|
72
72
|
worker_automate_hub/tasks/jobs/extracao_fechamento_emsys.py,sha256=-T2nZUDiFrUGm_KLxJd_4qcrageDxVpWW3KAAniLFC4,21448
|
73
73
|
worker_automate_hub/tasks/jobs/extracao_saldo_estoque.py,sha256=Pviu3Tt5VTx6LzM1Xl8YOXOMwPH2uIbsRlch7aZVN8g,15747
|
74
|
-
worker_automate_hub/tasks/jobs/extracao_saldo_estoque_fiscal.py,sha256=
|
74
|
+
worker_automate_hub/tasks/jobs/extracao_saldo_estoque_fiscal.py,sha256=T1wR297jrmUgjo7Wc_GYGu4xsYYTjppIX_Sx_tMQa_E,23699
|
75
75
|
worker_automate_hub/tasks/jobs/fechar_conexao_rdp.py,sha256=UWAKCS2dbfgDlSQOBdjmVJXfD1MMuUrOi3weDgB0CAc,5718
|
76
76
|
worker_automate_hub/tasks/jobs/fidc_exportacao_docs_portal_b2b.py,sha256=tWUmYy3Zhi3JEt8AoqTsWpU-wbf5-OxhCrTOooh1WH4,15616
|
77
77
|
worker_automate_hub/tasks/jobs/fidc_gerar_nosso_numero.py,sha256=FAmcCqKVjedf7wIped8XRLIZ9S3oWc6fakF-r1Zm0kg,12637
|
@@ -101,7 +101,7 @@ worker_automate_hub/utils/updater.py,sha256=en2FCGhI8aZ-JNP3LQm64NJDc4awCNW7UhbV
|
|
101
101
|
worker_automate_hub/utils/util.py,sha256=V2WtWoETdTrAtGA8UgeqAAVphUj9KkGSZFzYsHJFATA,210055
|
102
102
|
worker_automate_hub/utils/utils_nfe_entrada.py,sha256=TOXKSHOPxy8N3-ROpTGjNIHstX0i2b8qekcj1tRvjG8,38174
|
103
103
|
worker_automate_hub/worker.py,sha256=uhZ3f-iaQ1i8cANbljp50vkYl-Xm0_sHtjwwF_2y72o,7191
|
104
|
-
worker_automate_hub-0.5.
|
105
|
-
worker_automate_hub-0.5.
|
106
|
-
worker_automate_hub-0.5.
|
107
|
-
worker_automate_hub-0.5.
|
104
|
+
worker_automate_hub-0.5.769.dist-info/entry_points.txt,sha256=sddyhjx57I08RY8X7UxcTpdoOsWULAWNKN9Xr6pp_Kw,54
|
105
|
+
worker_automate_hub-0.5.769.dist-info/METADATA,sha256=nacHBPq_iAIfsdT1PGTrBId0p99zdGLwg9DBvaeOR-k,3049
|
106
|
+
worker_automate_hub-0.5.769.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
107
|
+
worker_automate_hub-0.5.769.dist-info/RECORD,,
|
File without changes
|
{worker_automate_hub-0.5.767.dist-info → worker_automate_hub-0.5.769.dist-info}/entry_points.txt
RENAMED
File without changes
|