class Venta(): def __init__(self): self.empleado = Empleado() def get_Empleado(self): return self.empleado def Mostrar_nomina(self, lista): for empleado in lista: print('Nombre: ' + empleado['nombre'] + ' Sueldo Total: ' + str(empleado['Sueldo_Total'])) def Serializar(self): opcion = input("Quieres guardar los archivos") if opcion == "si": with open('data.pickle', 'wb') as f: # Pickle the 'data' dictionary using the highest protocol available. pickle.dump(self.empleado.get_empleado(), f, pickle.HIGHEST_PROTOCOL) def Deserializar(self): if path.exists('data.pickle'): with open('data.pickle', 'rb') as f: # The protocol version used is detected automatically, so we do not # have to specify it. data = pickle.load(f) if data: for x in data: self.empleado.set_empleado(x) self.Mostrar_nomina(data) else: file = open('data', 'wb') file.close()
def AgregarEmpleado(self, nombre, apellido, tel, fecha): empleado = Empleado() empleado.setNombre(nombre) empleado.setApellido(apellido) empleado.setTelefono(tel) empleado.setNac(fecha) self.listaEmp.append(empleado)
def main(): l = ListaEmpleado() for i in range(0, 10): objE = Empleado() #chanco el objeto objE.generar() # genero sus datos l.agregar(objE) # los agrego a la lista para no perderlo l.imprimir() print() l.incremento()
def Update(self, Empleado): nameSecuen = "" if (self.conn.validateSequence( Persona.__class__.__name__)): self.conn.reconnect() nameSecuen = self.conn.createSequence( Persona.__class__.__name__) else: nameSecuen = "seq_{0}".format( Persona.__class__.__name__) self.conn.reconnect() self.sql = """update table {0}.Empleado set idEmpleado={1},fechaIngresoEmpleado={2}, cargoEmpleado={3}, salarioEmpleado={4} """.format( self.conn.getSCHEMA(), Empleado.getId(), Empleado.getnombrefechaIngreso(), Empleado.getcargo(), Empleado.getsalario()) try: cn = self.conn.getConnection() cur = cn.cursor() cur.execute(self.sql, ) cur.close() cn.commit() self.msj = "Finca Creada Exitosamente" except (Exception, psycopg2.DatabaseError) as error: self.msj = "Lamentamos informar le que a ocurrido un error: {0}".format( error) finally: if cn is not None: cn.close() return self.msj def Buscar(self, Empleado, column): self.conn.reconnect() self.sql = """select * from {0}.Empleado where {1}={2}""".format( self.conn.getSCHEMA(), column, Empleado) try: cn = self.conn.getConnection() cur = cn.cursor() cur.execute(self.sql, ) result = cur.fetchall() cur.close() except (Exception, psycopg2.DatabaseError ) as error: self.msj = "Lamentamos informar le que a ocurrido un error: {0}".format( error) finally: if cn is not None: cn.close() return result
def addNewEmployee(self): name = input('Ingresa nombre de empleado: ') employee = Empleado(name) self.employeeSales(employee) self.printCarsSold(employee) self.printSalary(employee)
def menuEmpleadosLog(): # Menu de inicio de sesíon para empleados print("\n-----------------------------------------------------") print(Main.mensajes["employee_login_menu"]) while Main.breakOpciones == 0: opcionSeleccionada = int(input("\n-> ")) if opcionSeleccionada == 1: # Inicio de sesion (Empleados) Main.usuario_actual = Empleado() operacion_completada = {} email = input(Main.mensajes["email"]) password = input(Main.mensajes["user_password"]) Main.usuario_actual.setEmail(email) Main.usuario_actual.setPassword(password) operacion_completada = Main.usuario_actual.iniciar_sesion( Main.mensajes) if operacion_completada["exitoso"] == True: print(operacion_completada["mensaje"]) if Main.usuario_actual.getAdmin() == True: Main.menuEmpleadosAdminOpciones() else: Main.menuEmpleadosOpciones() else: print(operacion_completada["mensaje"]) Main.menuEmpleadosLog() else: Main.menuPrincipal()
def menuEmpleadosAdminOpciones(): print("\n-----------------------------------------------------") print("\nBienvenid@ " + Main.usuario_actual.getNombre() + "\n" + Main.mensajes["admin_menu"]) while Main.breakOpciones == 0: opcionSeleccionada = int(input("\n-> ")) resultado_operacion = None if opcionSeleccionada == 1 or opcionSeleccionada == 2: # Crear empleado o administrador print(Main.mensajes["enter_data_employee"]) nombre = input(Main.mensajes["user_name"]) email = input(Main.mensajes["email"]) password = input(Main.mensajes["user_password"]) telefono = input(Main.mensajes["user_phone"]) direccion = input(Main.mensajes["user_address"]) admin = opcionSeleccionada == 1 nuevo_empleado = Empleado(nombre, email, password, telefono, direccion, admin) resultado_operacion = nuevo_empleado.guardarEmpleadoTxt( Main.mensajes) elif opcionSeleccionada == 3: # Cambiar el estado de los empleados for empleado in Empleado.empleados: if empleado.getEmail() != Main.usuario_actual.getEmail(): print(empleado.toString(Main.mensajes)) print("------------------------------------------") id_empleado = int(input(Main.mensajes["insert_employee_id"])) resultado_operacion = Empleado.cambiarEstadoEmpleado( id_empleado, Main.mensajes) else: Main.menuEmpleadosOpciones(3, opcionSeleccionada) print(resultado_operacion["mensaje"]) Main.menuEmpleadosAdminOpciones()
def generarDatosFicticiosTxt(): # Metodo para generar los datos ficticios desde el archivo txt "empleados.txt" archivo = open("empleados.txt", "r") # Leemos una a una las lineas del archivo for linea in archivo: # Guardamos una lista de partir las lineas por ; datos = linea.split(";") # Creamos un objeto con todos los datos leidos de cada una de las lineas empleado = Empleado(datos[0], datos[1], datos[2], datos[3], datos[4], bool(datos[5]), bool(datos[6])) Empleado.empleados.append(empleado) archivo.close()
def datosFicticios(): e1 = Empleado() p1 = Producto(empleado=e1, nombre="Collar para perro", valor=10000, descripcion="Un bonito collar verde para perro") p2 = Producto(empleado=e1, nombre="Gimnasio para gato", valor=54000, descripcion="Una cosa de locos ") Main.productos.append(p1) Main.productos.append(p2)
def editar(self,id): consulta = self.__cEmpleados.find_one({"_id":id}) empleado = Empleado(consulta['nombre']) empleado.set_vVendidos(consulta['vVendidos']) respuesta = input('¿Agregar un automóvil? (s/n): ') while not respuesta == 'n': marca = input('Ingresa la marca: ') modelo = input('Ingresa el modelo: ') precio = float(input('Ingresa el precio: ')) v = Vehiculo(marca, modelo, precio) empleado.addVehiculoMongo(v) respuesta = input('¿Agregar un automóvil? (s/n): ') self.__cEmpleados.update_one({"_id":id}, { "$set": { "salario": empleado.getSalario(), "bono":empleado.getBono(), "comisiones":empleado.getComisiones(), "vVendidos":empleado.getvVendidos() } } )
def Registrar(self,listaEmpleado): os.system("cls") print("REGISTRO: \n") nombre=input("Ingrese su nombre: \n------» ") ci=int(input("Ingrese su Cedula de Identidad:\n------» ")) codigo=input("Ingrese su codigo: \n------» ") nit=int(input("Ingrese su NIT: \n------» ")) direccion=input("Ingrese su Direccion: \n------» ") mail=input("Ingrese su Correo electronio:\n------» ") celular=int(input("Ingrese su numero de Celular:\n------» ")) print("EMPLEADO REGISTRADO") input("") empleado=Empleado(nombre,ci,codigo,nit,direccion,mail,celular) self.listaEmpleado.append(empleado)
def altaEmpleado(): nombre = str(input("Ingrese el nombre del empleado: ")) fechaNacimiento = input('ingresa la fecha de nacimiento (YYYY-MM-DD): ') year, month, day = map(int, fechaNacimiento.split('-')) fecha = datetime.date(year, month, day) curp = str(input("Ingrese la curp: ")) sexo = str(input("Ingrese el genero (H/M): ")) horaEntrada = datetime.datetime.strptime( input('Ingrese la hora de entrada en el formato: '), "%H:%M") horaSalida = datetime.datetime.strptime( input('Ingrese la hora de salida en el formato HHMM: '), "%H:%M") salario = float(input("Ingrese el salario: ")) empleado = Empleado(nombre, fecha, curp, sexo, horaEntrada, horaSalida, salario) dao = DAOEmpleado() dao.insertaEmpleado(empleado)
''' Polimorfismo: Significa múltiples formas en tiempo de ejecución. Así que una misma variable puede ejecutar varios métodos de distinto objetos dependiendo del objeto al cual está apuntado en tiempo de ejecución. ''' from Empleado import Empleado from Gerente import Gerente def imprimir_detalle(objeto): print(type(objeto)) print(objeto) empleado = Empleado('Norberto', 50000) gerente = Gerente('Manolo', 60000, 'Compras') imprimir_detalle(empleado) imprimir_detalle(gerente)
from Empleado import Empleado def imprmir_detalles(objeto): print(objeto) #Este print indica a que objeto apunta en tiempo de ejecución print(type(objeto)) empleado1 = Empleado('Juan', 5000) imprmir_detalles(empleado1)
from Empleado import Empleado from Gerente import Gerente from Cabo import Cabo #Definimos un metodo que sera el que aplicara polimorfismo, este metodo tendra la #capacidad de que le pasemos como parametro un objeto que estemos instanciando #y poder imprimir todos los detalles de este objeto que se esta instanciando #Esto es polimorfismo usamos un solo metodo para ejecutarlo con distintos objetos instanciados #y correra en tiempo de ejecucion #De esta manera estamos reutilizando un mismo metodo que se puede usar en las distintas clases #y nos evitamos tener que crear este metodo en cada una de las clases def imprimir_detalles(objeto): #le pasamos como atributo el objeto instanciado print(objeto) print(type(objeto)) if isinstance(objeto,Gerente):#Es una manera de obtener los atributos de un objeto, preguntamos si el objeto al que estamos instanciando es Gerente y queremos que nos traiga de este el atributo Puesto print(objeto.Puesto)#Tambien podriamos usar esto para saber si un objeto pertenece o no cierto objeto gerente=Gerente("Carlos","Sosa","Ejecutivo") imprimir_detalles(gerente) print("--------") empleado=Empleado("Marcos","Perez") imprimir_detalles(empleado) print("--------") cabo=Cabo("DIego","Funes",20154) imprimir_detalles(cabo)
from SectorAdministrativo import SectorAdministrativo from SectorCajas import SectorCajas from SectorContaduria import SectorContaduria from SectorGerencia import SectorGerencia banco = Banco() administracion = SectorAdministrativo() cajas = SectorCajas() contaduria = SectorContaduria() gerencia = SectorGerencia() banco.agregar(administracion) administracion.agregar(cajas) #porque hereda de banco banco.agregar(contaduria) banco.agregar(gerencia) cajero1 = Empleado("Juan Perez", "Cajero", 2000) cajero2 = Empleado("Alejandro Gomez", "Cajero", 2000) cajero3 = Empleado("Roberto Martinez", "Cajero", 1500) cajas.agregar(cajero1) cajas.agregar(cajero2) cajas.agregar(cajero3) gerente = Empleado("Martin Sanchez", "Gerente", 5000) gerencia.agregar(gerente) contador = Empleado("Ignacio Hernandez", "Contador", 3000) contaduria.agregar(contador) print(banco.getSueldo())
def __init__(self): self.empleado = Empleado()
def nuevoEmpleado(self, nombre): self.__empleado = Empleado(nombre)
# Uso de polimorfismo en python 3 # El polimorfismo es la ejecucion de una funcion ya sea que esta pertenezca a la clase padre o a la clase hija # Esta dependera desde el contexto del cual se esta realizando el llamado al metodo # Clase 3 from Empleado import Empleado from Gerente import Gerente # Creamos la funcion imprimir detalle el cual nos permitira llamar a la funcion __str__ desde el objeto o clase que se esta utilizando def imprimir_detalles(objeto): print(objeto) print(type(objeto), end='\n\n') # El metodo is instance nos permite saber cual es la referencia o instancia que se esta utilizando en el tipo padre, este nos devuelve un valor booleano if isinstance(objeto, Gerente): print(objeto.departamento) # Llamada desde la clase Empleado e = Empleado("Alvaro", 3500.00) imprimir_detalles(e) # Llamada desde la clase Gerente g = Gerente("Raquel", 2980.00, "Educacion") imprimir_detalles(g)
def main(): print('Configuración inicial.') nomAgencia = input('Nombre de la agencia: ') direccion = input('Dirección de la agencia: ') nombre = input('Nombre del administrador: ') agencia = Agencia(nomAgencia, direccion) os.system('cls') print('#' * 80) print('Agencia de automóviles ' + nomAgencia + ' [versión 0.0 2017]\n'\ + direccion) print('#' * 80) print('Para obtener ayuda, escriba `ayuda` o `help`.') print('Para salir escriba `salir` o `exit`') while True: try: #recibe los argumentos cmd, *args = shlex.split(input(nombre + '>')) #Comandos técnicos if cmd == 'exit' or cmd == 'salir': break elif cmd == 'agencia': print('*' * 80) print('Agencia de automóviles ' + agencia.getNombre() + \ ' [versión 0.0 2017]\n' + agencia.getDireccion()) print('*' * 80) elif cmd == 'cls' or cmd == 'clear': os.system('cls') elif cmd == 'pwd': os.system('echo %cd%') #Comandos de administración de la agencia elif cmd == 'admin': admin = args[0] nombre = admin elif cmd == 'agencianombre': try: nuevoAgencia = args[0] agencia.setNombre(nuevoAgencia) except: print('Falta el nombre de la agencia') elif cmd == 'agenciadireccion': try: nuevaDireccion = args[0] agencia.setDireccion(nuevaDireccion) except: print('Falta la dirección de la agencia') elif cmd == 'help' or cmd == 'ayuda': Ayuda.imprimeAyuda(Ayuda) elif cmd == 'saludo': try: name = args[0] print('Hola "{}"'.format(name)) except: print('Faltó el nombre para el saludo!') #Comandos para agregar, eliminar, consultar y vender #agregar empleado elif cmd == 'empleado': try: nomEmpleado, paternoEmp, maternoEmp, edadEmp, genEmp, \ dirEmp, telEmp = args numEmp = agencia.getEmpleados() + 1 empleado = Empleado(nomEmpleado,paternoEmp,maternoEmp,\ edadEmp,genEmp,dirEmp,telEmp,int(numEmp)) agencia.aumentaEmpleados(empleado) print('Empleado nuevo en el sistema') except: print('error al agregar empleado') #agregar cliente elif cmd == 'cliente': try: nomCliente, paternoCli, maternoCli, edadCli, genCli, \ dirCli, telCli = args numCli = agencia.getClientes() + 1 cliente = Cliente(nomCliente, paternoCli, maternoCli,\ edadCli, genCli, dirCli, telCli,int(numCli)) agencia.aumentaClientes(cliente) print('Cliente nuevo en el sistema') except: print('error al agregar cliente') #Agregar vehículo existente en el sistema (con sku) elif cmd == 'agrega': try: if args[0] == 'auto': try: agencia.agregaAuto(args[1], args[2]) print('Auto(s) agregado(s) con éxito.') except IndexError as ie: print('Error al agregar automóvil.') if args[0] == 'moto': try: agencia.agregaMoto(args[1], args[2]) print('Motocicleta(s) agregada(s) con éxito.') except IndexError as ie: print('Error al agregar motocicleta(s).') if args[0] == 'camion': try: agencia.agregaCamion(args[1], args[2]) print('Camione(s) agregado(s) con éxito.') except IndexError as ie: print('Error al agregar Camión(es).') except Exception as inst: print(inst) #agregar vehículo no existente en el sistema elif cmd == 'vehiculo': try: if len(args) == 11: if args[0] == 'auto': auto, marca,modelo,color,motor,trans,puertas,\ equipado,kml,cantidad,precio = args automovil = Automovil(marca,modelo,color,motor,\ trans,puertas,equipado,kml,int(cantidad),\ precio) agencia.altaAuto(automovil) print('Automóvil agregado al sistema') elif args[0] == 'camion': camion, marca, modelo,color,motor,trans,ejes,\ potencia,capacidad,cantidad,precio = args camion = Camion(marca,modelo,color,motor,trans,\ str(ejes),str(potencia),str(capacidad),int\ (cantidad),precio) agencia.altaCamion(camion) print('Camión agregado al sistema') elif len(args) == 9: if args[0] == 'moto': moto, marca, modelo, color, motor, trans, cc,\ cantidad,precio = args motocicleta = Motocicleta(marca,modelo,color,\ motor,trans,cc,int(cantidad),precio) agencia.altaMoto(motocicleta) print('Moto agregada al sistema') else: print('Argumentos incompletos') except: print('Argumentos equivocados') #consultar empleados, clientes o vehículos elif cmd == 'consulta': try: if len(args) == 1: arg1 = args[0] if arg1 == 'empleados': agencia.imprimeEmpleados() elif arg1 == 'clientes': agencia.imprimeClientes() elif arg1 == 'autos': agencia.imprimeAutos() elif arg1 == 'camiones': agencia.imprimeCamiones() elif arg1 == 'motos': agencia.imprimeMotocicletas() elif len(args) == 2: arg1, arg2 = args if arg1 == 'empleado': print(agencia.getEmpleado(arg2)) elif arg1 == 'cliente': print(agencia.getCliente(arg2)) except Exception as inst: print(inst) #Operaciones de venta elif cmd == 'venta': try: vehiculo, vendedor, cliente, sku = args if vehiculo == 'camion': agencia.ventaCamion(vendedor, cliente, sku) if vehiculo == 'auto': agencia.ventaAuto(vendedor, cliente, sku) if vehiculo == 'moto': agencia.ventaMoto(vendedor, cliente, sku) except Exception as inst: print(inst) else: print('Comando desconocido: {}'.format(cmd)) except: a = 0
from Empleado import Empleado from Gerente import Gerente # Se puede definir en un archivo a parte, para no tener que depender del orden, solo hay que importarlo def imprimir_detalles(tipo): print(tipo) # Usamos type para que nos diga que metodo se esta ejecutando # Ponemos el end="\n\n" para que imprima dos lineas en blanco al final de la salida print(type(tipo), end="\n\n") # Podemos utilizar if isinstance para que nos devuelva un valor de un metodo si es verdadero. # En este caso le decimos que es la clase hija, nos imprima el valor de departamento if isinstance(tipo, Gerente): print(tipo.departamento) # Llamamos al metodo de la clase padre # Esto es asi porque la variable "tipo" esta apuntando a un objeto de clase "empleado" # asi que el metodo que se hace llamar es el de la clase padre empleado = Empleado("Alberto", 1200) imprimir_detalles(empleado) # Llamamos al metodo de la clase hija # Podemos ver que es verdad ya que esta incluyendo el atributo de "departamento" empleado = Gerente("Pichon", 2000, "Todos") imprimir_detalles(empleado)
def __init__(self, codigo_: int, nombre_: str, apellidos_: str, edad_: float, cargo_: str, departamento_: str): Empleado.__init__(self, codigo_, nombre_, apellidos_, edad_, cargo_, departamento_)
from Empleado import Empleado from Gerente import Gerente from Cabo import Cabo ''' Otra alternativa para aplicar polimorfismo es generar en la clase padre en este caso Empleado, un metodo (en este caso mostrardetalles) que hace lo mismo que en el caso anterior pero sin la necesidad de tener que crear otra clase, es decir directamente en la clase padre creamos el metodo al que le aplicaremos poliformismo, y posteriormente sus clases hijas herederan este metodo es otra forma de aplicar polimorfismo ''' gerente = Gerente("Carlos", "Sosa", "Ejecutivo") print(gerente.mostrardetalles()) print("--------") empleado = Empleado("Marcos", "Perez") print(empleado.mostrardetalles()) print("--------") cabo = Cabo("DIego", "Funes", 20154) print(cabo.mostrardetalles())
def Ingresar(self, num, nombre, numSS): empleado = Empleado(nombre, numSS) if num not in self.empleados: self.empleados.update({num: empleado})
def __init__(self): self.__empleados = [] self.__empleado = Empleado("")