Esempio n. 1
0
 def agregarPeriodo(self, periodo):
     try:
         sql = f"""INSERT INTO periodos(periodo)
         VALUES('{periodo.periodo}')"""
         conexion = Conexion()
         cliente = conexion.cliente
         cursor = cliente.cursor()
         cursor.execute(sql)
         cliente.commit()
     except Exception as e:
         print(f"Error: {str(e)}")
         cliente.rollback()
     else:
         cliente.close()
Esempio n. 2
0
 def __init__(self):
     self.conexion = Conexion()
Esempio n. 3
0
class Colegio():
    __conexion = Conexion()
    __con = __conexion.conn

    def agregarPersona(self, objeto, tipo):
        try:
            nomColeccion = "personas"
            if tipo == "alumno":
                alumno = objeto
                diccionario = {
                    "codigo": alumno.codigo,
                    "tipo": tipo,
                    "nombre": alumno.nombre,
                    "dni": alumno.dni,
                    "edad": alumno.edad,
                    "notas": alumno.notas,
                    "promedio": alumno.getPromedio(),
                    "notamax": alumno.getNotaMaxima(),
                    "notamin": alumno.getNotaMinima()
                }
            elif tipo == "docente":
                docente = objeto
                diccionario = {
                    "codigo": docente.codigo,
                    "tipo": tipo,
                    "nombre": docente.nombre,
                    "dni": docente.dni,
                    "edad": docente.edad
                }
            coleccion = self.__conexion.connect()[nomColeccion]
            coleccion.insert_one(diccionario)
        except Exception as e:
            print(f"Error: {str(e)}")
        else:
            self.__conexion.close()

    def listarPersonas(self, tipo):
        try:
            nomColeccion = "personas"
            coleccion = self.__conexion.connect()[nomColeccion]
            query = {"tipo": tipo}
            personas = coleccion.find(query)
            for persona in personas:
                print(persona)
        except Exception as e:
            print(f"Error: {str(e)}")
        else:
            self.__conexion.close()

    def obtenerCodigoPersona(self, codigoBuscar):
        try:
            nomColeccion = "personas"
            coleccion = self.__conexion.connect()[nomColeccion]
            query = {"codigo": codigoBuscar}
            personas = coleccion.find(query)
            for persona in personas:
                return persona.codigo
        except Exception as e:
            print(f"Error: {str(e)}")
        else:
            self.__conexion.close()

    def actualizarPersona(self, codigoActualizar, objeto, tipo):
        try:
            nomColeccion = "personas"
            coleccion = self.__conexion.connect()[nomColeccion]
            query = {"codigo": codigoActualizar}
            if tipo == "alumno":
                queryUpdate = {
                    "$set": {
                        "nombre": objeto.nombre,
                        "dni": objeto.dni,
                        "edad": objeto.edad,
                        "notas": objeto.notas,
                        "promedio": objeto.getPromedio(),
                        "notamax": objeto.getNotaMaxima(),
                        "notamin": objeto.getNotaMinima()
                    }
                }
            elif tipo == "docente":
                queryUpdate = {
                    "$set": {
                        "nombre": objeto.nombre,
                        "dni": objeto.dni,
                        "edad": objeto.edad
                    }
                }
            coleccion.update(query, queryUpdate, upsert=False)
            print("Registro Actualizado")
        except Exception as e:
            print(f"Error: {str(e)}")
        else:
            self.__conexion.close()

    def eliminarPersona(self, codigoEliminar):
        try:
            nomColeccion = "personas"
            coleccion = self.__conexion.connect()[nomColeccion]
            query = {"codigo": codigoEliminar}
            coleccion.remove(query)
            print("Registro eliminado")
        except Exception as e:
            print(f"Error: {str(e)}")
        else:
            self.__conexion.close()
