worker-automate-hub 0.5.678__tar.gz → 0.5.680__tar.gz

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.

Potentially problematic release.


This version of worker-automate-hub might be problematic. Click here for more details.

Files changed (103) hide show
  1. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/PKG-INFO +1 -1
  2. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/pyproject.toml +1 -1
  3. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/tasks/jobs/abertura_livros_fiscais.py +129 -72
  4. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/README.md +0 -0
  5. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/__init__.py +0 -0
  6. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/api/__init__.py +0 -0
  7. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/api/ahead_service.py +0 -0
  8. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/api/client.py +0 -0
  9. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/api/datalake_service.py +0 -0
  10. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/api/helpers/__init__.py +0 -0
  11. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/api/helpers/api_helpers.py +0 -0
  12. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/api/rdp_service.py +0 -0
  13. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/api/rpa_fila_service.py +0 -0
  14. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/api/rpa_historico_service.py +0 -0
  15. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/api/webhook_service.py +0 -0
  16. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/cli.py +0 -0
  17. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/config/__init__.py +0 -0
  18. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/config/settings.py +0 -0
  19. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/config.py +0 -0
  20. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/core/so_manipulation.py +0 -0
  21. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/decorators/__init__.py +0 -0
  22. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/decorators/deprecation.py +0 -0
  23. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/decorators/rate_limit.py +0 -0
  24. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/decorators/repeat.py +0 -0
  25. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/decorators/retry.py +0 -0
  26. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/decorators/singleton.py +0 -0
  27. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/decorators/timeit.py +0 -0
  28. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/models/__init__.py +0 -0
  29. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/models/dao/__init__.py +0 -0
  30. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/models/dao/rpa_configuracao.py +0 -0
  31. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/models/dao/rpa_fila.py +0 -0
  32. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/models/dao/rpa_historico.py +0 -0
  33. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/models/dao/rpa_processo.py +0 -0
  34. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/models/dao/rpa_robo.py +0 -0
  35. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/models/dto/__init__.py +0 -0
  36. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/models/dto/rpa_historico_request_dto.py +0 -0
  37. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/models/dto/rpa_processo_entrada_dto.py +0 -0
  38. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/models/dto/rpa_processo_rdp_dto.py +0 -0
  39. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/models/dto/rpa_sap_dto.py +0 -0
  40. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/models/dto/rpa_sistema_dto.py +0 -0
  41. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/tasks/__init__.py +0 -0
  42. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/tasks/jobs/__init__.py +0 -0
  43. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/tasks/jobs/coleta_dje_process.py +0 -0
  44. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/tasks/jobs/conexao_rdp.py +0 -0
  45. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/tasks/jobs/cte_manual.py +0 -0
  46. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/tasks/jobs/cte_xml.py +0 -0
  47. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/tasks/jobs/descartes.py +0 -0
  48. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/tasks/jobs/devolucao_ctf.py +0 -0
  49. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/tasks/jobs/devolucao_ctf_35.py +0 -0
  50. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/tasks/jobs/devolucao_prazo_a_faturar.py +0 -0
  51. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/tasks/jobs/ecac_estadual_go.py +0 -0
  52. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/tasks/jobs/ecac_estadual_main.py +0 -0
  53. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/tasks/jobs/ecac_estadual_mt.py +0 -0
  54. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/tasks/jobs/ecac_estadual_sc.py +0 -0
  55. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/tasks/jobs/ecac_estadual_sp.py +0 -0
  56. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/tasks/jobs/ecac_federal.py +0 -0
  57. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/tasks/jobs/entrada_cte_1353.py +0 -0
  58. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/tasks/jobs/entrada_cte_333.py +0 -0
  59. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/tasks/jobs/entrada_de_notas_15.py +0 -0
  60. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/tasks/jobs/entrada_de_notas_16.py +0 -0
  61. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/tasks/jobs/entrada_de_notas_207.py +0 -0
  62. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/tasks/jobs/entrada_de_notas_32.py +0 -0
  63. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/tasks/jobs/entrada_de_notas_33.py +0 -0
  64. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/tasks/jobs/entrada_de_notas_34.py +0 -0
  65. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/tasks/jobs/entrada_de_notas_36.py +0 -0
  66. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/tasks/jobs/entrada_de_notas_39.py +0 -0
  67. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/tasks/jobs/entrada_de_notas_500.py +0 -0
  68. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/tasks/jobs/entrada_de_notas_503.py +0 -0
  69. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/tasks/jobs/entrada_de_notas_505.py +0 -0
  70. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/tasks/jobs/entrada_de_notas_7139.py +0 -0
  71. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/tasks/jobs/entrada_de_notas_9.py +0 -0
  72. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/tasks/jobs/entrada_de_notas_9000.py +0 -0
  73. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/tasks/jobs/exemplo_processo.py +0 -0
  74. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/tasks/jobs/extracao_fechamento_contabil.py +0 -0
  75. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/tasks/jobs/extracao_fechamento_emsys.py +0 -0
  76. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/tasks/jobs/fechar_conexao_rdp.py +0 -0
  77. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/tasks/jobs/fidc_exportacao_docs_portal_b2b.py +0 -0
  78. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/tasks/jobs/fidc_gerar_nosso_numero.py +0 -0
  79. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/tasks/jobs/fidc_remessa_cobranca_cnab240.py +0 -0
  80. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/tasks/jobs/fidc_retorno_cobranca.py +0 -0
  81. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/tasks/jobs/geracao_aprovacao_pedidos.py +0 -0
  82. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/tasks/jobs/geracao_aprovacao_pedidos_novo.py +0 -0
  83. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/tasks/jobs/integracao_contabil.py +0 -0
  84. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/tasks/jobs/integracao_contabil_generica.py +0 -0
  85. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/tasks/jobs/lancamento_pis_cofins.py +0 -0
  86. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/tasks/jobs/lancamento_rateio.py +0 -0
  87. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/tasks/jobs/login_emsys.py +0 -0
  88. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/tasks/jobs/login_emsys_versao_especifica.py +0 -0
  89. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/tasks/jobs/notas_faturamento_sap.py +0 -0
  90. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/tasks/jobs/playground.py +0 -0
  91. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/tasks/jobs/sped_fiscal.py +0 -0
  92. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/tasks/jobs/transferencias.py +0 -0
  93. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/tasks/task_definitions.py +0 -0
  94. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/tasks/task_executor.py +0 -0
  95. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/utils/__init__.py +0 -0
  96. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/utils/env.py +0 -0
  97. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/utils/get_creds_gworkspace.py +0 -0
  98. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/utils/logger.py +0 -0
  99. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/utils/toast.py +0 -0
  100. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/utils/updater.py +0 -0
  101. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/utils/util.py +0 -0
  102. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/worker_automate_hub/utils/utils_nfe_entrada.py +0 -0
  103. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.680}/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.678
