worker-automate-hub 0.5.84__tar.gz → 0.5.86__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (81) hide show
  1. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/PKG-INFO +1 -1
  2. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/pyproject.toml +1 -1
  3. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/tasks/jobs/devolucao_prazo_a_faturar.py +79 -9
  4. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/tasks/jobs/entrada_de_notas_7139.py +41 -2
  5. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/utils/util.py +13 -2
  6. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/README.md +0 -0
  7. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/__init__.py +0 -0
  8. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/api/__init__.py +0 -0
  9. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/api/ahead_service.py +0 -0
  10. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/api/client.py +0 -0
  11. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/api/helpers/__init__.py +0 -0
  12. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/api/helpers/api_helpers.py +0 -0
  13. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/api/rdp_service.py +0 -0
  14. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/api/rpa_fila_service.py +0 -0
  15. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/api/rpa_historico_service.py +0 -0
  16. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/api/webhook_service.py +0 -0
  17. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/cli.py +0 -0
  18. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/config/__init__.py +0 -0
  19. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/config/settings.py +0 -0
  20. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/config.py +0 -0
  21. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/core/so_manipulation.py +0 -0
  22. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/decorators/__init__.py +0 -0
  23. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/decorators/deprecation.py +0 -0
  24. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/decorators/rate_limit.py +0 -0
  25. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/decorators/repeat.py +0 -0
  26. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/decorators/retry.py +0 -0
  27. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/decorators/singleton.py +0 -0
  28. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/decorators/timeit.py +0 -0
  29. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/models/__init__.py +0 -0
  30. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/models/dao/__init__.py +0 -0
  31. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/models/dao/rpa_configuracao.py +0 -0
  32. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/models/dao/rpa_fila.py +0 -0
  33. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/models/dao/rpa_historico.py +0 -0
  34. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/models/dao/rpa_processo.py +0 -0
  35. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/models/dao/rpa_robo.py +0 -0
  36. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/models/dto/__init__.py +0 -0
  37. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/models/dto/rpa_historico_request_dto.py +0 -0
  38. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/models/dto/rpa_processo_entrada_dto.py +0 -0
  39. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/models/dto/rpa_processo_rdp_dto.py +0 -0
  40. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/models/dto/rpa_sistema_dto.py +0 -0
  41. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/tasks/__init__.py +0 -0
  42. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/tasks/jobs/__init__.py +0 -0
  43. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/tasks/jobs/coleta_dje_process.py +0 -0
  44. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/tasks/jobs/conexao_rdp.py +0 -0
  45. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/tasks/jobs/descartes.py +0 -0
  46. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/tasks/jobs/ecac_estadual_go.py +0 -0
  47. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/tasks/jobs/ecac_estadual_main.py +0 -0
  48. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/tasks/jobs/ecac_estadual_mt.py +0 -0
  49. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/tasks/jobs/ecac_estadual_sc.py +0 -0
  50. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/tasks/jobs/ecac_estadual_sp.py +0 -0
  51. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/tasks/jobs/ecac_federal.py +0 -0
  52. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/tasks/jobs/entrada_de_notas_15.py +0 -0
  53. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/tasks/jobs/entrada_de_notas_16.py +0 -0
  54. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/tasks/jobs/entrada_de_notas_207.py +0 -0
  55. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/tasks/jobs/entrada_de_notas_32.py +0 -0
  56. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/tasks/jobs/entrada_de_notas_33.py +0 -0
  57. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/tasks/jobs/entrada_de_notas_34.py +0 -0
  58. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/tasks/jobs/entrada_de_notas_36.py +0 -0
  59. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/tasks/jobs/entrada_de_notas_39.py +0 -0
  60. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/tasks/jobs/entrada_de_notas_500.py +0 -0
  61. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/tasks/jobs/entrada_de_notas_505.py +0 -0
  62. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/tasks/jobs/entrada_de_notas_9.py +0 -0
  63. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/tasks/jobs/exemplo_processo.py +0 -0
  64. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/tasks/jobs/fechar_conexao_rdp.py +0 -0
  65. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/tasks/jobs/fidc_gerar_nosso_numero.py +0 -0
  66. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/tasks/jobs/fidc_remessa_cobranca_cnab240.py +0 -0
  67. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/tasks/jobs/login_emsys.py +0 -0
  68. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/tasks/jobs/login_emsys_versao_especifica.py +0 -0
  69. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/tasks/jobs/playground.py +0 -0
  70. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/tasks/jobs/sped_fiscal.py +0 -0
  71. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/tasks/jobs/transferencias.py +0 -0
  72. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/tasks/task_definitions.py +0 -0
  73. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/tasks/task_executor.py +0 -0
  74. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/utils/__init__.py +0 -0
  75. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/utils/env.py +0 -0
  76. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/utils/get_creds_gworkspace.py +0 -0
  77. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/utils/logger.py +0 -0
  78. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/utils/toast.py +0 -0
  79. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/utils/updater.py +0 -0
  80. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/utils/utils_nfe_entrada.py +0 -0
  81. {worker_automate_hub-0.5.84 → worker_automate_hub-0.5.86}/worker_automate_hub/worker.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: worker-automate-hub
