worker-automate-hub 0.5.16__py3-none-any.whl → 0.5.17__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of worker-automate-hub might be problematic. Click here for more details.
- worker_automate_hub/tasks/jobs/coleta_dje_process.py +12 -0
- worker_automate_hub/tasks/jobs/conexao_rdp.py +4 -4
- worker_automate_hub/tasks/jobs/descartes.py +21 -18
- worker_automate_hub/tasks/jobs/ecac_estadual_go.py +8 -6
- worker_automate_hub/tasks/jobs/ecac_estadual_main.py +4 -2
- worker_automate_hub/tasks/jobs/ecac_estadual_mt.py +8 -6
- worker_automate_hub/tasks/jobs/ecac_estadual_sc.py +5 -3
- worker_automate_hub/tasks/jobs/ecac_estadual_sp.py +9 -7
- worker_automate_hub/tasks/jobs/ecac_federal.py +11 -8
- worker_automate_hub/tasks/jobs/entrada_de_notas_15.py +14 -12
- worker_automate_hub/tasks/jobs/entrada_de_notas_16.py +19 -11
- worker_automate_hub/tasks/jobs/entrada_de_notas_207.py +23 -11
- worker_automate_hub/tasks/jobs/entrada_de_notas_32.py +63 -32
- worker_automate_hub/tasks/jobs/entrada_de_notas_33.py +56 -28
- worker_automate_hub/tasks/jobs/entrada_de_notas_34.py +54 -38
- worker_automate_hub/tasks/jobs/entrada_de_notas_36.py +33 -16
- worker_automate_hub/tasks/jobs/entrada_de_notas_39.py +53 -28
- worker_automate_hub/tasks/jobs/entrada_de_notas_500.py +40 -14
- worker_automate_hub/tasks/jobs/entrada_de_notas_505.py +28 -14
- worker_automate_hub/tasks/jobs/entrada_de_notas_7139.py +18 -12
- worker_automate_hub/tasks/jobs/entrada_de_notas_9.py +40 -13
- worker_automate_hub/tasks/jobs/exemplo_processo.py +3 -0
- worker_automate_hub/tasks/jobs/fechar_conexao_rdp.py +3 -3
- worker_automate_hub/tasks/jobs/fidc_gerar_nosso_numero.py +9 -7
- worker_automate_hub/tasks/jobs/login_emsys.py +2 -1
- worker_automate_hub/tasks/jobs/playground.py +4 -0
- worker_automate_hub/tasks/jobs/sped_fiscal.py +24 -0
- worker_automate_hub/tasks/jobs/transferencias.py +28 -26
- worker_automate_hub/tasks/task_executor.py +3 -0
- worker_automate_hub/utils/util.py +148 -141
- worker_automate_hub/utils/utils_nfe_entrada.py +10 -0
- {worker_automate_hub-0.5.16.dist-info → worker_automate_hub-0.5.17.dist-info}/METADATA +1 -1
- {worker_automate_hub-0.5.16.dist-info → worker_automate_hub-0.5.17.dist-info}/RECORD +35 -35
- {worker_automate_hub-0.5.16.dist-info → worker_automate_hub-0.5.17.dist-info}/WHEEL +0 -0
- {worker_automate_hub-0.5.16.dist-info → worker_automate_hub-0.5.17.dist-info}/entry_points.txt +0 -0
@@ -336,7 +336,7 @@ async def login_emsys_fiscal(
|
|
336
336
|
return RpaRetornoProcessoDTO(
|
337
337
|
sucesso=False,
|
338
338
|
retorno=f"Erro: Não foi possivel obter as credencias para login",
|
339
|
-
status=RpaHistoricoStatusEnum.Falha,
|
339
|
+
status=RpaHistoricoStatusEnum.Falha, tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
|
340
340
|
)
|
341
341
|
|
342
342
|
main_window.set_focus()
|
@@ -372,7 +372,7 @@ async def login_emsys_fiscal(
|
|
372
372
|
return RpaRetornoProcessoDTO(
|
373
373
|
sucesso=False,
|
374
374
|
retorno="Pop-up Warning/Information ao tentar realizar login",
|
375
|
-
status=RpaHistoricoStatusEnum.Falha,
|
375
|
+
status=RpaHistoricoStatusEnum.Falha, tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
|
376
376
|
)
|
377
377
|
else:
|
378
378
|
edit_password.type_keys("{ENTER}")
|
@@ -383,7 +383,7 @@ async def login_emsys_fiscal(
|
|
383
383
|
return RpaRetornoProcessoDTO(
|
384
384
|
sucesso=False,
|
385
385
|
retorno="Erro ao abrir a janela para seleção da empresa, tela não encontrada",
|
386
|
-
status=RpaHistoricoStatusEnum.Falha,
|
386
|
+
status=RpaHistoricoStatusEnum.Falha, tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
|
387
387
|
)
|
388
388
|
|
389
389
|
# Seleciona a filial do emsys
|
@@ -409,7 +409,7 @@ async def login_emsys_fiscal(
|
|
409
409
|
return RpaRetornoProcessoDTO(
|
410
410
|
sucesso=False,
|
411
411
|
retorno=f"Erro: Não foi possível acessar a filial {filial_cod}, esta com o CNPJ bloqueado, por favor verificar",
|
412
|
-
status=RpaHistoricoStatusEnum.Falha,
|
412
|
+
status=RpaHistoricoStatusEnum.Falha, tags=[RpaTagDTO(descricao=RpaTagEnum.Negocio)]
|
413
413
|
)
|
414
414
|
|
415
415
|
information_pop_up = await is_window_open_by_class("TMessageForm","TMessageForm")
|
@@ -432,7 +432,7 @@ async def login_emsys_fiscal(
|
|
432
432
|
return RpaRetornoProcessoDTO(
|
433
433
|
sucesso=False,
|
434
434
|
retorno=f"Erro: Botão No, nao existe no pop-up information após a seleção da filial da empresa",
|
435
|
-
status=RpaHistoricoStatusEnum.Falha,
|
435
|
+
status=RpaHistoricoStatusEnum.Falha, tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
|
436
436
|
)
|
437
437
|
|
438
438
|
max_attempts = 10
|
@@ -455,7 +455,7 @@ async def login_emsys_fiscal(
|
|
455
455
|
return RpaRetornoProcessoDTO(
|
456
456
|
sucesso=False,
|
457
457
|
retorno="Erro ao abrir o EMSys Fiscal, tela de login não encontrada",
|
458
|
-
status=RpaHistoricoStatusEnum.Falha,
|
458
|
+
status=RpaHistoricoStatusEnum.Falha, tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
|
459
459
|
)
|
460
460
|
|
461
461
|
|
@@ -463,7 +463,7 @@ async def login_emsys_fiscal(
|
|
463
463
|
log_msg = f"Erro ao realizar login no EMSys Fiscal, erro: {e}..."
|
464
464
|
console.print(log_msg, style="bold red")
|
465
465
|
return RpaRetornoProcessoDTO(
|
466
|
-
sucesso=False, retorno=log_msg, status=RpaHistoricoStatusEnum.Falha
|
466
|
+
sucesso=False, retorno=log_msg, status=RpaHistoricoStatusEnum.Falha, tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
|
467
467
|
)
|
468
468
|
|
469
469
|
|
@@ -598,7 +598,7 @@ async def login_emsys(
|
|
598
598
|
return RpaRetornoProcessoDTO(
|
599
599
|
sucesso=False,
|
600
600
|
retorno="Falha ao logar no EMSys!",
|
601
|
-
status=RpaHistoricoStatusEnum.Falha,
|
601
|
+
status=RpaHistoricoStatusEnum.Falha, tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
|
602
602
|
)
|
603
603
|
|
604
604
|
else:
|
@@ -607,7 +607,7 @@ async def login_emsys(
|
|
607
607
|
logger.info(log_msg)
|
608
608
|
console.print(log_msg, style="bold red")
|
609
609
|
return RpaRetornoProcessoDTO(
|
610
|
-
sucesso=False, retorno=log_msg, status=RpaHistoricoStatusEnum.Falha
|
610
|
+
sucesso=False, retorno=log_msg, status=RpaHistoricoStatusEnum.Falha, tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
|
611
611
|
)
|
612
612
|
|
613
613
|
|
@@ -891,7 +891,7 @@ def select_model_capa() -> RpaRetornoProcessoDTO:
|
|
891
891
|
return RpaRetornoProcessoDTO(
|
892
892
|
sucesso=False,
|
893
893
|
retorno="Não foi possivel encontrar o campo 'Documento'",
|
894
|
-
status=RpaHistoricoStatusEnum.Falha,
|
894
|
+
status=RpaHistoricoStatusEnum.Falha, tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
|
895
895
|
)
|
896
896
|
pyautogui.click(field)
|
897
897
|
pyautogui.write("Nfe")
|
@@ -904,7 +904,7 @@ def select_model_capa() -> RpaRetornoProcessoDTO:
|
|
904
904
|
return RpaRetornoProcessoDTO(
|
905
905
|
sucesso=False,
|
906
906
|
retorno=f"Não foi possivel encontrar o campo 'Documento'",
|
907
|
-
status=RpaHistoricoStatusEnum.Falha,
|
907
|
+
status=RpaHistoricoStatusEnum.Falha, tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
|
908
908
|
)
|
909
909
|
|
910
910
|
pyautogui.click(field)
|
@@ -964,7 +964,7 @@ async def download_xml(
|
|
964
964
|
return RpaRetornoProcessoDTO(
|
965
965
|
sucesso=False,
|
966
966
|
retorno=f"Erro ao obter autenticação para o GCP",
|
967
|
-
status=RpaHistoricoStatusEnum.Falha,
|
967
|
+
status=RpaHistoricoStatusEnum.Falha, tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
|
968
968
|
)
|
969
969
|
|
970
970
|
# Inicializando o serviço do Google Drive
|
@@ -994,7 +994,7 @@ async def download_xml(
|
|
994
994
|
return RpaRetornoProcessoDTO(
|
995
995
|
sucesso=False,
|
996
996
|
retorno=f"Nenhum arquivo com o nome {chave_nota} foi encontrado no Google Drive",
|
997
|
-
status=RpaHistoricoStatusEnum.Falha,
|
997
|
+
status=RpaHistoricoStatusEnum.Falha, tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
|
998
998
|
)
|
999
999
|
|
1000
1000
|
# Pegando o primeiro arquivo encontrado
|
@@ -1029,7 +1029,7 @@ async def download_xml(
|
|
1029
1029
|
return RpaRetornoProcessoDTO(
|
1030
1030
|
sucesso=False,
|
1031
1031
|
retorno=f"Erro ao baixar o arquivo do Google Drive, erro: {e}",
|
1032
|
-
status=RpaHistoricoStatusEnum.Falha,
|
1032
|
+
status=RpaHistoricoStatusEnum.Falha, tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
|
1033
1033
|
)
|
1034
1034
|
|
1035
1035
|
|
@@ -1052,7 +1052,7 @@ async def get_xml_outras_empresas() -> RpaRetornoProcessoDTO:
|
|
1052
1052
|
return RpaRetornoProcessoDTO(
|
1053
1053
|
sucesso=False,
|
1054
1054
|
retorno=f"Erro - Janela principal de importação do XML não foi encontrada.",
|
1055
|
-
status=RpaHistoricoStatusEnum.Falha,
|
1055
|
+
status=RpaHistoricoStatusEnum.Falha, tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
|
1056
1056
|
)
|
1057
1057
|
|
1058
1058
|
console.print("Selecionando Notas de outras empresas... \n")
|
@@ -1064,7 +1064,7 @@ async def get_xml_outras_empresas() -> RpaRetornoProcessoDTO:
|
|
1064
1064
|
return RpaRetornoProcessoDTO(
|
1065
1065
|
sucesso=False,
|
1066
1066
|
retorno=f"Erro - Botão Notas de outras empresas não foi encontrado.",
|
1067
|
-
status=RpaHistoricoStatusEnum.Falha,
|
1067
|
+
status=RpaHistoricoStatusEnum.Falha, tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
|
1068
1068
|
)
|
1069
1069
|
|
1070
1070
|
await worker_sleep(3)
|
@@ -1105,7 +1105,7 @@ async def get_xml_outras_empresas() -> RpaRetornoProcessoDTO:
|
|
1105
1105
|
return RpaRetornoProcessoDTO(
|
1106
1106
|
sucesso=False,
|
1107
1107
|
retorno=f"Erro - Número máximo de tentativas atingido. A tela para importar o Nota de Outra Empresa não foi encontrada.",
|
1108
|
-
status=RpaHistoricoStatusEnum.Falha,
|
1108
|
+
status=RpaHistoricoStatusEnum.Falha, tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
|
1109
1109
|
)
|
1110
1110
|
else:
|
1111
1111
|
return RpaRetornoProcessoDTO(
|
@@ -1444,7 +1444,7 @@ async def import_nfe() -> RpaRetornoProcessoDTO:
|
|
1444
1444
|
return RpaRetornoProcessoDTO(
|
1445
1445
|
sucesso=False,
|
1446
1446
|
retorno="Não foi possivel localizar o campo 'Importar NF-e' ",
|
1447
|
-
status=RpaHistoricoStatusEnum.Falha,
|
1447
|
+
status=RpaHistoricoStatusEnum.Falha, tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
|
1448
1448
|
)
|
1449
1449
|
except:
|
1450
1450
|
app = Application().connect(title="Nota Fiscal de Entrada")
|
@@ -1559,7 +1559,7 @@ async def transmitir_nota(
|
|
1559
1559
|
return RpaRetornoProcessoDTO(
|
1560
1560
|
sucesso=False,
|
1561
1561
|
retorno=log_msg,
|
1562
|
-
status=RpaHistoricoStatusEnum.Falha,
|
1562
|
+
status=RpaHistoricoStatusEnum.Falha, tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
|
1563
1563
|
)
|
1564
1564
|
|
1565
1565
|
return RpaRetornoProcessoDTO(
|
@@ -2253,14 +2253,14 @@ async def select_documento_type(document_type: str) -> RpaRetornoProcessoDTO:
|
|
2253
2253
|
return RpaRetornoProcessoDTO(
|
2254
2254
|
sucesso=False,
|
2255
2255
|
retorno=f"Não foi possivel selecionar o tipo do documento",
|
2256
|
-
status=RpaHistoricoStatusEnum.Falha,
|
2256
|
+
status=RpaHistoricoStatusEnum.Falha, tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
|
2257
2257
|
)
|
2258
2258
|
|
2259
2259
|
except Exception as e:
|
2260
2260
|
return RpaRetornoProcessoDTO(
|
2261
2261
|
sucesso=False,
|
2262
2262
|
retorno=f"Não foi possivel selecionar o tipo do documento, erro: {e} ",
|
2263
|
-
status=RpaHistoricoStatusEnum.Falha,
|
2263
|
+
status=RpaHistoricoStatusEnum.Falha, tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
|
2264
2264
|
)
|
2265
2265
|
|
2266
2266
|
|
@@ -2361,7 +2361,7 @@ async def warnings_after_xml_imported() -> RpaRetornoProcessoDTO:
|
|
2361
2361
|
return RpaRetornoProcessoDTO(
|
2362
2362
|
sucesso=False,
|
2363
2363
|
retorno=f"Warning: Erro ao clicar em NO: {e}",
|
2364
|
-
status=RpaHistoricoStatusEnum.Falha,
|
2364
|
+
status=RpaHistoricoStatusEnum.Falha, tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
|
2365
2365
|
)
|
2366
2366
|
|
2367
2367
|
else:
|
@@ -2369,7 +2369,7 @@ async def warnings_after_xml_imported() -> RpaRetornoProcessoDTO:
|
|
2369
2369
|
return RpaRetornoProcessoDTO(
|
2370
2370
|
sucesso=False,
|
2371
2371
|
retorno="Warning - Erro após a importação do arquivo, não foi encontrado o botão No para andamento do processo... \n",
|
2372
|
-
status=RpaHistoricoStatusEnum.Falha,
|
2372
|
+
status=RpaHistoricoStatusEnum.Falha, tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
|
2373
2373
|
)
|
2374
2374
|
|
2375
2375
|
|
@@ -2401,13 +2401,14 @@ async def error_after_xml_imported() -> RpaRetornoProcessoDTO:
|
|
2401
2401
|
return RpaRetornoProcessoDTO(
|
2402
2402
|
sucesso=False,
|
2403
2403
|
retorno=f"Não foi possivel seguir devido ao numero da chave ja existir no banco de dados, erro: {control_text}... \n",
|
2404
|
-
|
2404
|
+
|
2405
|
+
status=RpaHistoricoStatusEnum.Falha, tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
|
2405
2406
|
)
|
2406
2407
|
else:
|
2407
2408
|
return RpaRetornoProcessoDTO(
|
2408
2409
|
sucesso=False,
|
2409
2410
|
retorno=f"Erro do banco de dados: {control_text} \n",
|
2410
|
-
status=RpaHistoricoStatusEnum.Falha,
|
2411
|
+
status=RpaHistoricoStatusEnum.Falha, tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
|
2411
2412
|
)
|
2412
2413
|
|
2413
2414
|
elif "XML já foi importado anteriormente" in control_text:
|
@@ -2443,6 +2444,7 @@ async def error_before_persist_record() -> RpaRetornoProcessoDTO:
|
|
2443
2444
|
sucesso=False,
|
2444
2445
|
retorno=f"Erro ao incluir registro, As datas das parcelas não podem ser menores que a data de entrada da nota: {control_text} \n",
|
2445
2446
|
status=RpaHistoricoStatusEnum.Falha,
|
2447
|
+
tags=[RpaTagDTO(descricao=RpaTagEnum.Negocio)]
|
2446
2448
|
)
|
2447
2449
|
|
2448
2450
|
elif capturar_proxima_mensagem:
|
@@ -2450,13 +2452,12 @@ async def error_before_persist_record() -> RpaRetornoProcessoDTO:
|
|
2450
2452
|
sucesso=False,
|
2451
2453
|
retorno=f"Erro ao incluir registro: {control_text} \n",
|
2452
2454
|
status=RpaHistoricoStatusEnum.Falha,
|
2455
|
+
tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
|
2453
2456
|
)
|
2454
2457
|
except:
|
2455
2458
|
console.print("Erro ao capturar mensagem de erro")
|
2456
2459
|
|
2457
|
-
|
2458
|
-
# TODO: Melhorar o retorno
|
2459
|
-
async def itens_not_found_supplier(xml: str):
|
2460
|
+
async def itens_not_found_supplier(xml: str) -> RpaRetornoProcessoDTO:
|
2460
2461
|
try:
|
2461
2462
|
username = getpass.getuser()
|
2462
2463
|
console.print("Verificando se existe tela de multiplas referencias.\n")
|
@@ -2468,14 +2469,15 @@ async def itens_not_found_supplier(xml: str):
|
|
2468
2469
|
|
2469
2470
|
if itens_fornecedor["IsOpened"] == True:
|
2470
2471
|
console.print("Tela de multiplas referencias existe.\n")
|
2471
|
-
return
|
2472
|
-
|
2473
|
-
|
2474
|
-
|
2475
|
-
|
2476
|
-
|
2472
|
+
return RpaRetornoProcessoDTO(
|
2473
|
+
sucesso=False,
|
2474
|
+
retorno="Tela de Itens fornecedor - Multiplas referencias",
|
2475
|
+
status=RpaHistoricoStatusEnum.Falha,
|
2476
|
+
tags=[RpaTagDTO(descricao=RpaTagEnum.Negocio)]
|
2477
|
+
)
|
2478
|
+
|
2477
2479
|
console.print("Iteragindo com a tela de itens não localizados // NCM ...\n")
|
2478
|
-
|
2480
|
+
|
2479
2481
|
app = Application().connect(class_name="TFrmAguarde", timeout=60)
|
2480
2482
|
|
2481
2483
|
max_attempts = 60
|
@@ -2484,7 +2486,7 @@ async def itens_not_found_supplier(xml: str):
|
|
2484
2486
|
while i < max_attempts:
|
2485
2487
|
try:
|
2486
2488
|
main_window = app["TMessageForm"]
|
2487
|
-
console.print(
|
2489
|
+
console.print("Janela 'TMessageForm' encontrada!")
|
2488
2490
|
break
|
2489
2491
|
except Exception as e:
|
2490
2492
|
console.print(f"Erro ao tentar acessar TMessageForm: {e}")
|
@@ -2492,48 +2494,44 @@ async def itens_not_found_supplier(xml: str):
|
|
2492
2494
|
"TFrmAguarde", "TFrmAguarde"
|
2493
2495
|
)
|
2494
2496
|
if janela_aguarde["IsOpened"] == True:
|
2495
|
-
console.print(
|
2497
|
+
console.print("Aguardando tela de aguarde desaparecer ou conectar...\n")
|
2496
2498
|
else:
|
2497
2499
|
try:
|
2498
2500
|
main_window = app["TMessageForm"]
|
2499
2501
|
if main_window.exists():
|
2500
|
-
console.print(
|
2502
|
+
console.print("Janela 'TMessageForm' encontrada!")
|
2501
2503
|
break
|
2502
2504
|
except:
|
2503
|
-
return
|
2504
|
-
|
2505
|
-
|
2506
|
-
|
2507
|
-
|
2505
|
+
return RpaRetornoProcessoDTO(
|
2506
|
+
sucesso=True,
|
2507
|
+
retorno="Tela de aguardar carregada - Seguindo com andamento do processo (NCM).",
|
2508
|
+
status=RpaHistoricoStatusEnum.Sucesso
|
2509
|
+
)
|
2510
|
+
|
2508
2511
|
await worker_sleep(3)
|
2509
2512
|
i += 1
|
2510
2513
|
|
2511
2514
|
window_title = main_window.window_text()
|
2512
2515
|
|
2513
2516
|
if "Confirm" in window_title or "Seleciona Itens Fornecedor" in window_title:
|
2514
|
-
console.print(
|
2517
|
+
console.print("Itens nao localizados para o fornecedor...\n")
|
2515
2518
|
if main_window.exists():
|
2516
2519
|
main_window.type_keys("%n")
|
2517
|
-
|
2518
2520
|
await worker_sleep(10)
|
2519
|
-
|
2520
|
-
|
2521
|
-
)
|
2521
|
+
|
2522
|
+
console.print("Verificando a existencia de tela de selecionar Itens...\n")
|
2522
2523
|
itens_fornecedor = await is_window_open_by_class(
|
2523
2524
|
"TFrmSelecionaItensFornecedor", "TFrmSelecionaItensFornecedor"
|
2524
2525
|
)
|
2525
2526
|
|
2526
2527
|
if itens_fornecedor["IsOpened"] == True:
|
2527
|
-
return
|
2528
|
-
|
2529
|
-
|
2530
|
-
|
2531
|
-
}
|
2532
|
-
else:
|
2533
|
-
console.print(
|
2534
|
-
"Não possui a existencia de tela de selecionar Itens Fornecedor...\n"
|
2528
|
+
return RpaRetornoProcessoDTO(
|
2529
|
+
sucesso=True,
|
2530
|
+
retorno="Tela de Itens fornecedor - Multiplas referencias",
|
2531
|
+
status=RpaHistoricoStatusEnum.Sucesso,
|
2535
2532
|
)
|
2536
|
-
|
2533
|
+
else:
|
2534
|
+
console.print("Não possui a existencia de tela de selecionar Itens Fornecedor...\n")
|
2537
2535
|
|
2538
2536
|
await worker_sleep(10)
|
2539
2537
|
console.print("Verificando a existe da tela dos itens com erro...\n")
|
@@ -2541,31 +2539,31 @@ async def itens_not_found_supplier(xml: str):
|
|
2541
2539
|
max_attempts = 60
|
2542
2540
|
i = 0
|
2543
2541
|
while i < max_attempts:
|
2544
|
-
logs_erro = await is_window_open_by_class(
|
2542
|
+
logs_erro = await is_window_open_by_class(
|
2543
|
+
"TFrmExibeLogErroImportacaoNfe","TFrmExibeLogErroImportacaoNfe"
|
2544
|
+
)
|
2545
2545
|
if logs_erro["IsOpened"] == True:
|
2546
2546
|
break
|
2547
2547
|
else:
|
2548
|
-
console.print(
|
2548
|
+
console.print("Aguardando confirmação de tela de erro importação NFe...\n")
|
2549
2549
|
try:
|
2550
2550
|
app = Application().connect(class_name="TFrmAguarde")
|
2551
2551
|
main_window = app["TMessageForm"]
|
2552
|
-
console.print(
|
2552
|
+
console.print("Janela 'Information' encontrada!")
|
2553
2553
|
window_title = main_window.window_text()
|
2554
2554
|
if "Information" in window_title:
|
2555
2555
|
main_window.type_keys("%n")
|
2556
2556
|
else:
|
2557
|
-
console.print(
|
2558
|
-
"Não possui a existencia de tela de Information, seguindo...\n"
|
2559
|
-
)
|
2557
|
+
console.print("Não possui a existencia de 'Information'...\n")
|
2560
2558
|
except:
|
2561
|
-
console.print(
|
2562
|
-
"Não possui a existencia de tela de Information...\n"
|
2563
|
-
)
|
2559
|
+
console.print("Não possui a existencia de tela de Information...\n")
|
2564
2560
|
await worker_sleep(5)
|
2565
2561
|
i += 1
|
2566
|
-
|
2562
|
+
|
2567
2563
|
await worker_sleep(5)
|
2568
|
-
logs_erro = await is_window_open_by_class(
|
2564
|
+
logs_erro = await is_window_open_by_class(
|
2565
|
+
"TFrmExibeLogErroImportacaoNfe","TFrmExibeLogErroImportacaoNfe"
|
2566
|
+
)
|
2569
2567
|
if logs_erro["IsOpened"] == True:
|
2570
2568
|
app = Application().connect(class_name="TFrmExibeLogErroImportacaoNfe")
|
2571
2569
|
main_window = app["TFrmExibeLogErroImportacaoNfe"]
|
@@ -2584,112 +2582,101 @@ async def itens_not_found_supplier(xml: str):
|
|
2584
2582
|
btn_save.click()
|
2585
2583
|
except:
|
2586
2584
|
console.print("Não foi possivel clicar no Botão OK... \n")
|
2587
|
-
|
2588
2585
|
await worker_sleep(3)
|
2589
2586
|
|
2590
|
-
console.print(
|
2591
|
-
"Verificando a existencia da tela para informar o caminho do arquivo...\n"
|
2592
|
-
)
|
2593
|
-
|
2587
|
+
console.print("Verificando a existencia da tela 'Salvar'...\n")
|
2594
2588
|
try:
|
2595
2589
|
app = Application().connect(title="Salvar")
|
2596
2590
|
main_window = app["Salvar"]
|
2597
|
-
console.print(
|
2598
|
-
"Tela para informar o caminho do arquivo existe"
|
2599
|
-
)
|
2591
|
+
console.print("Tela 'Salvar' encontrada!")
|
2600
2592
|
break
|
2601
2593
|
except Exception as e:
|
2602
2594
|
console.print(
|
2603
|
-
f"Tela
|
2595
|
+
f"Tela 'Salvar' não encontrada. Tentativa {i + 1}/{max_attempts}."
|
2604
2596
|
)
|
2605
|
-
|
2606
2597
|
i += 1
|
2607
2598
|
|
2608
2599
|
if i == max_attempts:
|
2609
|
-
|
2610
|
-
|
2600
|
+
return RpaRetornoProcessoDTO(
|
2601
|
+
sucesso=False,
|
2602
|
+
retorno="Número máximo de tentativas ao tentar conectar à tela 'Salvar'.",
|
2603
|
+
status=RpaHistoricoStatusEnum.Falha,
|
2604
|
+
tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
|
2611
2605
|
)
|
2612
2606
|
|
2613
2607
|
await worker_sleep(4)
|
2614
|
-
console.print(
|
2615
|
-
|
2616
|
-
|
2617
|
-
app = Application().connect(title="Salvar")
|
2618
|
-
main_window = app["Salvar"]
|
2619
|
-
console.print(
|
2620
|
-
"Tela para informar o caminho do arquivo existe, inserindo o diretorio...\n"
|
2621
|
-
)
|
2622
|
-
await worker_sleep(2)
|
2608
|
+
console.print("Interagindo com a tela 'Salvar'...\n")
|
2609
|
+
path_to_txt = f"C:\\Users\\{username}\\Downloads\\erro_itens{xml}.txt"
|
2610
|
+
|
2623
2611
|
main_window.type_keys("%n")
|
2624
|
-
path_to_txt = (
|
2625
|
-
f"C:\\Users\\{username}\\Downloads\\erro_itens{xml}.txt"
|
2626
|
-
)
|
2627
2612
|
pyautogui.write(path_to_txt)
|
2628
2613
|
await worker_sleep(1)
|
2629
2614
|
main_window.type_keys("%l")
|
2630
|
-
console.print(
|
2615
|
+
console.print("Arquivo salvo com sucesso...\n")
|
2631
2616
|
|
2632
|
-
conteudo = ""
|
2633
2617
|
await worker_sleep(3)
|
2634
|
-
with open(
|
2635
|
-
path_to_txt, "r", encoding="latin1", errors="replace"
|
2636
|
-
) as arquivo:
|
2618
|
+
with open(path_to_txt, "r", encoding="latin1", errors="replace") as arquivo:
|
2637
2619
|
conteudo = arquivo.read()
|
2638
2620
|
console.print(
|
2639
2621
|
f"Arquivo salvo com sucesso, itens com erro {conteudo}...\n"
|
2640
2622
|
)
|
2641
2623
|
|
2642
2624
|
os.remove(path_to_txt)
|
2643
|
-
console.print(
|
2644
|
-
|
2645
|
-
|
2646
|
-
|
2647
|
-
f"Itens nao localizados
|
2625
|
+
console.print("Removendo o arquivo...\n")
|
2626
|
+
|
2627
|
+
return RpaRetornoProcessoDTO(
|
2628
|
+
sucesso=False,
|
2629
|
+
retorno=f"Itens nao localizados p/ fornecedor. Mensagem: {conteudo}",
|
2630
|
+
status=RpaHistoricoStatusEnum.Falha,
|
2631
|
+
tags=[RpaTagDTO(descricao=RpaTagEnum.Negocio)]
|
2648
2632
|
)
|
2649
|
-
return {
|
2650
|
-
"sucesso": True,
|
2651
|
-
"retorno": f"Itens nao localizados para o fornecedor, Mensagem: {conteudo}",
|
2652
|
-
"window": "Itens",
|
2653
|
-
}
|
2654
2633
|
else:
|
2655
|
-
|
2656
|
-
|
2657
|
-
"
|
2658
|
-
|
2659
|
-
|
2660
|
-
|
2634
|
+
return RpaRetornoProcessoDTO(
|
2635
|
+
sucesso=False,
|
2636
|
+
retorno="Botao Salvar - Não foi encontrado",
|
2637
|
+
status=RpaHistoricoStatusEnum.Falha,
|
2638
|
+
tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
|
2639
|
+
)
|
2640
|
+
|
2661
2641
|
else:
|
2662
|
-
return
|
2663
|
-
|
2664
|
-
|
2665
|
-
|
2666
|
-
|
2642
|
+
return RpaRetornoProcessoDTO(
|
2643
|
+
sucesso=False,
|
2644
|
+
retorno="Tela 'TFrmExibeLogErroImportacaoNfe' não encontrada, tentar novamente...",
|
2645
|
+
status=RpaHistoricoStatusEnum.Falha,
|
2646
|
+
tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
|
2647
|
+
)
|
2667
2648
|
else:
|
2668
|
-
return
|
2669
|
-
|
2670
|
-
|
2671
|
-
|
2672
|
-
|
2649
|
+
return RpaRetornoProcessoDTO(
|
2650
|
+
sucesso=False,
|
2651
|
+
retorno="Erro não mapeado, pop-up Confirm não encontrado...",
|
2652
|
+
status=RpaHistoricoStatusEnum.Falha,
|
2653
|
+
tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
|
2654
|
+
)
|
2655
|
+
|
2673
2656
|
elif "Information" in window_title:
|
2674
|
-
console.print(
|
2657
|
+
console.print("Tela de NCM para o fornecedor...\n")
|
2675
2658
|
if main_window.exists():
|
2676
|
-
console.print(
|
2677
|
-
f"Tela de NCM clicando em NO para andamento no processo...\n"
|
2678
|
-
)
|
2659
|
+
console.print("Tela de NCM, clicando em NO para prosseguir...\n")
|
2679
2660
|
main_window.type_keys("%n")
|
2680
|
-
return
|
2681
|
-
|
2682
|
-
|
2683
|
-
|
2684
|
-
|
2685
|
-
except Exception as e:
|
2686
|
-
return {
|
2687
|
-
"sucesso": False,
|
2688
|
-
"retorno": f"Erro ao processar tela de itens // ncm {e}",
|
2689
|
-
"window": "Erro",
|
2690
|
-
}
|
2661
|
+
return RpaRetornoProcessoDTO(
|
2662
|
+
sucesso=True,
|
2663
|
+
retorno="Tela de NCM - clicado em NO para andamento do processo",
|
2664
|
+
status=RpaHistoricoStatusEnum.Sucesso,
|
2665
|
+
)
|
2691
2666
|
|
2667
|
+
return RpaRetornoProcessoDTO(
|
2668
|
+
sucesso=True,
|
2669
|
+
retorno="Tela TMessageForm sem Title match. Seguindo...",
|
2670
|
+
status=RpaHistoricoStatusEnum.Sucesso
|
2671
|
+
)
|
2692
2672
|
|
2673
|
+
except Exception as e:
|
2674
|
+
return RpaRetornoProcessoDTO(
|
2675
|
+
sucesso=False,
|
2676
|
+
retorno=f"Erro ao processar tela de itens/ncm: {e}",
|
2677
|
+
status=RpaHistoricoStatusEnum.Falha,
|
2678
|
+
tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
|
2679
|
+
)
|
2693
2680
|
|
2694
2681
|
async def tipo_despesa(tipo: str) -> RpaRetornoProcessoDTO:
|
2695
2682
|
console.print(f"Conectando a tela de Informações para importação da Nota Fiscal Eletrônica para seleção do tipo de despesas...\n")
|
@@ -2722,12 +2709,14 @@ async def tipo_despesa(tipo: str) -> RpaRetornoProcessoDTO:
|
|
2722
2709
|
sucesso=False,
|
2723
2710
|
retorno=f"Campo tipo de despesas - Não foi encontrado... \n",
|
2724
2711
|
status=RpaHistoricoStatusEnum.Falha,
|
2712
|
+
tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
|
2725
2713
|
)
|
2726
2714
|
except Exception as e:
|
2727
2715
|
return RpaRetornoProcessoDTO(
|
2728
2716
|
sucesso=False,
|
2729
2717
|
retorno=f"Erro ao processar tela de Informações para importação da Nota Fiscal Eletrônica para inserir o tipo de despesa, erro: {e}... \n",
|
2730
2718
|
status=RpaHistoricoStatusEnum.Falha,
|
2719
|
+
tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
|
2731
2720
|
)
|
2732
2721
|
|
2733
2722
|
|
@@ -2762,6 +2751,7 @@ async def zerar_icms() -> RpaRetornoProcessoDTO:
|
|
2762
2751
|
sucesso=False,
|
2763
2752
|
retorno=f"Erro ao processar tela de Informações para importação da Nota Fiscal Eletrônica para marcar a opção de zerar ICMS, erro: {e}... \n",
|
2764
2753
|
status=RpaHistoricoStatusEnum.Falha,
|
2754
|
+
tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
|
2765
2755
|
)
|
2766
2756
|
|
2767
2757
|
|
@@ -2796,12 +2786,14 @@ async def cod_icms(codigo: str) -> RpaRetornoProcessoDTO:
|
|
2796
2786
|
sucesso=False,
|
2797
2787
|
retorno=f"Campo codigo do icms - Não foi encontrado",
|
2798
2788
|
status=RpaHistoricoStatusEnum.Falha,
|
2789
|
+
tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
|
2799
2790
|
)
|
2800
2791
|
except Exception as e:
|
2801
2792
|
return RpaRetornoProcessoDTO(
|
2802
2793
|
sucesso=False,
|
2803
2794
|
retorno=f"Erro ao processar tela de Informações para importação da Nota Fiscal Eletrônica para inserir o codigo do icms, erro: {e}",
|
2804
2795
|
status=RpaHistoricoStatusEnum.Falha,
|
2796
|
+
tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
|
2805
2797
|
)
|
2806
2798
|
|
2807
2799
|
|
@@ -2825,6 +2817,7 @@ async def rateio_despesa(unidade_code: str) -> RpaRetornoProcessoDTO:
|
|
2825
2817
|
sucesso=False,
|
2826
2818
|
retorno=f"Error ao interagir com o campo de selecionar todos : {e}",
|
2827
2819
|
status=RpaHistoricoStatusEnum.Falha,
|
2820
|
+
tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
|
2828
2821
|
)
|
2829
2822
|
|
2830
2823
|
await worker_sleep(5)
|
@@ -2855,6 +2848,7 @@ async def rateio_despesa(unidade_code: str) -> RpaRetornoProcessoDTO:
|
|
2855
2848
|
sucesso=False,
|
2856
2849
|
retorno=f"Unidade code não é um número válido.",
|
2857
2850
|
status=RpaHistoricoStatusEnum.Falha,
|
2851
|
+
tags=[RpaTagDTO(descricao=RpaTagEnum.Negocio)]
|
2858
2852
|
)
|
2859
2853
|
|
2860
2854
|
value_centro_str = str(value_centro)
|
@@ -2869,6 +2863,7 @@ async def rateio_despesa(unidade_code: str) -> RpaRetornoProcessoDTO:
|
|
2869
2863
|
sucesso=False,
|
2870
2864
|
retorno=f"Campo tipo de despesas - Não foi encontrado",
|
2871
2865
|
status=RpaHistoricoStatusEnum.Falha,
|
2866
|
+
tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
|
2872
2867
|
)
|
2873
2868
|
|
2874
2869
|
console.print(f"Conectado com sucesso, inserindo o valor do rateio...\n")
|
@@ -2884,6 +2879,7 @@ async def rateio_despesa(unidade_code: str) -> RpaRetornoProcessoDTO:
|
|
2884
2879
|
sucesso=False,
|
2885
2880
|
retorno=f"Campo valor do rateio - Não foi encontrado",
|
2886
2881
|
status=RpaHistoricoStatusEnum.Falha,
|
2882
|
+
tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
|
2887
2883
|
)
|
2888
2884
|
|
2889
2885
|
await worker_sleep(3)
|
@@ -2916,13 +2912,14 @@ async def rateio_despesa(unidade_code: str) -> RpaRetornoProcessoDTO:
|
|
2916
2912
|
sucesso=False,
|
2917
2913
|
retorno=f"Centro de custo não localizado na tela de rateio, por favor, verificar",
|
2918
2914
|
status=RpaHistoricoStatusEnum.Falha,
|
2919
|
-
tags=[RpaTagDTO(descricao=RpaTagEnum.Negocio)]
|
2915
|
+
tags=[RpaTagDTO(descricao=RpaTagEnum.Negocio)]
|
2920
2916
|
)
|
2921
2917
|
except Exception as e:
|
2922
2918
|
return RpaRetornoProcessoDTO(
|
2923
2919
|
sucesso=False,
|
2924
2920
|
retorno=f"Campo aplicar rateio - Não foi encontrado, erro: {e}",
|
2925
2921
|
status=RpaHistoricoStatusEnum.Falha,
|
2922
|
+
tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
|
2926
2923
|
)
|
2927
2924
|
|
2928
2925
|
console.print(f"Tentando clicar em Incluir Registro...\n")
|
@@ -2954,6 +2951,7 @@ async def rateio_despesa(unidade_code: str) -> RpaRetornoProcessoDTO:
|
|
2954
2951
|
sucesso=False,
|
2955
2952
|
retorno="Campo Incluir registro nao foi encontrado",
|
2956
2953
|
status=RpaHistoricoStatusEnum.Falha,
|
2954
|
+
tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
|
2957
2955
|
)
|
2958
2956
|
|
2959
2957
|
await worker_sleep(3)
|
@@ -2979,6 +2977,7 @@ async def rateio_despesa(unidade_code: str) -> RpaRetornoProcessoDTO:
|
|
2979
2977
|
sucesso=False,
|
2980
2978
|
retorno="Campo valor do rateio - Não foi encontrado",
|
2981
2979
|
status=RpaHistoricoStatusEnum.Falha,
|
2980
|
+
tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
|
2982
2981
|
)
|
2983
2982
|
|
2984
2983
|
|
@@ -2987,6 +2986,7 @@ async def rateio_despesa(unidade_code: str) -> RpaRetornoProcessoDTO:
|
|
2987
2986
|
sucesso=False,
|
2988
2987
|
retorno=f"Erro ao processar tela de Informações para importação da Nota Fiscal Eletrônica para inserir o tipo de despesa, erro: {e}",
|
2989
2988
|
status=RpaHistoricoStatusEnum.Falha,
|
2989
|
+
tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
|
2990
2990
|
)
|
2991
2991
|
|
2992
2992
|
|
@@ -3043,6 +3043,7 @@ async def select_nop_document_type(nop: str) -> RpaRetornoProcessoDTO:
|
|
3043
3043
|
sucesso=False,
|
3044
3044
|
retorno=f"Não foi possivel selecionar o NOP Nota, erro: {e} ",
|
3045
3045
|
status=RpaHistoricoStatusEnum.Falha,
|
3046
|
+
tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
|
3046
3047
|
)
|
3047
3048
|
|
3048
3049
|
|
@@ -3181,6 +3182,7 @@ async def check_nota_importada(xml_nota: str) -> RpaRetornoProcessoDTO:
|
|
3181
3182
|
sucesso=False,
|
3182
3183
|
retorno=f"Erro ao lançar nota",
|
3183
3184
|
status=RpaHistoricoStatusEnum.Falha,
|
3185
|
+
tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
|
3184
3186
|
)
|
3185
3187
|
except Exception as e:
|
3186
3188
|
console.print(f"Error: {e}")
|
@@ -3188,6 +3190,7 @@ async def check_nota_importada(xml_nota: str) -> RpaRetornoProcessoDTO:
|
|
3188
3190
|
sucesso=False,
|
3189
3191
|
retorno=f"Erro em obter o retorno, Nota inserida com sucesso, erro {e}",
|
3190
3192
|
status=RpaHistoricoStatusEnum.Falha,
|
3193
|
+
tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
|
3191
3194
|
)
|
3192
3195
|
except Exception as e:
|
3193
3196
|
console.print(f"Erro ao conectar à janela Information para obter retorno de status de inclusão da nota: {e}\n")
|
@@ -3195,6 +3198,7 @@ async def check_nota_importada(xml_nota: str) -> RpaRetornoProcessoDTO:
|
|
3195
3198
|
sucesso=False,
|
3196
3199
|
retorno=f"Erro em obter o retorno, Nota inserida com sucesso, erro {e}",
|
3197
3200
|
status=RpaHistoricoStatusEnum.Falha,
|
3201
|
+
tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
|
3198
3202
|
)
|
3199
3203
|
|
3200
3204
|
|
@@ -3212,6 +3216,7 @@ async def kill_all_emsys():
|
|
3212
3216
|
sucesso=False,
|
3213
3217
|
retorno=f"Erro ao fechar o emsys, erro{e}",
|
3214
3218
|
status=RpaHistoricoStatusEnum.Falha,
|
3219
|
+
tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
|
3215
3220
|
)
|
3216
3221
|
|
3217
3222
|
async def errors_generate_after_import(xml_nota: str) -> RpaRetornoProcessoDTO:
|
@@ -3297,9 +3302,10 @@ async def errors_generate_after_import(xml_nota: str) -> RpaRetornoProcessoDTO:
|
|
3297
3302
|
f"Itens nao localizados para o fornecedor salvo e retornando como falha no backoffice para correção...\n"
|
3298
3303
|
)
|
3299
3304
|
return RpaRetornoProcessoDTO(
|
3300
|
-
sucesso=
|
3305
|
+
sucesso=False,
|
3301
3306
|
retorno=f"Itens nao localizados para o fornecedor, Mensagem: {conteudo}",
|
3302
|
-
status=RpaHistoricoStatusEnum.
|
3307
|
+
status=RpaHistoricoStatusEnum.Falha,
|
3308
|
+
tags=[RpaTagDTO(descricao=RpaTagEnum.Negocio)]
|
3303
3309
|
)
|
3304
3310
|
else:
|
3305
3311
|
console.print(f"Botao Salvar - Não foi encontrado...\n")
|
@@ -3313,4 +3319,5 @@ async def errors_generate_after_import(xml_nota: str) -> RpaRetornoProcessoDTO:
|
|
3313
3319
|
sucesso=False,
|
3314
3320
|
retorno=f"Erro ao processar - Tela de Erros gerados na importação do NF-e, {e}",
|
3315
3321
|
status=RpaHistoricoStatusEnum.Falha,
|
3322
|
+
tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
|
3316
3323
|
)
|