3
+ Version: 0.5.680
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.678"
3
+ version = "0.5.680"
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"
@@ -7,6 +7,7 @@ import sys
7
7
  import os
8
8
  from pywinauto.findwindows import ElementNotFoundError
9
9
  from pywinauto.keyboard import send_keys
10
+
10
11
  # sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..', '..')))
11
12
 
12
13
 
@@ -113,7 +114,7 @@ async def abertura_livros_fiscais(task: RpaProcessoEntradaDTO) -> RpaRetornoProc
113
114
  app = Application().connect(class_name="TMessageForm", timeout=5)
114
115
  main_window = app["TMessageForm"]
115
116
  main_window.set_focus()
116
-
117
+
117
118
  # Clicar em Não
118
119
  console.print("Navegando nos elementos...\n")
119
120
  main_window.child_window(class_name="TButton", found_index=0).click()
@@ -144,7 +145,7 @@ async def abertura_livros_fiscais(task: RpaProcessoEntradaDTO) -> RpaRetornoProc
144
145
  )
145
146
 
146
147
  await worker_sleep(2)
147
-
148
+
148
149
  console.print("Aguardando janela 'Movimento de Livro Fiscal' aparecer...")
149
150
 
150
151
  # Tempo limite de espera (em segundos)
@@ -154,11 +155,15 @@ async def abertura_livros_fiscais(task: RpaProcessoEntradaDTO) -> RpaRetornoProc
154
155
  # Espera até a janela aparecer