3
- Version: 0.5.84
3
+ Version: 0.5.86
4
4
  Summary: Worker Automate HUB é uma aplicação para automatizar rotinas de RPA nos ambientes Argenta.
5
5
  Author: Joel Paim
6
6
  Requires-Python: >=3.12,<4.0
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "worker-automate-hub"
3
- version = "0.5.84"
3
+ version = "0.5.86"
4
4
  description = "Worker Automate HUB é uma aplicação para automatizar rotinas de RPA nos ambientes Argenta."
5
5
  authors = ["Joel Paim"]
6
6
  readme = "README.md"
@@ -12,6 +12,7 @@ from pywinauto.application import Application
12
12
  from pypdf import PdfReader
13
13
  from PIL import Image, ImageEnhance
14
14
  from pywinauto.keyboard import send_keys
15
+ from pywinauto.mouse import double_click
15
16
  import win32clipboard
16
17
  from pywinauto_recorder.player import set_combobox
17
18
  from rich.console import Console
@@ -51,6 +52,7 @@ from worker_automate_hub.utils.util import (
51
52
  type_text_into_field,
52
53
  worker_sleep,
53
54
  post_partner,
55
+ get_text_display_window,
54
56
  )
55
57
 
56
58
  pyautogui.PAUSE = 0.5
@@ -832,12 +834,15 @@ async def devolucao_prazo_a_faturar(task: RpaProcessoEntradaDTO) -> RpaRetornoPr
832
834
  if information_pop_up["IsOpened"] == True:
833
835
  msg_pop_up = await ocr_by_class(numero_nota_fiscal, "TMessageForm", "TMessageForm")
834
836
  if msg_pop_up.sucesso:
835
- if 'operação concl' in msg_pop_up or 'operacao concl' in msg_pop_up:
836
- information_operacao_concluida = main_window.child_window(class_name="TMessageForm")
837
- btn_ok = information_operacao_concluida.child_window(class_name="TButton")
838
- btn_ok.click()
839
- await worker_sleep(4)
840
- main_window.close()
837
+ if 'operação concl' in msg_pop_up.lower() or 'operacao concl' in msg_pop_up.lower():
838
+ try:
839
+ information_operacao_concluida = main_window.child_window(class_name="TMessageForm")
840
+ btn_ok = information_operacao_concluida.child_window(class_name="TButton")
841
+ btn_ok.click()
842
+ await worker_sleep(4)
843
+ main_window.close()
844
+ except:
845
+ pyautogui.press('enter')
841
846
  break
842
847
  else:
843
848
  retorno = f"Pop up nao mapeado para seguimento do robo {msg_pop_up} \nEtapas Executadas:\n{steps}"
@@ -874,6 +879,44 @@ async def devolucao_prazo_a_faturar(task: RpaProcessoEntradaDTO) -> RpaRetornoPr
874
879
  )
875
880
 
876
881
 
