예제 #1
0
class PedidoModel(bd.Model):
    __tablename__ = "t_pedido"
    ped_id = bd.Column("ped_id", bd.Integer, primary_key=True)
    ped_fechin = bd.Column("ped_fechin", bd.DATETIME)
    ped_fechfin = bd.Column("ped_fechfin", bd.DATETIME)
    est_id = bd.Column(bd.Integer,
                       bd.ForeignKey('t_estado.est_id'),
                       nullable=False)
    usu_id = bd.Column(bd.Integer,
                       bd.ForeignKey('t_usuario.usu_id'),
                       nullable=False)
    tran_id = bd.Column(bd.Integer,
                        bd.ForeignKey('t_transporte.tran_id'),
                        nullable=False)
    tipopa_id = bd.Column(bd.Integer,
                          bd.ForeignKey('t_tipo_pago.tipopa_id'),
                          nullable=False)

    def __init__(self, fechin, fechfin, pre_id, est_id, usu_id, dped_id,
                 tran_id, tipopa_id):
        self.ped_fechin = fechin
        self.ped_fechfin = fechfin
        self.pre_id = pre_id
        self.est_id = est_id
        self.dped_id = dped_id
        self.usu_id = usu_id
        self.tran_id = tran_id
        self.tipopa_id = tipopa_id
class AgenciaMovimientoModel(bd.Model):
    __tablename__ = "t_agencia_movimiento"
    agenmov_id = bd.Column(bd.Integer, primary_key=True)
    agenmov_confirmacion = bd.Column(bd.BOOLEAN)
    agen_id = bd.Column(bd.Integer, bd.ForeignKey('t_agencia.agen_id'))
    movimiento_id = bd.Column(bd.Integer, bd.ForeignKey('t_movimiento.mov_id'))

    def __init__(self, confirmacion, agencia, movimiento):
        self.agenmov_confirmacion = confirmacion
        self.agen_id = agencia
        self.movimiento_id = movimiento

    def guardar_en_la_bd(self):
        bd.session.add(self)
        bd.session.commit()
예제 #3
0
class ChatModel(bd.Model):
    __tablename__ = "t_chat"
    chat_id = bd.Column("chat_id", bd.Integer, primary_key=True)
    chat_text = bd.Column("chat_text", bd.Text)
    admin_id = bd.Column(bd.Integer,
                         bd.ForeignKey('t_usuario.usu_id'),
                         nullable=False)
    cli_id = bd.Column(bd.Integer,
                       bd.ForeignKey('t_usuario.usu_id'),
                       nullable=False)

    def __init__(self, texto, admin, client):
        self.chat_text = texto
        self.cli_id = client
        self.admin_id = admin
예제 #4
0
class CalificacionModel(bd.Model):
    __tablename__ = "t_calificacion"
    cal_id = bd.Column("cal_id", bd.Integer, primary_key=True)
    cal_estr = bd.Column("cal_estr", bd.Integer)
    pre_id = bd.Column(bd.Integer,
                       bd.ForeignKey('t_precio.pre_id'),
                       nullable=False)
    ped_id = bd.Column(bd.Integer,
                       bd.ForeignKey('t_pedido.ped_id'),
                       nullable=False)

    def __init__(self, estr, pre_id, ped_id):
        self.cal_estr = estr
        self.pre_id = pre_id
        self.ped_id = ped_id
예제 #5
0
class AgenciaModel(bd.Model):
    __tablename__="t_agencia"
    agen_id = bd.Column(bd.Integer, primary_key=True)
    agen_nomb = bd.Column(bd.String(45))
    agen_hor = bd.Column(bd.String(45))
    agen_lat=bd.Column(bd.DECIMAL)
    agen_lng=bd.Column(bd.DECIMAL)
    usu_id= bd.Column(bd.Integer,bd.ForeignKey('t_usuario.usu_id'))

    usuario = bd.relationship('UsuarioModel',lazy=True)

    def __init__(self,nombre,horario,latitud,longitud,usuario):
        self.agen_nomb=nombre
        self.agen_hor=horario
        self.agen_lat=latitud
        self.agen_lng=longitud
        self.usu_id=usuario
    
    def retornar_json(self):
        return {
            "id":self.agen_id,
            "nombre":self.agen_nomb,
            "horario":self.agen_hor,
            "latitud":str(self.agen_lat),
            "longitud":str(self.agen_lng),
            "telefono":self.usuario.usu_fono,
            "tipo usuario":self.usuario.usu_tipo,
            "direccion":self.usuario.usu_direccion
        }
    
    def guardar_en_la_bd(self):
        bd.session.add(self)
        bd.session.commit()