155
156
  while True:
156
157
  try:
157
- app = Application().connect(class_name="TFrmMovtoLivroFiscal", timeout=5)
158
+ app = Application().connect(
159
+ class_name="TFrmMovtoLivroFiscal", timeout=5
160
+ )
158
161
  break # Se conectar, sai do loop
159
162
  except ElementNotFoundError:
160
163
  if time() - inicio > timeout:
161
- console.print("[bold red]Erro: Janela 'TFrmMovtoLivroFiscal' não apareceu dentro do tempo limite.[/bold red]")
164
+ console.print(
165
+ "[bold red]Erro: Janela 'TFrmMovtoLivroFiscal' não apareceu dentro do tempo limite.[/bold red]"
166
+ )
162
167
  raise
163
168
  await worker_sleep(2)
164
169
 
@@ -168,7 +173,9 @@ async def abertura_livros_fiscais(task: RpaProcessoEntradaDTO) -> RpaRetornoProc
168
173
  main_window = app["TFrmMovtoLivroFiscal"]
169
174
  main_window.set_focus()
170
175
 
171
- data_input = main_window.child_window(class_name="TDBIEditDate", found_index=0)
176
+ data_input = main_window.child_window(
177
+ class_name="TDBIEditDate", found_index=0
178
+ )
172
179
  data_input.click_input()
173
180
  await worker_sleep(1)
174
181
  data_input.set_edit_text("")
@@ -182,13 +189,17 @@ async def abertura_livros_fiscais(task: RpaProcessoEntradaDTO) -> RpaRetornoProc
182
189
 
183
190
  # Marcando caixa Entrada
184
191
  console.print("Marcando caixa entrada")
185
- entrada = main_window.child_window(class_name="TcxCheckBox", found_index=9).click_input()
192
+ entrada = main_window.child_window(
193
+ class_name="TcxCheckBox", found_index=9
194
+ ).click_input()
186
195
 
187
196
  await worker_sleep(2)
188
197
 
189
198
  # Marcando caixa Saida
190
199
  console.print("Marcando caixa saida")
191
- saida_checkbox = main_window.child_window(class_name="TcxCheckBox", found_index=8)
200
+ saida_checkbox = main_window.child_window(
201
+ class_name="TcxCheckBox", found_index=8
202
+ )
192
203
 
193
204
  # Tenta clicar inicialmente
194
205
  saida_checkbox.click_input()
@@ -216,7 +227,9 @@ async def abertura_livros_fiscais(task: RpaProcessoEntradaDTO) -> RpaRetornoProc
216
227
  print("Tempo esgotado. A imagem não apareceu.")
217
228
  break
218
229
 
219
- print("Imagem não apareceu na tela. Tentando clicar novamente na caixa de saída...")
230
+ print(
231
+ "Imagem não apareceu na tela. Tentando clicar novamente na caixa de saída..."
232
+ )
220
233
  try:
221
234
  saida_checkbox.click_input()
222
235
  except Exception as e:
@@ -224,7 +237,6 @@ async def abertura_livros_fiscais(task: RpaProcessoEntradaDTO) -> RpaRetornoProc
224
237
 
225
238
  time.sleep(intervalo)
226
239
 
227
-
228
240
  await worker_sleep(2)
229
241
 
230
242
  # Clicando em incluir livro
@@ -243,58 +255,74 @@ async def abertura_livros_fiscais(task: RpaProcessoEntradaDTO) -> RpaRetornoProc
243
255
 
244
256
  ##### Janela Pergunta das Geração dos Livros Fiscais #####
245
257
  await worker_sleep(5)
246
- app = Application().connect(class_name="TPerguntasLivrosFiscaisForm", timeout=20)
258
+ app = Application().connect(
259
+ class_name="TPerguntasLivrosFiscaisForm", timeout=20
260
+ )
247
261
  main_window = app["TPerguntasLivrosFiscaisForm"]
248
262
  main_window.set_focus()
249
263
 
250
264
  try:
251
265
  console.print("Clicando sim em janela somar os valores de IPI Frete")
252
- main_window.child_window(class_name="TDBIComboBoxValues", found_index=0).click_input()
266
+ main_window.child_window(
267
+ class_name="TDBIComboBoxValues", found_index=0
268
+ ).click_input()
253
269
 
254
- await worker_sleep(1)
270
+ await worker_sleep(1)
255
271
  send_keys("{ENTER}")
256
- await worker_sleep(2)
272
+ await worker_sleep(2)
257
273
  except:
258
274
  pass
259
275
  console.print("Clicando sim em janela gerar Numero de Serie do SAT")
260
-
276
+
261
277
  try:
262
- main_window.child_window(class_name="TDBIComboBoxValues", found_index=4).click_input()
263
-
264
- await worker_sleep(1)
278
+ main_window.child_window(
279
+ class_name="TDBIComboBoxValues", found_index=4
280
+ ).click_input()
281
+
282
+ await worker_sleep(1)
265
283
  send_keys("{ENTER}")
266
- await worker_sleep(2)
284
+ await worker_sleep(2)
267
285
  except:
268
286
  pass
269
287
 
270
288
  try:
271
- console.print("Clicando sim em janela gerar Numero de Serie a partir da chave do documento")
272
- main_window.child_window(class_name="TDBIComboBoxValues", found_index=1).click_input()
273
-
274
- await worker_sleep(1)
289
+ console.print(
290
+ "Clicando sim em janela gerar Numero de Serie a partir da chave do documento"
291
+ )
292
+ main_window.child_window(
293
+ class_name="TDBIComboBoxValues", found_index=1
294
+ ).click_input()
295
+
296
+ await worker_sleep(1)
275
297
  send_keys("{ENTER}")
276
- await worker_sleep(2)
298
+ await worker_sleep(2)
277
299
  except:
278
300
  pass
279
-
301
+
280
302
  try:
281
- console.print("Clicando sim em janela gerar livro com observação da nota fiscal")
282
- main_window.child_window(class_name="TDBIComboBoxValues", found_index=3).click_input()
283
-
284
- await worker_sleep(1)
303
+ console.print(
304
+ "Clicando sim em janela gerar livro com observação da nota fiscal"
305
+ )
306
+ main_window.child_window(
307
+ class_name="TDBIComboBoxValues", found_index=3
308
+ ).click_input()
309
+
310
+ await worker_sleep(1)
285
311
  send_keys("{ENTER}")
286
- await worker_sleep(2)
312
+ await worker_sleep(2)
287
313
  except:
288
314
  pass
289
-
315
+
290
316
  try:
291
317
  console.print("Clicando sim em janela somar valores de ICMS...")
292
- main_window.child_window(class_name="TDBIComboBoxValues", found_index=2).click_input()
293
-
294
- await worker_sleep(1)
295
- send_keys("{ENTER}")
318
+ main_window.child_window(
319
+ class_name="TDBIComboBoxValues", found_index=2
320
+ ).click_input()
321
+
322
+ await worker_sleep(1)
323
+ send_keys("{ENTER}")
296
324
  except:
297
- pass
325
+ pass
298
326
  await worker_sleep(3)
299
327
 
300
328
  # Clicar em confirmar
@@ -306,7 +334,7 @@ async def abertura_livros_fiscais(task: RpaProcessoEntradaDTO) -> RpaRetornoProc
306
334
  app = Application().connect(title="Gerar Registros", timeout=60)
307
335
  main_window = app["Gerar Registros"]
308
336
  main_window.set_focus()
309
-
337
+
310
338
  # Clicar em Sim
311
339
  main_window.child_window(class_name="Button", found_index=0).click_input()
312
340
 
@@ -322,17 +350,21 @@ async def abertura_livros_fiscais(task: RpaProcessoEntradaDTO) -> RpaRetornoProc
322
350
 
323
351
  while True:
324
352
  janela_aberta = False
325
-
353
+
326
354
  # 1. Verifica se a imagem apareceu e clica em 'Sim' na janela "Informação"
327
355
  try:
328
356
  if pyautogui.locateOnScreen(imagem, confidence=0.9):