882
+ console.print("Verificando se a nota foi transmitida com sucesso")
883
+ app = Application().connect(class_name="TFrmProcessamentoFEe2", timeout=15)
884
+ main_window = app["TFrmProcessamentoFEe2"]
885
+ main_window.set_focus()
886
+
887
+ rect = main_window.rectangle()
888
+ center_x = (rect.left + rect.right) // 2
889
+ center_y = (rect.top + rect.bottom) // 2
890
+
891
+ adjusted_center_y = center_y + 10
892
+ double_click(coords=(center_x, adjusted_center_y))
893
+
894
+ with pyautogui.hold('ctrl'):
895
+ pyautogui.press('c')
896
+ await worker_sleep(1)
897
+ with pyautogui.hold('ctrl'):
898
+ pyautogui.press('c')
899
+
900
+ win32clipboard.OpenClipboard()
901
+ pop_up_status = win32clipboard.GetClipboardData().strip()
902
+ win32clipboard.CloseClipboard()
903
+ console.print(f"Status copiado: {pop_up_status}")
904
+
905
+ if "autorizado o uso da nf-e" in pop_up_status.lower():
906
+ console.print("Sucesso ao transmitir...\n")
907
+ main_window.close()
908
+ else:
909
+ get_error_msg = await get_text_display_window(pop_up_status)
910
+ console.print(f"Msg Rejeição: {get_error_msg}")
911
+ retorno = f"Erro ao transmitir, mensagem de rejeição {get_error_msg} \nEtapas Executadas:\n{steps}"
912
+ return RpaRetornoProcessoDTO(
913
+ sucesso=False,
914
+ retorno=result,
915
+ status=RpaHistoricoStatusEnum.Falha,
916
+ tags=[RpaTagDTO(descricao=RpaTagEnum.Negocio)]
917
+ )
918
+
919
+
877
920
  #PROCESSO DE IMPRESSÃO
878
921
  console.print("Conectando a janela para seguir com o processo de impressão...\n")
879
922
  app = Application().connect(class_name="TFrmGerenciadorNFe2", timeout=60)
@@ -889,6 +932,7 @@ async def devolucao_prazo_a_faturar(task: RpaProcessoEntradaDTO) -> RpaRetornoPr
889
932
  app = Application().connect(class_name="TFrmConfigurarTemplateDANF2", timeout=60)
890
933
  main_window = app["TFrmGerenciadorNFe2"]
891
934
  main_window.set_focus()
935
+ console.print("Selecionando PDF...\n")
892
936
  btn_selecionar_pdf = main_window.child_window(class_name="TRadioButton", found_index=1)
893
937
  btn_selecionar_pdf.click()
894
938
  await worker_sleep(2)
@@ -967,6 +1011,7 @@ async def devolucao_prazo_a_faturar(task: RpaProcessoEntradaDTO) -> RpaRetornoPr
967
1011
  pyautogui.press("enter")
968
1012
  await worker_sleep(2)
969
1013
  pyautogui.press("enter")
1014
+ await worker_sleep(4)
970
1015
  console.print(f"\nPesquisa: 'Cadastro Pré venda' realizada com sucesso",style="bold green")
971
1016
  cadastro_pre_venda = await is_window_open_by_class("TFrmPreVenda", "TFrmPreVenda")
972
1017
  if cadastro_pre_venda["IsOpened"] == True:
@@ -1139,7 +1184,8 @@ async def devolucao_prazo_a_faturar(task: RpaProcessoEntradaDTO) -> RpaRetornoPr
1139
1184
  tags=[RpaTagDTO(descricao=RpaTagEnum.Negocio)]
1140
1185
  )
1141
1186
 
1142
- steps += 'ETAPA 04 - PRE VENDA INCLUIDA COM SUCESSO'
1187
+
1188
+ console.print("VERIFICANDO SE A PRÉ VENDA FOI INCLUIDA COM SUCESSO... \n")
1143
1189
  #VERIFICANDO SE A PRÉ VENDA FOI INCLUIDA COM SUCESSO
1144
1190
  app = Application().connect(class_name="TFrmIncluiItemPreVenda", timeout=60)
1145
1191
  main_window = app["Informação"]
@@ -1147,16 +1193,21 @@ async def devolucao_prazo_a_faturar(task: RpaProcessoEntradaDTO) -> RpaRetornoPr
1147
1193
 
1148
1194
  btn_ok = main_window.child_window(class_name="Button")
1149
1195
  btn_ok.click()
1196
+ await worker_sleep(1)
1197
+ steps += 'ETAPA 04 - PRE VENDA INCLUIDA COM SUCESSO'
1150
1198
 
1151
1199
  #CONFIRMANDO POP UP DE PRÉ VENDA
1200
+ console.print("CONFIRMANDO POP UP DE PRÉ VENDA... \n")
1152
1201
  app = Application().connect(class_name="TFrmIncluiItemPreVenda", timeout=60)
1153
1202
  main_window = app["Confirm"]
1154
1203
  main_window.set_focus()
1155
1204
 
1156
1205
  btn_yes = main_window.child_window(class_name="TButton", found_index=1)
1157
1206
  btn_yes.click()
1207
+ await worker_sleep(1)
1158
1208
 
1159
1209
  #CONFIRMANDO NA TELA DE PRE VENDA
