martes, 3 de septiembre de 2019

PythonBasic - Variables, listas, metodos y otros


El siguiente codigo permite administrar un punto de venta de 3 articulos, no es posible tener el mismo articulo en inventario, se permite vender, listar y agregar productos de manera basica:

def menu(lista_compuesta):
    print("********************")
    print("OPCIONES")
    print("1-agregar productos")
    print("2-listar productos")
    print("3-vender productos")
    print("4-salir")
    print("********************")
    opcion = int(input("Digite opcion: "))
    if opcion ==1:
        print("Cuantos productos desea agregar")
        cantidadpr = int(input("Digite opcion: "))
        agregar(cantidadpr,lista_compuesta)
    elif opcion==2:
        if len(lista_compuesta)==0:
            print("No hay productos en inventario")
            menu(lista_compuesta)
        else:
            listar(lista_compuesta)
    elif opcion==3:
        if len(lista_compuesta)==0:
            print("No hay productos en inventario")
            menu(lista_compuesta)
        else:
            venta(lista_compuesta)
    elif opcion==4:
        print("Adios")
        quit()
    else:
        print("Opcion no valida")
        menu(lista_compuesta)


def agregar(cantidad,lista_compuesta):

    lc=len(lista_compuesta)

    ##Productos nuevos
    if lc==0:
        searchItem = None
        listaexterna =[]
        listainterna = []
        listafinal=[]
        for i in range(0, cantidad):
            nprod = input("Nombre producto: ")
            listainterna.append(nprod)
            cprod = int(input("Cantidad existente: "))
            listainterna.append(cprod)
            vprod = int(input("Valor de venta: "))
            listainterna.append(vprod)
            listaexterna.append(listainterna)
        #print(listainterna)
        #print(listaexterna)
        ult=(len(listaexterna))
        listafinal=(listaexterna[ult-1])
        lista_compuesta = [listafinal[x:x + 3] for x in range(0, len(listafinal), 3)]
        menu(lista_compuesta)

    ##Productos ya en inventario
    else:
        listaexterna = []
        listainterna = []
        listafinal = []
        listatmp = []
        vueltas = 0
        for i in range(0, cantidad):
            nprod = input("Nombre producto: ")

            ##Busqueda de nprod en inventario (lista compuesta)
            res1 =(any(nprod in sublist for sublist in lista_compuesta))
            ###Producto digitado ya existe
            if res1==True:
                print("********************")
                print("Producto ya existe no es posible su insercion!")
                print("********************")
                print("OPCIONES")
                print("1-actualizar producto")
                print("2-regresar a menu")
                opcion = int(input("Digite opcion: "))
                if opcion == 1:
                    for sublista in lista_compuesta:
                        vueltas = vueltas + 1
                        if sublista[0] == nprod:
                            print("Producto,cantidad existente,valor en venta: ", sublista)
                            cprod = int(input("Cantidad existente: "))
                            lista_compuesta[vueltas - 1][1]=cprod
                            vprod = int(input("Valor de venta: "))
                            lista_compuesta[vueltas - 1][2] = vprod
                    print("Dato actualizado")
                    menu(lista_compuesta)
                else:
                    menu(lista_compuesta)

            ###Producto digitado no existe en un inventario que ya tiene datos
            else:
                listainterna.append(nprod)
                cprod = int(input("Cantidad existente: "))
                listainterna.append(cprod)
                vprod = int(input("Valor de venta: "))
                listainterna.append(vprod)
                listaexterna.append(listainterna)

        #print(listainterna)
        #print(listaexterna)
        ult = (len(listaexterna))
        listafinal = (listaexterna[ult - 1])
        #print(listafinal)
        listatmp = [listafinal[x:x + 3] for x in range(0, len(listafinal), 3)]
        #print(listatmp)
        for y in range(0, len(listatmp)):
            lista_compuesta.append(listatmp[y])
        menu(lista_compuesta)



def listar(lista_compuesta):
    #print(lista_compuesta)
    for x in range(0,len(lista_compuesta)):
        print("---------------------------------")
        print("Producto: ", lista_compuesta[x][0])
        print("Cantidad existente: ", lista_compuesta[x][1])
        print("Valor a la venta: ", lista_compuesta[x][2])
    menu(lista_compuesta)

def venta(lista_compuesta):
    nprod = input("Nombre producto: ")
    for x in range(0, len(lista_compuesta)):
        if lista_compuesta[x][0]==nprod:
            cexistente=lista_compuesta[x][1]
            print("Cantidad existente: ", cexistente)
            ccomprar = int(input("Cantidad a comprar: "))
            if ccomprar>cexistente:
                print("Excede cantidad en inventario")
                menu(lista_compuesta)
            else:
                cexistente=cexistente-ccomprar
                lista_compuesta[x][1]=cexistente
                menu(lista_compuesta)



print("Abastecedor La Esperanza ")
lista_compuesta=[]
menu(lista_compuesta);



No hay comentarios:

Publicar un comentario