329
357
  print("Imagem 'livros_incluidos' apareceu na tela.")
330
358
  try:
331
- app_info = Application().connect(title="Informação", timeout=5)
359
+ app_info = Application().connect(
360
+ title="Informação", timeout=5
361
+ )
332
362
  info_window = app_info["Informação"]
333
363
  info_window.set_focus()
334
364
  console.print("Clicando em 'Sim' na janela Informação...")
335
- info_window.child_window(class_name="Button", found_index=0).click_input()
365
+ info_window.child_window(
366
+ class_name="Button", found_index=0
367
+ ).click_input()
336
368
  except Exception as e:
337
369
  print(f"Erro ao clicar em 'Sim' na janela Informação: {e}")
338
370
  except Exception as e:
@@ -353,7 +385,9 @@ async def abertura_livros_fiscais(task: RpaProcessoEntradaDTO) -> RpaRetornoProc
353
385
 
354
386
  # 2. Verifica e trata janela de confirmação TMessageForm
355
387
  try:
356
- app_msg = Application().connect(class_name="TMessageForm", timeout=2)
388
+ app_msg = Application().connect(
389
+ class_name="TMessageForm", timeout=2
390
+ )
357
391
  form = app_msg["TMessageForm"]
358
392
  console.print("Janela de confirmação 'TMessageForm' encontrada.")
359
393
  form.set_focus()
@@ -366,7 +400,9 @@ async def abertura_livros_fiscais(task: RpaProcessoEntradaDTO) -> RpaRetornoProc
366
400
 
367
401
  # 3. Verifica se a janela do relatório está aberta
368
402
  try:
369
- app_report = Application().connect(class_name="TFrmPreviewRelatorio", timeout=2)
403
+ app_report = Application().connect(
404
+ class_name="TFrmPreviewRelatorio", timeout=2
405
+ )
370
406
  janela = app_report["TFrmPreviewRelatorio"]
371
407
  print("Janela 'TFrmPreviewRelatorio' encontrada.")
372
408
  janela_aberta = True
@@ -385,7 +421,9 @@ async def abertura_livros_fiscais(task: RpaProcessoEntradaDTO) -> RpaRetornoProc
385
421
  print("Tempo esgotado. Relatório não carregado.")
386
422
  break
387
423
 
388
- print("Aguardando janela de relatório... (verificando novas confirmações se houver)")
424
+ print(
425
+ "Aguardando janela de relatório... (verificando novas confirmações se houver)"
426
+ )
389
427
  time.sleep(intervalo)
390
428
 
391
429
  await worker_sleep(5)
@@ -399,7 +437,7 @@ async def abertura_livros_fiscais(task: RpaProcessoEntradaDTO) -> RpaRetornoProc
399
437
  print("Clicou no botão de confirmação.")
400
438
  except:
401
439
  pass
402
-
440
+
403
441
  ##### Janela Pré-visualizando Relatório #####
404
442
  console.print("Fechar Janela Pré-visualizando Relatório ")
405
443
  app = Application().connect(class_name="TFrmPreviewRelatorio", timeout=60)
@@ -433,7 +471,9 @@ async def abertura_livros_fiscais(task: RpaProcessoEntradaDTO) -> RpaRetornoProc
433
471
  texto_atual = campo.window_text().strip()
434
472
  if texto_atual == "":
435
473
  break # Campo foi limpo com sucesso
436
- print(f"Tentativa {tentativa+1}: campo ainda contém texto: '{texto_atual}'")
474
+ print(
475
+ f"Tentativa {tentativa+1}: campo ainda contém texto: '{texto_atual}'"
476
+ )
437
477
 
438
478
  # Continua se o campo estiver limpo
439
479
  campo.type_keys("Livro de Apuração ICMS", with_spaces=True)
@@ -443,7 +483,6 @@ async def abertura_livros_fiscais(task: RpaProcessoEntradaDTO) -> RpaRetornoProc
443
483
  await worker_sleep(2)
444
484
  send_keys("{ENTER}")
445
485
 
446
-
447
486
  await worker_sleep(5)
448
487
 