예제 #6
0
class DistritoModel(bd.Model):
    __tablename__="t_distrito"
    id = bd.Column('distrito_id',bd.Integer,primary_key=True)
    descripcion = bd.Column('distrito_desc', bd.String(45), nullable=False)
    # RELACIONES
    departamento = bd.Column('dep_id', bd.Integer, bd.ForeignKey('t_departamento.dep_id'),nullable=False)
    # RELACION INVERSA
    empresas = bd.relationship('EmpresaModel',backref='empresa')

    def __init__(self, desc, dep_id):
        self.descripcion = desc
        self.departamento = dep_id
    
    def guardar(self):
        bd.session.add(self)
        bd.session.commit()

    def retornarJson(self):
        return {
            'id': self.id,
            'nombre':self.descripcion,
        }

    def retornarJsonConDepartamento(self):
        dep = DepartamentoModel.query.filter_by(id=self.departamento).first()
        return {
            'id': self.id,
            'nombre':self.descripcion,
            'departamento':{
                'id':dep.id,
                'nombre': dep.descripcion
            }
        }
예제 #7
0
class UsuarioModel(bd.Model):
    __tablename__ = "t_usuario"
    usu_id = bd.Column("usu_id", bd.Integer, primary_key=True)
    usu_mail = bd.Column("usu_mail", bd.String(50))
    usu_salt = bd.Column("usu_salt", bd.Text)
    usu_hash = bd.Column("usu_hash", bd.Text)
    usu_nom = bd.Column("usu_nom", bd.String(45))
    usu_ape = bd.Column("usu_ape", bd.String(50))
    usu_fono = bd.Column("usu_fono", bd.String(20))
    tipousu_id = bd.Column(bd.Integer,
                           bd.ForeignKey('t_tipo_usuario.tipousu_id'),
                           nullable=False)

    def __init__(self, correo, password, nombre, apellido, fono, tipousu_id):
        self.usu_mail = correo
        password_convertida = bytes(password, 'utf-8')
        salt = bcrypt.gensalt()
        hashed = bcrypt.hashpw(password_convertida, salt)
        salt = salt.decode('utf-8')
        hashed = hashed.decode('utf-8')
        self.usu_salt = salt
        self.usu_hash = hashed
        self.usu_nom = nombre
        self.usu_ape = apellido
        self.usu_fono = fono
        self.tipousu_id = tipousu_id
예제 #8
0
class MovimientoModel(bd.Model):
    __tablename__ = "t_movimiento"
    mov_id = bd.Column(bd.Integer, primary_key=True)
    mov_tipo = bd.Column(bd.String(45))
    mov_monto = bd.Column(bd.DECIMAL)
    mov_fecha = bd.Column(bd.DATETIME)
    nro_cue_destino = bd.Column(bd.String(45))
    cue_id = bd.Column(bd.Integer, bd.ForeignKey('t_cuenta.cue_id'))

    cuentacliente = bd.relationship('CuentaModel', lazy=True)

    def __init__(self, tipo, monto, fecha, destinatario, cuenta):
        self.mov_tipo = tipo
        self.mov_monto = monto
        self.mov_fecha = fecha
        self.nro_cue_destino = destinatario
        self.cue_id = cuenta

    def retornar_json(self):
        return {
            'tipo': self.mov_tipo,
            'monto': str(self.mov_monto),
            'fecha': str(self.mov_fecha),
            'cuenta_destino': self.nro_cue_destino,
            'cuenta': self.cue_id
        }

    def guardar_en_la_bd(self):
        bd.session.add(self)
        bd.session.commit()
