From 42d76991b0dff0ee071f44a9a9d48ecbbc75c8f3 Mon Sep 17 00:00:00 2001 From: Keven Date: Mon, 10 Nov 2025 18:20:24 -0300 Subject: [PATCH] =?UTF-8?q?[MVPTN-126]=20fix(Importa=C3=A7=C3=A3o):=20Corr?= =?UTF-8?q?ige=20a=20importa=C3=A7=C3=A3o=20de=20pacotes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- actions/data/prepare_update_data.py | 13 +++-- .../t_pessoa_representante_index_action.py | 2 +- .../t_pessoa_representante_update_action.py | 2 +- .../g_cartorio/g_cartorio_save_repository.py | 2 +- .../g_cartorio_update_repository.py | 2 +- .../g_emolumento_save_repository.py | 2 +- .../g_emolumento_update_repository.py | 2 +- .../g_emolumento_item_save_repository.py | 2 +- .../g_emolumento_item_update_repository.py | 2 +- .../g_emolumento_periodo_save_repository.py | 2 +- .../g_emolumento_periodo_update_repository.py | 2 +- .../g_gramatica_save_repository.py | 2 +- .../g_gramatica_update_repository.py | 2 +- .../g_natureza_titulo_save_repository.py | 2 +- .../g_natureza_titulo_update_repository.py | 2 +- .../g_selo_grupo_save_repository.py | 2 +- .../g_selo_grupo_update_repository.py | 2 +- .../t_ato_partetipo_update_repository.py | 12 +++-- ...t_censec_qualidadeato_update_repository.py | 2 +- .../t_censec_tipoato_update_repository.py | 2 +- ...t_censec_tiponatureza_update_repository.py | 2 +- .../t_imovel/t_imovel_update_repository.py | 8 +-- .../t_imovel_unidade_update_repository.py | 27 +++++----- .../t_pessoa/t_pessoa_update_repository.py | 2 +- .../go/t_censec_qualidadeato_save_service.py | 2 +- .../go/t_censec_tipoato_save_service.py | 2 +- .../t_imovel/go/t_imovel_save_service.py | 2 +- .../t_servico_pedido_update_repository.py | 2 +- .../balcao/schemas/t_servico_pedido_schema.py | 31 ++++++++++-- .../go/t_servico_itempedido_save_service.py | 1 + .../go/t_servico_pedido_save_service.py | 16 +++--- .../go/t_servico_pedido_update_service.py | 49 +++++++++++++++++-- 32 files changed, 136 insertions(+), 69 deletions(-) diff --git a/actions/data/prepare_update_data.py b/actions/data/prepare_update_data.py index dce261e..d07ae6e 100644 --- a/actions/data/prepare_update_data.py +++ b/actions/data/prepare_update_data.py @@ -1,7 +1,10 @@ from typing import Tuple, Dict, Any from pydantic import BaseModel -def prepare_update_data(schema: BaseModel, exclude_fields: list[str] = None, id_field: str = "id") -> Tuple[Dict[str, Any], str]: + +def prepare_update_data( + schema: BaseModel, exclude_fields: list[str] = None, id_field: str = "id" +) -> Tuple[Dict[str, Any], str]: """ Gera dinamicamente os dados e SQL para update com base em um schema Pydantic. @@ -21,11 +24,7 @@ def prepare_update_data(schema: BaseModel, exclude_fields: list[str] = None, id_ data_dict = schema.model_dump(exclude_unset=True) # Monta lista dinâmica de campos para o SET - update_fields = [ - f"{k} = :{k}" - for k in data_dict.keys() - if k not in exclude_fields - ] + update_fields = [f"{k} = :{k}" for k in data_dict.keys() if k not in exclude_fields] update_sql = ", ".join(update_fields) - return data_dict, update_sql \ No newline at end of file + return data_dict, update_sql diff --git a/packages/v1/administrativo/actions/t_pessoa_representante/t_pessoa_representante_index_action.py b/packages/v1/administrativo/actions/t_pessoa_representante/t_pessoa_representante_index_action.py index 2bc701d..bd86ebe 100644 --- a/packages/v1/administrativo/actions/t_pessoa_representante/t_pessoa_representante_index_action.py +++ b/packages/v1/administrativo/actions/t_pessoa_representante/t_pessoa_representante_index_action.py @@ -1,4 +1,4 @@ -from api.abstracts.action import BaseAction +from abstracts.action import BaseAction from packages.v1.administrativo.repositories.t_pessoa_representante.t_pessoa_representante_index_repository import ( TPessoaRepresentanteIndexRepository, ) diff --git a/packages/v1/administrativo/actions/t_pessoa_representante/t_pessoa_representante_update_action.py b/packages/v1/administrativo/actions/t_pessoa_representante/t_pessoa_representante_update_action.py index 29c5a16..d728d20 100644 --- a/packages/v1/administrativo/actions/t_pessoa_representante/t_pessoa_representante_update_action.py +++ b/packages/v1/administrativo/actions/t_pessoa_representante/t_pessoa_representante_update_action.py @@ -1,4 +1,4 @@ -from api.abstracts.action import BaseAction +from abstracts.action import BaseAction from packages.v1.administrativo.repositories.t_pessoa_representante.t_pessoa_representante_update_repository import ( TPessoaRepresentanteUpdateRepository, ) diff --git a/packages/v1/administrativo/repositories/g_cartorio/g_cartorio_save_repository.py b/packages/v1/administrativo/repositories/g_cartorio/g_cartorio_save_repository.py index 4f531e9..dd759df 100644 --- a/packages/v1/administrativo/repositories/g_cartorio/g_cartorio_save_repository.py +++ b/packages/v1/administrativo/repositories/g_cartorio/g_cartorio_save_repository.py @@ -1,6 +1,6 @@ from fastapi import HTTPException, status from abstracts.repository import BaseRepository -from api.actions.data.generate_insert_sql import generate_insert_sql +from actions.data.generate_insert_sql import generate_insert_sql from packages.v1.administrativo.schemas.g_cartorio_schema import GCartorioSaveSchema diff --git a/packages/v1/administrativo/repositories/g_cartorio/g_cartorio_update_repository.py b/packages/v1/administrativo/repositories/g_cartorio/g_cartorio_update_repository.py index 6508927..133bb4c 100644 --- a/packages/v1/administrativo/repositories/g_cartorio/g_cartorio_update_repository.py +++ b/packages/v1/administrativo/repositories/g_cartorio/g_cartorio_update_repository.py @@ -1,5 +1,5 @@ from abstracts.repository import BaseRepository -from api.actions.data.prepare_update_data import prepare_update_data +from actions.data.prepare_update_data import prepare_update_data from fastapi import HTTPException, status from packages.v1.administrativo.schemas.g_cartorio_schema import GCartorioUpdateSchema diff --git a/packages/v1/administrativo/repositories/g_emolumento/g_emolumento_save_repository.py b/packages/v1/administrativo/repositories/g_emolumento/g_emolumento_save_repository.py index f42a4ca..57800ba 100644 --- a/packages/v1/administrativo/repositories/g_emolumento/g_emolumento_save_repository.py +++ b/packages/v1/administrativo/repositories/g_emolumento/g_emolumento_save_repository.py @@ -1,6 +1,6 @@ from fastapi import HTTPException, status from abstracts.repository import BaseRepository -from api.actions.data.generate_insert_sql import generate_insert_sql +from actions.data.generate_insert_sql import generate_insert_sql from packages.v1.administrativo.schemas.g_emolumento_schema import GEmolumentoSaveSchema diff --git a/packages/v1/administrativo/repositories/g_emolumento/g_emolumento_update_repository.py b/packages/v1/administrativo/repositories/g_emolumento/g_emolumento_update_repository.py index 85095b9..25c81e2 100644 --- a/packages/v1/administrativo/repositories/g_emolumento/g_emolumento_update_repository.py +++ b/packages/v1/administrativo/repositories/g_emolumento/g_emolumento_update_repository.py @@ -1,5 +1,5 @@ from abstracts.repository import BaseRepository -from api.actions.data.prepare_update_data import prepare_update_data +from actions.data.prepare_update_data import prepare_update_data from fastapi import HTTPException, status from packages.v1.administrativo.schemas.g_emolumento_schema import ( diff --git a/packages/v1/administrativo/repositories/g_emolumento_item/g_emolumento_item_save_repository.py b/packages/v1/administrativo/repositories/g_emolumento_item/g_emolumento_item_save_repository.py index 9a289ee..77032ec 100644 --- a/packages/v1/administrativo/repositories/g_emolumento_item/g_emolumento_item_save_repository.py +++ b/packages/v1/administrativo/repositories/g_emolumento_item/g_emolumento_item_save_repository.py @@ -1,6 +1,6 @@ from fastapi import HTTPException, status from abstracts.repository import BaseRepository -from api.actions.data.generate_insert_sql import generate_insert_sql +from actions.data.generate_insert_sql import generate_insert_sql from packages.v1.administrativo.schemas.g_emolumento_item_schema import ( GEmolumentoItemSaveSchema, ) diff --git a/packages/v1/administrativo/repositories/g_emolumento_item/g_emolumento_item_update_repository.py b/packages/v1/administrativo/repositories/g_emolumento_item/g_emolumento_item_update_repository.py index 9d35d79..5289bab 100644 --- a/packages/v1/administrativo/repositories/g_emolumento_item/g_emolumento_item_update_repository.py +++ b/packages/v1/administrativo/repositories/g_emolumento_item/g_emolumento_item_update_repository.py @@ -1,5 +1,5 @@ from abstracts.repository import BaseRepository -from api.actions.data.prepare_update_data import prepare_update_data +from actions.data.prepare_update_data import prepare_update_data from fastapi import HTTPException, status from packages.v1.administrativo.schemas.g_emolumento_item_schema import ( diff --git a/packages/v1/administrativo/repositories/g_emolumento_periodo/g_emolumento_periodo_save_repository.py b/packages/v1/administrativo/repositories/g_emolumento_periodo/g_emolumento_periodo_save_repository.py index 12bb80b..ef8b0af 100644 --- a/packages/v1/administrativo/repositories/g_emolumento_periodo/g_emolumento_periodo_save_repository.py +++ b/packages/v1/administrativo/repositories/g_emolumento_periodo/g_emolumento_periodo_save_repository.py @@ -1,6 +1,6 @@ from fastapi import HTTPException, status from abstracts.repository import BaseRepository -from api.actions.data.generate_insert_sql import generate_insert_sql +from actions.data.generate_insert_sql import generate_insert_sql from packages.v1.administrativo.schemas.g_emolumento_periodo_schema import ( GEmolumentoPeriodoSaveSchema, ) diff --git a/packages/v1/administrativo/repositories/g_emolumento_periodo/g_emolumento_periodo_update_repository.py b/packages/v1/administrativo/repositories/g_emolumento_periodo/g_emolumento_periodo_update_repository.py index 3e9491f..291cf8f 100644 --- a/packages/v1/administrativo/repositories/g_emolumento_periodo/g_emolumento_periodo_update_repository.py +++ b/packages/v1/administrativo/repositories/g_emolumento_periodo/g_emolumento_periodo_update_repository.py @@ -1,5 +1,5 @@ from abstracts.repository import BaseRepository -from api.actions.data.prepare_update_data import prepare_update_data +from actions.data.prepare_update_data import prepare_update_data from fastapi import HTTPException, status from packages.v1.administrativo.schemas.g_emolumento_periodo_schema import ( diff --git a/packages/v1/administrativo/repositories/g_gramatica/g_gramatica_save_repository.py b/packages/v1/administrativo/repositories/g_gramatica/g_gramatica_save_repository.py index 0630612..a49624b 100644 --- a/packages/v1/administrativo/repositories/g_gramatica/g_gramatica_save_repository.py +++ b/packages/v1/administrativo/repositories/g_gramatica/g_gramatica_save_repository.py @@ -1,6 +1,6 @@ from fastapi import HTTPException, status from abstracts.repository import BaseRepository -from api.actions.data.generate_insert_sql import generate_insert_sql +from actions.data.generate_insert_sql import generate_insert_sql from packages.v1.administrativo.schemas.g_gramatica_schema import GGramaticaSaveSchema diff --git a/packages/v1/administrativo/repositories/g_gramatica/g_gramatica_update_repository.py b/packages/v1/administrativo/repositories/g_gramatica/g_gramatica_update_repository.py index 5d921cb..18af78e 100644 --- a/packages/v1/administrativo/repositories/g_gramatica/g_gramatica_update_repository.py +++ b/packages/v1/administrativo/repositories/g_gramatica/g_gramatica_update_repository.py @@ -1,5 +1,5 @@ from abstracts.repository import BaseRepository -from api.actions.data.prepare_update_data import prepare_update_data +from actions.data.prepare_update_data import prepare_update_data from fastapi import HTTPException, status from packages.v1.administrativo.schemas.g_gramatica_schema import GGramaticaUpdateSchema diff --git a/packages/v1/administrativo/repositories/g_natureza_titulo/g_natureza_titulo_save_repository.py b/packages/v1/administrativo/repositories/g_natureza_titulo/g_natureza_titulo_save_repository.py index d5f11a3..b6b3fd3 100644 --- a/packages/v1/administrativo/repositories/g_natureza_titulo/g_natureza_titulo_save_repository.py +++ b/packages/v1/administrativo/repositories/g_natureza_titulo/g_natureza_titulo_save_repository.py @@ -1,6 +1,6 @@ from fastapi import HTTPException, status from abstracts.repository import BaseRepository -from api.actions.data.generate_insert_sql import generate_insert_sql +from actions.data.generate_insert_sql import generate_insert_sql from packages.v1.administrativo.schemas.g_natureza_titulo_schema import ( GNaturezaTituloSaveSchema, ) diff --git a/packages/v1/administrativo/repositories/g_natureza_titulo/g_natureza_titulo_update_repository.py b/packages/v1/administrativo/repositories/g_natureza_titulo/g_natureza_titulo_update_repository.py index 2d74cca..9f954cc 100644 --- a/packages/v1/administrativo/repositories/g_natureza_titulo/g_natureza_titulo_update_repository.py +++ b/packages/v1/administrativo/repositories/g_natureza_titulo/g_natureza_titulo_update_repository.py @@ -1,5 +1,5 @@ from abstracts.repository import BaseRepository -from api.actions.data.prepare_update_data import prepare_update_data +from actions.data.prepare_update_data import prepare_update_data from fastapi import HTTPException, status from packages.v1.administrativo.schemas.g_natureza_titulo_schema import ( diff --git a/packages/v1/administrativo/repositories/g_selo_grupo/g_selo_grupo_save_repository.py b/packages/v1/administrativo/repositories/g_selo_grupo/g_selo_grupo_save_repository.py index d28cb24..bcb5d8f 100644 --- a/packages/v1/administrativo/repositories/g_selo_grupo/g_selo_grupo_save_repository.py +++ b/packages/v1/administrativo/repositories/g_selo_grupo/g_selo_grupo_save_repository.py @@ -1,6 +1,6 @@ from fastapi import HTTPException, status from abstracts.repository import BaseRepository -from api.actions.data.generate_insert_sql import generate_insert_sql +from actions.data.generate_insert_sql import generate_insert_sql from packages.v1.administrativo.schemas.g_selo_grupo_schema import GSeloGrupoSaveSchema diff --git a/packages/v1/administrativo/repositories/g_selo_grupo/g_selo_grupo_update_repository.py b/packages/v1/administrativo/repositories/g_selo_grupo/g_selo_grupo_update_repository.py index eeb7655..cd27412 100644 --- a/packages/v1/administrativo/repositories/g_selo_grupo/g_selo_grupo_update_repository.py +++ b/packages/v1/administrativo/repositories/g_selo_grupo/g_selo_grupo_update_repository.py @@ -1,5 +1,5 @@ from abstracts.repository import BaseRepository -from api.actions.data.prepare_update_data import prepare_update_data +from actions.data.prepare_update_data import prepare_update_data from fastapi import HTTPException, status from packages.v1.administrativo.schemas.g_selo_grupo_schema import ( diff --git a/packages/v1/administrativo/repositories/t_ato_partetipo/t_ato_partetipo_update_repository.py b/packages/v1/administrativo/repositories/t_ato_partetipo/t_ato_partetipo_update_repository.py index b47c86e..0ff01bd 100644 --- a/packages/v1/administrativo/repositories/t_ato_partetipo/t_ato_partetipo_update_repository.py +++ b/packages/v1/administrativo/repositories/t_ato_partetipo/t_ato_partetipo_update_repository.py @@ -1,6 +1,8 @@ from abstracts.repository import BaseRepository -from api.actions.data.prepare_update_data import prepare_update_data -from packages.v1.administrativo.schemas.t_ato_partetipo_schema import TAtoParteTipoUpdateSchema +from actions.data.prepare_update_data import prepare_update_data +from packages.v1.administrativo.schemas.t_ato_partetipo_schema import ( + TAtoParteTipoUpdateSchema, +) from fastapi import HTTPException, status @@ -9,11 +11,11 @@ class TAtoParteTipoUpdateRepository(BaseRepository): def execute(self, t_ato_partetipo_update_schema: TAtoParteTipoUpdateSchema): try: - + params, update_columns = prepare_update_data( t_ato_partetipo_update_schema, exclude_fields=["ato_partipo_id"], - id_field="ato_partipo_id" + id_field="ato_partipo_id", ) sql = f""" @@ -38,5 +40,5 @@ class TAtoParteTipoUpdateRepository(BaseRepository): except Exception as e: raise HTTPException( status_code=status.HTTP_422_UNPROCESSABLE_ENTITY, - detail=f"Erro ao atualizar o imóvel: {str(e)}" + detail=f"Erro ao atualizar o imóvel: {str(e)}", ) diff --git a/packages/v1/administrativo/repositories/t_censec_qualidadeato/t_censec_qualidadeato_update_repository.py b/packages/v1/administrativo/repositories/t_censec_qualidadeato/t_censec_qualidadeato_update_repository.py index 49efdaa..712d319 100644 --- a/packages/v1/administrativo/repositories/t_censec_qualidadeato/t_censec_qualidadeato_update_repository.py +++ b/packages/v1/administrativo/repositories/t_censec_qualidadeato/t_censec_qualidadeato_update_repository.py @@ -1,5 +1,5 @@ from abstracts.repository import BaseRepository -from api.actions.data.prepare_update_data import prepare_update_data +from actions.data.prepare_update_data import prepare_update_data from fastapi import HTTPException, status from packages.v1.administrativo.schemas.t_censec_qualidadeato_schema import ( TCensecQualidadeAtoUpdateSchema, diff --git a/packages/v1/administrativo/repositories/t_censec_tipoato/t_censec_tipoato_update_repository.py b/packages/v1/administrativo/repositories/t_censec_tipoato/t_censec_tipoato_update_repository.py index f756882..83b47d1 100644 --- a/packages/v1/administrativo/repositories/t_censec_tipoato/t_censec_tipoato_update_repository.py +++ b/packages/v1/administrativo/repositories/t_censec_tipoato/t_censec_tipoato_update_repository.py @@ -1,5 +1,5 @@ from abstracts.repository import BaseRepository -from api.actions.data.prepare_update_data import prepare_update_data +from actions.data.prepare_update_data import prepare_update_data from fastapi import HTTPException, status from packages.v1.administrativo.schemas.t_censec_tipoato_schema import ( diff --git a/packages/v1/administrativo/repositories/t_censec_tiponatureza/t_censec_tiponatureza_update_repository.py b/packages/v1/administrativo/repositories/t_censec_tiponatureza/t_censec_tiponatureza_update_repository.py index debc653..d316b04 100644 --- a/packages/v1/administrativo/repositories/t_censec_tiponatureza/t_censec_tiponatureza_update_repository.py +++ b/packages/v1/administrativo/repositories/t_censec_tiponatureza/t_censec_tiponatureza_update_repository.py @@ -1,5 +1,5 @@ from abstracts.repository import BaseRepository -from api.actions.data.prepare_update_data import prepare_update_data +from actions.data.prepare_update_data import prepare_update_data from fastapi import HTTPException, status from packages.v1.administrativo.schemas.t_censec_tiponatureza_schema import ( diff --git a/packages/v1/administrativo/repositories/t_imovel/t_imovel_update_repository.py b/packages/v1/administrativo/repositories/t_imovel/t_imovel_update_repository.py index 675ee29..997f74c 100644 --- a/packages/v1/administrativo/repositories/t_imovel/t_imovel_update_repository.py +++ b/packages/v1/administrativo/repositories/t_imovel/t_imovel_update_repository.py @@ -1,5 +1,5 @@ from abstracts.repository import BaseRepository -from api.actions.data.prepare_update_data import prepare_update_data +from actions.data.prepare_update_data import prepare_update_data from packages.v1.administrativo.schemas.t_imovel_schema import TImovelUpdateSchema from fastapi import HTTPException, status @@ -9,11 +9,11 @@ class TImovelUpdateRepository(BaseRepository): def execute(self, t_imovel_update_schema: TImovelUpdateSchema): try: - + params, update_columns = prepare_update_data( t_imovel_update_schema, exclude_fields=["imovel_id"], - id_field="imovel_id" + id_field="imovel_id", ) sql = f""" @@ -31,5 +31,5 @@ class TImovelUpdateRepository(BaseRepository): except Exception as e: raise HTTPException( status_code=status.HTTP_422_UNPROCESSABLE_ENTITY, - detail=f"Erro ao atualizar o imóvel: {str(e)}" + detail=f"Erro ao atualizar o imóvel: {str(e)}", ) diff --git a/packages/v1/administrativo/repositories/t_imovel_unidade/t_imovel_unidade_update_repository.py b/packages/v1/administrativo/repositories/t_imovel_unidade/t_imovel_unidade_update_repository.py index 04b5a49..3de696e 100644 --- a/packages/v1/administrativo/repositories/t_imovel_unidade/t_imovel_unidade_update_repository.py +++ b/packages/v1/administrativo/repositories/t_imovel_unidade/t_imovel_unidade_update_repository.py @@ -1,8 +1,11 @@ from abstracts.repository import BaseRepository -from api.actions.data.prepare_update_data import prepare_update_data -from packages.v1.administrativo.schemas.t_imovel_unidade_schema import TImovelUnidadeUpdateSchema +from actions.data.prepare_update_data import prepare_update_data +from packages.v1.administrativo.schemas.t_imovel_unidade_schema import ( + TImovelUnidadeUpdateSchema, +) from fastapi import HTTPException, status + class TImovelUnidadeUpdateRepository(BaseRepository): """ Repositório para a operação de atualização na tabela T_CENSEC_QUALIDADE. @@ -11,39 +14,39 @@ class TImovelUnidadeUpdateRepository(BaseRepository): def execute(self, t_imovel_unidade_update_schema: TImovelUnidadeUpdateSchema): """ Executa a atualização de um registro na tabela. - + Args: t_imovel_unidade_id (int): O ID do registro a ser atualizado. t_imovel_unidade_schema (TImovelUnidadeUpdateSchema): O esquema com os dados a serem atualizados. Returns: O registro atualizado. - + Raises: HTTPException: Se o registro não for encontrado ou ocorrer um erro na atualização. """ try: - + params, update_columns = prepare_update_data( t_imovel_unidade_update_schema, exclude_fields=["imovel_unidade_id"], - id_field="imovel_unidade_id" + id_field="imovel_unidade_id", ) sql = f""" UPDATE T_IMOVEL_UNIDADE SET {update_columns} WHERE IMOVEL_UNIDADE_ID = :imovel_unidade_id - RETURNING IMOVEL_UNIDADE_ID + RETURNING IMOVEL_UNIDADE_ID """ - - # Executa o update + + # Executa o update response = self.run_and_return(sql, params) return response - + except Exception as e: raise HTTPException( status_code=status.HTTP_422_UNPROCESSABLE_ENTITY, - detail=f"Erro ao atualizar o imóvel unidade: {str(e)}" - ) \ No newline at end of file + detail=f"Erro ao atualizar o imóvel unidade: {str(e)}", + ) diff --git a/packages/v1/administrativo/repositories/t_pessoa/t_pessoa_update_repository.py b/packages/v1/administrativo/repositories/t_pessoa/t_pessoa_update_repository.py index f709134..4831398 100644 --- a/packages/v1/administrativo/repositories/t_pessoa/t_pessoa_update_repository.py +++ b/packages/v1/administrativo/repositories/t_pessoa/t_pessoa_update_repository.py @@ -1,4 +1,4 @@ -from api.actions.data.prepare_update_data import prepare_update_data +from actions.data.prepare_update_data import prepare_update_data from packages.v1.administrativo.schemas.t_pessoa_schema import TPessoaSaveSchema from fastapi import HTTPException, status from abstracts.repository import BaseRepository diff --git a/packages/v1/administrativo/services/t_censec_qualidadeato/go/t_censec_qualidadeato_save_service.py b/packages/v1/administrativo/services/t_censec_qualidadeato/go/t_censec_qualidadeato_save_service.py index b49cc16..c31bfe5 100644 --- a/packages/v1/administrativo/services/t_censec_qualidadeato/go/t_censec_qualidadeato_save_service.py +++ b/packages/v1/administrativo/services/t_censec_qualidadeato/go/t_censec_qualidadeato_save_service.py @@ -1,4 +1,4 @@ -from api.actions.dynamic_import.dynamic_import import DynamicImport +from actions.dynamic_import.dynamic_import import DynamicImport from packages.v1.administrativo.actions.t_censec_qualidadeato.t_censec_qualidadeato_save_action import ( TCensecQualidadeAtoSaveAction, ) diff --git a/packages/v1/administrativo/services/t_censec_tipoato/go/t_censec_tipoato_save_service.py b/packages/v1/administrativo/services/t_censec_tipoato/go/t_censec_tipoato_save_service.py index 7d87926..de8bb82 100644 --- a/packages/v1/administrativo/services/t_censec_tipoato/go/t_censec_tipoato_save_service.py +++ b/packages/v1/administrativo/services/t_censec_tipoato/go/t_censec_tipoato_save_service.py @@ -1,4 +1,4 @@ -from api.actions.dynamic_import.dynamic_import import DynamicImport +from actions.dynamic_import.dynamic_import import DynamicImport from packages.v1.administrativo.actions.t_censec_tipoato.t_censec_tipoato_save_action import ( TCensecTipoAtoSaveAction, ) diff --git a/packages/v1/administrativo/services/t_imovel/go/t_imovel_save_service.py b/packages/v1/administrativo/services/t_imovel/go/t_imovel_save_service.py index 309f516..fb308f4 100644 --- a/packages/v1/administrativo/services/t_imovel/go/t_imovel_save_service.py +++ b/packages/v1/administrativo/services/t_imovel/go/t_imovel_save_service.py @@ -1,5 +1,5 @@ from datetime import datetime -from api.actions.dynamic_import.dynamic_import import DynamicImport +from actions.dynamic_import.dynamic_import import DynamicImport from packages.v1.administrativo.actions.t_imovel.t_imovel_save_action import ( TImovelSaveAction, ) diff --git a/packages/v1/servicos/balcao/repositories/t_servico_pedido/t_servico_pedido_update_repository.py b/packages/v1/servicos/balcao/repositories/t_servico_pedido/t_servico_pedido_update_repository.py index 4b2de18..4246538 100644 --- a/packages/v1/servicos/balcao/repositories/t_servico_pedido/t_servico_pedido_update_repository.py +++ b/packages/v1/servicos/balcao/repositories/t_servico_pedido/t_servico_pedido_update_repository.py @@ -33,7 +33,7 @@ class TServicoPedidoUpdateRepository(BaseRepository): # ---------------------------------------------------- params, update_columns = prepare_update_data( t_servico_pedido_update_schema, - exclude_fields=["servico_pedido_id"], + exclude_fields=["servico_pedido_id", "itens"], id_field="servico_pedido_id", ) diff --git a/packages/v1/servicos/balcao/schemas/t_servico_pedido_schema.py b/packages/v1/servicos/balcao/schemas/t_servico_pedido_schema.py index 2dab1ef..02c3f76 100644 --- a/packages/v1/servicos/balcao/schemas/t_servico_pedido_schema.py +++ b/packages/v1/servicos/balcao/schemas/t_servico_pedido_schema.py @@ -1,13 +1,33 @@ from pydantic import BaseModel -from typing import Optional, List +from typing import Annotated, Optional, List from decimal import Decimal from datetime import datetime +from pydantic.functional_validators import BeforeValidator + from packages.v1.servicos.balcao.schemas.t_servico_itempedido_schema import ( TServicoItemPedidoSchema, ) +# ---------- Utilidades ---------- +def _zero_to_none(v): + # Trate 0, 0.0, "0", "" como None + return None if v in (0, 0.0, "0", "", None) else v + + +def _to_decimal(v): + if v in (None, "", "0", 0, 0.0): + return Decimal("0") # ou None, se preferir + # Sempre usar str para evitar floating point issues + return Decimal(str(v)) + + +ZeroNoneInt = Annotated[Optional[int], BeforeValidator(_zero_to_none)] +Money = Annotated[Optional[Decimal], BeforeValidator(_to_decimal)] +Fk = ZeroNoneInt # só para semântica + + # ---------------------------------------------------- # Schema base - representa a tabela T_SERVICO_PEDIDO # ---------------------------------------------------- @@ -51,13 +71,13 @@ class TServicoPedidoSaveSchema(BaseModel): valor_pago: Optional[Decimal] = None usuario_id: Optional[Decimal] = None data_pedido: Optional[datetime] = None - mensalista_livrocaixa_id: Optional[Decimal] = None + mensalista_livrocaixa_id: Fk = None observacao: Optional[str] = None escrevente_id: Optional[Decimal] = None situacao: Optional[str] = None estornado: Optional[str] = None apresentante: Optional[str] = None - nfse_id: Optional[Decimal] = None + nfse_id: Fk = None chave_importacao: Optional[Decimal] = None cpfcnpj_apresentante: Optional[str] = None itens: Optional[List[TServicoItemPedidoSchema]] = None @@ -76,15 +96,16 @@ class TServicoPedidoUpdateSchema(BaseModel): valor_pago: Optional[Decimal] = None usuario_id: Optional[Decimal] = None data_pedido: Optional[datetime] = None - mensalista_livrocaixa_id: Optional[Decimal] = None + mensalista_livrocaixa_id: Fk = None observacao: Optional[str] = None escrevente_id: Optional[Decimal] = None situacao: Optional[str] = None estornado: Optional[str] = None apresentante: Optional[str] = None - nfse_id: Optional[Decimal] = None + nfse_id: Fk = None chave_importacao: Optional[Decimal] = None cpfcnpj_apresentante: Optional[str] = None + itens: Optional[List[TServicoItemPedidoSchema]] = None class Config: from_attributes = True diff --git a/packages/v1/servicos/balcao/services/t_servico_itempedido/go/t_servico_itempedido_save_service.py b/packages/v1/servicos/balcao/services/t_servico_itempedido/go/t_servico_itempedido_save_service.py index 81c7a37..ecf942f 100644 --- a/packages/v1/servicos/balcao/services/t_servico_itempedido/go/t_servico_itempedido_save_service.py +++ b/packages/v1/servicos/balcao/services/t_servico_itempedido/go/t_servico_itempedido_save_service.py @@ -32,6 +32,7 @@ class TServicoItemPedidoSaveService: # Geração automática de ID (sequência) # ---------------------------------------------------- if not t_servico_itempedido_save_schema.servico_itempedido_id: + # Cria o schema de sequência sequencia_schema = GSequenciaSchema() sequencia_schema.tabela = "T_SERVICO_ITEMPEDIDO" diff --git a/packages/v1/servicos/balcao/services/t_servico_pedido/go/t_servico_pedido_save_service.py b/packages/v1/servicos/balcao/services/t_servico_pedido/go/t_servico_pedido_save_service.py index b84e247..726b4fd 100644 --- a/packages/v1/servicos/balcao/services/t_servico_pedido/go/t_servico_pedido_save_service.py +++ b/packages/v1/servicos/balcao/services/t_servico_pedido/go/t_servico_pedido_save_service.py @@ -47,11 +47,6 @@ class TServicoPedidoSaveService: # Atualiza o ID no schema t_servico_pedido_save_schema.servico_pedido_id = sequencia.sequencia - # Verifica se tem a data do pedido - if not t_servico_pedido_save_schema.data_pedido: - - t_servico_pedido_save_schema.data_pedido = datetime.now() - # ---------------------------------------------------- # Instanciamento e execução da Action de salvamento # ---------------------------------------------------- @@ -60,21 +55,26 @@ class TServicoPedidoSaveService: # Obtenho a resposta da operação response = t_servico_pedido_save_action.execute(t_servico_pedido_save_schema) + # Verifica se tem a data do pedido + if not t_servico_pedido_save_schema.data_pedido: + + t_servico_pedido_save_schema.data_pedido = datetime.now() + # Verifica se o pedido foi salvo if ( response.servico_pedido_id > 0 and len(t_servico_pedido_save_schema.itens) > 0 ): - # Import a classe de salvar os intes - t_servico_itempedido_service = TServicoItemPedidoSaveService() - # Percorre todos os itens salvos for item in t_servico_pedido_save_schema.itens: # Define o id do item do serviço item.servico_pedido_id = response.servico_pedido_id + # Import a classe de salvar os intes + t_servico_itempedido_service = TServicoItemPedidoSaveService() + # Salva o item do pedido t_servico_itempedido_service.execute(item) diff --git a/packages/v1/servicos/balcao/services/t_servico_pedido/go/t_servico_pedido_update_service.py b/packages/v1/servicos/balcao/services/t_servico_pedido/go/t_servico_pedido_update_service.py index b93d38b..2b2ccc3 100644 --- a/packages/v1/servicos/balcao/services/t_servico_pedido/go/t_servico_pedido_update_service.py +++ b/packages/v1/servicos/balcao/services/t_servico_pedido/go/t_servico_pedido_update_service.py @@ -1,9 +1,16 @@ +from datetime import datetime from packages.v1.servicos.balcao.actions.t_servico_pedido.t_servico_pedido_update_action import ( TServicoPedidoUpdateAction, ) from packages.v1.servicos.balcao.schemas.t_servico_pedido_schema import ( TServicoPedidoUpdateSchema, ) +from packages.v1.servicos.balcao.services.t_servico_itempedido.go.t_servico_itempedido_save_service import ( + TServicoItemPedidoSaveService, +) +from packages.v1.servicos.balcao.services.t_servico_itempedido.go.t_servico_itempedido_update_service import ( + TServicoItemPedidoUpdateService, +) class TServicoPedidoUpdateService: @@ -28,7 +35,41 @@ class TServicoPedidoUpdateService: # ---------------------------------------------------- t_servico_pedido_update_action = TServicoPedidoUpdateAction() - # ---------------------------------------------------- - # Execução da ação e retorno do resultado - # ---------------------------------------------------- - return t_servico_pedido_update_action.execute(t_servico_pedido_update_schema) + # Obtenho a resposta da operação + response = t_servico_pedido_update_action.execute( + t_servico_pedido_update_schema + ) + + # Verifica se tem a data do pedido + if not t_servico_pedido_update_schema.data_pedido: + + t_servico_pedido_update_schema.data_pedido = datetime.now() + + # Verifica se o pedido foi salvo + if ( + response.servico_pedido_id > 0 + and len(t_servico_pedido_update_schema.itens) > 0 + ): + + # Percorre todos os itens salvos + for item in t_servico_pedido_update_schema.itens: + + # Define o id do item do serviço + item.servico_pedido_id = response.servico_pedido_id + + t_servico_itempedido_service = None + + if item.servico_itempedido_id: + + # Import a classe de salvar os intes + t_servico_itempedido_service = TServicoItemPedidoUpdateService() + + else: + + # Import a classe de atualizar os itens + t_servico_itempedido_service = TServicoItemPedidoSaveService() + + # Salva o item do pedido + t_servico_itempedido_service.execute(item) + + return response