def CrearunCliente(self): print("\nEligió agregar un Ciente \n" + "\n Llene los siguientes datos:" + "\n") nombre = input("Nombre del cliente: ") edad = str(input("Edad: ")) direccion = input("Dirección: ") sexo = input( "Presione M si es sexo Masculino y F si es sexo Femenino" + "\nSexo: ") self.cliente = Cliente(nombre, direccion, edad, sexo) while sexo != "M" and sexo != "F": sexo = input( "Presione M si es sexo Masculino y F si es sexo Femenino ") if sexo == "M": self.Hombres.append(self.cliente) if sexo == "F": self.Mujeres.append(self.cliente) print("****Datos del cliente: \n*****") print(self.cliente) self.banco.AñadirCliente(self.cliente) print( "\nDespués de ingresar los datos del cliente debe crear una cuenta. " ) print( "\n Por favor eliga la opción adecuada para crear la cuenta del cliente:" ) self.AgregarunaCuenta()
class Player(): def __init__(self, nome): self.nome = nome self.pontuacao = 0 self.opcao = '' self.inicializa_cliente() def inicializa_cliente(self): dados = '1-%s-0' % (self.getNome()) self.player_cliente = Cliente() self.player_cliente.conecta_servidor(PORTA) self.player_cliente.envia_dados(dados) def setPontuacao(self, valor): self.pontuacao += valor def setOpcao(self, op): self.opcao = op def getOpcao(self): return self.opcao def getPontuacao(self): return self.pontuacao def getNome(self): return self.nome def sai_jogo(self): dados = '0-%s-%d' % (self.getNome(), self.getPontuacao()) self.player_cliente.envia_dados(dados) self.player_cliente.fecha_conexao()
def consultarCli(): cpfA = etCPF.get() cliente1 = Cliente("", "", cpfA, "", "") result = Cliente.SelecionarUmCliente(cliente1)[0] txtTitID.place(x=10, y=70) txtID.place(x=10, y=90) txtID.insert(0, result[0]) txtID.config(state="disabled") txtTitNome.place(x=10, y=110) txtNome.place(x=10, y=130) txtNome.insert(0, result[1]) txtNome.config(state="disabled") txtTitCPF.place(x=10, y=150) txtCPF.place(x=10, y=170) txtCPF.insert(0, result[2]) txtCPF.config(state="disabled") txtTitEmail.place(x=10, y=190) txtEmail.place(x=10, y=210) txtEmail.insert(0, result[3]) txtEmail.config(state="disabled") txtTitTel.place(x=10, y=230) txtTel.place(x=10, y=250) txtTel.insert(0, result[4]) txtTel.config(state="disabled") btEditar.place(x=90, y=280)
def registro_cliente(): print("Registre sus datos.") temp_cli = Cliente.Cliente('', '', '', '', '', '', '', '') aux = input("Nombre: ") temp_cli.set_nombre(aux.title()) aux = input("Apellido Paterno: ") temp_cli.set_apellido_paterno(aux.title()) aux = input("Apellido Materno: ") temp_cli.set_apellido_materno(aux.title()) aux = input("Genero (M/F): ") temp_cli.set_genero(aux.title()) aux = input("Edad: ") temp_cli.set_edad(aux) aux = input("Domicilio: ") temp_cli.set_domicilio(aux.title()) aux = input("Teléfono (###-###-####): ") temp_cli.set_telefono(aux) aux = input("Email: ") temp_cli.set_email(aux) cartera_clientes.append(temp_cli) log.append("[{}] - {} {} fue añadido a la cartera de clientes.".format( time.ctime(), temp_cli.get_nombre(), temp_cli.get_apellido_paterno())) print("\nCliente registrado:\n{}\n".format(temp_cli.get_info_cliente()))
def atender(self): salir = 0 c = raw_input("ingrese el numero de cliente: ") a = Cliente() con = raw_input("ingrese la contrasenia: ") b = Cuenta(c, con) while salir == 0: tarea = raw_input( "ELIJA UNA DE LAS OPCIONES: --consultar saldo-- --depositar dinero-- --extraer dinero-- --salir-- :" ) if tarea == "consultar saldo": b.consultar() if tarea == "depositar dinero": dinero = int( raw_input("ingrese cantidad de dinero a depositar: ")) b.agregar_din_cuenta(dinero) if tarea == "extraer dinero": dinero = int( raw_input("ingrese cantidad de dinero a extraer: ")) b.extraer_din_cuenta(dinero) if tarea == "salir": salir = 1
def agregar_cliente(self): print("-------------------NUEVO UN CLIENTE-------------------\n", "\n") nombre = input("Nombre del cliente: ") edad = input("Edad: ") direccion = input("Dirección: ") print("\n-------------------Cuentas del cliente-------------------\n") tipo = input("Tipo de cuenta (Elija la opción de acuerdo al numero)" + "\n1.-Ahorro" + "\n2.-Credito" + "\n") cuentas = [] if tipo == "1": valor = input("Cantidad de la cuenta: ") interes = input("Tasa de interés: ") cuenta = Cuenta_ahorro(valor, interes) self.cliente = Cliente(nombre, direccion, edad, cuentas) self.cliente.agregar_cuenta(cuenta) self.clientes.append(self.cliente) elif tipo == "2": valor = input("Cantidad de la cuenta: ") sobregiro = input("Cantidad de sobregiro: ") cuenta = Cuenta_credito(valor, sobregiro) self.cliente = Cliente(nombre, direccion, edad, cuentas) self.cliente.agregar_cuenta(cuenta) self.clientes.append(self.cliente) else: print("Tipo de cuenta no disponible") if len(cuentas) > 0: print("\nCLIENTE REGISTRADO\n") ver_datos = input("¿Mostrar los datos del cliente?\n" + "Si, oprima 's'\n" + "No, oprima 'n'\n") while ver_datos.lower() != "s" and ver_datos.lower() != "n": print("\nOpción incorrecta\n") ver_datos = input("¿Mostrar los datos del cliente?\n" + "Si, oprima 's'\n" + "No, oprima 'n'\n") if ver_datos.lower() == "s": print("\nDatos del cliente: ") print(self.cliente) if ver_datos.lower() == "n" or ver_datos.lower() == "s": agregar_mas_cuentas = input( "¿Se agregaran más cuentas al cliente?\n" + "Si, oprima 's'\n" + "No, oprima 'n'\n") self.agregar_cuenta(agregar_mas_cuentas) if agregar_mas_cuentas.lower() == "n": self.menu_inicio() else: print("El cliente no fué registrado")
def TestaGarantia(self): self.cliente = Cliente(1, "luiz", "rua a") self.vendaA = Venda(1,"01/10/2008",self.cliente) self.vendaA.data |should| equal_to ("01/10/2008") self.vendaA.tem_garantia() |should| equal_to (False) self.vendaB = Venda(1, "08/05/2013", self.cliente) self.vendaB.data |should| equal_to ("08/05/2013") self.vendaB.tem_garantia() |should| equal_to (True)
def iniciarPrograma(clientes, tecnicos, ordenes, heladeras): #cargar tecnicos tecnicos.append( Tecnico("Facundo", "Rada", datetime(datetime.now().year, 1, 12), datetime(datetime.now().year, 7, 12))) tecnicos.append( Tecnico("Matias", "Mancuello", datetime(datetime.now().year, 2, 3), datetime(datetime.now().year, 8, 1))) tecnicos.append( Tecnico("Agustin", "Ramirez", datetime(datetime.now().year, 1, 15), datetime(datetime.now().year, 12, 11))) #cargar clientes clientes.append( Cliente("12345678", "Notario", "Marcelo", "Resistencia-1", "*****@*****.**", "252562", 1)) clientes.append( Cliente("12345677", "Figueredo", "Ariel", "Resistencia-2", "*****@*****.**", "252563", 1)) clientes.append( Cliente("12345676", "Lujan", "Fernando", "Resistencia-3", "*****@*****.**", "252564", 1)) clientes.append( Cliente("12345675", "Marcos", "Cortes", "Resistencia-4", "*****@*****.**", "252565", 1)) #cargar ordenes ordenes.append( Orden(datetime.now(), "Hace Falso contacto", datetime(datetime.now().year, 6, 15))) ordenes.append( Orden(datetime.now(), "NO prende", datetime(datetime.now().year, 7, 15))) ordenes.append( Orden(datetime.now(), "Tiene la chapa picada", datetime(datetime.now().year, 6, 23))) ordenes.append( Orden(datetime.now(), "No funciona el freezer", datetime(datetime.now().year, 7, 23))) #cargar heladeras heladeras.append(Heladera(ordenes[0], clientes[0], "Blanca y cuadrada")) heladeras.append(Heladera(ordenes[1], clientes[1], "Negra y cuadrada")) heladeras.append(Heladera(ordenes[2], clientes[2], "Gris y cuadrada")) heladeras.append( Heladera(ordenes[3], clientes[3], "No tan gris... pero cuadrada"))
def testSetEstado(self): """ Prueba unitaria para setEstado """ self.cliente = Cliente.Cliente("localhost", 5) self.cliente.setEstado("AWAY") self.assertEqual("AWAY", self.cliente.getEstado()) self.cliente.cerrarSocket()
def testGetUserAddress(self): """ Prueba unitaria para getUserAddress """ self.cliente = Cliente.Cliente("localhost", 2) self.cliente.setUserAddress(("localhost", 2)) self.assertEqual(("localhost", 2), self.cliente.getUserAddress()) self.cliente.cerrarSocket()
def testGetSock(self): """ Prueba unitaria para getSock """ self.cliente = Cliente.Cliente("localhost", 6) self.cliente.setEstado("BUSY") self.assertEqual("BUSY", self.cliente.getEstado()) self.cliente.cerrarSocket()
def consultarCli(): cpfA = int(etCPF.get()) cliente = Cliente("", "", cpfA, "", "") result = Cliente.SelecionarUmCliente(cliente)[0] txtNome["text"] = result[1] txtCPF["text"] = result[2] txtEmail["text"] = result[3] txtTel["text"] = result[4]
def TestaAddTroca(self): self.cliente = Cliente(1, "luiz", "rua a") self.vendaA = Venda(1,"01/10/2008",self.cliente) self.troca = Troca("quebrado", "05/05/2013", self.vendaA, 100) self.troca.defeito |should| equal_to ("quebrado") self.troca.data |should| equal_to ("05/05/2013") self.troca.id_produto |should| equal_to (100) self.troca.quem_trocou() |should| equal_to ("luiz") pdef = Troca.listar_defeituosos()
def getAllClientes(self): with self.con: try: self.cur = self.con.cursor( cursor_factory=pdb.extras.DictCursor) self.cur.execute('SELECT * FROM Cliente') rows = self.cur.fetchall() clientes = "" for row in rows: if row is not None: cliente = Cliente(row[0], row[1]) clientes = clientes + cliente.toString() + ';' return clientes except Exception as e: print('Error while getting all clients: ' + str(e)) return 'Fracasso'
def testGetEstado(self): """ Prueba unitaria para getEstado """ self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self.cliente = Cliente.Cliente("localhost", 4) self.cliente.setSock(self.sock) self.assertEqual(self.sock, self.cliente.getSock()) self.sock.close() self.cliente.cerrarSocket()
def editarCli(): cliente = Cliente(txtID.get(), txtNome.get(), txtCPF.get(), txtEmail.get(), txtTel.get()) Cliente.AlterarCliente(cliente) txtID.config(state="normal") txtID.delete(0, END) txtNome.delete(0, END) txtCPF.delete(0, END) txtEmail.delete(0, END) txtTel.delete(0, END)
def cadastrarCli(): nomeA = nome.get() cpfA = cpf.get() emailA = email.get() telefoneA = telefone.get() cliente = Cliente("", nomeA, cpfA, emailA, telefoneA) Cliente.CadastrarCliente(cliente) nome.delete(0, 'end') cpf.delete(0, 'end') email.delete(0, 'end') telefone.delete(0, 'end')
def TestaTroca(self): self.cliente = Cliente(1, "luiz", "rua a") self.venda = Venda(1,"10/11/2013", self.cliente) self.venda.data |should| equal_to ("10/11/2013") self.venda.cliente.id_cliente |should| equal_to (1) self.venda.cliente.nome |should| equal_to ("luiz") self.venda.cliente.endereco |should| equal_to ("rua a") self.produto = Produto(10, "marca a", "modelo a",321,30) self.venda.adicionar_produto(self.produto) self.venda.produtos[0].id_produto |should| equal_to (10) self.venda.produtos[0].marca |should| equal_to ("marca a") self.venda.produtos[0].modelo |should| equal_to ("modelo a") self.venda.produtos[0].numserie |should| equal_to (321) self.venda.produtos[0].quantidade |should| equal_to (30)
def agregar(): #agrega un cliente al arbol y a la cola de prioridad. nombre = input("Ingrese el nombre: ") cantidad = int(input("Ingrese la cantidad: ")) precio = int(input("Ingrese el precio: ")) fechaDeEntrega = input("Ingrese la fecha de entrega (DD-MM-AAAA): ") modoDePago = pago() cliente = C.Cliente(nombre, cantidad, precio, fechaDeEntrega, modoDePago) arbol.agregar(cliente) colaDePrioridad.insertar(cliente) print("") print("Cliente agregado exitosamente") print("") return volverAlMain()
def deletarCli(): cliente = Cliente(txtID.get(), txtNome.get(), txtCPF.get(), txtEmail.get(), txtTel.get()) Cliente.ExcluirCliente(cliente) txtID.config(state="normal") txtNome.config(state="normal") txtCPF.config(state="normal") txtEmail.config(state="normal") txtTel.config(state="normal") txtID.delete(0, END) txtNome.delete(0, END) txtCPF.delete(0, END) txtEmail.delete(0, END) txtTel.delete(0, END)
def loginCliente(): os.system('clear') nome = input(colored('Nome: ', 'green')).title() cpf = input(colored('CPF: ', 'green')) os.system('clear') cliente = acharCliente(nome, cpf) if not cliente: cliente = Cliente(nome, cpf) novoCliente(cliente) os.system('clear') menuCliente(cliente)
def MenuagregarClientes(self, banco): print(" \n Eligió agregar un cliente") print("inserte los siguientes datos:") print("Nombre") nombre = input("") print("Edad") edad = input(" ") print("Direccion") direccion = input("") print("Nombre del cliente:" + nombre) print("Edad:" + edad) print("Direccion:" + direccion) newcte = Cliente(nombre, edad, direccion) banco.agregarClientes(newcte) banco.writeFile() return
def agregar(self): cliente = C.Cliente(self.__Entry[0].get(), self.__Entry[1].get(), self.__Entry[2].get(), self.__Entry[3].get(), self.__Entry[4].get()) try: if cliente.getPrioridad() >= prioridadActual: arbol.agregar(cliente) colaDePrioridad.insertar(cliente) self.dialogo("Mensaje", "200x50", "Cliente agregado exitosamente", "Hecho") else: self.dialogo("Mensaje", "300x50", "Ingrese una fecha válida, Cliente no agregado", "Aceptar") except Exception: self.dialogo("Mensaje", "200x50", cliente.getNombre() + " ya existe", "Aceptar")
def registrarCliente(self): #Este método es para que el cliente interactue con el MenuCliente y así obtener sus datos print("Bienvenido.") print("Ingrese su nombre: ") nombre = input() saldo = input("Ingrese su saldo: ") registro = nombre + saldo cliente = Tienda(Cliente(nombre,saldo)) cliente.catalogoproductos() while 0<1: eleccion=input("\n¿Que desea hacer?:\na)Ver carrito\nb)Comprar\nc)Eliminar producto del carrito\nEscriba su elección 'a', 'b' o 'c': ") if eleccion == "a": cliente.catalogoproductos() elif eleccion == "b": cliente.comprar() elif eleccion == "c": Eliminarproducto = input("\nIntroduzca el nombre del articulo que desea eliminar: ") cliente.eliminar(Eliminarproducto)
def menuCuenta(self): #Aca genero un cliente, pero bien podría ser por un metodo # o como atributo de la clase cte = Cliente("Virginia", "direccion de Virginia", 32) opciones = "Menu Cuenta" opciones += "Teclee la opcion que desee" opciones += "1. Agregar una Cuenta" opciones += "2. Eliminar una Cuenta" print(opciones) opcion = input() print("Elegiste:" + opcion) if opcion == "1": self.agregarCuenta(cte) else: print("Eligió la opción NO correcta")
class Pruebas: pass print("\t *********La clase madre") cuenta1 = Cuenta(300) print(cuenta1) cuenta1.depositar(400) print(cuenta1) print("\n\n\t *********La clase hija") cuenta2 = CuentaHija(200, "debito") print(cuenta2) cuenta2.depositar(8000) print(cuenta2) print("\n\n\t *********La clase Cliente") cliente = Cliente("Virginia", "direccion", 25, cuenta1) print("Objeto cliente::", cliente)
def repetirTresVeces( pFecha): # se solicita un vuelo cada minuto en una fecha especifica for a in ciudadesDestino.keys(): fecha = 0 nombreCiudad = "" nombreCiudad = a + "Ciudad" while ciudadesDestino[a][0] < 3: nombreCiudad = Cliente.Ciudad(a) if nombreCiudad.solicitarVuelo("2019-11-" + str(pFecha)): print("Listo", ciudadesDestino[a][0]) fecha += 1 ciudadesDestino[a][0] = fecha time.sleep(60)
def agregarClientesEmpresa(self, empresaAgregarClientes, idempresa): stopLlenadoClientes = False empresa = empresaAgregarClientes print('Proceda a ingresar los clientes') while not stopLlenadoClientes: cancelar = False if empresa.getCantidadClientes() > 0: respuestaCorrecta = False while not respuestaCorrecta: _input = input( 'Desea seguir agregando más clientes(S/N):\n').upper() if _input == 'N': cancelar = True stopLlenadoClientes = True respuestaCorrecta = True elif _input == 'S': respuestaCorrecta = True if not cancelar: nombreCliente = input( 'Ingrese el nombre del cliente:\n').upper() direccionCliente = input( 'Ingrese la direccion del cliente:\n').upper() rfcCliente = input('Ingrese el rfc del cliente:\n').upper() cliente = Cliente.Cliente(nombreCliente, direccionCliente, rfcCliente) empresa.setCliente(cliente) print(f''' Se ingresó al cliente: {cliente.getDatos()} ''') self.mongo.guardarClient(nombreCliente, direccionCliente, rfcCliente, idempresa)
def form(request): ciudad = request.GET["ciudad"] consulta = request.GET["optradio"] print(ciudad) print(consulta) #Se crea un cliente ICE miCliente = Cliente.Client(ciudad, consulta) miCliente.main(sys.argv) #Retorna el arreglo para mostrarlo en las vistas medidas = miCliente.retornaMedida() if consulta == 'semana': return render(request, "informe.html", {'miLista':medidas,'ciudad':ciudad}) else: print(len(medidas)) print(type(medidas[0].hora)) print(medidas[0].hora) nocturno = ["21:00","22:00","23:00","0:00","1:00","2:00","3:00","4:00","5:00","6:00"] return render(request, "vistaHoras.html", {'miLista':medidas, 'ciudad':ciudad,'noche':nocturno})
def openFile(self, name): with open("Archivo.txt","r") as archivo_1: for linea in archivo_1: datos = linea.split(",") if (len(datos)==1): continue if datos[0]=='N': cte = Cliente (datos[1], int(datos[2]), datos[3]) self.clientes.append(cte) elif datos[0]=='A': ctaa = CuentaDeAhorro(float(datos[1]),float(datos[2]) ) cte.agregarCuentas(ctaa) else : ctac = CuentaCredito(float(datos[1]),float(datos[2])) cte.agregarCuentas(ctac) archivo_1.close()
# Bind the socket to the port server_address = ('localhost', 10000) print >>sys.stderr, 'starting up on %s port %s' % server_address sock.bind(server_address) #Calling listen() puts the socket into server mode, and accept() waits for an incoming connection. # Listen for incoming connections sock.listen(1) while True: # Wait for a connection print >>sys.stderr, 'waiting for a connection' #accept() returns an open connection between the server and client, along with the address of the client. The connection is actually a different socket on another port (assigned by the kernel). Data is read from the connection with recv() and transmitted with sendall(). # bucle para atender clientes while 1: # Se espera a un cliente connection, client_address = sock.accept() # Se escribe su informacion print "conectado "+str(client_address) # Se crea la clase con el hilo hilo = Cliente(connection, server_address) # y se arranca el hilo hilo.start()
def aplicar(self,cliente,ladiciona,lconsumos,lincluPlan,lincluServ,lplan,lproductos,lservicios,mes,anio): #String que se devolvera strimpr='' #Obtenemos los productos del cliente que sean post lp=self.conseguir_productosPost(cliente,lproductos,lplan) #Aca se sumaran el total de cada producto facturado, para asi tener un monto #total de la factura montoGlobal=0 #Guardamos el string con la info de la factura. #Util para su posterior impresion. strimpr=strimpr+"-->Factura Fiscal generada:"+"\n" strimpr=strimpr+"Nombre:"+cliente.getNombre()+"\n" strimpr=strimpr+"\n" #strimpr=strimpr+cliente.getId() strimpr=strimpr+"Direccion:"+cliente.getDireccion() strimpr=strimpr+"\n" strimpr=strimpr+"Mes/Anio factura:"+str(mes)+"-"+str(anio) strimpr=strimpr+"\n" strimpr=strimpr+"Fecha emision:"+str(datetime.datetime.now()) strimpr=strimpr+"\n" #Iteraremos sobre los productos for a in lp: rentaplan=self.obtener_renta(a,lplan) nombreprod=a.getNombre() idprod=str(a.getIdn()) strimpr=strimpr+"-->Producto:"+nombreprod+"-"+idprod strimpr=strimpr+"\n" montototal=0 montototal=montototal+rentaplan #Sumaremos el total de sus consumos #Esta lista sera de la forma (descripcion),(total),(descripcion),(total),... listasumadaconsumos=[] for b in lconsumos: #Revisamos que sea un consumo para el producto que analizamos en esta iteracion if ((b.getNombre_Producto() == nombreprod) & (str(b.getId_Producto()) == idprod)): #Si es un consumo que no hemos visto, lo ponemos por primera vez en la #lista if (not ((b.getDescripcion()) in listasumadaconsumos)): listasumadaconsumos.append(b.getDescripcion()) listasumadaconsumos.append(int(b.getCosto())) #Si ya el consumo de ese tipo ha sido puesto en la lista, se le va sumando #a la posicion aledanha que es lo que se habia consumido mas lo nuevo. else: i=listasumadaconsumos.index(b.getDescripcion()) listasumadaconsumos[i+1]=int(listasumadaconsumos[i+1])+int(b.getCosto()) #Veremos el total de lo incluido en su plan(mismo formato-logica de arrib linclud=[] laux=[] #laux es para evitar caso especifico en que varios productos del cliente #esten asociados al mismo plan. De esta manera no estaremos sumando #incluidos de mas. for c in lincluPlan: #TOmamos solo los incluidos en el plan en cuestion. if ((c.getNombre() == a.getNombre_Plan()) & (c.getTipo() not in laux)): linclud.append(c.getTipo()) linclud.append(c.getCantidad()) laux.append(c.getTipo()) #Vemos los servicios que tengo para este prod lservs=[] for w in ladiciona: if ((w.getNombre_Producto() == nombreprod) & (str(w.getId_Producto()) == idprod)): lservs.append(w) #Vemos lo incluido en dichos servicios y metemos todo en una lista lincluservs=[] laux2=[] #laux2 tiene la misma funcion que laux para la inclusion en los planes. #Itero sobre los servicios del producto en cuestion for x in lservs: #Recorro a ver que tiene incluido el servicio x for y in lincluServ: if (x.getNombre_Servicio() == y.getNombre_Sextr()): if (((x.getNombre_Servicio() not in laux2)) & ((y.getTipo() not in laux2))): lincluservs.append(y.getTipo()) lincluservs.append(int(y.getCantidad())) laux2.append(x.getNombre_Servicio()) laux2.append(y.getTipo()) #Mezclo las listas de incluidoplan e incluidoservs para tener una total #Recorro la lista de lo que se incluye en todos sus servs extra: #Si algo de ese tipo ya esta incluido en su plan, se le suma. #Si no, se "appendea" a la lista para tenerlo todo en una lista que #englobe todo. for d in lincluservs: if (isinstance(d,str)): if ((d in linclud)): i2=linclud.index(d) i3=lincluservs.index(d) linclud[i2+1]=linclud[i2+1]+int(lincluservs[i3+1]) else: i4=lincluservs.index(d) linclud.append(d) linclud.append(int(lincluservs[i4+1])) #Sumaremos las rentas de los servicios que tiene afiliado #Veo los servicios que ha adicionado y lo comparo con #los servicios en general, si coinice, agarro su costo. laux3=[] sumaservs=0 for e in lservicios: for h in lservs: if ((e.getNombre() == h.getNombre_Servicio()) & (h.getNombre_Servicio() not in laux3)): sumaservs=sumaservs+e.getCosto() laux3.append(h.getNombre_Servicio()) #Falta contrastar lo consumido(en listasumadaconsumos) con lo incluido #(en lincud) #Iteramos sobre lo que consumio y sobre lo que tiene incluido: #Vamos restando a lo que consumio segun lo que tiene incluido, a ver si #sobran consumos, que significaria haber consumido de mas. for t in listasumadaconsumos: for k in linclud: if ((isinstance(k,str)) & (isinstance(t,str))): if (k == t): index1=listasumadaconsumos.index(t) index2=linclud.index(k) listasumadaconsumos[index1+1]=listasumadaconsumos[index1+1]-linclud[index2+1] #Recorremos a ver si se sobrepaso con algun consumo #Vamos por la lista, si consigo un string: no hago nada, pues #el string es el tipo de consumo que esta en la casilla siguiente #de la lista. sobrepaso=0 for v in listasumadaconsumos: if (isinstance(v, str)): pass else: if (v > 0): sobrepaso=sobrepaso+v #Luego el monto total de la factua es: #La renta de su plan, mas la renta de los servicios que ha agregado, #mas algun consumo que haya hecho en exceso. montototal=sumaservs+rentaplan+sobrepaso strimpr=strimpr+" Plan contratado:"+a.getNombre_Plan()+"\n" strimpr=strimpr+" Renta del plan:"+str(rentaplan)+"\n" strimpr=strimpr+" Servicios Contratados para este producto:"+"\n" for z in lservs: strimpr=strimpr+" "+z.getNombre_Servicio()+"\n" strimpr=strimpr+" Total por sobrepaso de consumos:"+str(sobrepaso)+"\n" strimpr=strimpr+" Total por este producto:"+str(montototal)+"\n" #Agregamos el costo de facturar este producto al total. montoGlobal=montoGlobal+montototal strimpr=strimpr+"-->Monto total de la factura:"+str(montoGlobal)+"\n" return (montoGlobal,strimpr)