## Cambios Realizados ### 1. **Modelos** - Se actualizaron los modelos para incluir el esquema en las tablas: - - - - - Ajustes en relaciones y claves foráneas para garantizar consistencia con el esquema . - Se añadieron anotaciones de tipo y mejoras en la documentación de los modelos. ### 2. **Servicios** - Implementación de lógica de negocio en para el módulo : - Creación, actualización, eliminación y búsqueda de partes. - Métodos para estadísticas y manejo de estados habilitado/deshabilitado. ### 3. **Migraciones** - Creación de nuevas migraciones de Alembic para las tablas: - - - - - Tablas relacionadas con direcciones y programas de clientes/proveedores. ### 4. **Documentación** - Actualización de : - Detalles de las nuevas funcionalidades implementadas. - Endpoints REST API agregados para los módulos. - Relaciones principales entre tablas. - Actualización de : - Cambios realizados en los modelos para usar el esquema . - Beneficios de la separación de esquemas. - Próximos pasos para completar la integración. ## Próximos Pasos 1. Verificar las migraciones generadas y aplicarlas en el entorno de desarrollo. 2. Implementar pruebas unitarias para los nuevos servicios y modelos. --- *Documento generado automáticamente el 5 de noviembre de 2025.*
70 lines
2.5 KiB
Python
70 lines
2.5 KiB
Python
"""
|
|
Modelos ORM para gestión de empresa
|
|
"""
|
|
from sqlalchemy import Column, Integer, String, DateTime, Boolean, Text, SmallInteger
|
|
from sqlalchemy.sql import func
|
|
from core.database import Base
|
|
import enum
|
|
|
|
|
|
class GCompany(Base):
|
|
"""
|
|
Modelo para la tabla GCompany - Información de la empresa
|
|
"""
|
|
__tablename__ = "gcompany"
|
|
__table_args__ = {"schema": "a76"}
|
|
|
|
# Primary key
|
|
id = Column(String(3), primary_key=True, default='EMP', nullable=False)
|
|
|
|
# Control de registro único
|
|
consecutive = Column(Boolean, unique=True, default=True, nullable=False)
|
|
|
|
# Información básica de la empresa
|
|
name = Column(String(255), nullable=True)
|
|
rfc = Column(String(30), nullable=True)
|
|
main_activity = Column(String(255), nullable=True)
|
|
|
|
# Información del programa
|
|
program = Column(String(10), nullable=True)
|
|
program_number = Column(String(40), nullable=True)
|
|
prosec = Column(SmallInteger, nullable=True)
|
|
prosec_authorization = Column(String(20), nullable=True)
|
|
|
|
# Identificadores
|
|
manufacturer_id = Column(String(25), nullable=True)
|
|
broker_company = Column(String(10), nullable=True)
|
|
|
|
# Responsable
|
|
responsible = Column(String(80), nullable=True)
|
|
responsible_name = Column(String(20), nullable=True)
|
|
responsible_last_name = Column(String(20), nullable=True)
|
|
responsible_mother_last_name = Column(String(20), nullable=True)
|
|
responsible_rfc = Column(String(30), nullable=True)
|
|
position = Column(String(30), nullable=True)
|
|
|
|
# Configuración
|
|
logo = Column(String(255), nullable=True)
|
|
has_express_line = Column(Boolean, nullable=True)
|
|
order_format_type = Column(String(19), nullable=True)
|
|
previous_code = Column(SmallInteger, nullable=True)
|
|
is_service_company = Column(Boolean, nullable=True)
|
|
|
|
# Cliente y submaquila
|
|
client_name = Column(String(300), nullable=True)
|
|
subassembly_mode = Column(String(7), nullable=True)
|
|
|
|
# Información adicional
|
|
curp = Column(String(19), nullable=True)
|
|
inter_db_name = Column(String(100), nullable=True)
|
|
ctpat_svi = Column(String(100), nullable=True)
|
|
trusted_exporter_number = Column(String(50), nullable=True)
|
|
prevalidator_key = Column(String(20), nullable=True)
|
|
seventh_amendment = Column(Boolean, nullable=True) # FINALCONTADORAELECTRONICO renombrado
|
|
|
|
# Timestamps
|
|
created_at = Column(DateTime(timezone=True), server_default=func.now(), nullable=False)
|
|
updated_at = Column(DateTime(timezone=True), onupdate=func.now(), nullable=True)
|
|
|
|
|