449
488
  ##### Janela Movimentação de Apuração ICMS #####
@@ -452,12 +491,12 @@ async def abertura_livros_fiscais(task: RpaProcessoEntradaDTO) -> RpaRetornoProc
452
491
  main_window.set_focus()
453
492
 
454
493
  console.print("Clicando no último livro, primeira linha")
455
- pyautogui.click(599,410)
456
-
494
+ pyautogui.click(599, 410)
495
+
457
496
  await worker_sleep(1)
458
497
 
459
- console.print("Clicando em Estornar Livro")
460
- pyautogui.click(667,742)
498
+ console.print("Clicando em Estornar Livro")
499
+ pyautogui.click(667, 742)
461
500
 
462
501
  await worker_sleep(3)
463
502
 
@@ -466,7 +505,7 @@ async def abertura_livros_fiscais(task: RpaProcessoEntradaDTO) -> RpaRetornoProc
466
505
  await worker_sleep(5)
467
506
 
468
507
  console.print("Selecionar Livro Saída aberto")
469
-
508
+
470
509
  # Selecionar linha livro de saída aberto
471
510
  # imagem = "assets\\abertura_livros\\livro_saida_aberto.png"
472
511
  imagem = "assets\\abertura_livros\\livro_saida_aberto.png"
@@ -481,11 +520,14 @@ async def abertura_livros_fiscais(task: RpaProcessoEntradaDTO) -> RpaRetornoProc
481
520
  else:
482
521
  console.print("Imagem livro de saída aberto não encontrado na tela.")
483
522
 
523
+ await worker_sleep(5)
484
524
  # Clicar em alterar livro
485
525
  # imagem = "assets\\abertura_livros\\alterar_livro.png"
486
526
  imagem = "assets\\abertura_livros\\alterar_livro.png"
487
527
  # Tenta localizar a imagem na tela
488
- localizacao = pyautogui.locateCenterOnScreen(imagem, confidence=0.9) # você pode ajustar o confidence
528
+ localizacao = pyautogui.locateCenterOnScreen(
529
+ imagem, confidence=0.9
530
+ ) # você pode ajustar o confidence
489
531
 
490
532
  if localizacao:
491
533
  print(f"Imagem alterar livro encontrado em: {localizacao}")
@@ -500,7 +542,9 @@ async def abertura_livros_fiscais(task: RpaProcessoEntradaDTO) -> RpaRetornoProc
500
542
  # imagem = "assets\\abertura_livros\\livro_fiscal.png"
501
543
  imagem = "assets\\abertura_livros\\livro_fiscal.png"
502
544
  # Tenta localizar a imagem na tela
503
- localizacao = pyautogui.locateCenterOnScreen(imagem, confidence=0.9) # você pode ajustar o confidence
545
+ localizacao = pyautogui.locateCenterOnScreen(
546
+ imagem, confidence=0.9
547
+ ) # você pode ajustar o confidence
504
548
 
505
549
  if localizacao:
506
550
  print(f"Imagem Livro fiscal encontrado em: {localizacao}")
@@ -508,15 +552,17 @@ async def abertura_livros_fiscais(task: RpaProcessoEntradaDTO) -> RpaRetornoProc
508
552
  pyautogui.click()
509
553
  else:
510
554
  console.print("Imagem Livro fiscal não encontrada na tela.")
511
-
555
+
512
556
  await worker_sleep(4)
513
-
557
+
514
558
  # Clicar em Gerar Relatório
515
559
  # imagem = "assets\\abertura_livros\\gerar_registros.png"
516
560
  imagem = "assets\\abertura_livros\\gerar_registros.png"
517
561
 
518
562
  # Tenta localizar a imagem na tela
519
- localizacao = pyautogui.locateCenterOnScreen(imagem, confidence=0.9) # você pode ajustar o confidence
563
+ localizacao = pyautogui.locateCenterOnScreen(
564
+ imagem, confidence=0.9
565
+ ) # você pode ajustar o confidence
520
566
 
521
567
  if localizacao:
522
568
  print(f"Imagem gerar relatório encontrado em: {localizacao}")
