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()
Esempio n. 2
0
    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()
Esempio n. 4
0
                            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
Esempio n. 5
0
    def addNewEmployee(self):
        name = input('Ingresa nombre de empleado: ')
        employee = Empleado(name)

        self.employeeSales(employee)
        self.printCarsSold(employee)
        self.printSalary(employee)
Esempio n. 6
0
    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()
Esempio n. 7
0
    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()
Esempio n. 8
0
    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()
Esempio n. 9
0
    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)
Esempio n. 10
0
 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()
                     }
             }
     )
Esempio n. 11
0
	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)
Esempio n. 12
0
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)
Esempio n. 13
0
'''
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)
Esempio n. 14
0
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)
Esempio n. 15
0
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)
Esempio n. 16
0
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()
Esempio n. 18
0
 def nuevoEmpleado(self, nombre):
     self.__empleado = Empleado(nombre)
Esempio n. 19
0
# 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)
Esempio n. 20
0
    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
Esempio n. 21
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_)
Esempio n. 23
0
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())
Esempio n. 24
0
 def Ingresar(self, num, nombre, numSS):
     empleado = Empleado(nombre, numSS)
     if num not in self.empleados:
         self.empleados.update({num: empleado})
Esempio n. 25
0
 def __init__(self):
     self.__empleados = []
     self.__empleado = Empleado("")