worker-automate-hub 0.5.678__tar.gz → 0.5.679__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.679}/PKG-INFO +1 -1
  2. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/pyproject.toml +1 -1
  3. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/tasks/jobs/abertura_livros_fiscais.py +128 -72
  4. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/README.md +0 -0
  5. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/__init__.py +0 -0
  6. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/api/__init__.py +0 -0
  7. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/api/ahead_service.py +0 -0
  8. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/api/client.py +0 -0
  9. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/api/datalake_service.py +0 -0
  10. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/api/helpers/__init__.py +0 -0
  11. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/api/helpers/api_helpers.py +0 -0
  12. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/api/rdp_service.py +0 -0
  13. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/api/rpa_fila_service.py +0 -0
  14. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/api/rpa_historico_service.py +0 -0
  15. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/api/webhook_service.py +0 -0
  16. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/cli.py +0 -0
  17. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/config/__init__.py +0 -0
  18. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/config/settings.py +0 -0
  19. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/config.py +0 -0
  20. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/core/so_manipulation.py +0 -0
  21. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/decorators/__init__.py +0 -0
  22. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/decorators/deprecation.py +0 -0
  23. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/decorators/rate_limit.py +0 -0
  24. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/decorators/repeat.py +0 -0
  25. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/decorators/retry.py +0 -0
  26. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/decorators/singleton.py +0 -0
  27. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/decorators/timeit.py +0 -0
  28. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/models/__init__.py +0 -0
  29. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/models/dao/__init__.py +0 -0
  30. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/models/dao/rpa_configuracao.py +0 -0
  31. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/models/dao/rpa_fila.py +0 -0
  32. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/models/dao/rpa_historico.py +0 -0
  33. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/models/dao/rpa_processo.py +0 -0
  34. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/models/dao/rpa_robo.py +0 -0
  35. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/models/dto/__init__.py +0 -0
  36. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/models/dto/rpa_historico_request_dto.py +0 -0
  37. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/models/dto/rpa_processo_entrada_dto.py +0 -0
  38. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/models/dto/rpa_processo_rdp_dto.py +0 -0
  39. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/models/dto/rpa_sap_dto.py +0 -0
  40. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/models/dto/rpa_sistema_dto.py +0 -0
  41. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/tasks/__init__.py +0 -0
  42. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/tasks/jobs/__init__.py +0 -0
  43. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/tasks/jobs/coleta_dje_process.py +0 -0
  44. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/tasks/jobs/conexao_rdp.py +0 -0
  45. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/tasks/jobs/cte_manual.py +0 -0
  46. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/tasks/jobs/cte_xml.py +0 -0
  47. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/tasks/jobs/descartes.py +0 -0
  48. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/tasks/jobs/devolucao_ctf.py +0 -0
  49. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/tasks/jobs/devolucao_ctf_35.py +0 -0
  50. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/tasks/jobs/devolucao_prazo_a_faturar.py +0 -0
  51. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/tasks/jobs/ecac_estadual_go.py +0 -0
  52. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/tasks/jobs/ecac_estadual_main.py +0 -0
  53. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/tasks/jobs/ecac_estadual_mt.py +0 -0
  54. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/tasks/jobs/ecac_estadual_sc.py +0 -0
  55. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/tasks/jobs/ecac_estadual_sp.py +0 -0
  56. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/tasks/jobs/ecac_federal.py +0 -0
  57. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/tasks/jobs/entrada_cte_1353.py +0 -0
  58. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/tasks/jobs/entrada_cte_333.py +0 -0
  59. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/tasks/jobs/entrada_de_notas_15.py +0 -0
  60. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/tasks/jobs/entrada_de_notas_16.py +0 -0
  61. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/tasks/jobs/entrada_de_notas_207.py +0 -0
  62. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/tasks/jobs/entrada_de_notas_32.py +0 -0
  63. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/tasks/jobs/entrada_de_notas_33.py +0 -0
  64. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/tasks/jobs/entrada_de_notas_34.py +0 -0
  65. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/tasks/jobs/entrada_de_notas_36.py +0 -0
  66. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/tasks/jobs/entrada_de_notas_39.py +0 -0
  67. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/tasks/jobs/entrada_de_notas_500.py +0 -0
  68. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/tasks/jobs/entrada_de_notas_503.py +0 -0
  69. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/tasks/jobs/entrada_de_notas_505.py +0 -0
  70. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/tasks/jobs/entrada_de_notas_7139.py +0 -0
  71. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/tasks/jobs/entrada_de_notas_9.py +0 -0
  72. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/tasks/jobs/entrada_de_notas_9000.py +0 -0
  73. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/tasks/jobs/exemplo_processo.py +0 -0
  74. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/tasks/jobs/extracao_fechamento_contabil.py +0 -0
  75. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/tasks/jobs/extracao_fechamento_emsys.py +0 -0
  76. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/tasks/jobs/fechar_conexao_rdp.py +0 -0
  77. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/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.679}/worker_automate_hub/tasks/jobs/fidc_gerar_nosso_numero.py +0 -0
  79. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/tasks/jobs/fidc_remessa_cobranca_cnab240.py +0 -0
  80. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/tasks/jobs/fidc_retorno_cobranca.py +0 -0
  81. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/tasks/jobs/geracao_aprovacao_pedidos.py +0 -0
  82. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/tasks/jobs/geracao_aprovacao_pedidos_novo.py +0 -0
  83. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/tasks/jobs/integracao_contabil.py +0 -0
  84. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/tasks/jobs/integracao_contabil_generica.py +0 -0
  85. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/tasks/jobs/lancamento_pis_cofins.py +0 -0
  86. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/tasks/jobs/lancamento_rateio.py +0 -0
  87. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/tasks/jobs/login_emsys.py +0 -0
  88. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/tasks/jobs/login_emsys_versao_especifica.py +0 -0
  89. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/tasks/jobs/notas_faturamento_sap.py +0 -0
  90. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/tasks/jobs/playground.py +0 -0
  91. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/tasks/jobs/sped_fiscal.py +0 -0
  92. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/tasks/jobs/transferencias.py +0 -0
  93. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/tasks/task_definitions.py +0 -0
  94. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/tasks/task_executor.py +0 -0
  95. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/utils/__init__.py +0 -0
  96. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/utils/env.py +0 -0
  97. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/utils/get_creds_gworkspace.py +0 -0
  98. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/utils/logger.py +0 -0
  99. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/utils/toast.py +0 -0
  100. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/utils/updater.py +0 -0
  101. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/utils/util.py +0 -0
  102. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/worker_automate_hub/utils/utils_nfe_entrada.py +0 -0
  103. {worker_automate_hub-0.5.678 → worker_automate_hub-0.5.679}/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.679
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.679"
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"
@@ -485,7 +524,9 @@ async def abertura_livros_fiscais(task: RpaProcessoEntradaDTO) -> RpaRetornoProc
485
524
  # imagem = "assets\\abertura_livros\\alterar_livro.png"
