def totalDelDia(): fechaDeHoy = date.today() comandoSQL = 'SELECT ID_FACTURA FROM FACTURAS WHERE FECHA LIKE "%{}%";'.format( fechaDeHoy) funciones_SQLite.ejecutarComandoSQL(comandoSQL, cursorBaseDeDatos) tablaTotal = funciones_SQLite.extraerTabla(cursorBaseDeDatos) print(tablaTotal)
def agregarArticulo(): codigoDeBarras = ingreso_de_datos.ingresoCodigoDeBarras() validacionParaAgregarRegistro = verificarQueNoExistaElArticulo(codigoDeBarras) if(validacionParaAgregarRegistro): nombreDelArticulo = ingreso_de_datos.ingresoNombre("Articulo") nombreDeLaMarcaDelArticulo = ingreso_de_datos.ingresoNombre("Marca") precioDelArticulo = ingreso_de_datos.ingresoDePrecio() numeroDeAreaDelArticulo = ingreso_de_datos.ingresoDeArea() existeMarca = verificarSiExisteMarca(nombreDeLaMarcaDelArticulo) if (existeMarca): numeroDeMarcaDelArticulo = ingreso_de_datos.determinarNumeroDeMarcaDelArticulo(nombreDeLaMarcaDelArticulo) else: comandoSQL = 'INSERT INTO MARCAS (NOMBRE_MARCA,ALTA_BAJA) VALUES("{}",1)'.format(nombreDeLaMarcaDelArticulo) funciones_SQLite.ejecutarComandoSQL(comandoSQL, cursorBaseDeDatos) funciones_SQLite.guardarBaseDeDatos(baseDeDatos) numeroDeMarcaDelArticulo = ingreso_de_datos.determinarNumeroDeMarcaDelArticulo(nombreDeLaMarcaDelArticulo) stockDelArticulo = ingreso_de_datos.ingresoCantidadDeStock() comandoSQL = 'INSERT INTO ARTICULOS (CODIGO_DE_BARRA, NOMBRE_ARTICULO,PRECIO,ARTICULO_MARCA,ARTICULO_AREA,STOCK,ALTA_BAJA)' \ 'VALUES({},"{}",{},{},{},{},{});'\ .format(codigoDeBarras,nombreDelArticulo,precioDelArticulo,numeroDeMarcaDelArticulo,numeroDeAreaDelArticulo,stockDelArticulo,str(1)) funciones_SQLite.ejecutarComandoSQL(comandoSQL,cursorBaseDeDatos) funciones_SQLite.guardarBaseDeDatos(baseDeDatos) else: print("Ya existe ese articulo ")
def modificarArticulo(): tablaDatosDelArticulo = extraerDatosDelArticuloAModificar() antiguoNombre = tablaDatosDelArticulo[0][0] #OK antiguoPrecio = tablaDatosDelArticulo[0][1] #OK antiguoIDMarca = tablaDatosDelArticulo[0][2]#OK antiguoIDArea = tablaDatosDelArticulo[0][3]#OK antiguoStock = tablaDatosDelArticulo[0][4]#OK codigoDeBarras = tablaDatosDelArticulo[0][5]#OK mensaje = "¿Que campos desea modificar?" nombreNuevo = funciones_para_modificar_articulo.modificarNombre(antiguoNombre) nombreDeMarcaNuevo = funciones_para_modificar_articulo.modificarMarca(antiguoIDMarca)#Ver futuros problemas precioNuevo = funciones_para_modificar_articulo.modificarPrecio(antiguoPrecio) stockNuevo = funciones_para_modificar_articulo.modificarStock(antiguoStock)#Ver futuros problemas areaNueva = funciones_para_modificar_articulo.modificarArea(antiguoIDArea)#Ver futuros problemas numeroDeIDDeLaMarcaNueva = ingreso_de_datos.determinarNumeroDeMarcaDelArticulo(nombreDeMarcaNuevo) if (numeroDeIDDeLaMarcaNueva == None): comandoSQL = 'INSERT INTO MARCAS (NOMBRE_MARCA,ALTA_BAJA) VALUES("{}",1)'.format(nombreDeMarcaNuevo) funciones_SQLite.ejecutarComandoSQL(comandoSQL, cursorBaseDeDatos) funciones_SQLite.guardarBaseDeDatos(baseDeDatos) numeroDeIDDeLaMarcaNueva = ingreso_de_datos.determinarNumeroDeMarcaDelArticulo(nombreDeMarcaNuevo) comandoSQL = 'UPDATE ARTICULOS SET NOMBRE_ARTICULO = "{}", PRECIO = {} ,ARTICULO_MARCA = {},ARTICULO_AREA = {} ,STOCK = {} WHERE CODIGO_DE_BARRA = {} ;'.format(nombreNuevo,str(precioNuevo),numeroDeIDDeLaMarcaNueva,str(areaNueva),str(stockNuevo),str(codigoDeBarras)) funciones_SQLite.ejecutarComandoSQL(comandoSQL,cursorBaseDeDatos) funciones_SQLite.guardarBaseDeDatos(baseDeDatos)
def verificarSiExisteCliente(nombreCliente): comandoSQL = "SELECT * FROM CLIENTES;" funciones_SQLite.ejecutarComandoSQL(comandoSQL, cursorBaseDeDatos) tablaClientes = funciones_SQLite.extraerTabla(cursorBaseDeDatos) for cliente in tablaClientes: if (cliente[1] == nombreCliente): return True return False
def verificarSiExisteMarca(nombreMarca): comandoSQL = "SELECT * FROM MARCAS;" funciones_SQLite.ejecutarComandoSQL(comandoSQL, cursorBaseDeDatos) tablaMarcas = funciones_SQLite.extraerTabla(cursorBaseDeDatos) for marca in tablaMarcas: if (marca[1] == nombreMarca): return True return False
def verificarQueNoExistaElCliente(nombreDelCliente): comandoSQL = 'SELECT NOMBRE FROM CLIENTES;' funciones_SQLite.ejecutarComandoSQL(comandoSQL,cursorBaseDeDatos) tablaNombresDeClientes = funciones_SQLite.extraerTabla(cursorBaseDeDatos) for nombre in tablaNombresDeClientes: if(nombre[0] == nombreDelCliente): return False return True
def extraerDatosDelArticuloAModificar(): codigoDeBarras = ingreso_de_datos.ingresoCodigoDeBarras() comandoSQL = "SELECT NOMBRE_ARTICULO,PRECIO,ARTICULO_MARCA,ARTICULO_AREA,STOCK,CODIGO_DE_BARRA FROM ARTICULOS WHERE CODIGO_DE_BARRA = {}".format(str(codigoDeBarras)) funciones_SQLite.ejecutarComandoSQL(comandoSQL, cursorBaseDeDatos) tablaDatosDelArticulo = funciones_SQLite.extraerTabla(cursorBaseDeDatos) print("Los datos del articulo a modificar son: ") print(tablaDatosDelArticulo) return tablaDatosDelArticulo
def extraerIDDeLaUltimaFactura(): comandoSQL = 'SELECT MAX(ID_FACTURA) FROM FACTURAS;' funciones_SQLite.ejecutarComandoSQL(comandoSQL, cursorBaseDeDatos) idDeUltimaFactura = funciones_SQLite.extraerElemento(cursorBaseDeDatos) if (idDeUltimaFactura[0] == None): idDeUltimaFactura = 1 else: idDeUltimaFactura = idDeUltimaFactura[0] + 1 return idDeUltimaFactura
def verificarQueNoExistaElArticulo(codigoDeBarras): comandoSQL = 'SELECT CODIGO_DE_BARRA FROM ARTICULOS;' funciones_SQLite.ejecutarComandoSQL(comandoSQL,cursorBaseDeDatos) tablaConCodigosDeBarra = funciones_SQLite.extraerTabla(cursorBaseDeDatos) for codigo in tablaConCodigosDeBarra: if(codigo[0] == int(codigoDeBarras)): return False return True
def verificarQueExistaElArticulo(codigoDeBarra): comandoSQL = 'SELECT * FROM ARTICULOS WHERE CODIGO_DE_BARRA = {}'.format( codigoDeBarra) funciones_SQLite.ejecutarComandoSQL(comandoSQL, cursorBaseDeDatos) articuloBuscado = funciones_SQLite.extraerElemento(cursorBaseDeDatos) if (articuloBuscado == None): return False else: return True
def eliminarCliente(): nombreCliente = ingreso_de_datos.ingresoNombre("Cliente") existeCliente = verificarSiExisteCliente(nombreCliente) if (existeCliente): comandoSQL = 'UPDATE CLIENTES SET ALTA_BAJA = 0 WHERE NOMBRE = "{}"'.format( nombreCliente) funciones_SQLite.ejecutarComandoSQL(comandoSQL, cursorBaseDeDatos) funciones_SQLite.guardarBaseDeDatos(baseDeDatos) else: print("No existe el cliente")
def agregarMarca(): nombreDeLaMarca = ingreso_de_datos.ingresoNombre("Marca") numeroDeIDDeLaMarca = ingreso_de_datos.determinarNumeroDeMarcaDelArticulo(nombreDeLaMarca) if(numeroDeIDDeLaMarca == None): comandoSQL = 'INSERT INTO MARCAS (NOMBRE_MARCA,ALTA_BAJA) VALUES("{}",1)'.format(nombreDeLaMarca) funciones_SQLite.ejecutarComandoSQL(comandoSQL,cursorBaseDeDatos) funciones_SQLite.guardarBaseDeDatos(baseDeDatos) else: print("Ya existe la marca ")
def productosSinStock(): comandoSQL = 'SELECT CODIGO_DE_BARRA,NOMBRE_ARTICULO,PRECIO,ARTICULO_MARCA FROM ARTICULOS WHERE STOCK = 0;' funciones_SQLite.ejecutarComandoSQL(comandoSQL, cursorBaseDeDatos) tablaArticulosSinStock = funciones_SQLite.extraerTabla(cursorBaseDeDatos) encabezado = ["Codigo de barra", "Nombre/Descripcion", "Precio", "Marca"] print("{:<20}".format(encabezado[0]) + "{:<30}".format(encabezado[1]) + "{:<10}".format(encabezado[2]) + "{:<10}".format(encabezado[3])) for articulo in tablaArticulosSinStock: print("{:<20}".format(articulo[0]) + "{:<30}".format(articulo[1]) + "{:<10}".format(articulo[2]) + "{:<10}".format(articulo[3]))
def eliminarMarca(): nombreMarca = ingreso_de_datos.ingresoNombre("Marca") existeMarca = verificarSiExisteMarca(nombreMarca) if (existeMarca): comandoSQL = 'UPDATE MARCAS SET ALTA_BAJA = 0 WHERE NOMBRE_MARCA = "{}"'.format( nombreMarca) funciones_SQLite.ejecutarComandoSQL(comandoSQL, cursorBaseDeDatos) funciones_SQLite.guardarBaseDeDatos(baseDeDatos) else: print("No existe el cliente")
def verificarStockDisponible(codigoDeBarra, stockDeseado): comandoSQL = 'SELECT STOCK FROM ARTICULOS WHERE CODIGO_DE_BARRA = {};'.format( codigoDeBarra) funciones_SQLite.ejecutarComandoSQL(comandoSQL, cursorBaseDeDatos) stockDisponible = funciones_SQLite.extraerElemento(cursorBaseDeDatos) stockDisponible = stockDisponible[0] if (stockDisponible < stockDeseado): print("Solo quedan disponibles {} unidades".format(stockDisponible)) return False else: return True
def modificarMarca(): nombreAModificar = ingreso_de_datos.ingresoNombre("Marca a modificar") existeMarca = verificarSiExisteMarca(nombreAModificar) if (existeMarca): IDMarcaAntiguo = ingreso_de_datos.determinarNumeroDeMarcaDelArticulo(nombreAModificar) nombreNuevo = ingreso_de_datos.ingresoNombre("Nueva Marca") comandoSQL = 'UPDATE MARCAS SET NOMBRE_MARCA = "{}" WHERE ID_MARCA = {} '.format(nombreNuevo,IDMarcaAntiguo) funciones_SQLite.ejecutarComandoSQL(comandoSQL, cursorBaseDeDatos) funciones_SQLite.guardarBaseDeDatos(baseDeDatos) else: print("No existe ese cliente")
def agregarCliente(): nombreDelCliente = ingreso_de_datos.ingresoNombre("Cliente") noExisteCliente = verificarQueNoExistaElCliente(nombreDelCliente) if(noExisteCliente): numeroDeTelefonoDelCliente = ingreso_de_datos.ingresoNumeroDelCliente() comandoSQL = 'INSERT INTO CLIENTES(NOMBRE,NUMERO_TELEFONO,ALTA_BAJA) VALUES("{}",{},1);'.format(nombreDelCliente,numeroDeTelefonoDelCliente) funciones_SQLite.ejecutarComandoSQL(comandoSQL,cursorBaseDeDatos) funciones_SQLite.guardarBaseDeDatos(baseDeDatos) else: print("Ya existe el cliente")
def buscarPorArea(): numeroDeArea = ingreso_de_datos.ingresoDeArea() comandoSQL = 'SELECT ARTICULOS.CODIGO_DE_BARRA, ARTICULOS.NOMBRE_ARTICULO, ARTICULOS.PRECIO, MARCAS.NOMBRE_MARCA FROM ARTICULOS INNER JOIN MARCAS ON ARTICULO_MARCA = ID_MARCA WHERE ARTICULO_AREA = {};'.format( numeroDeArea) funciones_SQLite.ejecutarComandoSQL(comandoSQL, cursorBaseDeDatos) tablaArticulosDelArea = funciones_SQLite.extraerTabla(cursorBaseDeDatos) encabezado = ["Codigo de barra", "Nombre/Descripcion", "Precio", "Marca"] print("{:<20}".format(encabezado[0]) + "{:<30}".format(encabezado[1]) + "{:<10}".format(encabezado[2]) + "{:<10}".format(encabezado[3])) for articulo in tablaArticulosDelArea: print("{:<20}".format(articulo[0]) + "{:<30}".format(articulo[1]) + "{:<10}".format(articulo[2]) + "{:<10}".format(articulo[3]))
def modificarCliente(): nombreAModificar = ingreso_de_datos.ingresoNombre("Cliente a modificar") existeCliente = verificarSiExisteCliente(nombreAModificar) if(existeCliente): tablaDatosDelCliente = extraerDatosDelClienteAModificar(nombreAModificar) antiguoNombre = tablaDatosDelCliente[0] antiguoNumero = tablaDatosDelCliente[1] nuevoNombre = funciones_para_modificar_cliente.modificarNombre(antiguoNombre) nuevoNumero = funciones_para_modificar_cliente.modificarNumero(antiguoNumero) comandoSQL = 'UPDATE CLIENTES SET NOMBRE = "{}",NUMERO_TELEFONO = {} ;'.format(nuevoNombre,nuevoNumero) funciones_SQLite.ejecutarComandoSQL(comandoSQL,cursorBaseDeDatos) funciones_SQLite.guardarBaseDeDatos(baseDeDatos) else: print("No existe ese cliente")
def crearFacturaVersion2(): articulosFacturados = [] contador = 0 idDeUltimaFactura = extraerIDDeLaUltimaFactura() nombreDelCliente = ingreso_de_datos.ingresoNombre("Cliente") existeCliente = verificarSiExisteCliente(nombreDelCliente) if (not existeCliente): print("No existe el cliente, debe agregarlo") agregarRegistros.agregarCliente() validacionSeguirFacturando = True while (validacionSeguirFacturando): codigoDeBarras = ingreso_de_datos.ingresoCodigoDeBarras() existeArticulo = verificarQueExistaElArticulo(codigoDeBarras) if (not existeArticulo): agregarRegistros.agregarArticulo() print("Ingrese stock deseado") stockDeseadoDelArticulo = ingreso_de_datos.ingresoCantidadDeStock() stockDeseadoDelArticulo = int(stockDeseadoDelArticulo) sePoseeElStockDeseado = verificarStockDisponible( codigoDeBarras, stockDeseadoDelArticulo) if (sePoseeElStockDeseado): articulosFacturados.append( (codigoDeBarras, stockDeseadoDelArticulo)) validacionSeguirFacturando = deseaSeguirIngresandoArticulosALaFactura( ) else: validacionSeguirFacturando = deseaSeguirIngresandoArticulosALaFactura( ) if (len(articulosFacturados) == 0): print("No se realizo factura alguna") else: while (contador < (len(articulosFacturados))): comandoSQL = 'SELECT ARTICULOS.CODIGO_DE_BARRA,ARTICULOS.NOMBRE_ARTICULO,MARCAS.ID_MARCA, ARTICULOS.PRECIO FROM ARTICULOS,MARCAS WHERE ARTICULOS.CODIGO_DE_BARRA = {}'.format( codigoDeBarras) funciones_SQLite.ejecutarComandoSQL(comandoSQL, cursorBaseDeDatos) articuloConsultado = funciones_SQLite.extraerElemento( cursorBaseDeDatos) codigoDeBarrasDelArticulo = articuloConsultado[0] precioDelArticulo = articuloConsultado[3] comandoSQL = 'INSERT INTO ART_FACT(ID_ART,ID_FACT,CANTIDAD,PRECIO) VALUES({},{},{},{});'.format( codigoDeBarrasDelArticulo, str(idDeUltimaFactura), stockDeseadoDelArticulo, str(precioDelArticulo)) funciones_SQLite.ejecutarComandoSQL(comandoSQL, cursorBaseDeDatos) comandoSQL = 'INSERT INTO FACTURAS (ID_CLIENTE) VALUES ((SELECT ID_CLIENTE FROM CLIENTES WHERE NOMBRE = "{}"));'.format( nombreDelCliente) funciones_SQLite.ejecutarComandoSQL(comandoSQL, cursorBaseDeDatos) funciones_SQLite.guardarBaseDeDatos(baseDeDatos) comandoSQL = 'UPDATE ARTICULOS SET STOCK = (SELECT STOCK FROM ARTICULOS WHERE CODIGO_DE_BARRA = {})-{} WHERE CODIGO_DE_BARRA = {}'.format( codigoDeBarras, stockDeseadoDelArticulo, codigoDeBarras) funciones_SQLite.ejecutarComandoSQL(comandoSQL, cursorBaseDeDatos) funciones_SQLite.guardarBaseDeDatos(baseDeDatos) contador = contador + 1
def buscarPorFechaDeActualizacion(): fechaDeIngreso = ingreso_de_datos.ingresoYValidacionDeFecha() formatter_string = "%Y-%m-%d" datetime_object = datetime.strptime(fechaDeIngreso, formatter_string) date_object = datetime_object.date() comandoSQL = 'SELECT CODIGO_DE_BARRA,NOMBRE_ARTICULO,PRECIO,ARTICULO_MARCA FROM ARTICULOS WHERE FECHA LIKE "%{}%";'.format( date_object) funciones_SQLite.ejecutarComandoSQL(comandoSQL, cursorBaseDeDatos) tablaArticulosPorFecha = funciones_SQLite.extraerTabla(cursorBaseDeDatos) encabezado = ["Codigo de barra", "Nombre/Descripcion", "Precio", "Marca"] print("{:<20}".format(encabezado[0]) + "{:<30}".format(encabezado[1]) + "{:<10}".format(encabezado[2]) + "{:<10}".format(encabezado[3])) for articulo in tablaArticulosPorFecha: print("{:<20}".format(articulo[0]) + "{:<30}".format(articulo[1]) + "{:<10}".format(articulo[2]) + "{:<10}".format(articulo[3]))
def buscarPorPalabraClave(): palabraClave = ingreso_de_datos.ingresoNombre("palabra clave") palabraClave = palabraClave.upper() comandoSQL = 'SELECT CODIGO_DE_BARRA,NOMBRE_ARTICULO,PRECIO FROM ARTICULOS WHERE NOMBRE_ARTICULO LIKE "%{}%";'.format( palabraClave, palabraClave, palabraClave) # funciones_SQLite.ejecutarComandoSQL(comandoSQL, cursorBaseDeDatos) tablaArticulosPorPalabraClave = funciones_SQLite.extraerTabla( cursorBaseDeDatos) encabezado = ["Codigo de barra", "Nombre/Descripcion", "Precio"] print("{:<20}".format(encabezado[0]) + "{:<30}".format(encabezado[1]) + "{:<10}".format(encabezado[2])) for articulo in tablaArticulosPorPalabraClave: print("{:<20}".format(articulo[0]) + "{:<30}".format(articulo[1]) + "{:<10}".format(articulo[2]))
def obtenerNumeroDeFacturaDeseada(): tablaNuevaDeNumerosDeFacturas = [] comandoSQL = 'SELECT ID_FACTURA,FECHA FROM FACTURAS;' funciones_SQLite.ejecutarComandoSQL(comandoSQL, cursorBaseDeDatos) numerosDeFacturas = funciones_SQLite.extraerTabla(cursorBaseDeDatos) for i in numerosDeFacturas: tablaNuevaDeNumerosDeFacturas.append(i[0]) print(i[0]) validacionNumeroDeFactura = False while (not validacionNumeroDeFactura): numeroDeFacturaDeseada = input( "Ingrese el numero de factura que desea imprimir ") if (int(numeroDeFacturaDeseada) <= max(tablaNuevaDeNumerosDeFacturas)): validacionNumeroDeFactura = True else: print("Error") return numeroDeFacturaDeseada
def determinarNumeroDeMarcaDelArticulo(nombreDeLaMarca): existeMarcaEnBaseDeDatos = False comandoSQL = 'SELECT * FROM MARCAS;' funciones_SQLite.ejecutarComandoSQL(comandoSQL,cursorBaseDeDatos) tablaDeMarcas = funciones_SQLite.extraerTabla(cursorBaseDeDatos) for dato in tablaDeMarcas: try: if(dato[1] == nombreDeLaMarca): existeMarcaEnBaseDeDatos = True else: existeMarcaEnBaseDeDatos = False except: existeMarcaEnBaseDeDatos = False if(existeMarcaEnBaseDeDatos): comandoSQL = 'SELECT ID_MARCA FROM MARCAS WHERE NOMBRE_MARCA = "{}"'.format(nombreDeLaMarca) funciones_SQLite.ejecutarComandoSQL(comandoSQL,cursorBaseDeDatos) ID_Marca = funciones_SQLite.extraerElemento(cursorBaseDeDatos) return ID_Marca[0] else: return None """
def ingresoDeArea(): validacionDeIngreso = False comandoSQL = 'SELECT * FROM AREAS;' funciones_SQLite.ejecutarComandoSQL(comandoSQL,cursorBaseDeDatos) tablaDeAreas = funciones_SQLite.extraerTabla(cursorBaseDeDatos) comandoSQL = 'SELECT MAX(ID_AREA) FROM AREAS ;' funciones_SQLite.ejecutarComandoSQL(comandoSQL,cursorBaseDeDatos) maximoIDdeArea = funciones_SQLite.extraerElemento(cursorBaseDeDatos) maximoIDdeArea = maximoIDdeArea[0] print(tablaDeAreas) while(not validacionDeIngreso): try: areaIngresada = int(input("Esperando ingreso de area...")) if(areaIngresada <= maximoIDdeArea and areaIngresada > 0): validacionDeIngreso = True else: print("ERROR!!") validacionDeIngreso = False except: print("ERROR!!") validacionDeIngreso = False return areaIngresada
def buscarPrecioDeUnArticulo(): codigoDeBarrasDelArticuloBuscado = ingreso_de_datos.ingresoCodigoDeBarras() comandoSQL = 'SELECT ARTICULOS.CODIGO_DE_BARRA, ARTICULOS.NOMBRE_ARTICULO, ARTICULOS.PRECIO,ARTICULOS.STOCK, MARCAS.NOMBRE_MARCA FROM (ARTICULOS) INNER JOIN MARCAS ON ARTICULO_MARCA = ID_MARCA WHERE CODIGO_DE_BARRA ={};'.format( codigoDeBarrasDelArticuloBuscado) funciones_SQLite.ejecutarComandoSQL(comandoSQL, cursorBaseDeDatos) articuloBuscado = funciones_SQLite.extraerElemento(cursorBaseDeDatos) if (articuloBuscado == None): print("No se encuentra registrado el articulo!!!") else: encabezado = [ "Codigo de Producto", "Nombre/Descripcion", "Precio Por Unidad", "Cantidad ", "Marca" ] print('|{:<20} '.format(encabezado[0]) + '|{:<30} '.format(encabezado[1]) + '|{:<20} '.format(encabezado[2]) + '|{:<9} '.format(encabezado[3]) + '|{:<20}|'.format(encabezado[4])) print('|{:<20} '.format(articuloBuscado[0]) + '|{:<30} '.format(articuloBuscado[1]) + '|{:<20} '.format(articuloBuscado[2]) + '|{:<9} '.format(articuloBuscado[3]) + '|{:<20}|'.format(articuloBuscado[4]))
def extraerDatosDelClienteAModificar(nombreAModificar): comandoSQL = 'SELECT NOMBRE,NUMERO_TELEFONO FROM CLIENTES WHERE NOMBRE = "{}";'.format(nombreAModificar) funciones_SQLite.ejecutarComandoSQL(comandoSQL,cursorBaseDeDatos) tablaDatosDelCliente = funciones_SQLite.extraerElemento(cursorBaseDeDatos) return tablaDatosDelCliente
def eliminarArticulo(): codigoDeBarras = ingreso_de_datos.ingresoCodigoDeBarras() comandoSQL = 'UPDATE ARTICULOS SET ALTA_BAJA = 0 WHERE CODIGO_DE_BARRA = {} '.format( str(codigoDeBarras)) funciones_SQLite.ejecutarComandoSQL(comandoSQL, cursorBaseDeDatos) funciones_SQLite.guardarBaseDeDatos(baseDeDatos)
def imprimirUltimaFactura(): comandoSQL = 'SELECT MAX(ID_FACTURA) FROM FACTURAS;' funciones_SQLite.ejecutarComandoSQL(comandoSQL, cursorBaseDeDatos) nroDeLaUltimaFactura = funciones_SQLite.extraerElemento(cursorBaseDeDatos) nroDeLaUltimaFactura = nroDeLaUltimaFactura[0] total = 0 #numeroDeFacturaDeseada = obtenerNumeroDeFacturaDeseada() comandoSQL = 'SELECT FECHA FROM FACTURAS WHERE ID_FACTURA={}'.format( str(nroDeLaUltimaFactura)) funciones_SQLite.ejecutarComandoSQL(comandoSQL, cursorBaseDeDatos) fechaDeLaFactura = funciones_SQLite.extraerElemento(cursorBaseDeDatos) fechaDeLaFactura = fechaDeLaFactura[0] fechaDeLaFactura = datetime.datetime.strptime(fechaDeLaFactura, "%Y-%m-%d %H:%M:%S") fechaDeLaFactura = fechaDeLaFactura.strftime("%d/%m/%y") comandoSQL = 'SELECT FACTURAS.ID_CLIENTE, CLIENTES.NOMBRE FROM FACTURAS INNER JOIN CLIENTES ON FACTURAS.ID_CLIENTE = CLIENTES.ID_CLIENTE WHERE FACTURAS.ID_FACTURA = {};'.format( nroDeLaUltimaFactura) funciones_SQLite.ejecutarComandoSQL(comandoSQL, cursorBaseDeDatos) tablaFechaYNumeroDeCliente = funciones_SQLite.extraerElemento( cursorBaseDeDatos) numeroDeCliente = tablaFechaYNumeroDeCliente[0] comandoSQL = 'SELECT ART_FACT.ID_ART,ARTICULOS.NOMBRE_ARTICULO,ART_FACT.CANTIDAD,ART_FACT.PRECIO FROM ART_FACT INNER JOIN ARTICULOS ON ARTICULOS.CODIGO_DE_BARRA = ART_FACT.ID_ART WHERE ID_FACT ={};'.format( str(nroDeLaUltimaFactura)) funciones_SQLite.ejecutarComandoSQL(comandoSQL, cursorBaseDeDatos) tablaArticulosFacturas = funciones_SQLite.extraerTabla(cursorBaseDeDatos) comandoSQL = 'SELECT NOMBRE, NUMERO_TELEFONO FROM CLIENTES WHERE ID_CLIENTE = {}'.format( numeroDeCliente) funciones_SQLite.ejecutarComandoSQL(comandoSQL, cursorBaseDeDatos) tablaCliente = funciones_SQLite.extraerElemento(cursorBaseDeDatos) print("FECHA:{:<20} ".format(fechaDeLaFactura) + "Cliente:{:<20} ".format(tablaCliente[0])) print( "---------------------------------------------------------------------------------------------------" ) encabezado = [ "Codigo de Producto", "Nombre/Descripcion", "Cantidad ", "Precio Por Unidad", "Total" ] print('|{:<20} '.format(encabezado[0]) + '|{:<20} '.format(encabezado[1]) + '|{:<20} '.format(encabezado[2]) + '|{:<20} '.format(encabezado[3]) + '|{:<9}|'.format(encabezado[4])) for i in tablaArticulosFacturas: print('|{:<20} '.format(i[0]) + '|{:<20} '.format(i[1]) + '|{:<20} '.format(i[2]) + '|{:<20} '.format(i[3]) + '|{}{:<8}|'.format("$", round(float(i[3]) * float(i[2]), 2))) print( "---------------------------------------------------------------------------------------------------" ) for i in tablaArticulosFacturas: total = float(i[3]) * float(i[2]) + total print("Subtotal:${0:.2f} ".format(round(total, 2))) print("IVA:${0:.2f}".format(round(total * 0.21, 2))) print("Total:${0:.2f}".format(round(total + total * 0.21, 2))) nombreDeArchivo = "factura{}.pdf".format(nroDeLaUltimaFactura) canvasDelPDF = canvas.Canvas(nombreDeArchivo, pagesize=A4) canvasDelPDF.setLineWidth(.3) canvasDelPDF.setFont('Helvetica', 10) canvasDelPDF.drawString(30, 750, 'NANO COTILLON') canvasDelPDF.drawString(30, 735, 'ELSA EDIS CORREA') canvasDelPDF.drawString(500, 750, 'Fecha: {}'.format(str(fechaDeLaFactura))) canvasDelPDF.line(480, 747, 580, 747) canvasDelPDF.drawString(400, 725, "Nombre de cliente:{}".format(tablaCliente[0])) canvasDelPDF.line(378, 723, 580, 723) canvasDelPDF.drawString(30, 703, 'Nro de factura:{}'.format(nroDeLaUltimaFactura)) canvasDelPDF.line(120, 700, 580, 700) canvasDelPDF.drawString( 30, 690, '-------------------------------------------------------------------------------------------------------------------------------------------' ) canvasDelPDF.drawString(30, 670, encabezado[0]) canvasDelPDF.drawString(150, 670, encabezado[1]) canvasDelPDF.drawString(280, 670, encabezado[2]) canvasDelPDF.drawString(350, 670, encabezado[3]) canvasDelPDF.drawString(470, 670, encabezado[4]) j = 0 contador = 0 ejeY = 670 ejeX = 30 for j in tablaArticulosFacturas: ejeY = ejeY - 25 ejeX = 30 canvasDelPDF.drawString(ejeX, ejeY, "{}".format(j[0])) ejeX = 150 canvasDelPDF.drawString(ejeX, ejeY, "{}".format(j[1])) ejeX = 280 canvasDelPDF.drawString(ejeX, ejeY, "{}".format(j[2])) ejeX = 350 canvasDelPDF.drawString(ejeX, ejeY, "{}".format(j[3])) ejeX = 470 canvasDelPDF.drawString(ejeX, ejeY, "${}".format(round(j[3] * j[2], 2))) ejeY = ejeY - 25 ejeX = 30 canvasDelPDF.drawString( ejeX, ejeY, '-----------------------------------------------------------------------------------------------------------------------------------------' ) ejeY = ejeY - 25 canvasDelPDF.drawString(ejeX, ejeY, "Subtotal: ${}".format(round(total, 2))) ejeY = ejeY - 25 canvasDelPDF.drawString(ejeX, ejeY, "IVA: ${}".format(round(total * 0.21, 2))) ejeY = ejeY - 25 canvasDelPDF.drawString( ejeX, ejeY, "Total: ${}".format(round(total + total * 0.21, 2))) canvasDelPDF.save()