1210
+ console.print("CONFIRMANDO POP UP DE PRÉ VENDA 2... \n")
1160
1211
  app = Application().connect(class_name="TFrmIncluiItemPreVenda", timeout=60)
1161
1212
  main_window = app["TFrmIncluiItemPreVenda"]
1162
1213
  main_window.set_focus()
@@ -1167,6 +1218,8 @@ async def devolucao_prazo_a_faturar(task: RpaProcessoEntradaDTO) -> RpaRetornoPr
1167
1218
  btn_confirmar.click()
1168
1219
  await worker_sleep(3)
1169
1220
 
1221
+ #CONFIRMANDO NA TELA DE PRE VENDA
1222
+ console.print("CONFIRMANDO POP UP DE PRÉ VENDA 3... \n")
1170
1223
  app = Application().connect(class_name="TFrmIncluiItemPreVenda", timeout=60)
1171
1224
  main_window = app["Confirm"]
1172
1225
  main_window.set_focus()
@@ -1183,7 +1236,8 @@ async def devolucao_prazo_a_faturar(task: RpaProcessoEntradaDTO) -> RpaRetornoPr
1183
1236
  btn_ok.click()
1184
1237
  await worker_sleep(3)
1185
1238
 
1186
-
1239
+ #CONFIRMANDO NA TELA DE PRE VENDA
1240
+ console.print("CONFIRMANDO POP UP DE PRÉ VENDA 4... \n")
1187
1241
  app = Application().connect(class_name="TFrmIncluiItemPreVenda", timeout=60)
1188
1242
  main_window = app["Confirm"]
1189
1243
  main_window.set_focus()
@@ -1193,6 +1247,7 @@ async def devolucao_prazo_a_faturar(task: RpaProcessoEntradaDTO) -> RpaRetornoPr
1193
1247
  await worker_sleep(3)
1194
1248
 
1195
1249
  #APROVAR CREDITO
1250
+ console.print("Aprovar Credito... \n")
1196
1251
  app = Application().connect(class_name="TFrmIncluiItemPreVenda", timeout=60)
1197
1252
  main_window = app["TFrmIncluiItemPreVenda"]
1198
1253
  main_window.set_focus()
@@ -1221,6 +1276,7 @@ async def devolucao_prazo_a_faturar(task: RpaProcessoEntradaDTO) -> RpaRetornoPr
1221
1276
 
1222
1277
 
1223
1278
  #FATURAR
1279
+ console.print("FATURAR... \n")
1224
1280
  app = Application().connect(class_name="TFrmIncluiItemPreVenda", timeout=60)
1225
1281
  main_window = app["TFrmIncluiItemPreVenda"]
1226
1282
  main_window.set_focus()
@@ -1256,21 +1312,25 @@ async def devolucao_prazo_a_faturar(task: RpaProcessoEntradaDTO) -> RpaRetornoPr
1256
1312
  await worker_sleep(30)
1257
1313
 
1258
1314
  #FATURAMENTO PRÉ-VENDA
1315
+ console.print("FATURAMENTO PRÉ-VENDA... \n")
1259
1316
  app = Application().connect(class_name="TFrmDadosFaturamentoPreVenda", timeout=60)
1260
1317
  main_window = app["TFrmDadosFaturamentoPreVenda"]
1261
1318
  main_window.set_focus()
1262
1319
 
1263
1320
  #VERIFICANDO SE POSSUI POP UP WARNING
1321
+ console.print("Verificando a presença de Warning... \n")
1264
1322
  warning_boo = False
1265
1323
  try:
1266
1324
  app = Application().connect(class_name="TFrmDadosFaturamentoPreVenda", timeout=60)
1267
1325
  main_window = app["Warning"]
1268
1326
  main_window.set_focus()
1327
+ console.print("Possui Warning... \n")
1269
1328
  btn_ok = main_window.child_window(class_name="TButton", found_index=0)
1270
1329
  btn_ok.click()
1271
1330
  await worker_sleep(3)
1272
1331
  warning_boo = True
1273
1332
  except:
1333
+ console.print("Não Possui Warning... \n")
1274
1334
  pass
1275
1335
 
1276
1336
  #ALTERANDO TRIBUTO DOS ITENS
@@ -1283,7 +1343,9 @@ async def devolucao_prazo_a_faturar(task: RpaProcessoEntradaDTO) -> RpaRetornoPr
1283
1343
  await worker_sleep(2)
1284
1344
  send_keys("%g")
1285
1345
  await worker_sleep(2)
1346
+
1286
1347
 