486
525
  imagem = "assets\\abertura_livros\\alterar_livro.png"
487
526
  # Tenta localizar a imagem na tela
488
- localizacao = pyautogui.locateCenterOnScreen(imagem, confidence=0.9) # você pode ajustar o confidence
527
+ localizacao = pyautogui.locateCenterOnScreen(
528
+ imagem, confidence=0.9
529
+ ) # você pode ajustar o confidence
489
530
 
490
531
  if localizacao:
491
532
  print(f"Imagem alterar livro encontrado em: {localizacao}")
@@ -500,7 +541,9 @@ async def abertura_livros_fiscais(task: RpaProcessoEntradaDTO) -> RpaRetornoProc
500
541
  # imagem = "assets\\abertura_livros\\livro_fiscal.png"
501
542
  imagem = "assets\\abertura_livros\\livro_fiscal.png"
502
543
  # Tenta localizar a imagem na tela
503
- localizacao = pyautogui.locateCenterOnScreen(imagem, confidence=0.9) # você pode ajustar o confidence
544
+ localizacao = pyautogui.locateCenterOnScreen(
545
+ imagem, confidence=0.9
546
+ ) # você pode ajustar o confidence
504
547
 
505
548
  if localizacao:
506
549
  print(f"Imagem Livro fiscal encontrado em: {localizacao}")
@@ -508,15 +551,17 @@ async def abertura_livros_fiscais(task: RpaProcessoEntradaDTO) -> RpaRetornoProc
508
551
  pyautogui.click()
509
552
  else:
510
553
  console.print("Imagem Livro fiscal não encontrada na tela.")
511
-
554
+
512
555
  await worker_sleep(4)
513
-
556
+
514
557
  # Clicar em Gerar Relatório
515
558
  # imagem = "assets\\abertura_livros\\gerar_registros.png"