Esempio n. 4
0
class Factura():
    conexion = Conexion()
    con = conexion.conectar()
    
    def __init__(self):
        pass

    def guardarFactura(self):
        #OBTENER EL ULTIMO ID DE FACTURA
        ultimoID = 0        
        sql = 'SELECT COUNT(*) FROM facturas'
        cursor = self.con.cursor()
        cursor.execute(sql)
        dato = cursor.fetchone()
        ultimoID = dato[0]
        cursor.close()
        idFactura = ultimoID + 1
        #INICIO DE FACTURA
        print(f'FACTURA N° {idFactura}')
        fechaFactura = date.today()
        #OBTENER EL SUBTOTAL DE LA FACTURA
        subtotalFactura = self.guardarDetalle(idFactura)
        igvFactura = subtotalFactura * 0.18
        totalFactura = subtotalFactura + igvFactura
        sql = 'INSERT INTO facturas(idFactura, fechaFactura, subtotalFactura, igvFactura, totalFactura) VALUES(%s, %s, %s, %s, %s)'
        facturas = (0, fechaFactura, subtotalFactura, igvFactura, totalFactura)
        cursor = self.con.cursor()
        cursor.execute(sql, facturas)
        self.con.commit()
        cursor.close()
        return

    def guardarDetalle(self, idFactura):
        numeroProductos = int(input('¿Cuántos productos agregará en la factura?: '))
        print('***LISTA PRODUCTOS***')
        producto = Producto()
        producto.mostrarProducto()
        subtotal = 0
        for i in range(1, numeroProductos + 1):
            idProducto = input(f'ID Producto {str(i)}: ')
            cantidadProducto = float(input(f'Cantidad producto {str(i)}: '))
            productoEncontrado = producto.buscarProductoPorCodigo(idProducto)
            precioProducto = float(productoEncontrado[2])
            subtotal += cantidadProducto * precioProducto
            sql = 'INSERT INTO detalles(idDetalle, idFactura, idProducto, cantidadProducto) VALUES(%s, %s, %s, %s)'
            detalles = (0, idFactura, idProducto, cantidadProducto)
            cursor = self.con.cursor()
            cursor.execute(sql, detalles)
            self.con.commit()
        cursor.close()
        return subtotal

    def mostrarFactura(self):
        sql = 'SELECT * FROM facturas'
        cursor = self.con.cursor()
        cursor.execute(sql)
        facturas = cursor.fetchall()
        print('***REPORTE DE FACTURAS***')
        print('N°, FECHA, SUBTOTAL, IGV, TOTAL')
        for factura in facturas:
            print(f'{factura[0]}, {factura[1]}, {factura[2]}, {factura[3]}, {factura[4]}')
        cursor.close()
Esempio n. 5
0
class Alumno(Persona):
    __conn = Conexion()

    def __init__(self, dni, nombres, apellidos, edad, notas=[]):
        super().__init__(dni, nombres, apellidos, edad)
        self.notas = notas

    def agregaralumno(self, alumno):
        try:
            sql = """INSERT INTO alumnos(dni, nombres, apellidos, edad)
            VALUES('{}', '{}', '{}', {})""".format(alumno.dni, alumno.nombres,
                                                   alumno.apellidos,
                                                   alumno.edad)
            self.__conn.ejecutarSentencia(sql)
            self.__conn.commit()
        except Exception as e:
            print(f"Error: {str(e)}")
            self.__conn.rollback()
        else:
            self.__conn.cerrarConexion()

    def listaralumnos(self):
        try:
            sql = "SELECT * FROM alumnos"
            cursor = self.__conn.ejecutarSentencia(sql)
            filas = cursor.fetchall()
            for fila in filas:
                print("""DNI: {}, Nombres: {}, Apellidos: {}, Edad: {} \n
                """.format(fila[1], fila[2], fila[3], fila[4]))
        except Exception as e:
            print(f"Error: {str(e)}")
            self.__conn.rollback()
        else:
            self.__conn.cerrarConexion()

    def obteneralumno(self, idalumno):
        try:
            sql = """SELECT * FROM alumnos
            WHERE idalumno = {}""".format(idalumno)
            cursor = self.__conn.ejecutarSentencia(sql)
            fila = cursor.fetchone()
            alumno = Alumno(fila[1], fila[2], fila[3], fila[4])
            return alumno
        except Exception as e:
            print(f"Error: {str(e)}")
            self.__conn.rollback()
        else:
            self.__conn.cerrarConexion()

    def actualizaralumno(self, alumno, idalumno):
        try:
            sql = """UPDATE alumnos SET dni = {}, nombres = {}, apellidos = {}, edad = {}
            WHERE idalumno = {}""".format(alumno.dni, alumno.nombres,
                                          alumno.apellidos, alumno.edad,
                                          idalumno)
            self.__conn.ejecutarSentencia(sql)
            self.__conn.commit
        except Exception as e:
            print(f"Error: {str(e)}")
            self.__conn.rollback()
        else:
            self.__conn.cerrarConexion()

    def eliminaralumno(self, idalumno):
        try:
            sql = """DELETE FROM alumnos
            WHERE idalumno = {}""".format(idalumno)
            self.__conn.ejecutarSentencia(sql)
            self.__conn.commit()
        except Exception as e:
            print(f"Error: {str(e)}")
            self.__conn.rollback()
        else:
            self.__conn.cerrarConexion()

    def obtenerNotaMax(self):
        return max(self.notas)

    def obtenerNotaMin(self):
        return min(self.notas)

    def obtenerPromedio(self):
        for nota in self.notas:
            suma += nota
        promedio = suma / len(self.notas)
        return promedio