예제 #9
0
class EmpresaModel(bd.Model):
    # Yo al heredar la clase Model todo lo que defina como atributos van a ser columnas de una tabla y la clase va a ser una tabla de la bd
    # si no especifico el nombre de la tabla, el nombre por defecto sera el nombre de la clase, si yo no quiero ese nombre y quiero uno diferente, uso el atributo __tablename__
    __tablename__ = "t_empresa"
    # https://docs.sqlalchemy.org/en/13/core/type_basics.html?highlight=datatypes
    id = bd.Column('emp_id', bd.Integer, primary_key=True)
    nombre = bd.Column('emp_nom', bd.String(45))
    latitud = bd.Column('emp_lat', bd.DECIMAL(10, 8))
    longitud = bd.Column('emp_lng', bd.DECIMAL(10, 8))
    foto = bd.Column('emp_foto', bd.Text)
    fono = bd.Column('emp_fono', bd.String(15))
    direccion = bd.Column('emp_dir', bd.String(50))
    # RELACIONES
    distrito = bd.Column('distrito_id',
                         bd.Integer,
                         bd.ForeignKey('t_distrito.distrito_id'),
                         nullable=False)

    def __init__(self, nombre, latitud, longitud, foto, fono, dir, dist_id):
        self.nombre = nombre
        self.latitud = latitud
        self.longitud = longitud
        self.foto = foto
        self.fono = fono
        self.direccion = dir
        self.distrito = dist_id
예제 #10
0
class CuentaModel(bd.Model):
    __tablename__ = "t_cuenta"
    cue_id = bd.Column(bd.Integer, primary_key=True)
    cue_nro = bd.Column(bd.String(20))
    cue_tipo = bd.Column(bd.String(45))
    cue_saldo = bd.Column(bd.DECIMAL)
    cue_estado = bd.Column(bd.Boolean)
    tipomoneda_id = bd.Column(bd.Integer,
                              bd.ForeignKey('t_tipomoneda.tipomon_id'))
    cliente_id = bd.Column(bd.Integer, bd.ForeignKey('t_cliente.cli_id'))
    agencia_id = bd.Column(bd.Integer, bd.ForeignKey('t_agencia.agen_id'))

    cliente = bd.relationship('ClienteModel', lazy=True)
    movimiento = bd.relationship('MovimientoModel', lazy=True)

    def __init__(self, nro, tipo, saldo, estado, moneda, cliente, agencia):
        self.cue_nro = nro
        self.cue_tipo = tipo
        self.cue_saldo = saldo
        self.cue_estado = estado
        self.tipomoneda_id = moneda
        self.cliente_id = cliente
        self.agencia_id = agencia

    def retornar_jsoncliente(self):
        return {
            "nro de cuenta": self.cue_nro,
            "tipo": self.cue_tipo,
            "saldo": str(self.cue_saldo),
            "estado": self.cue_estado,
            "moneda": self.tipomoneda_id,
            "id cliente": self.cliente_id,
        }

    def retornar_jsonagencia(self):
        return {
            "nro de cuenta": self.cue_nro,
            "tipo": self.cue_tipo,
            "saldo": str(self.cue_saldo),
            "estado": self.cue_estado,
            "moneda": self.tipomoneda_id,
            "id agencia": self.agencia_id
        }

    def actualizar_estado(self, nuevo_saldo):
        self.cue_saldo = nuevo_saldo
        bd.session.commit()