@@ -530,21 +576,23 @@ async def abertura_livros_fiscais(task: RpaProcessoEntradaDTO) -> RpaRetornoProc
530
576
  app = Application().connect(class_name="TMsgBox", timeout=60)
531
577
  main_window = app["TMsgBox"]
532
578
  main_window.set_focus()
533
-
579
+
534
580
  # Clicar em Sim
535
581
  main_window.child_window(class_name="TBitBtn", found_index=1).click_input()
536
582
 
537
583
  await worker_sleep(4)
538
584
 
539
585
  console.print("Clicar em confirmar")
540
- app = Application().connect(class_name="TPerguntasLivrosFiscaisForm", timeout=60)
586
+ app = Application().connect(
587
+ class_name="TPerguntasLivrosFiscaisForm", timeout=60
588
+ )
541
589
  main_window = app["TPerguntasLivrosFiscaisForm"]
542
590
  main_window.set_focus()
543
591
  main_window.child_window(class_name="TButton", found_index=1).click_input()
544
592
 
545
593
  await worker_sleep(5)
546
594
 
547
- # Clicar no aviso
595
+ # Clicar no aviso
548
596
  try:
549
597
  app_msgbox = Application().connect(class_name="TMsgBox", timeout=10)
550
598
  box = app_msgbox["TMsgBox"]
@@ -552,9 +600,10 @@ async def abertura_livros_fiscais(task: RpaProcessoEntradaDTO) -> RpaRetornoProc
552
600
  box.set_focus()
553
601
  box.child_window(class_name="TBitBtn", found_index=0).click_input()
554
602
  print("Clicou no botão 'TBitBtn'.")
603
+ await worker_sleep(2)
555
604
  except:
556
605
  pass
557
- await worker_sleep(3)
606
+ await worker_sleep(5)
558
607
  try:
559
608
  app_msg = Application().connect(class_name="TMessageForm", timeout=10)
560
609
  form = app_msg["TMessageForm"]
@@ -562,9 +611,10 @@ async def abertura_livros_fiscais(task: RpaProcessoEntradaDTO) -> RpaRetornoProc
562
611
  form.set_focus()
563
612
  form.child_window(class_name="TButton", found_index=1).click_input()
564
613
  print("Clicou no botão de confirmação.")
614
+ await worker_sleep(2)
565
615
  except:
566
616
  pass
567
- await worker_sleep(3)
617
+ await worker_sleep(5)
568
618
  try:
569
619
  app_msg = Application().connect(class_name="TMessageForm", timeout=10)
570
620
  form = app_msg["TMessageForm"]
@@ -572,9 +622,10 @@ async def abertura_livros_fiscais(task: RpaProcessoEntradaDTO) -> RpaRetornoProc
572
622
  form.set_focus()
573
623
  form.child_window(class_name="TButton", found_index=0).click_input()
574
624
  print("Clicou no botão de confirmação.")
625
+ await worker_sleep(2)
575
626
  except:
576
627
  pass
577
- await worker_sleep(3)
628
+ await worker_sleep(5)
578
629
  try:
579
630
  app_msg = Application().connect(class_name="TMessageForm", timeout=10)
580
631
  form = app_msg["TMessageForm"]
@@ -582,9 +633,10 @@ async def abertura_livros_fiscais(task: RpaProcessoEntradaDTO) -> RpaRetornoProc
582
633
  form.set_focus()
583
634
  form.child_window(class_name="TButton", found_index=1).click_input()
584
635
  print("Clicou no botão de confirmação.")
636
+ await worker_sleep(2)
585
637
  except:
586
638
  pass
587
- await worker_sleep(3)
639
+ await worker_sleep(5)
588
640
  try:
589
641
  app_msg = Application().connect(class_name="TMessageForm", timeout=10)
590
642
  form = app_msg["TMessageForm"]
@@ -592,9 +644,10 @@ async def abertura_livros_fiscais(task: RpaProcessoEntradaDTO) -> RpaRetornoProc
592
644
  form.set_focus()
593
645
  form.child_window(class_name="TButton", found_index=0).click_input()
594
646
  print("Clicou no botão de confirmação.")
647
+ await worker_sleep(2)
595
648
  except:
