worker-automate-hub 0.4.351__py3-none-any.whl → 0.4.353__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- worker_automate_hub/tasks/jobs/entrada_de_notas_15.py +82 -0
- worker_automate_hub/tasks/jobs/entrada_de_notas_16.py +81 -0
- worker_automate_hub/tasks/jobs/sped_fiscal.py +2 -1
- {worker_automate_hub-0.4.351.dist-info → worker_automate_hub-0.4.353.dist-info}/METADATA +1 -1
- {worker_automate_hub-0.4.351.dist-info → worker_automate_hub-0.4.353.dist-info}/RECORD +7 -7
- {worker_automate_hub-0.4.351.dist-info → worker_automate_hub-0.4.353.dist-info}/WHEEL +0 -0
- {worker_automate_hub-0.4.351.dist-info → worker_automate_hub-0.4.353.dist-info}/entry_points.txt +0 -0
@@ -1,7 +1,12 @@
|
|
1
1
|
import asyncio
|
2
|
+
import getpass
|
3
|
+
import os
|
2
4
|
import warnings
|
3
5
|
|
4
6
|
import pyautogui
|
7
|
+
from pywinauto.keyboard import send_keys
|
8
|
+
from PIL import Image, ImageEnhance
|
9
|
+
import pytesseract
|
5
10
|
from pywinauto.application import Application
|
6
11
|
from pywinauto_recorder.player import set_combobox
|
7
12
|
from rich.console import Console
|
@@ -332,6 +337,83 @@ async def entrada_de_notas_15(task: RpaProcessoEntradaDTO) -> RpaRetornoProcesso
|
|
332
337
|
status=RpaHistoricoStatusEnum.Falha,
|
333
338
|
)
|
334
339
|
|
340
|
+
try:
|
341
|
+
max_attempts = 60
|
342
|
+
i = 0
|
343
|
+
|
344
|
+
while i < max_attempts:
|
345
|
+
information_pop_up = await is_window_open("Information")
|
346
|
+
if information_pop_up["IsOpened"] == True:
|
347
|
+
break
|
348
|
+
else:
|
349
|
+
console.print(f"Aguardando confirmação de nota incluida...\n")
|
350
|
+
await worker_sleep(5)
|
351
|
+
i += 1
|
352
|
+
|
353
|
+
information_pop_up = await is_window_open("Information")
|
354
|
+
if information_pop_up["IsOpened"] == True:
|
355
|
+
app = Application().connect(class_name="TFrmNotaFiscalEntrada")
|
356
|
+
main_window = app["Information"]
|
357
|
+
|
358
|
+
main_window.set_focus()
|
359
|
+
|
360
|
+
console.print(f"Obtendo texto do Information...\n")
|
361
|
+
console.print(f"Tirando print da janela do Information para realização do OCR...\n")
|
362
|
+
|
363
|
+
window_rect = main_window.rectangle()
|
364
|
+
screenshot = pyautogui.screenshot(
|
365
|
+
region=(
|
366
|
+
window_rect.left,
|
367
|
+
window_rect.top,
|
368
|
+
window_rect.width(),
|
369
|
+
window_rect.height(),
|
370
|
+
)
|
371
|
+
)
|
372
|
+
username = getpass.getuser()
|
373
|
+
path_to_png = f"C:\\Users\\{username}\\Downloads\\information_popup_{nota.get("nfe")}.png"
|
374
|
+
screenshot.save(path_to_png)
|
375
|
+
console.print(f"Print salvo em {path_to_png}...\n")
|
376
|
+
|
377
|
+
console.print(
|
378
|
+
f"Preparando a imagem para maior resolução e assertividade no OCR...\n"
|
379
|
+
)
|
380
|
+
image = Image.open(path_to_png)
|
381
|
+
image = image.convert("L")
|
382
|
+
enhancer = ImageEnhance.Contrast(image)
|
383
|
+
image = enhancer.enhance(2.0)
|
384
|
+
image.save(path_to_png)
|
385
|
+
console.print(f"Imagem preparada com sucesso...\n")
|
386
|
+
console.print(f"Realizando OCR...\n")
|
387
|
+
captured_text = pytesseract.image_to_string(Image.open(path_to_png))
|
388
|
+
console.print(
|
389
|
+
f"Texto Full capturado {captured_text}...\n"
|
390
|
+
)
|
391
|
+
os.remove(path_to_png)
|
392
|
+
if 'nota fiscal inc' in captured_text.lower():
|
393
|
+
console.print(f"Tentando clicar no Botão OK...\n")
|
394
|
+
btn_ok = main_window.child_window(class_name="TButton")
|
395
|
+
|
396
|
+
if btn_ok.exists():
|
397
|
+
btn_ok.click()
|
398
|
+
retorno = True
|
399
|
+
else:
|
400
|
+
return RpaRetornoProcessoDTO(
|
401
|
+
sucesso=False,
|
402
|
+
retorno=f"Pop_up Informantion não mapeado para andamento do robô, mensagem {captured_text}",
|
403
|
+
status=RpaHistoricoStatusEnum.Falha,
|
404
|
+
)
|
405
|
+
else:
|
406
|
+
console.print(f"Aba Information não encontrada")
|
407
|
+
retorno = await verify_nf_incuded()
|
408
|
+
|
409
|
+
except Exception as e:
|
410
|
+
console.print(f"Erro ao conectar à janela Information: {e}\n")
|
411
|
+
return RpaRetornoProcessoDTO(
|
412
|
+
sucesso=False,
|
413
|
+
retorno=f"Erro em obter o retorno, Nota inserida com sucesso, erro {e}",
|
414
|
+
status=RpaHistoricoStatusEnum.Falha,
|
415
|
+
)
|
416
|
+
|
335
417
|
if retorno:
|
336
418
|
console.print("\nNota lançada com sucesso...", style="bold green")
|
337
419
|
await worker_sleep(6)
|
@@ -1,7 +1,12 @@
|
|
1
1
|
import asyncio
|
2
|
+
import getpass
|
3
|
+
import os
|
2
4
|
import warnings
|
3
5
|
|
4
6
|
import pyautogui
|
7
|
+
from pywinauto.keyboard import send_keys
|
8
|
+
from PIL import Image, ImageEnhance
|
9
|
+
import pytesseract
|
5
10
|
from pywinauto.application import Application
|
6
11
|
from pywinauto_recorder.player import set_combobox
|
7
12
|
from rich.console import Console
|
@@ -429,6 +434,82 @@ async def entrada_de_notas_16(task: RpaProcessoEntradaDTO) -> RpaRetornoProcesso
|
|
429
434
|
retorno=observacao,
|
430
435
|
status=RpaHistoricoStatusEnum.Falha,
|
431
436
|
)
|
437
|
+
try:
|
438
|
+
max_attempts = 60
|
439
|
+
i = 0
|
440
|
+
|
441
|
+
while i < max_attempts:
|
442
|
+
information_pop_up = await is_window_open("Information")
|
443
|
+
if information_pop_up["IsOpened"] == True:
|
444
|
+
break
|
445
|
+
else:
|
446
|
+
console.print(f"Aguardando confirmação de nota incluida...\n")
|
447
|
+
await worker_sleep(5)
|
448
|
+
i += 1
|
449
|
+
|
450
|
+
information_pop_up = await is_window_open("Information")
|
451
|
+
if information_pop_up["IsOpened"] == True:
|
452
|
+
app = Application().connect(class_name="TFrmNotaFiscalEntrada")
|
453
|
+
main_window = app["Information"]
|
454
|
+
|
455
|
+
main_window.set_focus()
|
456
|
+
|
457
|
+
console.print(f"Obtendo texto do Information...\n")
|
458
|
+
console.print(f"Tirando print da janela do Information para realização do OCR...\n")
|
459
|
+
|
460
|
+
window_rect = main_window.rectangle()
|
461
|
+
screenshot = pyautogui.screenshot(
|
462
|
+
region=(
|
463
|
+
window_rect.left,
|
464
|
+
window_rect.top,
|
465
|
+
window_rect.width(),
|
466
|
+
window_rect.height(),
|
467
|
+
)
|
468
|
+
)
|
469
|
+
username = getpass.getuser()
|
470
|
+
path_to_png = f"C:\\Users\\{username}\\Downloads\\information_popup_{nota.get("nfe")}.png"
|
471
|
+
screenshot.save(path_to_png)
|
472
|
+
console.print(f"Print salvo em {path_to_png}...\n")
|
473
|
+
|
474
|
+
console.print(
|
475
|
+
f"Preparando a imagem para maior resolução e assertividade no OCR...\n"
|
476
|
+
)
|
477
|
+
image = Image.open(path_to_png)
|
478
|
+
image = image.convert("L")
|
479
|
+
enhancer = ImageEnhance.Contrast(image)
|
480
|
+
image = enhancer.enhance(2.0)
|
481
|
+
image.save(path_to_png)
|
482
|
+
console.print(f"Imagem preparada com sucesso...\n")
|
483
|
+
console.print(f"Realizando OCR...\n")
|
484
|
+
captured_text = pytesseract.image_to_string(Image.open(path_to_png))
|
485
|
+
console.print(
|
486
|
+
f"Texto Full capturado {captured_text}...\n"
|
487
|
+
)
|
488
|
+
os.remove(path_to_png)
|
489
|
+
if 'nota fiscal inc' in captured_text.lower():
|
490
|
+
console.print(f"Tentando clicar no Botão OK...\n")
|
491
|
+
btn_ok = main_window.child_window(class_name="TButton")
|
492
|
+
|
493
|
+
if btn_ok.exists():
|
494
|
+
btn_ok.click()
|
495
|
+
retorno = True
|
496
|
+
else:
|
497
|
+
return RpaRetornoProcessoDTO(
|
498
|
+
sucesso=False,
|
499
|
+
retorno=f"Pop_up Informantion não mapeado para andamento do robô, mensagem {captured_text}",
|
500
|
+
status=RpaHistoricoStatusEnum.Falha,
|
501
|
+
)
|
502
|
+
else:
|
503
|
+
console.print(f"Aba Information não encontrada")
|
504
|
+
retorno = await verify_nf_incuded()
|
505
|
+
|
506
|
+
except Exception as e:
|
507
|
+
console.print(f"Erro ao conectar à janela Information: {e}\n")
|
508
|
+
return RpaRetornoProcessoDTO(
|
509
|
+
sucesso=False,
|
510
|
+
retorno=f"Erro em obter o retorno, Nota inserida com sucesso, erro {e}",
|
511
|
+
status=RpaHistoricoStatusEnum.Falha,
|
512
|
+
)
|
432
513
|
|
433
514
|
if retorno:
|
434
515
|
console.print("\nNota lançada com sucesso...", style="bold green")
|
@@ -139,7 +139,7 @@ async def sped_fiscal(task: RpaProcessoEntradaDTO) -> RpaRetornoProcessoDTO:
|
|
139
139
|
await worker_sleep(2)
|
140
140
|
|
141
141
|
console.print("Inserindo o período para geração do sped...\n")
|
142
|
-
periodo =
|
142
|
+
periodo = main_window.child_window(class_name="TDBIEditDate", found_index=0)
|
143
143
|
periodo.set_edit_text(periodo_dt)
|
144
144
|
await worker_sleep(2)
|
145
145
|
|
@@ -215,6 +215,7 @@ async def sped_fiscal(task: RpaProcessoEntradaDTO) -> RpaRetornoProcessoDTO:
|
|
215
215
|
status=RpaHistoricoStatusEnum.Falha,
|
216
216
|
)
|
217
217
|
|
218
|
+
|
218
219
|
console.print(f"Verificando sem possui o pop-up de Registro de Entrada... \n")
|
219
220
|
registro_entrada_pop_up_class = await is_window_open_by_class("TMsgBox")
|
220
221
|
if registro_entrada_pop_up_class == True:
|
@@ -37,8 +37,8 @@ worker_automate_hub/tasks/jobs/ecac_estadual_mt.py,sha256=4fe5Ri--lNIlRBSusbjyYt
|
|
37
37
|
worker_automate_hub/tasks/jobs/ecac_estadual_sc.py,sha256=ZTjc4rS8J7VfWHPFLkJBcSj9sIfwToxTIC0D7p2rQTQ,13677
|
38
38
|
worker_automate_hub/tasks/jobs/ecac_estadual_sp.py,sha256=iS6za_nGCzBRVCXYYuUTIyMWJznHp8l6BPahqwzc_5c,29102
|
39
39
|
worker_automate_hub/tasks/jobs/ecac_federal.py,sha256=ORQbA4DCfyHJqjfvOCenc97QHvBCBlA3oMSzl59K6vg,55316
|
40
|
-
worker_automate_hub/tasks/jobs/entrada_de_notas_15.py,sha256=
|
41
|
-
worker_automate_hub/tasks/jobs/entrada_de_notas_16.py,sha256=
|
40
|
+
worker_automate_hub/tasks/jobs/entrada_de_notas_15.py,sha256=5Rqz_kf-399nEA3s1_69MGOAn6Mk0GbdAP_0EFzAcYw,16570
|
41
|
+
worker_automate_hub/tasks/jobs/entrada_de_notas_16.py,sha256=Y8k9alYB46XX3RUzpeAkB2rdTp9j1o6kT6TNZenFRcY,20823
|
42
42
|
worker_automate_hub/tasks/jobs/entrada_de_notas_207.py,sha256=mkAaQYDPd9QLz_LPn3AD6NjvWwr01z5NCzMIHg93cH0,24931
|
43
43
|
worker_automate_hub/tasks/jobs/entrada_de_notas_32.py,sha256=bAzQZD6EP7_eofC0GL45CLAqKwZ5N50Wzbphm3ZhoYs,32391
|
44
44
|
worker_automate_hub/tasks/jobs/entrada_de_notas_33.py,sha256=zwDQzPbqqw1RpjJkF3VSkMnqgrzjFAXLGq7xrFo5D0o,31459
|
@@ -54,7 +54,7 @@ worker_automate_hub/tasks/jobs/fidc_gerar_nosso_numero.py,sha256=Y-mKYcgX1kwcy_s
|
|
54
54
|
worker_automate_hub/tasks/jobs/fidc_remessa_cobranca_cnab240.py,sha256=QBGm6eS5JghgNWNqZlk1g2a2iV8LnBLiOTBBL3Giet0,4181
|
55
55
|
worker_automate_hub/tasks/jobs/login_emsys.py,sha256=IoGCIvO4UwmuxOZEn3cvYJlKyhsWvtHvbFk8vwjTroQ,5620
|
56
56
|
worker_automate_hub/tasks/jobs/playground.py,sha256=bdnXv3C7WLQUxt4edGZDfAbRJJ2-q4zuIQaK3GLnaUc,1765
|
57
|
-
worker_automate_hub/tasks/jobs/sped_fiscal.py,sha256=
|
57
|
+
worker_automate_hub/tasks/jobs/sped_fiscal.py,sha256=rokkI8i3SVEzBLFBQuMytIelv_0JKLmIZi26n37_NoM,20449
|
58
58
|
worker_automate_hub/tasks/jobs/transferencias.py,sha256=keCUlvbPhLrTiZQ9Co_r6IqL5wjYqVGB_-mgvdDe9pM,36080
|
59
59
|
worker_automate_hub/tasks/task_definitions.py,sha256=2Jp1H4_qJZqqGyaP6MA87KLt4QNrtWBYWbXu-2gymFo,4459
|
60
60
|
worker_automate_hub/tasks/task_executor.py,sha256=QqVNRljSlSbSXzTwKLezMjCLej6AixuBcDAhDrqmAkU,8435
|
@@ -67,7 +67,7 @@ worker_automate_hub/utils/updater.py,sha256=0LR6Xpe3HZk-xu-trH7vKRhP5FXp0nhp1qxt
|
|
67
67
|
worker_automate_hub/utils/util.py,sha256=hUzQOnVYwvlrFzAv1p5Lt3s1dmW_77NZFuG77QQHKL4,119565
|
68
68
|
worker_automate_hub/utils/utils_nfe_entrada.py,sha256=4--3HDyWddT8vw2mBNY_-9IscvAQYBygwPIMiKvAG-w,27583
|
69
69
|
worker_automate_hub/worker.py,sha256=vkl_x7gSo6nQlhSBLwRkGx6LEONnYptfBaGxOy1ZLsE,4634
|
70
|
-
worker_automate_hub-0.4.
|
71
|
-
worker_automate_hub-0.4.
|
72
|
-
worker_automate_hub-0.4.
|
73
|
-
worker_automate_hub-0.4.
|
70
|
+
worker_automate_hub-0.4.353.dist-info/entry_points.txt,sha256=sddyhjx57I08RY8X7UxcTpdoOsWULAWNKN9Xr6pp_Kw,54
|
71
|
+
worker_automate_hub-0.4.353.dist-info/METADATA,sha256=8gUo3g2dAa5ggnngmCRLwwsN_o75tHeI7bpt4TVRofA,2895
|
72
|
+
worker_automate_hub-0.4.353.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
|
73
|
+
worker_automate_hub-0.4.353.dist-info/RECORD,,
|
File without changes
|
{worker_automate_hub-0.4.351.dist-info → worker_automate_hub-0.4.353.dist-info}/entry_points.txt
RENAMED
File without changes
|