Example #1
0
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()
Example #2
0
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()
Example #3
0
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()
Example #4
0
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()
Example #5
0
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()
Example #6
0
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()