516
559
  imagem = "assets\\abertura_livros\\gerar_registros.png"
517
560
 
518
561
  # Tenta localizar a imagem na tela
519
- localizacao = pyautogui.locateCenterOnScreen(imagem, confidence=0.9) # você pode ajustar o confidence
562
+ localizacao = pyautogui.locateCenterOnScreen(
563
+ imagem, confidence=0.9
564
+ ) # você pode ajustar o confidence
520
565
 
521
566
  if localizacao:
522
567
  print(f"Imagem gerar relatório encontrado em: {localizacao}")
@@ -530,21 +575,23 @@ async def abertura_livros_fiscais(task: RpaProcessoEntradaDTO) -> RpaRetornoProc
530
575
  app = Application().connect(class_name="TMsgBox", timeout=60)
531
576
  main_window = app["TMsgBox"]
532
577
  main_window.set_focus()
533
-
578
+
534
579
  # Clicar em Sim
535
580
  main_window.child_window(class_name="TBitBtn", found_index=1).click_input()
536
581
 
537
582
  await worker_sleep(4)
538
583
 
539
584
  console.print("Clicar em confirmar")
540
- app = Application().connect(class_name="TPerguntasLivrosFiscaisForm", timeout=60)
585
+ app = Application().connect(
586
+ class_name="TPerguntasLivrosFiscaisForm", timeout=60
587
+ )
541
588
  main_window = app["TPerguntasLivrosFiscaisForm"]
542
589
  main_window.set_focus()
543
590
  main_window.child_window(class_name="TButton", found_index=1).click_input()
544
591
 
545
592
  await worker_sleep(5)
546
593
 
547
- # Clicar no aviso
594
+ # Clicar no aviso
548
595
  try:
549
596
  app_msgbox = Application().connect(class_name="TMsgBox", timeout=10)
550
597
  box = app_msgbox["TMsgBox"]
@@ -552,9 +599,10 @@ async def abertura_livros_fiscais(task: RpaProcessoEntradaDTO) -> RpaRetornoProc
552
599
  box.set_focus()
553
600
  box.child_window(class_name="TBitBtn", found_index=0).click_input()
554
601
  print("Clicou no botão 'TBitBtn'.")
602
+ await worker_sleep(2)
555
603
  except:
556
604
  pass
557
- await worker_sleep(3)
605
+ await worker_sleep(5)
558
606
  try:
559
607
  app_msg = Application().connect(class_name="TMessageForm", timeout=10)
560
608
  form = app_msg["TMessageForm"]
@@ -562,9 +610,10 @@ async def abertura_livros_fiscais(task: RpaProcessoEntradaDTO) -> RpaRetornoProc
562
610
  form.set_focus()
563
611
  form.child_window(class_name="TButton", found_index=1).click_input()
564
612
  print("Clicou no botão de confirmação.")
613
+ await worker_sleep(2)
565
614
  except:
566
615
  pass
567
- await worker_sleep(3)
616
+ await worker_sleep(5)
568
617
  try:
569
618
  app_msg = Application().connect(class_name="TMessageForm", timeout=10)
570
619
  form = app_msg["TMessageForm"]
@@ -572,9 +621,10 @@ async def abertura_livros_fiscais(task: RpaProcessoEntradaDTO) -> RpaRetornoProc
572
621
  form.set_focus()
573
622
  form.child_window(class_name="TButton", found_index=0).click_input()
574
623
  print("Clicou no botão de confirmação.")
624
+ await worker_sleep(2)
575
625
  except:
576
626
  pass
577
- await worker_sleep(3)
627
+ await worker_sleep(5)
578
628
  try:
579
629
  app_msg = Application().connect(class_name="TMessageForm", timeout=10)
580
630
  form = app_msg["TMessageForm"]
@@ -582,9 +632,10 @@ async def abertura_livros_fiscais(task: RpaProcessoEntradaDTO) -> RpaRetornoProc
582
632
  form.set_focus()
583
633
  form.child_window(class_name="TButton", found_index=1).click_input()
584
634
  print("Clicou no botão de confirmação.")
635
+ await worker_sleep(2)
585
636
  except:
586
637
  pass
587
- await worker_sleep(3)
638
+ await worker_sleep(5)
588
639
  try:
589
640
  app_msg = Application().connect(class_name="TMessageForm", timeout=10)
590
641
  form = app_msg["TMessageForm"]
