worker-automate-hub 0.5.16__py3-none-any.whl → 0.5.18__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.

Files changed (35) hide show
  1. worker_automate_hub/tasks/jobs/coleta_dje_process.py +12 -0
  2. worker_automate_hub/tasks/jobs/conexao_rdp.py +4 -4
  3. worker_automate_hub/tasks/jobs/descartes.py +21 -18
  4. worker_automate_hub/tasks/jobs/ecac_estadual_go.py +8 -6
  5. worker_automate_hub/tasks/jobs/ecac_estadual_main.py +4 -2
  6. worker_automate_hub/tasks/jobs/ecac_estadual_mt.py +8 -6
  7. worker_automate_hub/tasks/jobs/ecac_estadual_sc.py +5 -3
  8. worker_automate_hub/tasks/jobs/ecac_estadual_sp.py +9 -7
  9. worker_automate_hub/tasks/jobs/ecac_federal.py +11 -8
  10. worker_automate_hub/tasks/jobs/entrada_de_notas_15.py +14 -12
  11. worker_automate_hub/tasks/jobs/entrada_de_notas_16.py +19 -11
  12. worker_automate_hub/tasks/jobs/entrada_de_notas_207.py +23 -11
  13. worker_automate_hub/tasks/jobs/entrada_de_notas_32.py +63 -32
  14. worker_automate_hub/tasks/jobs/entrada_de_notas_33.py +56 -28
  15. worker_automate_hub/tasks/jobs/entrada_de_notas_34.py +54 -38
  16. worker_automate_hub/tasks/jobs/entrada_de_notas_36.py +35 -21
  17. worker_automate_hub/tasks/jobs/entrada_de_notas_39.py +53 -28
  18. worker_automate_hub/tasks/jobs/entrada_de_notas_500.py +40 -14
  19. worker_automate_hub/tasks/jobs/entrada_de_notas_505.py +28 -14
  20. worker_automate_hub/tasks/jobs/entrada_de_notas_7139.py +18 -12
  21. worker_automate_hub/tasks/jobs/entrada_de_notas_9.py +40 -13
  22. worker_automate_hub/tasks/jobs/exemplo_processo.py +3 -0
  23. worker_automate_hub/tasks/jobs/fechar_conexao_rdp.py +3 -3
  24. worker_automate_hub/tasks/jobs/fidc_gerar_nosso_numero.py +9 -7
  25. worker_automate_hub/tasks/jobs/login_emsys.py +2 -1
  26. worker_automate_hub/tasks/jobs/playground.py +4 -0
  27. worker_automate_hub/tasks/jobs/sped_fiscal.py +24 -0
  28. worker_automate_hub/tasks/jobs/transferencias.py +28 -26
  29. worker_automate_hub/tasks/task_executor.py +3 -0
  30. worker_automate_hub/utils/util.py +148 -141
  31. worker_automate_hub/utils/utils_nfe_entrada.py +10 -0
  32. {worker_automate_hub-0.5.16.dist-info → worker_automate_hub-0.5.18.dist-info}/METADATA +1 -1
  33. {worker_automate_hub-0.5.16.dist-info → worker_automate_hub-0.5.18.dist-info}/RECORD +35 -35
  34. {worker_automate_hub-0.5.16.dist-info → worker_automate_hub-0.5.18.dist-info}/WHEEL +0 -0
  35. {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
- status=RpaHistoricoStatusEnum.Falha,
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
- "sucesso": True,
2473
- "retorno": f"Tela de Itens fornecedor - Multiplas referencias",
2474
- "window": "MultiplasRef",
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(f"Janela 'TMessageForm' encontrada!")
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(f"Aguardando tela de aguarde desaparecer ou conectar a tela de information...\n")
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(f"Janela 'TMessageForm' encontrada!")
2502
+ console.print("Janela 'TMessageForm' encontrada!")
2501
2503
  break
2502
2504
  except:
2503
- return {
2504
- "sucesso": True,
2505
- "retorno": f"Tela de aguardar carregada - Seguindo com andamento do processo",
2506
- "window": "NCM",
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(f"Itens nao localizados para o fornecedor...\n")
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
- console.print(
2520
- "Verificando a existencia de tela de selecionar Itens Fornecedor...\n"
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
- "sucesso": True,
2529
- "retorno": f"Tela de Itens fornecedor - Multiplas referencias",
2530
- "window": "MultiplasRef",
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("TFrmExibeLogErroImportacaoNfe","TFrmExibeLogErroImportacaoNfe")
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(f"Aguardando confirmação de tela de erro importação NFe...\n")
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(f"Janela 'Information' encontrada!")
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("TFrmExibeLogErroImportacaoNfe","TFrmExibeLogErroImportacaoNfe")
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 para informar o caminho do arquivo não encontrada. Tentativa {i + 1}/{max_attempts}."
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
- raise Exception(
2610
- "Número máximo de tentativas atingido. Tela para informar o caminho do arquivo existe."
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
- "Interagindo com a tela para informar o caminho do arquivo...\n"
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(f"Arquivo salvo com sucesso... \n")
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
- f"Removendo o arquivo e enviando os itens para o backoffice... \n"
2645
- )
2646
- console.print(
2647
- f"Itens nao localizados para o fornecedor salvo e retornando como falha no backoffice para correção...\n"
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
- console.print(f"Botao Salvar - Não foi encontrado...\n")
2656
- return {
2657
- "sucesso": False,
2658
- "retorno": f"Botao Salvar - Não foi encontrado",
2659
- "window": "Itens",
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
- "sucesso": False,
2664
- "retorno": f"Tela para salvar as informações dos itens com erro não encontrada, tentar novamente...",
2665
- "window": "Erro",
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
- "sucesso": False,
2670
- "retorno": f"Erro não mapeado, pop-up Confirm não encontrado...",
2671
- "window": "Erro",
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(f"Tela de NCM para o fornecedor...\n")
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
- "sucesso": True,
2682
- "retorno": f"Tela de NCM - clicado em NO para andamento do processo ",
2683
- "window": "NCM",
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=True,
3305
+ sucesso=False,
3301
3306
  retorno=f"Itens nao localizados para o fornecedor, Mensagem: {conteudo}",
3302
- status=RpaHistoricoStatusEnum.Sucesso,
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
  )