LP
LP
LP
def imprimirMenu():
print("\n-----PROGRAMA ADMINISTRATIVO DEL CATALOGO ISABELLA-----\n")
print("\tSelecccione una opción")
print("\t\t1. Modulo de clientes")
print("\t\t2. Modulo de productos")
print("\t\t3. Nuevo pedido")
print("\t\t4. Nueva venta")
#print("\t\t5. reportes")
print("\t\t5. Salir")
#leerOpcion()
def leerOpcion():
opcion = int(input("Ingrese opcion--->"))
while true:
if opcion == 1:
imprimirMenuClientes()
break
elif opcion == 2:
imprimirMenuProducto()
break
elif opcion == 3:
crearPedido()
break
elif opcion == 4:
print("Venta")
break
elif opcion == 5:
print("reporte")
break
elif opcion== 6:
def imprimirMenu():
print("\n-----PROGRAMA ADMINISTRATIVO DEL CATALOGO ISABELLA-----\n")
print("\tSelecccione una opción")
print("\t\t1. Modulo de clientes")
print("\t\t2. Modulo de productos")
print("\t\t3. Nuevo pedido")
print("\t\t4. Nueva venta")
print("\t\t5. Salir")
leerOpcion()
def leerOpcion():
opcion = int(input("Ingrese opcion--->"))
limpiarPantalla()
if opcion == 1:
imprimirMenuClientes()
elif opcion == 2:
imprimirMenuProducto()
elif opcion == 3:
crearPedido()
elif opcion == 4:
crearVenta()
elif opcion == 5:
#salir del programa
printColor("exito", "Nos vemos luego")
input()
return
else:
printColor("error","Esa opción no existe, vuelva a ingresar")
printColor("advertencia", "Presione una tecla para volver al menú")
input()
imprimirMenu()
imprimirMenu()
venta
from PEDIDOS import buscarPedido
from PRODUCTOS import buscarProducto
from prettytable import PrettyTable
from UTILES import printColor
def crearVenta():
f = open("data/VENTAS.txt", "r")
lines = f.readlines()
nro_venta = len(lines)+1
pedidoBuscado = {}
table = PrettyTable()
table.field_names = ["NRO PEDIDO", "CLIENTE", "FECHA"]
while True:
nuevoDetalle = verificarDisponibilidad(pedidoBuscado["detalle"])
imprimirDetallePedido(nuevoDetalle)
monto_total = hallarMontoTotal(pedidoBuscado["detalle"])
nro_pedido = pedidoBuscado["nro_pedido"]
fechaVenta = str(input("Ingrese la fecha de la venta--->"))
nroBoleta = str(input("Ingrese el número de la boleta--->"))
def imprimirDetallePedido(detalle):
table = PrettyTable()
table.field_names = ["ITEM", "PRODUCTO", "CANTIDAD", "P.U.", "SUBTOTAL",
"ESTADO"]
for item in detalle:
table.add_row([
item["item"],
item["nombre_producto"],
item["cantidad"],
item["precio"],
"%.2f"%(float(item["cantidad"]) * float(item["precio"])),
item["estado"]
])
print(table)
table.add_row([
"", "", "", "MONTO TOTAL", "%.2f"%monto_total
])
print(table)
def verificarDisponibilidad(detalle):
nuevoDetalle = []
for item in detalle:
nuevoItem = item
if item["cantidad"] >
buscarProducto(item["cod_producto"])["cantidad"]:
nuevoItem["estado"] = "NO CUBIERTO"
else:
nuevoItem["estado"] = "CUBIERTO"
nuevoDetalle.append(nuevoItem)
return nuevoDetalle
def hallarMontoTotal(detalle):
monto_total = 0
for item in detalle:
monto_total += float(item["precio"]) * float(item["cantidad"])
return monto_total
def crearPedido():
f = open("data/PEDIDOS.txt","r")
lines = f.readlines()
nro_pedido = len(lines)+1
clienteBuscado = {}
while True:
cod_cliente=str(input("Ingrese el código cliente--->"))
clienteBuscado = buscarCliente(cod_cliente)
if not clienteBuscado:
printColor("No se encontro ese cliente, vuelva a ingresar")
else:
break
printColor("exito", "Cliente seleccionado: ",
clienteBuscado["ap_nombre"])
fecha=str(input("Ingrese la fecha--->"))
f.close()
f=open("data/PEDIDOS.txt","a")
f.write(str(nro_pedido) + ","+ clienteBuscado["codigo"]+","+ fecha +
"\n")
f.close()
crearDetallePedido(clienteBuscado["codigo"], nro_pedido)
def buscarPedido(nro_pedido):
pedidoRespuesta = {}
f=open("data/PEDIDOS.txt", "r")
for linea in f.read().splitlines():
valores = linea.split(",")
if valores[0] == nro_pedido:
pedidoRespuesta = {
"nro_pedido": nro_pedido,
"cliente": buscarCliente(valores[1])["ap_nombre"],
"fecha": valores[2]
}
break
f.close()
f=open("data/DETALLE DE PEDIDO.txt","r")
detalle = []
for linea in f.read().splitlines():
valores = linea.split(",")
if valores[0] == nro_pedido:
productoBuscado = buscarProducto(valores[2])
detalle.append({
"item": valores[1],
"cod_producto": valores[2],
"nombre_producto": productoBuscado["nombre"] + "/"+
productoBuscado["tp_material"],
"cantidad": valores[3],
"precio": productoBuscado["precio"]
})
pedidoRespuesta["detalle"] = detalle
return pedidoRespuesta
clientes
from prettytable import PrettyTable
from UTILES import limpiarPantalla, printColor
# REGISTRO DE CLIENTES
def imprimirMenuClientes():
print("-----MENU DE CLIENTES-----")
print("\tSelecccione una opción")
print("\t\t1. Mostrar registro de clientes")
print("\t\t2. Añadir clientes")
print("\t\t3. Salir")
leerOpcion()
def leerOpcion():
opcion = int(input("Ingrese opcion--->"))
limpiarPantalla()
if opcion == 1:
mostrarClientes()
elif opcion == 2:
registrarClientes()
elif opcion == 3:
# salir del programa
printColor("exito", "Nos vemos luego")
return
else:
printColor("error","Esa opción no existe, vuelva a ingresar")
printColor("advertencia", "Presione una tecla para volver al menú")
input()
imprimirMenuClientes()
def mostrarClientes():
print("\n*****CLIENTES:****** \n\n")
f=open("data/CLIENTES.txt","r")
table = PrettyTable()
table.field_names = ["COD", "NOMBRE", "DNI", "TELEFONO", "DIRECCION",
"CORREO"]
for linea in f.read().splitlines():
valores = linea.split(",")
cliente = {
"codigo": valores[0],
"ap_nombre": valores[1],
"dni": valores[2],
"telefono": valores[3],
"direccion": valores[4],
"correo": valores[5]
}
table.add_row([cliente["codigo"], cliente["ap_nombre"],
cliente["dni"], cliente["telefono"], cliente["direccion"],
cliente["correo"]])
print(table)
f.close()
def registrarClientes():
f=open("data/CLIENTES.txt","a")
n=int(input("Ingrese la cantidad de clientes a registrar--->"))
clientes = []
for i in range (n):
codigo = str(input("Ingrese el código cliente "+str(i+1)+"--->"))
ap_nombre = str(input("Ingrese el apellido y el nombre
respectivamente "+str(i+1)+"--->"))
dni = int(input("Ingrese el número de DNI del cliente "+str(i+1)+"--
->"))
telefono = int(input("Ingrese el número de teléfono del cliente
"+str(i+1)+"--->"))
direccion = str(input("Ingrese la dirección de la vivienda del
cliente "+str(i+1)+"--->"))
correo = str(input("Ingrese el correo electrónico del cliente
"+str(i+1)+"--->"))
clientes.append({
"codigo": codigo,
"ap_nombre": ap_nombre,
"dni": dni,
"telefono": telefono,
"direccion": direccion,
"correo": correo
})
for cliente in clientes:
f.write(f"{cliente['codigo']},{cliente['ap_nombre']},{cliente['dni']},{clien
te['telefono']},{cliente['direccion']},{cliente['correo']}")
f.close()
def buscarCliente(codigo):
f=open("data/CLIENTES.txt","r")
for linea in f.read().splitlines():
valores = linea.split(",")
if valores[0]==codigo:
return({
"codigo": codigo,
"ap_nombre": valores[1],
"dni": valores[2],
"telefono": valores[3],
"direccion": valores[4],
"correo": valores[5]
})
return False
utiles
def limpiarPantalla():
system('cls')
def limpiarPantalla():
system('cls')