1348
+ console.print("Conectando para realizar a alteração da tributação do produto... \n")
1287
1349
  app = Application().connect(class_name="TFrmDadosTributacaoProdutoPreVenda", timeout=60)
1288
1350
  main_window = app["TFrmDadosTributacaoProdutoPreVenda"]
1289
1351
 
@@ -1292,10 +1354,12 @@ async def devolucao_prazo_a_faturar(task: RpaProcessoEntradaDTO) -> RpaRetornoPr
1292
1354
 
1293
1355
 
1294
1356
  if not item_arla:
1357
+ console.print("Não é item Arla ajustando tributacao... \n")
1295
1358
  tributacao_icms_select.click()
1296
1359
  await worker_sleep(1)
1297
1360
  set_combobox("||List", "061 - 061- MONOFASICO")
1298
1361
  else:
1362
+ console.print("Item Arla buscando pela aliquota do estado... \n")
1299
1363
  aliquota = None
1300
1364
  for item in conconfig_aliquota_icms:
1301
1365
  if cidade_cliente in item["estado"]:
@@ -1320,6 +1384,8 @@ async def devolucao_prazo_a_faturar(task: RpaProcessoEntradaDTO) -> RpaRetornoPr
1320
1384
  send_keys("%o")
1321
1385
 
1322
1386
 
1387
+ console.print("Processo de ajustar aliquota realizado com sucesso, adicionando a mensagem... \n")
1388
+ console.print("Conectando a janela de pre venda... \n")
1323
1389
  app = Application().connect(class_name="TFrmDadosFaturamentoPreVenda", timeout=60)
1324
1390
  main_window = app["TFrmDadosFaturamentoPreVenda"]
1325
1391
  main_window.set_focus()
@@ -1329,11 +1395,14 @@ async def devolucao_prazo_a_faturar(task: RpaProcessoEntradaDTO) -> RpaRetornoPr
1329
1395
 
1330
1396
  panel_tab_sheet = main_window.child_window(class_name="TcxTabSheet", found_index=0)
1331
1397
  field_observacao = panel_tab_sheet.child_window(class_name="TDBIMemo")
1398
+ console.print(f"Mensagem a ser adicionada\n")
1332
1399
  text_campo_observacao = f"Nome do Motorista: {nota.get("nomeMotorista")} - Placa: {nota.get("placaClienteCorreto")} - Quilometragem do Veículo: {nota.get("quilometragemVeiculo")}"
1400
+ console.print(f"{text_campo_observacao}\n")
1333
1401
  field_observacao.set_edit_text(text_campo_observacao)
1334
- send_keys("%o")
1335
1402
  await worker_sleep(2)
1336
1403
 
1404
+ console.print(f"Mensagem adicionada com sucesso, filizando o processo\n")
1405
+ send_keys("%o")
1337
1406
  app = Application().connect(class_name="TFrmDadosFaturamentoPreVenda", timeout=60)
1338
1407
  main_window = app["Confirm"]
1339
1408
  main_window.set_focus()
@@ -1355,6 +1424,7 @@ async def devolucao_prazo_a_faturar(task: RpaProcessoEntradaDTO) -> RpaRetornoPr
1355
1424
  btn_ok_print_screen.click()
1356
1425
 
1357
1426
  #NAVEGANDO NA TELA DE SALVAR RELATORIO
1427
+ console.print(f"NAVEGANDO NA TELA DE SALVAR RELATORIO\n")
1358
1428
  tpanel_main_window = main_window.child_window(class_name="HWNDView", found_index=0)
1359
1429
  tpanel_element = tpanel_main_window.child_window(class_name="Element", found_index=0)
1360
1430
  tpanel_background = tpanel_element.child_window(class_name="PreviewBackground", found_index=0)
@@ -1,3 +1,4 @@
1
+ import asyncio
1
2
  import getpass
2
3
  import os
3
4
  import warnings
@@ -7,6 +8,7 @@ import pytesseract
7
8
  from PIL import Image, ImageEnhance
8
9
  from pywinauto.application import Application
9
10
  from pywinauto_recorder.player import set_combobox
11
+ from pywinauto.keyboard import send_keys
10
12
  from rich.console import Console
11
13
  from worker_automate_hub.api.ahead_service import save_xml_to_downloads