class ProveedorProductoModel(bd.Model):
    __tablename__ = "t_proveedor_producto"
    provpro_id = bd.Column("provpro_id", bd.Integer, primary_key=True)
    provpro_cant = bd.Column("provpro_cant", bd.DECIMAL(10, 2))
    provpro_preciocompra = bd.Column("provpro_preciocompra", bd.DECIMAL(10, 2))
    prod_id = bd.Column(bd.Integer,
                        bd.ForeignKey('t_producto.prod_id'),
                        nullable=False)
    prov_id = bd.Column(bd.Integer,
                        bd.ForeignKey('t_proveedor.prov_id'),
                        nullable=False)

    def __init__(self, cantidad, preciocompra, prod_id, prov_id):
        self.provpro_cant = cantidad
        self.provpro_preciocompra = preciocompra
        self.prod_id = prod_id
        self.prov_id = prov_id
예제 #12
0
class PresentacionModel(bd.Model):
    __tablename__ = "t_presentacion"
    pres_id = bd.Column("pres_id", bd.Integer, primary_key=True)
    pres_est = bd.Column("pres_est", bd.BOOLEAN)
    pres_can = bd.Column("pres_can", bd.DECIMAL(10, 2))
    pres_uni = bd.Column("pres_uni", bd.String(30))
    pre_id = bd.Column(bd.Integer,
                       bd.ForeignKey('t_precio.pre_id'),
                       nullable=False)
    provpro_id = bd.Column(bd.Integer,
                           bd.ForeignKey('t_proveedor_producto.provpro_id'),
                           nullable=False)

    def __init__(self, estado, cantidad, unidad, pre_id, provpro_id):
        self.pres_est = estado
        self.pres_can = cantidad
        self.pres_uni = unidad
        self.pre_id = pre_id
        self.provpro_id = provpro_id
예제 #13
0
class ImagenProductoModel(bd.Model):
    __tablename__ = "t_imagen_producto"
    imgprod_id = bd.Column("imgprod_id", bd.Integer, primary_key=True)
    imgprod_url = bd.Column("imgprod_url", bd.Text)
    prod_id = bd.Column(bd.Integer,
                        bd.ForeignKey('t_producto.prod_id'),
                        nullable=False)

    def __init__(self, url, prod_id):
        self.imgprod_url = url
        self.prod_id = prod_id
예제 #14
0
class PrestamoModel(bd.Model):
    __tablename__ = "t_prestamo"
    id_prestamo = bd.Column('prestamo_id',
                            bd.Integer,
                            primary_key=True,
                            autoincrement=True,
                            nullable=False)
    fechin_prestamo = bd.Column('prestamo_fechin', bd.Date, nullable=False)
    fechfin_prestamo = bd.Column('prestamo_fechfin', bd.Date)
    fechentrega_prestamo = bd.Column('prestamo_fechentrega',
                                     bd.Date,
                                     nullable=True)
    estado = bd.Column(bd.Boolean, default=True, nullable=False)
    # RELACIONES
    cliente = bd.Column('cli_id',
                        bd.Integer,
                        bd.ForeignKey('t_cliente.cli_id'),
                        nullable=False)
    libro = bd.Column('lib_id',
                      bd.Integer,
                      bd.ForeignKey('t_libro.lib_id'),
                      nullable=False)

    def __init__(self, fecha_inicio, fecha_fin, cliente, libro):
        self.fechin_prestamo = fecha_inicio
        self.fechfin_prestamo = fecha_fin
        self.cliente = cliente
        self.libro = libro

    def save(self):
        bd.session.add(self)
        bd.session.commit()

    def devolverJson(self):
        return {
            'id': self.id_prestamo,
            'fecha_inicio': str(self.fechin_prestamo),
            'fecha_fin': str(self.fechfin_prestamo),
            'cliente': self.clientePrestamo.devolverJson(),
            'libro': self.libroPrestamo.devolverJson()
        }
예제 #15
0
class DetallePedidoModel(bd.Model):
    __tablename__ = "t_detalle_pedido"
    dped_id = bd.Column("dped_id", bd.Integer, primary_key=True)
    dped_desc = bd.Column("dped_desc", bd.String(100))
    dped_subtotal = bd.Column("dped_subtotal", bd.DECIMAL(10, 2))
    dped_total = bd.Column("dped_total", bd.DECIMAL(10, 2))
    dped_nro = bd.Column("dped_nro", bd.String(10))
    ped_id = bd.Column(bd.Integer,
                       bd.ForeignKey('t_pedido.ped_id'),
                       nullable=False)
    pre_id = bd.Column(bd.Integer,
                       bd.ForeignKey('t_precio.pre_id'),
                       nullable=False)

    def __init__(self, descripcion, subtotal, nro, total, ped_id, pre_id):
        self.dped_desc = descripcion
        self.dped_subtotal = subtotal
        self.dped_total = total
        self.dped_nro = nro
        self.ped_id = ped_id
        self.pre_id = pre_id
