worker-automate-hub 0.5.52__py3-none-any.whl → 0.5.54__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/api/webhook_service.py +5 -1
 - worker_automate_hub/tasks/jobs/devolucao_prazo_a_faturar.py +38 -12
 - worker_automate_hub/tasks/task_executor.py +5 -1
 - worker_automate_hub/utils/util.py +104 -19
 - {worker_automate_hub-0.5.52.dist-info → worker_automate_hub-0.5.54.dist-info}/METADATA +1 -1
 - {worker_automate_hub-0.5.52.dist-info → worker_automate_hub-0.5.54.dist-info}/RECORD +8 -8
 - {worker_automate_hub-0.5.52.dist-info → worker_automate_hub-0.5.54.dist-info}/WHEEL +0 -0
 - {worker_automate_hub-0.5.52.dist-info → worker_automate_hub-0.5.54.dist-info}/entry_points.txt +0 -0
 
| 
         @@ -8,7 +8,8 @@ console = Console() 
     | 
|
| 
       8 
8 
     | 
    
         
             
            async def send_to_webhook(
         
     | 
| 
       9 
9 
     | 
    
         
             
                url_retorno: str,
         
     | 
| 
       10 
10 
     | 
    
         
             
                status: str,
         
     | 
| 
       11 
     | 
    
         
            -
                observacao: str
         
     | 
| 
      
 11 
     | 
    
         
            +
                observacao: str,
         
     | 
| 
      
 12 
     | 
    
         
            +
                identificador_webhook: str = None
         
     | 
| 
       12 
13 
     | 
    
         
             
            ) -> None:    
         
     | 
| 
       13 
