def grupos(): system('cls') pos = lambda y, x: '\x1b[%d;%dH' % (y, x) men = Menu(['1).Ingreso', '2).Listado', '3).Salir'], ' Menu Grupos') opc = men.mostrarMenu() while opc != '3': system('cls') if opc == '1': y = 10000 print(pos(1, 25) + 'Ingreso Grupo') print(pos(2, 25) + '') des = input('Descripcion.........:' + pos(3, 25)) arch = Archivo() gru = Grupo(des) if path.isfile('data/grupo.txt'): datos = arch.leer('data/grupo.txt') gru.id = generarCodigoAutomatico(datos) arch.escribir('data/grupo.txt', gru.mostrarGrupo()) x = input('Registro Grabado, Precione una tecla para continuar...') elif opc == '2': print(pos(1, 15) + 'Listado de Grupos') arch = Archivo() datos = arch.leer('data/grupo.txt') tabla = [] tabla.append(['Codigo', 'Descripcion']) for dato in datos: #tabla.append(['\x1b[0;34m'+dato[0],'\x1b[0;34m'+dato[1],'\x1b[0;34m'+dato[2],'\x1b[0;34m'+dato[3],'\x1b[0;34m'+dato[4],'\x1b[0;34m'+dato[5]]) tabla.append([dato[0], dato[1]]) printTable(tabla, useFieldNames=True, color=(26, 156, 171)) x = input('\x1b[0;37m' + 'Registro Grabado, Precione una tecla para continuar...') system('cls') opc = men.mostrarMenu()
def clientes(): system('cls') pos = lambda y,x:'\x1b[%d;%dH'%(y,x) men = Menu(['1).Ingreso','2).Listado','3).Salir'],' Menu Clientes') opc = men.mostrarMenu() while opc != '3': system('cls') if opc == '1': y = 10000 print(pos(1,25)+'Ingreso Cliente') nom = input('Nombre......:'+pos(3,25)) ruc = input('Ruc.........:'+pos(4,25)) dir = input('Direccion...:'+pos(5,25)) tel = input('Telefono....:'+pos(6,25)) mai = input('Email.......:'+pos(7,25)) cli = Cliente(ruc,nom,dir,tel,mai) arch = Archivo() arch.escribir('data/cliente.txt',cli.mostrarCliente()) x = input('Registro Grabado, Precione una tecla para continuar...') elif opc == '2': print(pos(1,15)+'Listado Cliente') arch = Archivo() datos = arch.leer('data/cliente.txt') tabla=[] tabla.append(['Ruc','Nombre','Direccion','Telefono','Email']) for dato in datos: #tabla.append(['\x1b[0;34m'+dato[0],'\x1b[0;34m'+dato[1],'\x1b[0;34m'+dato[2],'\x1b[0;34m'+dato[3],'\x1b[0;34m'+dato[4],'\x1b[0;34m'+dato[5]]) tabla.append([dato[0],dato[1],dato[2],dato[3],dato[4]]) printTable(tabla, useFieldNames=True,color=(26, 156, 171)) x = input('\x1b[0;37m'+'Registro Grabado, Precione una tecla para continuar...') system('cls') opc = men.mostrarMenu()
def ventas(): system('cls') men = Menu( ['1).Ingreso', '2).Listado', '3).Reimprimir Factura', '4).Salir'], ' Menu Ventas') opc = men.mostrarMenu() while opc != '4': system('cls') if opc == '1': gotoxy(1, 1) print( '***************** Sistema de Facturacion - RegSri:#0001 ******' ) gotoxy(1, 2) print('Factura..:') gotoxy(1, 3) print('Fecha....:') gotoxy(13, 3) print(str(date.today())) gotoxy(1, 4) print('Cliente..:') gotoxy(33, 2) print('SubTotal.:') gotoxy(33, 3) print('Iva......:') gotoxy(33, 4) print('Total....:') arch = Archivo() fac = 1 if path.isfile('data/ventas.txt'): datos = arch.leer('data/ventas.txt') fac = generarCodigoAutomatico(datos) gotoxy(13, 2) print(fac) gotoxy(13, 3) fec = input() gotoxy(13, 4) cli = input() clientes = arch.leer('data/cliente.txt') registro = buscarRegistro(clientes, cli) if registro: if len(cli) > len(registro[1]): l = len(cli) - len(registro[1]) gotoxy(13 + len(registro[1]), 4) print(' ' * l) gotoxy(13, 4) print(registro[1]) else: gotoxy(13, 4) print('Consumidor Final') if not fec: fec = date.today() gotoxy(1, 5) print( '**************************************************************' ) gotoxy(1, 6) print('Producto') gotoxy(10, 6) print('Descripcion') gotoxy(35, 6) print('Precio') gotoxy(45, 6) print('Cantidad') gotoxy(55, 6) print('SubTotal') codproducto, subCab, totCab, ivaCab, linea = '', 0, 0, 0, 7 detalle = [] while codproducto not in ('s', 'S'): gotoxy(1, linea) codproducto = input() arch = Archivo() productos = arch.leer('data/producto.txt') registro = buscarRegistro(productos, codproducto) if registro: precio = float(registro[2]) l = len('No existe Registro') - len(registro[1]) gotoxy(10 + len(registro[1]), linea) print(' ' * l) gotoxy(10, linea) print(registro[1]) gotoxy(35, linea) print(precio) gotoxy(45, linea) cant = int(input()) subDet = round(cant * precio, 2) gotoxy(55, linea) print(subDet) subCab += subDet ivaCab = round(subCab * getIva(), 2) totCab = subCab + ivaCab gotoxy(45, 2) print(subCab) gotoxy(45, 3) print(ivaCab) gotoxy(45, 4) print(totCab) detalle.append({ 'fac': fac, 'producto': codproducto, 'precio': precio, 'cantidad': cant }) elif codproducto not in ('s', 'S'): # ' gotoxy(10, linea) print('No existe Registro') linea -= 1 linea += 1 grabar = grabarVenta(fac, fec, cli, subCab, ivaCab, totCab, detalle) print(grabar) x = input('Registro Grabado, Precione una tecla para continuar...') elif opc == '2': gotoxy(1, 15) print('Listado Ventas') arch = Archivo() datos = arch.leer('data/ventas.txt') tabla = [] tabla.append( ['Factura', 'Fecha', 'Cliente', 'Subtotal', 'Iva', 'Total']) clientes = arch.leer('data/cliente.txt') for dato in datos: #tabla.append(['\x1b[0;34m'+dato[0],'\x1b[0;34m'+dato[1],'\x1b[0;34m'+dato[2],'\x1b[0;34m'+dato[3],'\x1b[0;34m'+dato[4],'\x1b[0;34m'+dato[5]]) cliente = buscarRegistro(clientes, dato[2]) cl = cliente[1] if cliente else 'Consumidor Final' tabla.append([dato[0], dato[1], cl, dato[3], dato[4], dato[4]]) printTable(tabla, useFieldNames=True, color=(26, 156, 171)) x = input('\x1b[0;37m' + 'Registro Grabado, Precione una tecla para continuar...') elif opc == '3': gotoxy(0, 0) print('Reimprimir Factura') gotoxy(0, 2) print('Buscar Factura..:') gotoxy(22, 2) bus = input() arch = Archivo() vents = arch.leer('data/ventas.txt') venta = buscarRegistro(vents, bus) if venta: clientes = arch.leer('data/cliente.txt') cliente = buscarRegistro(clientes, venta[2]) gotoxy(1, 1) print('***************** Factura - RegSri:#0001 ******') gotoxy(1, 2) print('Factura...: {}'.format(venta[0])) gotoxy(1, 3) print('Fecha.....: {}'.format(venta[1])) gotoxy(1, 4) print('Cliente...: {}'.format( cliente[1] if cliente else 'Consumidor Final')) gotoxy(33, 2) print('SubTotal.: {}'.format(venta[3])) gotoxy(33, 3) print('Iva......: {}'.format(venta[4])) gotoxy(33, 4) print('Total....: {}'.format(venta[5])) gotoxy(1, 5) print( '**************************************************************' ) gotoxy(1, 6) print('Producto') gotoxy(10, 6) print('Descripcion') gotoxy(35, 6) print('Precio') gotoxy(45, 6) print('Cantidad') gotoxy(55, 6) print('SubTotal') datos = arch.leer('data/detventas.txt') linea = 7 for d in datos: if d[0] == venta[0]: productos = arch.leer('data/producto.txt') producto = buscarRegistro(productos, d[2]) gotoxy(10, linea) print(producto[1]) gotoxy(35, linea) print(d[3]) gotoxy(45, linea) print(d[4]) gotoxy(55, linea) print(float(d[3]) * float(d[3])) linea += 1 gotoxy(0, linea) x = input( 'Registro Grabado, Precione una tecla para continuar...') else: gotoxy(0, 3) print('No existe Factura {}'.format(bus)) gotoxy(0, 5) x = input( 'Registro Grabado, Precione una tecla para continuar...') system('cls') opc = men.mostrarMenu()
def productos(): system('cls') men = Menu(['1).Ingreso', '2).Listado', '3).Salir'], ' Menu Producto') opc = men.mostrarMenu() while opc != '3': system('cls') if opc == '1': arch = Archivo() gotoxy(25, 0) print('Ingreso Producto') gotoxy(1, 2) print('Nombre......:') gotoxy(1, 3) print('Grupo.......:') gotoxy(1, 4) print('Marca.......:') gotoxy(1, 5) print('Precio......:') gotoxy(1, 6) print('Stock.......:') gotoxy(16, 2) nombre = input() gotoxy(16, 3) grupo = input() grupos = arch.leer('data/grupo.txt') registro = buscarRegistro(grupos, grupo) if registro: gotoxy(16, 3) print(registro[1]) else: gotoxy(16, 3) print('Sin Grupo') grupo = 0 gotoxy(16, 4) marca = input() marcas = arch.leer('data/marca.txt') registro = buscarRegistro(marcas, marca) if registro: gotoxy(16, 4) print(registro[1]) else: gotoxy(16, 4) print('Sin Marca') marca = 0 gotoxy(16, 5) precio = input() gotoxy(16, 6) stock = input() prod = Producto(nombre, precio, stock, marca, grupo) arch = Archivo() print(prod.id) if path.isfile('data/producto.txt'): datos = arch.leer('data/producto.txt') prod.id = generarCodigoAutomatico(datos) arch.escribir('data/producto.txt', prod.mostrarProducto()) gotoxy(1, 8) x = input('Registro Grabado, Precione una tecla para continuar...') gotoxy(1, 9) print(prod.id) gotoxy(1, 10) print(prod._siguiente) elif opc == '2': gotoxy(1, 15) print('Listado Productos') arch = Archivo() datos = arch.leer('data/producto.txt') tabla = [] tabla.append(['Id', 'Nombre', 'Precio', 'Stock', 'Marca', 'Grupo']) marcas = arch.leer('data/marca.txt') grupos = arch.leer('data/grupo.txt') for dato in datos: #tabla.append(['\x1b[0;34m'+dato[0],'\x1b[0;34m'+dato[1],'\x1b[0;34m'+dato[2],'\x1b[0;34m'+dato[3],'\x1b[0;34m'+dato[4],'\x1b[0;34m'+dato[5]]) grp = buscarRegistro(marcas, dato[4]) mar = buscarRegistro(grupos, dato[5]) if not grp: grp = 'Sin Grupo' else: grp = grp[1] if not mar: mar = 'Sin Marca' else: mar = mar[1] tabla.append([dato[0], dato[1], dato[2], dato[3], grp, mar]) printTable(tabla, useFieldNames=True, color=(26, 156, 171)) x = input('\x1b[0;37m' + 'Registro Grabado, Precione una tecla para continuar...') system('cls') opc = men.mostrarMenu()
from utileria.menu import Menu from os import system #opciones from opciones.proveedor_lote import proveedorLote from opciones.proveedor_x_mayor import proveedorMayor from opciones.grupos import grupos from opciones.marcas import marcas from opciones.clientes import clientes from opciones.productos import productos from opciones.ventas import ventas from opciones.compras import compras men = Menu([ '1).Grupos', '2).Marcas', '3).Producto', '4).Proveedor Lote', '5).Proveedor x Mayor', '6).Clientes', '7).Ventas', '8).Compras', '9).Salir' ], ' Menu Facturacion') system('cls') opc = men.mostrarMenu() while opc != '9': if opc == '1': grupos() elif opc == '2': marcas() elif opc == '3': productos() elif opc == '4': proveedorLote() elif opc == '5': proveedorMayor() elif opc == '6': clientes() elif opc == '7': ventas() elif opc == '8': compras() system('cls') opc = men.mostrarMenu()
def compras(): system('cls') men = Menu(['1).Ingreso','2).Listado','3).Reimprimir Factura','4).Salir'],' Menu Compras') opc = men.mostrarMenu() while opc != '4': system('cls') if opc == '1': gotoxy(1,1);print('***************** Sistema de Compra - RegSri:#0001 ********') gotoxy(1,2);print('Orden....:') gotoxy(1,3);print('Fecha....:') gotoxy(13,3);print(str(date.today())) gotoxy(1,4);print('Proveedor.:') gotoxy(33,2);print('SubTotal.:') gotoxy(33,3);print('Iva......:') gotoxy(33,4);print('Total....:') arch = Archivo() fac =1 if path.isfile('data/compras.txt'): datos = arch.leer('data/compras.txt') fac= generarCodigoAutomatico(datos) gotoxy(13,2);print(fac) gotoxy(13,3);fec = input() gotoxy(13,4);prov = input() proveedores = arch.leer('data/proveedor_lote.txt')+arch.leer('data/proveedor_mayor.txt') registro = buscarRegistro(proveedores,prov) if registro: if len(prov) > len(registro[1]): l =len(prov) -len(registro[1]) gotoxy(13+len(registro[1]),4);print(' '*l) gotoxy(13,4);print(registro[1]) else: gotoxy(13,4);print('Sin Proveedor') if not fec:fec = date.today() gotoxy(1,5);print('**************************************************************') gotoxy(1,6);print('Producto') gotoxy(10,6);print('Descripcion') gotoxy(35,6);print('Costo') gotoxy(45,6);print('Cantidad') gotoxy(55,6);print('SubTotal') codproducto,subCab,totCab,ivaCab,linea ='',0,0,0,7 detalle = [] while codproducto not in('s','S'): gotoxy(1,linea);codproducto = input() arch = Archivo() productos = arch.leer('data/producto.txt') registro = buscarRegistro(productos,codproducto) if registro: precio = float(registro[2]) l = len('No existe Registro') -len(registro[1]) gotoxy(10+len(registro[1]),linea);print(' '*l) gotoxy(10,linea);print(registro[1]) gotoxy(35,linea);print(precio) gotoxy(45,linea);cant = int(input()) subDet = round(cant*precio,2) gotoxy(55,linea);print(subDet) subCab += subDet ivaCab = round(subCab*getIva(),2) totCab = subCab +ivaCab gotoxy(45,2);print(subCab) gotoxy(45,3);print(ivaCab) gotoxy(45,4);print(totCab) detalle.append({'ord':fac,'producto':codproducto,'costo':precio,'cantidad':cant}) elif codproducto not in('s','S'): gotoxy(10,linea);print('No existe Registro') linea -= 1 linea+= 1 grabar = grabarCompra(fac,fec,prov,subCab,ivaCab,totCab,detalle) print(grabar) x = input('Registro Grabado, Precione una tecla para continuar...') elif opc == '2': gotoxy(1,15);print('Listado Compras') arch = Archivo() datos = arch.leer('data/compras.txt') tabla=[] tabla.append(['Orden','Fecha','Proveedor','Subtotal','Iva','Total']) proveedores = arch.leer('data/proveedor_lote.txt')+arch.leer('data/proveedor_mayor.txt') for dato in datos: #tabla.append(['\x1b[0;34m'+dato[0],'\x1b[0;34m'+dato[1],'\x1b[0;34m'+dato[2],'\x1b[0;34m'+dato[3],'\x1b[0;34m'+dato[4],'\x1b[0;34m'+dato[5]]) proveedor = buscarRegistro(proveedores ,dato[2]) tabla.append([dato[0],dato[1],proveedor[1] if proveedor else 'Sin Proveedor' ,dato[3],dato[4],dato[4]]) printTable(tabla, useFieldNames=True,color=(26, 156, 171)) x = input('\x1b[0;37m'+'Registro Grabado, Precione una tecla para continuar...') elif opc == '3': gotoxy(0,0);print('Reimprimir Orden Compra') gotoxy(0,2);print('Buscar Orden..:') gotoxy(22,2);bus = input() arch = Archivo() comps= arch.leer('data/compras.txt') compra = buscarRegistro(comps,bus) if compra: proveedores = arch.leer('data/proveedor_lote.txt')+arch.leer('data/proveedor_mayor.txt') proveedor = buscarRegistro(proveedores,compra[2]) gotoxy(1,1);print('***************** Orden de Compra - RegSri:#0001 ******') gotoxy(1,2);print('Factura...: {}'.format(compra[0])) gotoxy(1,3);print('Fecha.....: {}'.format(compra[1])) gotoxy(1,4);print('Proveedor.: {}'.format(proveedor[1]if proveedor else 'Sin Proveedor')) gotoxy(33,2);print('SubTotal.: {}'.format(compra[3])) gotoxy(33,3);print('Iva......: {}'.format(compra[4])) gotoxy(33,4);print('Total....: {}'.format(compra[5])) gotoxy(1,5);print('**************************************************************') gotoxy(1,6);print('Producto') gotoxy(10,6);print('Descripcion') gotoxy(35,6);print('Costo') gotoxy(45,6);print('Cantidad') gotoxy(55,6);print('SubTotal') datos = arch.leer('data/detcompras.txt') linea=7 for d in datos: if d[0] == compra[0]: productos = arch.leer('data/producto.txt') producto = buscarRegistro(productos,d[2]) gotoxy(10,linea);print(producto[1]) gotoxy(35,linea);print(d[3]) gotoxy(45,linea);print(d[4]) gotoxy(55,linea);print(float(d[3])*float(d[3])) linea+=1 gotoxy(0,linea+2);x=input('Precione una tecla para continuar...') else : gotoxy(0,3);print('No existe Orden Compra {}'.format(bus)) gotoxy(0,5);x=input('Precione una tecla para continuar...') system('cls') opc = men.mostrarMenu()