worker-automate-hub 0.4.445__py3-none-any.whl → 0.4.446__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- worker_automate_hub/tasks/jobs/entrada_de_notas_7139.py +34 -14
- worker_automate_hub/utils/util.py +103 -0
- {worker_automate_hub-0.4.445.dist-info → worker_automate_hub-0.4.446.dist-info}/METADATA +1 -1
- {worker_automate_hub-0.4.445.dist-info → worker_automate_hub-0.4.446.dist-info}/RECORD +6 -6
- {worker_automate_hub-0.4.445.dist-info → worker_automate_hub-0.4.446.dist-info}/WHEEL +0 -0
- {worker_automate_hub-0.4.445.dist-info → worker_automate_hub-0.4.446.dist-info}/entry_points.txt +0 -0
@@ -39,6 +39,7 @@ from worker_automate_hub.utils.util import (
|
|
39
39
|
worker_sleep,
|
40
40
|
check_nota_importada,
|
41
41
|
carregamento_import_xml,
|
42
|
+
errors_generate_after_import,
|
42
43
|
)
|
43
44
|
|
44
45
|
pyautogui.PAUSE = 0.5
|
@@ -276,23 +277,41 @@ async def entrada_de_notas_7139(task: RpaProcessoEntradaDTO) -> RpaRetornoProces
|
|
276
277
|
status=RpaHistoricoStatusEnum.Falha,
|
277
278
|
)
|
278
279
|
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
280
|
+
try:
|
281
|
+
console.print(
|
282
|
+
"Verificando a existencia de POP-UP de Itens não localizados ou NCM ...\n"
|
283
|
+
)
|
284
|
+
itens_by_supplier = await is_window_open_by_class("TFrmAguarde", "TMessageForm")
|
285
|
+
if itens_by_supplier["IsOpened"] == True:
|
286
|
+
itens_by_supplier_work = await itens_not_found_supplier(nota.get("nfe"))
|
287
|
+
if itens_by_supplier_work.get("window") == "NCM":
|
288
|
+
console.log(itens_by_supplier_work.get("retorno"), style="bold green")
|
289
|
+
else:
|
290
|
+
return RpaRetornoProcessoDTO(
|
291
|
+
sucesso=False,
|
292
|
+
retorno=itens_by_supplier_work.get("retorno"),
|
293
|
+
status=RpaHistoricoStatusEnum.Falha,
|
294
|
+
)
|
295
|
+
except Exception as error:
|
296
|
+
return RpaRetornoProcessoDTO(
|
297
|
+
sucesso=False,
|
298
|
+
retorno=f"Falha ao verificar a existência de POP-UP de itens não localizados: {error}",
|
299
|
+
status=RpaHistoricoStatusEnum.Falha,
|
300
|
+
)
|
301
|
+
|
302
|
+
|
303
|
+
logs_erro = await is_window_open_by_class("TFrmExibeLogErroImportacaoNfe","TFrmExibeLogErroImportacaoNfe")
|
304
|
+
if logs_erro["IsOpened"] == True:
|
305
|
+
errors_genetared = await errors_generate_after_import(nota.get("nfe"))
|
306
|
+
return RpaRetornoProcessoDTO(
|
307
|
+
sucesso=False,
|
308
|
+
retorno=errors_genetared.retorno,
|
309
|
+
status=RpaHistoricoStatusEnum.Falha,
|
310
|
+
)
|
293
311
|
|
294
312
|
await worker_sleep(6)
|
295
313
|
|
314
|
+
|
296
315
|
max_attempts = 7
|
297
316
|
i = 0
|
298
317
|
while i < max_attempts:
|
@@ -334,6 +353,7 @@ async def entrada_de_notas_7139(task: RpaProcessoEntradaDTO) -> RpaRetornoProces
|
|
334
353
|
f"Não foi possivel incluir o registro utilizando reconhecimento de imagem, Error: {e}...\n tentando inserir via posição...\n"
|
335
354
|
)
|
336
355
|
await incluir_registro()
|
356
|
+
|
337
357
|
|
338
358
|
await worker_sleep(6)
|
339
359
|
nf_imported = await check_nota_importada(nota.get("nfe"))
|
@@ -2188,6 +2188,7 @@ async def select_documento_type(document_type: str) -> RpaRetornoProcessoDTO:
|
|
2188
2188
|
main_window = app["TFrmNotaFiscalEntrada"]
|
2189
2189
|
|
2190
2190
|
main_window.set_focus()
|
2191
|
+
await worker_sleep(3)
|
2191
2192
|
|
2192
2193
|
console.print(
|
2193
2194
|
"Controles encontrados na janela 'Nota Fiscal de Entrada, navegando entre eles...\n"
|
@@ -3196,4 +3197,106 @@ async def kill_all_emsys():
|
|
3196
3197
|
sucesso=False,
|
3197
3198
|
retorno=f"Erro ao fechar o emsys, erro{e}",
|
3198
3199
|
status=RpaHistoricoStatusEnum.Falha,
|
3200
|
+
)
|
3201
|
+
|
3202
|
+
|
3203
|
+
async def errors_generate_after_import(xml_nota: str) -> RpaRetornoProcessoDTO:
|
3204
|
+
try:
|
3205
|
+
app = Application().connect(class_name="TFrmExibeLogErroImportacaoNfe")
|
3206
|
+
main_window = app["TFrmExibeLogErroImportacaoNfe"]
|
3207
|
+
console.print("Tela com itens com erro existe, salvando os itens...\n")
|
3208
|
+
|
3209
|
+
btn_save = main_window.child_window(
|
3210
|
+
title="Salvar", class_name="TBitBtn"
|
3211
|
+
)
|
3212
|
+
|
3213
|
+
if btn_save.exists():
|
3214
|
+
max_attempts = 3
|
3215
|
+
i = 0
|
3216
|
+
while i < max_attempts:
|
3217
|
+
console.print("Clicando no botão de salvar...\n")
|
3218
|
+
try:
|
3219
|
+
btn_save.click()
|
3220
|
+
except:
|
3221
|
+
console.print("Não foi possivel clicar no Botão OK... \n")
|
3222
|
+
|
3223
|
+
await worker_sleep(3)
|
3224
|
+
|
3225
|
+
console.print(
|
3226
|
+
"Verificando a existencia da tela para informar o caminho do arquivo...\n"
|
3227
|
+
)
|
3228
|
+
|
3229
|
+
try:
|
3230
|
+
app = Application().connect(title="Salvar")
|
3231
|
+
main_window = app["Salvar"]
|
3232
|
+
console.print(
|
3233
|
+
"Tela para informar o caminho do arquivo existe"
|
3234
|
+
)
|
3235
|
+
break
|
3236
|
+
except Exception as e:
|
3237
|
+
console.print(
|
3238
|
+
f"Tela para informar o caminho do arquivo não encontrada. Tentativa {i + 1}/{max_attempts}."
|
3239
|
+
)
|
3240
|
+
|
3241
|
+
i += 1
|
3242
|
+
|
3243
|
+
if i == max_attempts:
|
3244
|
+
raise Exception(
|
3245
|
+
"Número máximo de tentativas atingido. Tela para informar o caminho do arquivo existe."
|
3246
|
+
)
|
3247
|
+
|
3248
|
+
await worker_sleep(4)
|
3249
|
+
console.print(
|
3250
|
+
"Interagindo com a tela para informar o caminho do arquivo...\n"
|
3251
|
+
)
|
3252
|
+
app = Application().connect(title="Salvar")
|
3253
|
+
main_window = app["Salvar"]
|
3254
|
+
console.print(
|
3255
|
+
"Tela para informar o caminho do arquivo existe, inserindo o diretorio...\n"
|
3256
|
+
)
|
3257
|
+
await worker_sleep(2)
|
3258
|
+
main_window.type_keys("%n")
|
3259
|
+
username = getpass.getuser()
|
3260
|
+
path_to_txt = (
|
3261
|
+
f"C:\\Users\\{username}\\Downloads\\erro_itens{xml_nota}.txt"
|
3262
|
+
)
|
3263
|
+
pyautogui.write(path_to_txt)
|
3264
|
+
await worker_sleep(1)
|
3265
|
+
main_window.type_keys("%l")
|
3266
|
+
console.print(f"Arquivo salvo com sucesso... \n")
|
3267
|
+
|
3268
|
+
conteudo = ""
|
3269
|
+
await worker_sleep(3)
|
3270
|
+
with open(
|
3271
|
+
path_to_txt, "r", encoding="latin1", errors="replace"
|
3272
|
+
) as arquivo:
|
3273
|
+
conteudo = arquivo.read()
|
3274
|
+
console.print(
|
3275
|
+
f"Arquivo salvo com sucesso, itens com erro {conteudo}...\n"
|
3276
|
+
)
|
3277
|
+
|
3278
|
+
os.remove(path_to_txt)
|
3279
|
+
console.print(
|
3280
|
+
f"Removendo o arquivo e enviando os itens para o backoffice... \n"
|
3281
|
+
)
|
3282
|
+
console.print(
|
3283
|
+
f"Itens nao localizados para o fornecedor salvo e retornando como falha no backoffice para correção...\n"
|
3284
|
+
)
|
3285
|
+
return RpaRetornoProcessoDTO(
|
3286
|
+
sucesso=True,
|
3287
|
+
retorno=f"Itens nao localizados para o fornecedor, Mensagem: {conteudo}",
|
3288
|
+
status=RpaHistoricoStatusEnum.Sucesso,
|
3289
|
+
)
|
3290
|
+
else:
|
3291
|
+
console.print(f"Botao Salvar - Não foi encontrado...\n")
|
3292
|
+
return RpaRetornoProcessoDTO(
|
3293
|
+
sucesso=False,
|
3294
|
+
retorno=f"Erro ao processar - Tela de Erros gerados na importação do NF-e - Botao Salvar - Não foi encontrado",
|
3295
|
+
status=RpaHistoricoStatusEnum.Sucesso,
|
3296
|
+
)
|
3297
|
+
except Exception as e:
|
3298
|
+
return RpaRetornoProcessoDTO(
|
3299
|
+
sucesso=False,
|
3300
|
+
retorno=f"Erro ao processar - Tela de Erros gerados na importação do NF-e, {e}",
|
3301
|
+
status=RpaHistoricoStatusEnum.Falha,
|
3199
3302
|
)
|
@@ -49,7 +49,7 @@ worker_automate_hub/tasks/jobs/entrada_de_notas_36.py,sha256=vFkDcgJ9uxrMMLYdeON
|
|
49
49
|
worker_automate_hub/tasks/jobs/entrada_de_notas_39.py,sha256=r4q3QRwho0GsX2Lo6HBenQyMIEQO6EaqlaQQ9ee80m8,32796
|
50
50
|
worker_automate_hub/tasks/jobs/entrada_de_notas_500.py,sha256=MYPaYAP2iwdBYDZUf39f7yGibTME9uObEash_QTCmFA,32231
|
51
51
|
worker_automate_hub/tasks/jobs/entrada_de_notas_505.py,sha256=jIml8gjXPdI6_x7S9VVV8IrKZRF7_PTNOMnhNmYMDTU,14490
|
52
|
-
worker_automate_hub/tasks/jobs/entrada_de_notas_7139.py,sha256=
|
52
|
+
worker_automate_hub/tasks/jobs/entrada_de_notas_7139.py,sha256=oxH2CUJj3UyhYoSxEY2hUr_6wFgZPLcHswEbApIu8VY,15558
|
53
53
|
worker_automate_hub/tasks/jobs/entrada_de_notas_9.py,sha256=Urt_7dZNuyUkSyG9fYb2ArBXzEONXlrqWIesoXeL1EI,50984
|
54
54
|
worker_automate_hub/tasks/jobs/exemplo_processo.py,sha256=3-zxbb-9YHPmSA_K1Qgxp_FwSqg2QDjGBRCLxDZ8QoQ,3451
|
55
55
|
worker_automate_hub/tasks/jobs/fidc_gerar_nosso_numero.py,sha256=mZ6mCaz1lYmyFxwC8MVLXPsgynE1VkNKlEzYGsciDiY,10179
|
@@ -66,10 +66,10 @@ worker_automate_hub/utils/get_creds_gworkspace.py,sha256=ZJ0IIEjM4IXIV9rwfbOZ1V1
|
|
66
66
|
worker_automate_hub/utils/logger.py,sha256=FYV9fg0_RAYJF_ZOCJEbqQAiCXlXk2gMpvUU1rzT_xs,671
|
67
67
|
worker_automate_hub/utils/toast.py,sha256=xPHc5r5uOxB_cZlCzm13Kt2qSKLLFZALncU6Qg3Ft68,1162
|
68
68
|
worker_automate_hub/utils/updater.py,sha256=en2FCGhI8aZ-JNP3LQm64NJDc4awCNW7UhbVlwDl49Y,7972
|
69
|
-
worker_automate_hub/utils/util.py,sha256=
|
69
|
+
worker_automate_hub/utils/util.py,sha256=h0AoZgFND72mR0HufpvT0KB-QBa5lRml0pDKh_7pyrI,125955
|
70
70
|
worker_automate_hub/utils/utils_nfe_entrada.py,sha256=p5r_L5k7gqCBvV8v6dbLFM6INKiSpGc4Gegid0_YAh4,29017
|
71
71
|
worker_automate_hub/worker.py,sha256=tftQpX8liC-_0_bOUf1YYzXSCvloMQBvjmQ6lzfEE-c,4816
|
72
|
-
worker_automate_hub-0.4.
|
73
|
-
worker_automate_hub-0.4.
|
74
|
-
worker_automate_hub-0.4.
|
75
|
-
worker_automate_hub-0.4.
|
72
|
+
worker_automate_hub-0.4.446.dist-info/entry_points.txt,sha256=sddyhjx57I08RY8X7UxcTpdoOsWULAWNKN9Xr6pp_Kw,54
|
73
|
+
worker_automate_hub-0.4.446.dist-info/METADATA,sha256=bqncVJ3KxXMYV5kwpwogbmbDczMDcu5AiqZJKw6ghcM,2895
|
74
|
+
worker_automate_hub-0.4.446.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
|
75
|
+
worker_automate_hub-0.4.446.dist-info/RECORD,,
|
File without changes
|
{worker_automate_hub-0.4.445.dist-info → worker_automate_hub-0.4.446.dist-info}/entry_points.txt
RENAMED
File without changes
|