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.
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
  )