예제 #16
0
class ProductoModel(bd.Model):
    __tablename__ = "t_producto"
    prod_id = bd.Column("prod_id", bd.Integer, primary_key=True)
    prod_nom = bd.Column("prod_nom", bd.String(40))
    prod_desc = bd.Column("prod_desc", bd.String(40))
    cat_id = bd.Column(bd.Integer,
                       bd.ForeignKey('t_categoria.cat_id'),
                       nullable=False)

    def __init__(self, nombre, descripcion, cat_id):
        self.prod_nom = nombre
        self.prod_desc = descripcion
        self.cat_id = cat_id
예제 #17
0
class TransporteModel(bd.Model):
    __tablename__ = "t_transporte"
    tran_id = bd.Column("tran_id", bd.Integer, primary_key=True)
    tran_nom = bd.Column("tran_nom", bd.String(45))
    tran_ape = bd.Column("tran_ape", bd.String(50))
    tran_fono = bd.Column("tran_fono", bd.String(20))
    tran_placa = bd.Column("tran_placa", bd.String(200))
    tipotran_id = bd.Column(bd.Integer,
                            bd.ForeignKey('t_tipo_transporte.tipotran_id'),
                            nullable=False)

    def __init__(self, nombre, apellido, fono, placa, tipotran_id):
        self.tran_nom = nombre
        self.tran_ape = apellido
        self.tran_fono = fono
        self.tran_placa = placa
        self.tran_id = tipotran_id
예제 #18
0
class AlmacenModel(bd.Model):
    __tablename__ = "t_almacen"
    alm_id = bd.Column("alm_id", bd.Integer, primary_key=True)
    alm_cap = bd.Column("alm_cap", bd.String(200))
    alm_est = bd.Column("alm_est", bd.BOOLEAN)
    alm_lat = bd.Column("alm_lat", bd.DECIMAL(10, 2))
    alm_lng = bd.Column("alm_lng", bd.DECIMAL(10, 2))
    provpro_id = bd.Column(bd.Integer,
                           bd.ForeignKey('t_proveedor_producto.provpro_id'),
                           nullable=False)

    def __init__(self, capacidad, estado, lat, lng, provpro_id):
        self.alm_cap = capacidad
        self.alm_est = estado
        self.alm_lat = lat
        self.alm_lng = lng
        self.provpro_id = provpro_id
예제 #19
0
class ClienteModel(bd.Model):
    __tablename__ = "t_cliente"
    cli_id = bd.Column(bd.Integer, primary_key=True)
    cli_nomb = bd.Column(bd.String(45))
    cli_ape = bd.Column(bd.String(45))
    cli_fechanac = bd.Column(bd.DATETIME)
    usu_id = bd.Column(bd.Integer, bd.ForeignKey('t_usuario.usu_id'))

    cuentacliente = bd.relationship('CuentaModel', lazy=True)

    def __init__(self, nombre, apellido, fecha_nacimiento, usuario):
        self.cli_nomb = nombre
        self.cli_ape = apellido
        self.cli_fechanac = fecha_nacimiento
        self.usu_id = usuario

    def guardar_en_la_bd(self):
        bd.session.add(self)
        bd.session.commit()
