worker-automate-hub 0.4.351__py3-none-any.whl → 0.4.353__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- 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
|