12
14
  from worker_automate_hub.api.client import (
@@ -316,7 +318,6 @@ async def entrada_de_notas_7139(task: RpaProcessoEntradaDTO) -> RpaRetornoProces
316
318
 
317
319
  await worker_sleep(6)
318
320
 
319
-
320
321
  max_attempts = 7
321
322
  i = 0
322
323
  while i < max_attempts:
@@ -343,6 +344,44 @@ async def entrada_de_notas_7139(task: RpaProcessoEntradaDTO) -> RpaRetornoProces
343
344
  "sucesso": False,
344
345
  "retorno": f"Número máximo de tentativas atingido. A tela para Aguarde não foi encerrada.",
345
346
  }
347
+
348
+ await worker_sleep(2)
349
+ console.print("Navegando pela Janela de Nota Fiscal de Entrada...\n")
350
+ app = Application().connect(class_name="TFrmNotaFiscalEntrada")
351
+ main_window = app["TFrmNotaFiscalEntrada"]
352
+
353
+ main_window.set_focus()
354
+ console.print("Acessando a aba de Pagamentos... \n")
355
+ panel_TPage = main_window.child_window(class_name="TPage", title="Formulario")
356
+ panel_TTabSheet = panel_TPage.child_window(class_name="TcxCustomInnerTreeView")
357
+ panel_TTabSheet.wait("visible")
358
+ panel_TTabSheet.click()
359
+ send_keys("{DOWN " + ("7") + "}")
360
+
361
+ panel_TPage = main_window.child_window(class_name="TPage", title="Formulario")
362
+ panel_TTabSheet = panel_TPage.child_window(class_name="TPageControl")
363
+
364
+ panel_TabPagamento = panel_TTabSheet.child_window(class_name="TTabSheet")
365
+
366
+ panel_TabParcelamento = panel_TTabSheet.child_window(title="Parcelamento")
367
+
368
+ tipo_cobranca = panel_TabParcelamento.child_window(
369
+ class_name="TDBIComboBox", found_index=0
370
+ )
371
+
372
+ console.print("Verificando o tipo de cobrança selecionado... \n")
373
+ tipo_selecionado = tipo_cobranca.window_text()
374
+ if "boleto" in tipo_selecionado.lower() or 'carteira' in tipo_selecionado.lower():
375
+ console.print(f"Tipo de cobrança corretamente selecionado {tipo_selecionado}... \n")
376
+ else:
377
+ console.print(f"Tipo de cobrança não foi selecionado corretamente, interagindo com o campo para selecionar o campo corretamente... \n")
378
+ tipo_cobranca.click()
379
+ try:
380
+ set_combobox("||List", "BANCO DO BRASIL BOLETO")
381
+ except:
382
+ set_combobox("||List", "CARTEIRA")
383
+
384
+ await worker_sleep(2)
346
385
 
347
386
  # Inclui registro
348
387
  console.print(f"Incluindo registro...\n")
@@ -399,4 +438,4 @@ async def entrada_de_notas_7139(task: RpaProcessoEntradaDTO) -> RpaRetornoProces
399
438
 
400
439
  finally:
401
440
  # Deleta o xml
402
- await delete_xml(nota.get("nfe"))
441
+ await delete_xml(nota.get("nfe"))
@@ -3849,9 +3849,9 @@ async def gerenciador_nf_header(periodo: str, cod_cliente: str) -> RpaRetornoPro
3849
3849
  if i == max_attempts:
3850
3850
  return RpaRetornoProcessoDTO(
3851
3851
  sucesso=False,
3852
- retorno=f"Tempo esgotado, No data display ainda presente na busca pela nota em Gerenciador NF-e",
3852
+ retorno=f"Tempo esgotado, No data display ainda presente na busca pela nota em Gerenciador NF-e, nota não encontrada",
3853
3853
  status=RpaHistoricoStatusEnum.Falha,
3854
- tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
3854
+ tags=[RpaTagDTO(descricao=RpaTagEnum.Negocio)]
3855
3855
  )
3856
3856
 
3857
3857
  try:
@@ -4039,3 +4039,14 @@ async def pessoas_ativa_cliente_fornecedor(cod_cliente: str, ativar_cliente: boo
4039
4039
  status=RpaHistoricoStatusEnum.Falha,
4040
4040
  tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
4041
4041
  )
4042
+
4043
+
4044
+
4045
+ async def get_text_display_window(dados_texto):
4046
+ linhas = dados_texto.strip().split("\n")
4047
+
4048
+ for linha in linhas[1:]:
4049
+ match = re.search(r"Rejeicao:(.*)", linha)
4050
+ if match:
4051
+ return match.group(1).strip()
4052
+ return ''