def get_by_id(cls, id): """ Obtiene un Punto de Depósito de la BD segun su ID. """ try: cls.abrir_conexion() sql = ( "select * from puntosDeposito where estadoEliminacion = 'disponible' AND idPunto={} order by nombre ASC" ).format(id) cls.cursor.execute(sql) punto = cls.cursor.fetchall()[0] #Se instancia sin los horarios ya que no se muestran, para no generar tráfico de datos innecesario. direccion = DatosDireccion.get_one_id(punto[4]) materiales_ = DatosMaterial.get_all_byIdPuntoDep(punto[0], True) materiales = [] for mat in materiales_: materiales.append(mat.id) pd = PuntoDeposito(punto[0], direccion, punto[1], punto[2], materiales, None) return pd except Exception as e: raise custom_exceptions.ErrorDeConexion( origen="data.get_by_id()", msj=str(e), msj_adicional= "Error obteniendo un Punto de Depósito desde la BD.") finally: cls.cerrar_conexion()
def get_materialesPd_by_id(cls, idPunto, json_return=True): """ Obtiene los materiales que acepta un punto de depósito en base al ID que recibe como parámetro. """ #Conexión con el motor de BD. try: materiales = DatosMaterial.get_all_byIdPuntoDep(idPunto) materiales_ = [] if json_return == False: return materiales else: for material in materiales: materiales_.append({ "id": material.id, "nombre": material.nombre, "unidadMedida": material.unidadMedida, "color": material.color, "estado": material.estado }) return materiales_ except custom_exceptions.ErrorDeConexion as e: raise e except Exception as e: raise custom_exceptions.ErrorDeNegocio( origen="negocio.get_materialesPd_by_id()", msj=str(e), msj_adicional= "Error en la capa de Negocio obtieniendo los materiales que acepta un PD de la capa de Datos." )
def get_all_sin_filtro(cls, noClose=False): """ Obtiene todos los Puntos de Depósito de la BD. """ try: cls.abrir_conexion() sql = ("select * from puntosDeposito order by nombre ASC") cls.cursor.execute(sql) puntosDeposito = cls.cursor.fetchall() puntosDeposito_ = [] for punto in puntosDeposito: #Se instancia sin los horarios ya que no se muestran, para no generar tráfico de datos innecesario. if punto[3] == 'eliminado': direccion = None else: direccion = DatosDireccion.get_one_id(punto[4]) materiales_ = DatosMaterial.get_all_byIdPuntoDep( punto[0], True) materiales = [] for mat in materiales_: materiales.append(mat.id) puntosDeposito_.append( PuntoDeposito(punto[0], direccion, punto[1], punto[2], materiales, None)) return puntosDeposito_ except Exception as e: raise custom_exceptions.ErrorDeConexion( origen="data.get_all()", msj=str(e), msj_adicional="Error otodos los Puntos de Depósito desde la BD." ) finally: if not (noClose): cls.cerrar_conexion()