14 
     | 
    
         
             
                """
         
     | 
| 
       14 
15 
     | 
    
         
             
                Envia uma notificacao para o endpoint do webhook passado como parametro.
         
     | 
| 
         @@ -35,6 +36,9 @@ async def send_to_webhook( 
     | 
|
| 
       35 
36 
     | 
    
         
             
                    "observacao": observacao,
         
     | 
| 
       36 
37 
     | 
    
         
             
                }
         
     | 
| 
       37 
38 
     | 
    
         | 
| 
      
 39 
     | 
    
         
            +
                if identificador_webhook:
         
     | 
| 
      
 40 
     | 
    
         
            +
                    data["identificador"] = identificador_webhook
         
     | 
| 
      
 41 
     | 
    
         
            +
             
     | 
| 
       38 
42 
     | 
    
         
             
                try:
         
     | 
| 
       39 
43 
     | 
    
         
             
                    async with aiohttp.ClientSession(
         
     | 
| 
       40 
44 
     | 
    
         
             
                        connector=aiohttp.TCPConnector(verify_ssl=False)
         
     | 
| 
         @@ -35,6 +35,7 @@ from worker_automate_hub.utils.util import ( 
     | 
|
| 
       35 
35 
     | 
    
         
             
                e_ultimo_dia_util,
         
     | 
| 
       36 
36 
     | 
    
         
             
                delete_xml,
         
     | 
| 
       37 
37 
     | 
    
         
             
                ocr_warnings,
         
     | 
| 
      
 38 
     | 
    
         
            +
                ocr_by_class,
         
     | 
| 
       38 
39 
     | 
    
         
             
                nf_busca_nf_saida,
         
     | 
| 
       39 
40 
     | 
    
         
             
                pessoas_ativa_cliente_fornecedor,
         
     | 
| 
       40 
41 
     | 
    
         
             
                nf_devolucao_liquidar_cupom,
         
     | 
| 
         @@ -210,6 +211,10 @@ async def devolucao_prazo_a_faturar(task: RpaProcessoEntradaDTO) -> RpaRetornoPr 
     | 
|
| 
       210 
211 
     | 
    
         
             
                            btn_ir_para_nota = pyautogui.locateOnScreen(ASSETS_PATH + "\\notas_saida\\ir_para_nota_a_fatura_esmaecido.png", confidence=0.8)
         
     | 
| 
       211 
212 
     | 
    
         
             
                            if btn_ir_para_nota:
         
     | 
| 
       212 
213 
     | 
    
         
             
                                console.print("Botão 'Ir para nota de faturar' inativo, seguindo com o processo...\n")
         
     | 
| 
      
 214 
     | 
    
         
            +
                                app = Application().connect(class_name="TFrmNotaFiscalSaida", timeout=60)
         
     | 
| 
      
 215 
     | 
    
         
            +
                                main_window = app["TFrmNotaFiscalSaida"]
         
     | 
| 
      
 216 
     | 
    
         
            +
                                main_window.set_focus()
         
     | 
| 
      
 217 
     | 
    
         
            +
                                main_window.close()
         
     | 
| 
       213 
218 
     | 
    
         
             
                            else:
         
     | 
| 
       214 
219 
     | 
    
         
             
                                retorno = f"Botão [Ir para nota de faturar] está ativo, impossibilitando realizar a devolução \nEtapas Executadas:\n{steps}"
         
     | 
| 
       215 
220 
     | 
    
         
             
                                return RpaRetornoProcessoDTO(
         
     | 
| 
         @@ -754,9 +759,7 @@ async def devolucao_prazo_a_faturar(task: RpaProcessoEntradaDTO) -> RpaRetornoPr 
     | 
|
| 
       754 
759 
     | 
    
         
             
                                console.print(f"Imagem preparada com sucesso...\n")
         
     | 
| 
       755 
760 
     | 
    
         
             
                                console.print(f"Realizando OCR...\n")
         
     | 
| 
       756 
761 
     | 
    
         
             
                                captured_text = pytesseract.image_to_string(Image.open(path_to_png))
         
     | 
| 
       757 
     | 
    
         
            -
                                console.print(
         
     | 
| 
       758 
     | 
    
         
            -
                                    f"Texto Full capturado {captured_text}...\n"
         
     | 
| 
       759 
     | 
    
         
            -
                                )
         
     | 
| 
      
 762 
     | 
    
         
            +
                                console.print(f"Texto Full capturado {captured_text}...\n")
         
     | 
| 
       760 
763 
     | 
    
         
             
                                os.remove(path_to_png)
         
     | 
| 
       761 
764 
     | 
    
         
             
                                pattern = r"sequ[êe]ncia:\s*(\d+)"
         
     | 
| 
       762 
765 
     | 
    
         
             
                                match = re.search(pattern, captured_text)
         
     | 
| 
         @@ -765,6 +768,9 @@ async def devolucao_prazo_a_faturar(task: RpaProcessoEntradaDTO) -> RpaRetornoPr 
     | 
|
| 
       765 
768 
     | 
    
         
             
                                    numero_nota_fiscal = match.group(1)
         
     | 
| 
       766 
769 
     | 
    
         | 
| 
       767 
770 
     | 
    
         | 
| 
      
 771 
     | 
    
         
            +
                                app = Application().connect(title="Information", timeout=180)
         
     | 
| 
      
 772 
     | 
    
         
            +
                                main_window = app["Information"]
         
     | 
| 
      
 773 
     | 
    
         
            +
                                main_window.set_focus()
         
     | 
| 
       768 
774 
     | 
    
         
             
                                btn_ok = main_window.child_window(class_name="TButton", found_index=0)
         
     | 
| 
       769 
775 
     | 
    
         
             
                                btn_ok.click()
         
     | 
| 
       770 
776 
     | 
    
         
             
                                await worker_sleep(3)
         
     | 
| 
         @@ -815,17 +821,37 @@ async def devolucao_prazo_a_faturar(task: RpaProcessoEntradaDTO) -> RpaRetornoPr 
     | 
|
| 
       815 
821 
     | 
    
         | 
| 
       816 
822 
     | 
    
         
             
                            while i < max_attempts:
         
     | 
| 
       817 
823 
     | 
    
         
             
                                try:
         
     | 
| 
       818 
     | 
    
         
            -
                                    app = Application().connect(class_name="TFrmProcessamentoFEe2", timeout= 
     | 
| 
      
 824 
     | 
    
         
            +
                                    app = Application().connect(class_name="TFrmProcessamentoFEe2", timeout=10)
         
     | 
| 
       819 
825 
     | 
    
         
             
                                    main_window = app["TFrmProcessamentoFEe2"]
         
     | 
| 
       820 
826 
     | 
    
         | 
| 
       821 
     | 
    
         
            -
                                    await worker_sleep( 
     | 
| 
       822 
     | 
    
         
            -
             
     | 
| 
       823 
     | 
    
         
            -
                                     
     | 
| 
       824 
     | 
    
         
            -
             
     | 
| 
       825 
     | 
    
         
            -
             
     | 
| 
       826 
     | 
    
         
            -
             
     | 
| 
       827 
     | 
    
         
            -
             
     | 
| 
       828 
     | 
    
         
            -
             
     | 
| 
      
 827 
     | 
    
         
            +
                                    await worker_sleep(5)
         
     | 
| 
      
 828 
     | 
    
         
            +
                                    information_pop_up = await is_window_open_by_class("TMessageForm", "TMessageForm")
         
     | 
| 
      
 829 
     | 
    
         
            +
                                    if information_pop_up["IsOpened"] == True:
         
     | 
| 
      
 830 
     | 
    
         
            +
                                        msg_pop_up = await ocr_by_class(numero_nota_fiscal, "TMessageForm", "TMessageForm")
         
     | 
| 
      
 831 
     | 
    
         
            +
                                        if msg_pop_up.sucesso:
         
     | 
| 
      
 832 
     | 
    
         
            +
                                            if 'operação concl' in msg_pop_up or 'operacao concl' in msg_pop_up:
         
     | 
| 
      
 833 
     | 
    
         
            +
                                                information_operacao_concluida = main_window.child_window(class_name="TMessageForm")
         
     | 
| 
      
 834 
     | 
    
         
            +
                                                btn_ok = information_operacao_concluida.child_window(class_name="TButton")
         
     | 
| 
      
 835 
     | 
    
         
            +
                                                btn_ok.click()
         
     | 
| 
      
 836 
     | 
    
         
            +
                                                await worker_sleep(4)
         
     | 
| 
      
 837 
     | 
    
         
            +
                                                main_window.close()
         
     | 
| 
      
 838 
     | 
    
         
            +
                                                break
         
     | 
| 
      
 839 
     | 
    
         
            +
                                            else:
         
     | 
| 
      
 840 
     | 
    
         
            +
                                                retorno = f"Pop up nao mapeado para seguimento do robo {msg_pop_up} \nEtapas Executadas:\n{steps}"
         
     | 
| 
      
 841 
     | 
    
         
            +
                                                return RpaRetornoProcessoDTO(
         
     | 
| 
      
 842 
     | 
    
         
            +
                                                    sucesso=False,
         
     | 
| 
      
 843 
     | 
    
         
            +
                                                    retorno=retorno,
         
     | 
| 
      
 844 
     | 
    
         
            +
                                                    status=RpaHistoricoStatusEnum.Falha,
         
     | 
| 
      
 845 
     | 
    
         
            +
                                                    tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
         
     | 
| 
      
 846 
     | 
    
         
            +
                                                )
         
     | 
| 
      
 847 
     | 
    
         
            +
                                        else:
         
     | 
| 
      
 848 
     | 
    
         
            +
                                            retorno = f"Não foi possivel realizar a confirmação do msg do OCR \nEtapas Executadas:\n{steps}"
         
     | 
| 
      
 849 
     | 
    
         
            +
                                            return RpaRetornoProcessoDTO(
         
     | 
| 
      
 850 
     | 
    
         
            +
                                                sucesso=False,
         
     | 
| 
      
 851 
     | 
    
         
            +
                                                retorno=retorno,
         
     | 
| 
      
 852 
     | 
    
         
            +
                                                status=RpaHistoricoStatusEnum.Falha,
         
     | 
| 
      
 853 
     | 
    
         
            +
                                                tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
         
     | 
| 
      
 854 
     | 
    
         
            +
                                            )
         
     | 
| 
       829 
855 
     | 
    
         
             
                                except Exception as e:
         
     | 
| 
       830 
856 
     | 
    
         
             
                                    pass
         
     | 
| 
       831 
857 
     | 
    
         | 
| 
         @@ -36,6 +36,7 @@ async def perform_task(task: RpaProcessoEntradaDTO): 
     | 
|
| 
       36 
36 
     | 
    
         
             
                logger.info(log_msg)
         
     | 
| 
       37 
37 
     | 
    
         
             
                task_uuid = task.uuidProcesso
         
     | 
| 
       38 
38 
     | 
    
         
             
                url_retorno = task.configEntrada.get("urlRetorno", None)
         
     | 
| 
      
 39 
     | 
    
         
            +
                identificador_webhook = task.configEntrada.get("identificador", None)
         
     | 
| 
       39 
40 
     | 
    
         
             
                processo: RpaProcesso = await get_processo(task_uuid)
         
     | 
| 
       40 
41 
     | 
    
         
             
                if processo is None:
         
     | 
| 
       41 
42 
     | 
    
         
             
                    worker_config = load_worker_config()
         
     | 
| 
         @@ -77,7 +78,10 @@ async def perform_task(task: RpaProcessoEntradaDTO): 
     | 
|
| 
       77 
78 
     | 
    
         
             
                            show_toast("Sucesso", f"Processo executado com sucesso: {result}")
         
     | 
| 
       78 
79 
     | 
    
         | 
| 
       79 
80 
     | 
    
         
             
                        if url_retorno is not None and result.sucesso == False:
         
     | 
| 
       80 
     | 
    
         
            -
                             
     | 
| 
      
 81 
     | 
    
         
            +
                            if identificador_webhook:
         
     | 
| 
      
 82 
     | 
    
         
            +
                                await send_to_webhook(url_retorno, result.status, result.retorno, identificador_webhook)
         
     | 
| 
      
 83 
     | 
    
         
            +
                            else:
         
     | 
| 
      
 84 
     | 
    
         
            +
                                await send_to_webhook(url_retorno, result.status, result.retorno)
         
     | 
| 
       81 
85 
     | 
    
         
             
                        return result
         
     | 
| 
       82 
86 
     | 
    
         
             
                    else:
         
     | 
| 
       83 
87 
     | 
    
         
             
                        err_msg = f"Processo não encontrado: {task_uuid}"
         
     | 
| 
         @@ -3437,6 +3437,60 @@ async def ocr_warnings(numero_nota: str)-> RpaRetornoProcessoDTO: 
     | 
|
| 
       3437 
3437 
     | 
    
         
             
                        pass
         
     | 
| 
       3438 
3438 
     | 
    
         | 
| 
       3439 
3439 
     | 
    
         | 
| 
      
 3440 
     | 
    
         
            +
            async def ocr_by_class(numero_nota: str, windows_class: str, app_class: str)-> RpaRetornoProcessoDTO:
         
     | 
| 
      
 3441 
     | 
    
         
            +
                try:
         
     | 
| 
      
 3442 
     | 
    
         
            +
                    app = Application().connect(class_name=windows_class)
         
     | 
| 
      
 3443 
     | 
    
         
            +
                    main_window = app[app_class]
         
     | 
| 
      
 3444 
     | 
    
         
            +
                    main_window.set_focus()
         
     | 
| 
      
 3445 
     | 
    
         
            +
             
     | 
| 
      
 3446 
     | 
    
         
            +
                    console.print(f"Obtendo texto da Janela...\n")
         
     | 
| 
      
 3447 
     | 
    
         
            +
                    console.print(f"Tirando print da janela do warning para realização do OCR...\n")
         
     | 
| 
      
 3448 
     | 
    
         
            +
             
     | 
| 
      
 3449 
     | 
    
         
            +
                    window_rect = main_window.rectangle()
         
     | 
| 
      
 3450 
     | 
    
         
            +
                    screenshot = pyautogui.screenshot(
         
     | 
| 
      
 3451 
     | 
    
         
            +
                        region=(
         
     | 
| 
      
 3452 
     | 
    
         
            +
                            window_rect.left,
         
     | 
| 
      
 3453 
     | 
    
         
            +
                            window_rect.top,
         
     | 
| 
      
 3454 
     | 
    
         
            +
                            window_rect.width(),
         
     | 
| 
      
 3455 
     | 
    
         
            +
                            window_rect.height(),
         
     | 
| 
      
 3456 
     | 
    
         
            +
                        )
         
     | 
| 
      
 3457 
     | 
    
         
            +
                    )
         
     | 
| 
      
 3458 
     | 
    
         
            +
                    username = getpass.getuser()
         
     | 
| 
      
 3459 
     | 
    
         
            +
                    path_to_png = f"C:\\Users\\{username}\\Downloads\\ocr_bt_class_popup_{numero_nota}.png"
         
     | 
| 
      
 3460 
     | 
    
         
            +
                    screenshot.save(path_to_png)
         
     | 
| 
      
 3461 
     | 
    
         
            +
                    console.print(f"Print salvo em {path_to_png}...\n")
         
     | 
| 
      
 3462 
     | 
    
         
            +
             
     | 
| 
      
 3463 
     | 
    
         
            +
                    console.print(
         
     | 
| 
      
 3464 
     | 
    
         
            +
                        f"Preparando a imagem para maior resolução e assertividade no OCR...\n"
         
     | 
| 
      
 3465 
     | 
    
         
            +
                    )
         
     | 
| 
      
 3466 
     | 
    
         
            +
                    image = Image.open(path_to_png)
         
     | 
| 
      
 3467 
     | 
    
         
            +
                    image = image.convert("L")
         
     | 
| 
      
 3468 
     | 
    
         
            +
                    enhancer = ImageEnhance.Contrast(image)
         
     | 
| 
      
 3469 
     | 
    
         
            +
                    image = enhancer.enhance(2.0)
         
     | 
| 
      
 3470 
     | 
    
         
            +
                    image.save(path_to_png)
         
     | 
| 
      
 3471 
     | 
    
         
            +
                    console.print(f"Imagem preparada com sucesso...\n")
         
     | 
| 
      
 3472 
     | 
    
         
            +
                    console.print(f"Realizando OCR...\n")
         
     | 
| 
      
 3473 
     | 
    
         
            +
                    captured_text = pytesseract.image_to_string(Image.open(path_to_png))
         
     | 
| 
      
 3474 
     | 
    
         
            +
                    console.print(f"Texto Full capturado {captured_text}...\n")
         
     | 
| 
      
 3475 
     | 
    
         
            +
                    return RpaRetornoProcessoDTO(
         
     | 
| 
      
 3476 
     | 
    
         
            +
                        sucesso=True,
         
     | 
| 
      
 3477 
     | 
    
         
            +
                        retorno=captured_text,
         
     | 
| 
      
 3478 
     | 
    
         
            +
                        status=RpaHistoricoStatusEnum.Sucesso,
         
     | 
| 
      
 3479 
     | 
    
         
            +
                    )
         
     | 
| 
      
 3480 
     | 
    
         
            +
                except Exception as e:
         
     | 
| 
      
 3481 
     | 
    
         
            +
                    return RpaRetornoProcessoDTO(
         
     | 
| 
      
 3482 
     | 
    
         
            +
                        sucesso=False,
         
     | 
| 
      
 3483 
     | 
    
         
            +
                        retorno=f"Erro ao realizar a extração do texto vinculado ao warning, erro - {e}",
         
     | 
| 
      
 3484 
     | 
    
         
            +
                        status=RpaHistoricoStatusEnum.Falha,
         
     | 
| 
      
 3485 
     | 
    
         
            +
                        tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
         
     | 
| 
      
 3486 
     | 
    
         
            +
                    )
         
     | 
| 
      
 3487 
     | 
    
         
            +
                finally:
         
     | 
| 
      
 3488 
     | 
    
         
            +
                    try:
         
     | 
| 
      
 3489 
     | 
    
         
            +
                        os.remove(path_to_png)
         
     | 
| 
      
 3490 
     | 
    
         
            +
                    except:
         
     | 
| 
      
 3491 
     | 
    
         
            +
                        pass
         
     | 
| 
      
 3492 
     | 
    
         
            +
             
     | 
| 
      
 3493 
     | 
    
         
            +
             
     | 
| 
       3440 
3494 
     | 
    
         
             
            async def nf_busca_nf_saida(num_nota_fiscal: str) -> RpaRetornoProcessoDTO:
         
     | 
| 
       3441 
3495 
     | 
    
         
             
                try:
         
     | 
| 
       3442 
3496 
     | 
    
         
             
                    app = Application().connect(class_name="TFrmNotaFiscalSaida", timeout=60)
         
     | 
| 
         @@ -3561,7 +3615,7 @@ async def nf_devolucao_liquidar_cupom(num_nota_fiscal: str, data_atual: str) -> 
     | 
|
| 
       3561 
3615 
     | 
    
         | 
| 
       3562 
3616 
     | 
    
         
             
                    main_window.set_focus()
         
     | 
| 
       3563 
3617 
     | 
    
         | 
| 
       3564 
     | 
    
         
            -
                    page_control = main_window.child_window(class_name="TPageControl")
         
     | 
| 
      
 3618 
     | 
    
         
            +
                    page_control = main_window.child_window(class_name="TPageControl", found_index=0)
         
     | 
| 
       3565 
3619 
     | 
    
         
             
                    # Navegar até a aba TabSheetLiquidacao
         
     | 
| 
       3566 
3620 
     | 
    
         
             
                    tab_sheet_liquidacao = page_control.child_window(title="TabSheetLiquidacao")
         
     | 
| 
       3567 
3621 
     | 
    
         
             
                    panel_liquidacao = tab_sheet_liquidacao.child_window(class_name="TPanel", found_index=0)
         
     | 
| 
         @@ -3592,30 +3646,54 @@ async def nf_devolucao_liquidar_cupom(num_nota_fiscal: str, data_atual: str) -> 
     | 
|
| 
       3592 
3646 
     | 
    
         
             
                    await worker_sleep(3)
         
     | 
| 
       3593 
3647 
     | 
    
         
             
                    confirm_pop_up = await is_window_open_by_class("TMessageForm","TMessageForm")
         
     | 
| 
       3594 
3648 
     | 
    
         
             
                    if confirm_pop_up["IsOpened"] == True:
         
     | 
| 
       3595 
     | 
    
         
            -
                         
     | 
| 
       3596 
     | 
    
         
            -
                         
     | 
| 
       3597 
     | 
    
         
            -
             
     | 
| 
       3598 
     | 
    
         
            -
             
     | 
| 
       3599 
     | 
    
         
            -
             
     | 
| 
       3600 
     | 
    
         
            -
             
     | 
| 
       3601 
     | 
    
         
            -
             
     | 
| 
       3602 
     | 
    
         
            -
             
     | 
| 
       3603 
     | 
    
         
            -
             
     | 
| 
       3604 
     | 
    
         
            -
             
     | 
| 
       3605 
     | 
    
         
            -
             
     | 
| 
       3606 
     | 
    
         
            -
             
     | 
| 
       3607 
     | 
    
         
            -
             
     | 
| 
       3608 
     | 
    
         
            -
                                 
     | 
| 
       3609 
     | 
    
         
            -
             
     | 
| 
       3610 
     | 
    
         
            -
             
     | 
| 
      
 3649 
     | 
    
         
            +
                        capture_text_ocr = await ocr_by_class(num_nota_fiscal,"TMessageForm","TMessageForm")
         
     | 
| 
      
 3650 
     | 
    
         
            +
                        if capture_text_ocr.sucesso == True:
         
     | 
| 
      
 3651 
     | 
    
         
            +
                            msg_result = capture_text_ocr.retorno
         
     | 
| 
      
 3652 
     | 
    
         
            +
                            if "deseja realmente" in msg_result.lower():
         
     | 
| 
      
 3653 
     | 
    
         
            +
                                app_confirm = Application().connect(class_name="TMessageForm")
         
     | 
| 
      
 3654 
     | 
    
         
            +
                                main_window_confirm = app_confirm["TMessageForm"]
         
     | 
| 
      
 3655 
     | 
    
         
            +
             
     | 
| 
      
 3656 
     | 
    
         
            +
                                btn_yes = main_window_confirm["&Yes"]
         
     | 
| 
      
 3657 
     | 
    
         
            +
                                try:
         
     | 
| 
      
 3658 
     | 
    
         
            +
                                    btn_yes.click()
         
     | 
| 
      
 3659 
     | 
    
         
            +
                                    await worker_sleep(3)
         
     | 
| 
      
 3660 
     | 
    
         
            +
                                    console.print("O botão Yes foi clicado com sucesso.", style="green")
         
     | 
| 
      
 3661 
     | 
    
         
            +
                                    #main_window.close()
         
     | 
| 
      
 3662 
     | 
    
         
            +
                                except:
         
     | 
| 
      
 3663 
     | 
    
         
            +
                                    return RpaRetornoProcessoDTO(
         
     | 
| 
      
 3664 
     | 
    
         
            +
                                        sucesso=False,
         
     | 
| 
      
 3665 
     | 
    
         
            +
                                        retorno=f"Não foi possivel clicar em Yes durante para a confirmação da liquidação do titulo",
         
     | 
| 
      
 3666 
     | 
    
         
            +
                                        status=RpaHistoricoStatusEnum.Falha,
         
     | 
| 
      
 3667 
     | 
    
         
            +
                                        tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
         
     | 
| 
      
 3668 
     | 
    
         
            +
                                    )
         
     | 
| 
      
 3669 
     | 
    
         
            +
                            else:
         
     | 
| 
      
 3670 
     | 
    
         
            +
                                return RpaRetornoProcessoDTO(
         
     | 
| 
      
 3671 
     | 
    
         
            +
                                    sucesso=False,
         
     | 
| 
      
 3672 
     | 
    
         
            +
                                    retorno=f"POP não mapeado: {msg_result}",
         
     | 
| 
      
 3673 
     | 
    
         
            +
                                    status=RpaHistoricoStatusEnum.Falha,
         
     | 
| 
      
 3674 
     | 
    
         
            +
                                    tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
         
     | 
| 
      
 3675 
     | 
    
         
            +
                                )
         
     | 
| 
       3611 
3676 
     | 
    
         | 
| 
       3612 
3677 
     | 
    
         
             
                    console.print('Aguardando a confirmação de Liquidação realizado com sucesso')
         
     | 
| 
       3613 
3678 
     | 
    
         
             
                    try:
         
     | 
| 
       3614 
3679 
     | 
    
         
             
                        app = Application().connect(title="Informação", timeout=60)
         
     | 
| 
       3615 
3680 
     | 
    
         
             
                        main_window = app["Informação"]
         
     | 
| 
       3616 
3681 
     | 
    
         
             
                        main_window.set_focus()
         
     | 
| 
       3617 
     | 
    
         
            -
                         
     | 
| 
       3618 
     | 
    
         
            -
                         
     | 
| 
      
 3682 
     | 
    
         
            +
                        msg_pop_up = await ocr_by_class(num_nota_fiscal,"TMessageForm","TMessageForm")
         
     | 
| 
      
 3683 
     | 
    
         
            +
                        if msg_pop_up.sucesso == True:
         
     | 
| 
      
 3684 
     | 
    
         
            +
                            msg_result = msg_pop_up.retorno
         
     | 
| 
      
 3685 
     | 
    
         
            +
                            if "sucesso" in msg_result.lower():
         
     | 
| 
      
 3686 
     | 
    
         
            +
                                btn_ok = main_window.child_window(class_name="Button")
         
     | 
| 
      
 3687 
     | 
    
         
            +
                                btn_ok.click()
         
     | 
| 
      
 3688 
     | 
    
         
            +
                                pyautogui.press('enter')
         
     | 
| 
      
 3689 
     | 
    
         
            +
                                await worker_sleep(1)
         
     | 
| 
      
 3690 
     | 
    
         
            +
                            else:
         
     | 
| 
      
 3691 
     | 
    
         
            +
                                return RpaRetornoProcessoDTO(
         
     | 
| 
      
 3692 
     | 
    
         
            +
                                    sucesso=False,
         
     | 
| 
      
 3693 
     | 
    
         
            +
                                    retorno=f"Não foi possivel obter a confirmação de titulo liquidado com sucesso, pop_up nao mepeado: {msg_result}",
         
     | 
| 
      
 3694 
     | 
    
         
            +
                                    status=RpaHistoricoStatusEnum.Falha,
         
     | 
| 
      
 3695 
     | 
    
         
            +
                                    tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
         
     | 
| 
      
 3696 
     | 
    
         
            +
                                )
         
     | 
| 
       3619 
3697 
     | 
    
         
             
                    except Exception as e:
         
     | 
| 
       3620 
3698 
     | 
    
         
             
                        return RpaRetornoProcessoDTO(
         
     | 
| 
       3621 
3699 
     | 
    
         
             
                            sucesso=False,
         
     | 
| 
         @@ -3624,6 +3702,10 @@ async def nf_devolucao_liquidar_cupom(num_nota_fiscal: str, data_atual: str) -> 
     | 
|
| 
       3624 
3702 
     | 
    
         
             
                            tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
         
     | 
| 
       3625 
3703 
     | 
    
         
             
                        )
         
     | 
| 
       3626 
3704 
     | 
    
         | 
| 
      
 3705 
     | 
    
         
            +
             
     | 
| 
      
 3706 
     | 
    
         
            +
                    app = Application().connect(class_name="TFrmTituloReceber", timeout=60)
         
     | 
| 
      
 3707 
     | 
    
         
            +
                    main_window = app["TFrmTituloReceber"]
         
     | 
| 
      
 3708 
     | 
    
         
            +
                    main_window.set_focus()
         
     | 
| 
       3627 
3709 
     | 
    
         
             
                    console.print('Confirmando se o titulo alterou para Liquidado')
         
     | 
| 
       3628 
3710 
     | 
    
         
             
                    panel_TPage = main_window.child_window(class_name="TcxTreeView")
         
     | 
| 
       3629 
3711 
     | 
    
         
             
                    panel_TTabSheet = panel_TPage.child_window(class_name="TcxCustomInnerTreeView")
         
     | 
| 
         @@ -3638,6 +3720,9 @@ async def nf_devolucao_liquidar_cupom(num_nota_fiscal: str, data_atual: str) -> 
     | 
|
| 
       3638 
3720 
     | 
    
         | 
| 
       3639 
3721 
     | 
    
         
             
                    if radio_liquidado.is_checked():
         
     | 
| 
       3640 
3722 
     | 
    
         
             
                        console.print("Botão 'Liquidado' está selecionado, seguindo com o processo...\n")
         
     | 
| 
      
 3723 
     | 
    
         
            +
                        app = Application().connect(class_name="TFrmTituloReceber", timeout=60)
         
     | 
| 
      
 3724 
     | 
    
         
            +
                        main_window = app["TFrmTituloReceber"]
         
     | 
| 
      
 3725 
     | 
    
         
            +
                        main_window.set_focus()
         
     | 
| 
       3641 
3726 
     | 
    
         
             
                        main_window.close()
         
     | 
| 
       3642 
3727 
     | 
    
         
             
                    else:
         
     | 
| 
       3643 
3728 
     | 
    
         
             
                        return RpaRetornoProcessoDTO(
         
     | 
| 
         @@ -7,7 +7,7 @@ worker_automate_hub/api/helpers/api_helpers.py,sha256=SkheO2fXexeh-a4shr8Qzsz_kZ 
     | 
|
| 
       7 
7 
     | 
    
         
             
            worker_automate_hub/api/rdp_service.py,sha256=L7orr60FkJr6zjETtA4me8tRYCW9m1g-i5pq6AILUFo,1647
         
     | 
| 
       8 
8 
     | 
    
         
             
            worker_automate_hub/api/rpa_fila_service.py,sha256=qa9JLuX6kL9Bv_PyPE_CzIikKwy0WdOf2FrIpFdMcYI,2125
         
     | 
| 
       9 
9 
     | 
    
         
             
            worker_automate_hub/api/rpa_historico_service.py,sha256=wQw8_k8i0S-r7qrrn4BSoztkgtiuH_bHRSEytbZebDg,9690
         
     | 
| 
       10 
     | 
    
         
            -
            worker_automate_hub/api/webhook_service.py,sha256= 
     | 
| 
      
 10 
     | 
    
         
            +
            worker_automate_hub/api/webhook_service.py,sha256=S1a8IIS5LYY16I5E2pPPczaUnUz-_CwmD9_1QBdQD2g,1879
         
     | 
| 
       11 
11 
     | 
    
         
             
            worker_automate_hub/cli.py,sha256=JB45pjPJ8_E-4xw0OjqDMcAw-tpDV0mjmvwJRTnTzY0,6862
         
     | 
| 
       12 
12 
     | 
    
         
             
            worker_automate_hub/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
         
     | 
| 
       13 
13 
     | 
    
         
             
            worker_automate_hub/config/settings.py,sha256=4BkIYV0C9C_tl68WNfw3aoywr1-_bRJsKysSnSRALT0,2450
         
     | 
| 
         @@ -37,7 +37,7 @@ worker_automate_hub/tasks/jobs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5 
     | 
|
| 
       37 
37 
     | 
    
         
             
            worker_automate_hub/tasks/jobs/coleta_dje_process.py,sha256=UkLWTC5Ub2qBb0yY-8IZ0DLLOVJOfNTq_z9krx_t25Q,29476
         
     | 
| 
       38 
38 
     | 
    
         
             
            worker_automate_hub/tasks/jobs/conexao_rdp.py,sha256=lNjD-JxpPTXdvFEJAkajC_Ltyw81rIEJeu7FUfRf2qI,9586
         
     | 
| 
       39 
39 
     | 
    
         
             
            worker_automate_hub/tasks/jobs/descartes.py,sha256=0bMCJ0xIcK8TLSgjF6taAbGFLMU-sGDVFIhUYSRtrbg,41092
         
     | 
| 
       40 
     | 
    
         
            -
            worker_automate_hub/tasks/jobs/devolucao_prazo_a_faturar.py,sha256= 
     | 
| 
      
 40 
     | 
    
         
            +
            worker_automate_hub/tasks/jobs/devolucao_prazo_a_faturar.py,sha256=PErDGphh75kc5SGJKI90L26qPJKl0BAkk8eRgjwmRvA,79240
         
     | 
| 
       41 
41 
     | 
    
         
             
            worker_automate_hub/tasks/jobs/ecac_estadual_go.py,sha256=dKkf22nH5gp3RErq5u0UzRsKyJ81fc6ZZ4vLtUuMwHA,21002
         
     | 
| 
       42 
42 
     | 
    
         
             
            worker_automate_hub/tasks/jobs/ecac_estadual_main.py,sha256=8WmKe4-MRtzHobXz2S4YBDNN8alfawkC-BBlRY-mn1g,1726
         
     | 
| 
       43 
43 
     | 
    
         
             
            worker_automate_hub/tasks/jobs/ecac_estadual_mt.py,sha256=C26zmpGQGUq6sP9lU9nanM3Fje-rkyx5tjwmRy4lyL8,25300
         
     | 
| 
         @@ -66,17 +66,17 @@ worker_automate_hub/tasks/jobs/playground.py,sha256=7vWDg9DwToHwGJ6_XOa8TQ6LmfRV 
     | 
|
| 
       66 
66 
     | 
    
         
             
            worker_automate_hub/tasks/jobs/sped_fiscal.py,sha256=uHA5zQmAqqb-L_jdbBKiqINV4vXI58CL3wAI-2Xt_oQ,28938
         
     | 
| 
       67 
67 
     | 
    
         
             
            worker_automate_hub/tasks/jobs/transferencias.py,sha256=i3fCanHZ_pSwPW03THpQPqlzrDjbV4QbKkXpUqV3dxM,39272
         
     | 
| 
       68 
68 
     | 
    
         
             
            worker_automate_hub/tasks/task_definitions.py,sha256=yNu2GSC1PxjblcMgT7UOFhEUq4CMaQqDfN3hAF4yz_U,4954
         
     | 
| 
       69 
     | 
    
         
            -
            worker_automate_hub/tasks/task_executor.py,sha256= 
     | 
| 
      
 69 
     | 
    
         
            +
            worker_automate_hub/tasks/task_executor.py,sha256=1ZBVW2QS0io-gVyR4VNnbpaLJnSpTxtHIbRlnuQuj1Y,5566
         
     | 
| 
       70 
70 
     | 
    
         
             
            worker_automate_hub/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
         
     | 
| 
       71 
71 
     | 
    
         
             
            worker_automate_hub/utils/env.py,sha256=TacQjGRO7PUNpttrhTAc5Gnegaiysl2Knsv1P8qfkfs,57
         
     | 
| 
       72 
72 
     | 
    
         
             
            worker_automate_hub/utils/get_creds_gworkspace.py,sha256=ZJ0IIEjM4IXIV9rwfbOZ1V1wiaMoJAGZeSy0D37sYdU,2212
         
     | 
| 
       73 
73 
     | 
    
         
             
            worker_automate_hub/utils/logger.py,sha256=FYV9fg0_RAYJF_ZOCJEbqQAiCXlXk2gMpvUU1rzT_xs,671
         
     | 
| 
       74 
74 
     | 
    
         
             
            worker_automate_hub/utils/toast.py,sha256=xPHc5r5uOxB_cZlCzm13Kt2qSKLLFZALncU6Qg3Ft68,1162
         
     | 
| 
       75 
75 
     | 
    
         
             
            worker_automate_hub/utils/updater.py,sha256=en2FCGhI8aZ-JNP3LQm64NJDc4awCNW7UhbVlwDl49Y,7972
         
     | 
| 
       76 
     | 
    
         
            -
            worker_automate_hub/utils/util.py,sha256= 
     | 
| 
      
 76 
     | 
    
         
            +
            worker_automate_hub/utils/util.py,sha256=ch8qDZfKBHCYKKjblVSQ4X07m9AsYpOPD5RflaipDm0,159514
         
     | 
| 
       77 
77 
     | 
    
         
             
            worker_automate_hub/utils/utils_nfe_entrada.py,sha256=iYpOs7fb7C3bY61QHySr00xlDNzrrCP0zaexOpBPuaQ,31930
         
     | 
| 
       78 
78 
     | 
    
         
             
            worker_automate_hub/worker.py,sha256=CT-poyP1ZYvubArYsnnNd9oJ53SPaDwgr6p6keS3nI4,6248
         
     | 
| 
       79 
     | 
    
         
            -
            worker_automate_hub-0.5. 
     | 
| 
       80 
     | 
    
         
            -
            worker_automate_hub-0.5. 
     | 
| 
       81 
     | 
    
         
            -
            worker_automate_hub-0.5. 
     | 
| 
       82 
     | 
    
         
            -
            worker_automate_hub-0.5. 
     | 
| 
      
 79 
     | 
    
         
            +
            worker_automate_hub-0.5.54.dist-info/entry_points.txt,sha256=sddyhjx57I08RY8X7UxcTpdoOsWULAWNKN9Xr6pp_Kw,54
         
     | 
| 
      
 80 
     | 
    
         
            +
            worker_automate_hub-0.5.54.dist-info/METADATA,sha256=MpWKhIzCV_6rKtJD-Vfn7LYwGeqXpIfixLPCPDN-vjo,2894
         
     | 
| 
      
 81 
     | 
    
         
            +
            worker_automate_hub-0.5.54.dist-info/WHEEL,sha256=RaoafKOydTQ7I_I3JTrPCg6kUmTgtm4BornzOqyEfJ8,88
         
     | 
| 
      
 82 
     | 
    
         
            +
            worker_automate_hub-0.5.54.dist-info/RECORD,,
         
     | 
| 
         
            File without changes
         
     | 
    
        {worker_automate_hub-0.5.52.dist-info → worker_automate_hub-0.5.54.dist-info}/entry_points.txt
    RENAMED
    
    | 
         
            File without changes
         
     |