@@ -592,9 +643,10 @@ async def abertura_livros_fiscais(task: RpaProcessoEntradaDTO) -> RpaRetornoProc
592
643
  form.set_focus()
593
644
  form.child_window(class_name="TButton", found_index=0).click_input()
594
645
  print("Clicou no botão de confirmação.")
646
+ await worker_sleep(2)
595
647
  except:
596
648
  pass
597
- await worker_sleep(3)
649
+ await worker_sleep(5)
598
650
  try:
599
651
  # Caminho da imagem que deve desaparecer
600
652
  console.print("Aguardar carregar dados")
@@ -633,7 +685,7 @@ async def abertura_livros_fiscais(task: RpaProcessoEntradaDTO) -> RpaRetornoProc
633
685
 
634
686
  print(f"Foram encontrados {len(edits)} campos TEdit.")
635
687
 
636
- campo = edits[0]
688
+ campo = edits[0]
637
689
  campo.click_input()
638
690
  await worker_sleep(1)
639
691
 
@@ -646,7 +698,9 @@ async def abertura_livros_fiscais(task: RpaProcessoEntradaDTO) -> RpaRetornoProc
646
698
  texto_atual = campo.window_text().strip()
647
699
  if texto_atual == "":
648
700
  break # Campo foi limpo com sucesso
649
- print(f"Tentativa {tentativa+1}: campo ainda contém texto: '{texto_atual}'")
701
+ print(
702
+ f"Tentativa {tentativa+1}: campo ainda contém texto: '{texto_atual}'"
703
+ )
650
704
 
651
705
  # Continua se o campo estiver limpo
652
706
  campo.type_keys("Livro de Apuração ICMS", with_spaces=True)
@@ -656,7 +710,7 @@ async def abertura_livros_fiscais(task: RpaProcessoEntradaDTO) -> RpaRetornoProc
656
710
  await worker_sleep(2)
657
711
  send_keys("{ENTER}")
658
712
 
659
- await worker_sleep(5)
713
+ await worker_sleep(5)
660
714
  console.print("Inserindo competência...")
661
715
 
662
716
  # Conecta na janela
@@ -665,7 +719,9 @@ async def abertura_livros_fiscais(task: RpaProcessoEntradaDTO) -> RpaRetornoProc
665
719
  main_window.set_focus()
666
720
 
667
721
  # Captura o campo de data (TDBIEditDate)
668
- data_input = main_window.child_window(class_name="TDBIEditDate", found_index=0)
722
+ data_input = main_window.child_window(
723
+ class_name="TDBIEditDate", found_index=0
724
+ )
669
725
  data_input.click_input()
670
726
  await worker_sleep(1)
671
727
  data_input.set_edit_text("") # Limpa o campo
@@ -673,14 +729,16 @@ async def abertura_livros_fiscais(task: RpaProcessoEntradaDTO) -> RpaRetornoProc
673
729
  # Define a competência
674
730
  # Ex: "07/2025"
675
731
  data_input.type_keys(competencia, with_spaces=True)
676
-
732
+
677
733
  console.print("Clicando no botão incluir apuração")
678
734
  # Clicar em incluir apuração
679
735
  # imagem = "assets\\abertura_livros\\btn_incluir_apuracao.png"
680
736
  imagem = "assets\\abertura_livros\\btn_incluir_apuracao.png"
681
737
 
682
738
  # Tenta localizar a imagem na tela
683
- localizacao = pyautogui.locateCenterOnScreen(imagem, confidence=0.9) # você pode ajustar o confidence
739
+ localizacao = pyautogui.locateCenterOnScreen(
740
+ imagem, confidence=0.9
741
+ ) # você pode ajustar o confidence
684
742
 
685
743
  if localizacao:
686
744
  print(f"Imagem incluir apuração encontrado em: {localizacao}")
@@ -689,9 +747,7 @@ async def abertura_livros_fiscais(task: RpaProcessoEntradaDTO) -> RpaRetornoProc
689
747
  console.print("Apuração incluida com sucesso")
690
748
  retorno = "Apuração incluida com sucesso"
691
749
  return RpaRetornoProcessoDTO(
692
- sucesso=True,
693
- retorno=retorno,
694
- status=RpaHistoricoStatusEnum.Sucesso
750
+ sucesso=True, retorno=retorno, status=RpaHistoricoStatusEnum.Sucesso
695
751
  )
696
752
  else:
697
753
  console.print("Imagem incluir apuração não encontrada na tela.")