worker-automate-hub 0.5.16__py3-none-any.whl → 0.5.18__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/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 +35 -21
- 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.18.dist-info}/METADATA +1 -1
- {worker_automate_hub-0.5.16.dist-info → worker_automate_hub-0.5.18.dist-info}/RECORD +35 -35
- {worker_automate_hub-0.5.16.dist-info → worker_automate_hub-0.5.18.dist-info}/WHEEL +0 -0
- {worker_automate_hub-0.5.16.dist-info → worker_automate_hub-0.5.18.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.Negocio)]
|
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
|
)
|