596
649
  pass
597
- await worker_sleep(3)
650
+ await worker_sleep(5)
598
651
  try:
599
652
  # Caminho da imagem que deve desaparecer
600
653
  console.print("Aguardar carregar dados")
@@ -633,7 +686,7 @@ async def abertura_livros_fiscais(task: RpaProcessoEntradaDTO) -> RpaRetornoProc
633
686
 
634
687
  print(f"Foram encontrados {len(edits)} campos TEdit.")
635
688
 
636
- campo = edits[0]
689
+ campo = edits[0]
637
690
  campo.click_input()
638
691
  await worker_sleep(1)
639
692
 
@@ -646,7 +699,9 @@ async def abertura_livros_fiscais(task: RpaProcessoEntradaDTO) -> RpaRetornoProc
646
699
  texto_atual = campo.window_text().strip()
647
700
  if texto_atual == "":
648
701
  break # Campo foi limpo com sucesso
649
- print(f"Tentativa {tentativa+1}: campo ainda contém texto: '{texto_atual}'")
702
+ print(
703
+ f"Tentativa {tentativa+1}: campo ainda contém texto: '{texto_atual}'"
704
+ )
650
705
 
651
706
  # Continua se o campo estiver limpo
652
707
  campo.type_keys("Livro de Apuração ICMS", with_spaces=True)
@@ -656,7 +711,7 @@ async def abertura_livros_fiscais(task: RpaProcessoEntradaDTO) -> RpaRetornoProc
656
711
  await worker_sleep(2)
657
712
  send_keys("{ENTER}")
658
713
 
659
- await worker_sleep(5)
714
+ await worker_sleep(5)
660
715
  console.print("Inserindo competência...")
661
716
 
662
717
  # Conecta na janela
@@ -665,7 +720,9 @@ async def abertura_livros_fiscais(task: RpaProcessoEntradaDTO) -> RpaRetornoProc
665
720
  main_window.set_focus()
666
721
 
667
722
  # Captura o campo de data (TDBIEditDate)
668
- data_input = main_window.child_window(class_name="TDBIEditDate", found_index=0)
723
+ data_input = main_window.child_window(
724
+ class_name="TDBIEditDate", found_index=0
725
+ )
669
726
  data_input.click_input()
670
727
  await worker_sleep(1)
671
728
  data_input.set_edit_text("") # Limpa o campo
@@ -673,14 +730,16 @@ async def abertura_livros_fiscais(task: RpaProcessoEntradaDTO) -> RpaRetornoProc
673
730
  # Define a competência
674
731
  # Ex: "07/2025"
675
732
  data_input.type_keys(competencia, with_spaces=True)
676
-
733
+
677
734
  console.print("Clicando no botão incluir apuração")
678
735
  # Clicar em incluir apuração
679
736
  # imagem = "assets\\abertura_livros\\btn_incluir_apuracao.png"
680
737
  imagem = "assets\\abertura_livros\\btn_incluir_apuracao.png"
681
738
 
682
739
  # Tenta localizar a imagem na tela
683
- localizacao = pyautogui.locateCenterOnScreen(imagem, confidence=0.9) # você pode ajustar o confidence
740
+ localizacao = pyautogui.locateCenterOnScreen(
741
+ imagem, confidence=0.9
742
+ ) # você pode ajustar o confidence
684
743
 
685
744
  if localizacao:
686
745
  print(f"Imagem incluir apuração encontrado em: {localizacao}")
@@ -689,9 +748,7 @@ async def abertura_livros_fiscais(task: RpaProcessoEntradaDTO) -> RpaRetornoProc
689
748
  console.print("Apuração incluida com sucesso")
690
749
  retorno = "Apuração incluida com sucesso"
691
750
  return RpaRetornoProcessoDTO(
692
- sucesso=True,
693
- retorno=retorno,
694
- status=RpaHistoricoStatusEnum.Sucesso
751
+ sucesso=True, retorno=retorno, status=RpaHistoricoStatusEnum.Sucesso
695
752
  )
696
753
  else:
697
754
  console.print("Imagem incluir apuração não encontrada na tela.")