예제 #20
0
class UbicacionModel(bd.Model):
    __tablename__ = "t_ubicacion"
    ubi_id = bd.Column("ubi_id", bd.Integer, primary_key=True)
    ubi_ciud = bd.Column("ubi_ciud", bd.String(45))
    ubi_dir = bd.Column("ubi_dir", bd.String(200))
    ubi_lat = bd.Column("ubi_lat", bd.DECIMAL(10, 8))
    ubi_lng = bd.Column("ubi_lng", bd.DECIMAL(10, 8))
    ubi_refer = bd.Column("ubi_refer", bd.TEXT)
    usu_id = bd.Column(bd.Integer,
                       bd.ForeignKey('t_usuario.usu_id'),
                       nullable=False)

    def __init__(self, ciudad, direccion, latitud, longitud, referencia,
                 usu_id):
        self.ubi_ciud = ciudad
        self.ubi_dir = direccion
        self.ubi_lat = latitud
        self.ubi_lng = longitud
        self.ubi_refer = referencia
        self.usu_id = usu_id
class PrestamoModel(bd.Model):
    __tablename__ = "t_prestamo"
    id_prestamo = bd.Column('prestamo_id',
                            bd.Integer,
                            primary_key=True,
                            autoincrement=True)
    fechin_prestamo = bd.Column('prestamo_fechin', bd.Date(), nullable=False)
    fechfin_prestamo = bd.Column('prestamo_fechfin', bd.Date(), nullable=False)
    fechentrega_prestamo = bd.Column('prestamo_fechentrega',
                                     bd.Date,
                                     nullable=True)
    estado = bd.Column(bd.Boolean, default=True, nullable=False)

    #RELACIONES
    cliente = bd.Column('cli_id',
                        bd.Integer,
                        bd.ForeignKey('t_cliente.cli_id'),
                        nullable=False)
    libro = bd.Column('lib_id',
                      bd.Integer,
                      bd.ForeignKey('t_libro.lib_id'),
                      nullable=False)

    # constructor
    def __init__(self, fecha_inicio, fecha_fin, cliente, libro):
        self.fechin_prestamo = fecha_inicio
        self.fechfin_prestamo = fecha_fin
        self.cliente = cliente
        self.libro = libro

    def save(self):
        bd.session.add(self)
        bd.session.commit()

    def devolverJson(self):
        return {
            'id': self.id_prestamo,
            'fecha_inicio': str(self.fechin_prestamo),
            'fecha_fin': str(self.fechfin_prestamo),
            'fecha_entrega': str(self.fechentrega_prestamo),
            'cliente': self.clientePrestamo.devolverJson(),
            'libro': self.libroPrestamo.devolverJson()
        }

    def devolverJsonPorClienteId(self):
        return {
            'id': self.id_prestamo,
            'fecha_inicio': str(self.fechin_prestamo),
            'fecha_fin': str(self.fechfin_prestamo),
            'fecha_entrega': str(self.fechentrega_prestamo),
            'libro': self.libroPrestamo.devolverJson()
        }

    def devolverJsonPorLibroId(self):
        return {
            'id': self.id_prestamo,
            'fecha_inicio': str(self.fechin_prestamo),
            'fecha_fin': str(self.fechfin_prestamo),
            'fecha_entrega': str(self.fechentrega_prestamo),
            'cliente': self.clientePrestamo.devolverJson()
        }

    def update(self, **kwargs):
        fecha_inicio = kwargs.get('fecha_inicio') if kwargs.get(
            'fecha_inicio'
        ) else self.fechin_prestamo  # usando operador ternario
        fecha_fin = kwargs.get('fecha_fin') if kwargs.get(
            'fecha_fin') else self.fechfin_prestamo
        fecha_entrega = kwargs.get('fecha_entrega') if kwargs.get(
            'fecha_entrega') else self.fechentrega_prestamo
        cliente = kwargs.get('cliente') if kwargs.get(
            'cliente') else self.cliente
        libro = kwargs.get('libro') if kwargs.get('libro') else self.libro
        estado = kwargs.get('estado') if kwargs.get('estado') else self.estado

        self.fechin_prestamo = fecha_inicio
        self.fechfin_prestamo = fecha_fin
        self.fechentrega_prestamo = fecha_entrega
        self.cliente = cliente
        self.libro = libro
        self.estado = estado

        self.save()