示例#1
0
        public static void accion(int accion, ref Banka banka)
        {
            switch (accion)
            {
            case 1:
                ControladorEmpleado.registrarEmpleado(ref banka);
                break;

            case 2:
                ControladorEmpleado.mostrarDatosEmpleado(banka.lista_empleados);
                break;

            case 3:
                CH.lcd("A MODIFICAR CLIENTE");
                CH.pausa();
                // MODIFICAR CLIENTE
                break;

            case 4:
                // ELIMINAR CLIENTE
                break;

            case 5:
                // LISTAR TODOS LOS CLIENTES
                InterfazDireccion.listarEmpleados(banka.lista_empleados);
                break;
            }
        }
示例#2
0
        public static void consultarContratosCliente(Banka banka)
        {
            // 1. Mostrar clientes con indice
            // 2. Elegir clientes
            // 3. Mostrar contratos del clientes
            int opcion;
            int numcli = 0;

            if (banka != null)
            {
                numcli = banka.lista_clientes.Length;
            }
            if (numcli > 0)
            {
                InterfazDireccion.listarClientesIndice(banka.lista_clientes);
                opcion = InterfazDireccion.pedirCliente(numcli, "Elige un cliente de la lista");
                Cliente cliente = banka.lista_clientes[opcion - 1];
                if (cliente.lista_contratos != null)
                {
                    InterfazComercial.listarContratos(cliente);
                }
                else
                {
                    CH.lcd("!> El cliente no tiene ningun contrato");
                }
            }
            else
            {
                CH.lcd("i> No hay clientes que mostrar!");
            }
            CH.pausa();
        }
示例#3
0
        public static void accion(int accion, Banka banka)
        {
            switch (accion)
            {
            case 1:
                ControladorProducto.consultarProducto(banka.lista_productos);
                break;

            case 2:
                ControladorProducto.registrarProducto(ref banka);
                break;

            case 3:
                CH.lcd("A MODIFICAR CLIENTE");
                CH.pausa();
                // MODIFICAR CLIENTE
                break;

            case 4:
                // ELIMINAR CLIENTE
                break;

            case 5:
                // LISTAR TODOS LOS CLIENTES
                ControladorProducto.listarProductos(banka.lista_productos);
                break;
            }
        }
示例#4
0
        public static void mostrarDatosEmpleado(Empleado[] empleados)
        {
            int numcli = 0;
            int opcion;

            if (empleados != null)
            {
                numcli = empleados.Length;
            }
            if (numcli > 0)
            {
                // 1. listar todos los clientes
                // 2. pedir el cliente
                // 3. mostrar toString cliente
                InterfazDireccion.listarEmpleadosIndice(empleados);
                opcion = InterfazDireccion.pedirCliente(numcli, "Elige un cliente de la lista");
                CH.lcd(empleados[opcion - 1].ToString());
                if (empleados[opcion - 1].lista_contratos != null)
                {
                    InterfazComercial.listarContratos(empleados[opcion - 1]);
                }
            }
            else
            {
                CH.lcd("!> No hay empleados en la banka!");
            }
            CH.pausa();
        }
示例#5
0
        // ZONA DE MÉTODOS PUBLICOS PARA OPCIONES DE MENU
        /// <summary>
        /// Procedimiento para comenzar la funcion ...
        /// </summary>
        public static void comenzar()
        {
            // ESTO PARA COMPROBAR LA EXISTENCIA DE LOS ARCHIVOS DE CONFIGURACION
            // SI NO EXISTEN... LOS CREAMOS SEGUIDAMENTE...
            ControlerAdministracion.configCheck();


            // 1. CREAMOS NUESTRA GESTORIA
            // 2. MOSTRAMOS MENU
            // 3. PEDIMOS OPCION
            // 4. EVALUAMOS Y MOSTRAMOS MÓDULO
            // 5. CUANDO NOS JARTEMOS... > SALIR!

            // ZONA DE ATRIBITOS Y CONSTANTES
            const string NOMBRE_GESTORIA = "GESTIONES ACHARQUIA";
            bool         salir;
            int          opcion;
            Gestora      migestoria;

            // ENTRADA
            migestoria = new Gestora(NOMBRE_GESTORIA);
            opcion     = 0;
            salir      = false;
            // PROCESO
            do
            {
                InterfazGestoria.menu_principal(NOMBRE_GESTORIA);
                opcion = CH.leerOpcion(5);
                switch (opcion)
                {
                case 1:
                    ControlerEmpresa.menu_empresas(migestoria);
                    break;

                case 2:
                    ControlerTrabajador.menu_trabajadores(migestoria);
                    break;

                case 3:
                    ControlerNomina.menu_nominas(migestoria);
                    break;

                case 4:
                    ControlerAdministracion.menu_adminstracion();
                    break;

                case 5:
                    ControlerGestoria.modoDebug(migestoria);
                    CH.pausa();
                    break;

                case 0:
                    salir = true;
                    break;
                }
            } while (!salir);
            // SALIDA
            Console.WriteLine("\nBYE BYE!! .. MiK.. VUELVE PRONTO >:)\n");
        }
        /// <summary>
        /// Procedimiento para comprobar la existencia del archivo de configuracion config.data
        /// Si no existe, se crea si o si ... >:)
        /// </summary>
        public static void configCheck()
        {
            // 1. COMPROBAR EXISTENCIA...
            // 2. SI NO ESTA.. CREARLO:
            // 3. PEDIR LOS DATOS Y GUARDARLOS A OBJETO DatosBase
            // 4. CON LOS DATOS EN EL OBJETO, LO PASAMOS POR EL FILEHELPER PARA GUARDARLO EN BINARIO
            // 5. SALIMOS...

            string pass;    // PARA GUARDAR LA CONTRASEÑA
            bool   salir;   // CONTROL DE SALIDA SI CREACION CORRECTA

            try
            {
                datosBaseBin = new DatosBase(); // REUSAMOS EL OBJETO DEL CONTROLADOR
                salir        = false;           // SETEAMOS SALIR A FALSE

                if (!File.Exists(rutabin))
                {
                    CH.cls();
                    CH.lcdColor("!> ATENCIÓN!!.. NO EXISTE EL FICHERO DE CONFIGURACION!!", ConsoleColor.Red);
                    CH.lcdColor("\ni> VAMOS A CREARLO AHORA... ALMA DEL AMOL HERRMOZO >:) \ni> Y NO TE EQUIVOQUES.... PUES EMPEZARAS DEL PRINCIPIO", ConsoleColor.DarkYellow);
                    do
                    {
                        try
                        {
                            CH.lcd("");
                            pass = CH.leerCadena("CONTRASEÑA DE ACCESO");
                            datosBaseBin.maxhoras        = CH.leerNumero("HORAS MÁXIMAS NOMINA");
                            datosBaseBin.horasbase       = CH.leerNumero("HORAS TOPE SAL. BASE");
                            datosBaseBin.maxeuxhora      = CH.leerCantidad("EUROS MAX. X HORA...");
                            datosBaseBin.preciojoranda   = CH.leerCantidad("PRECIO EUR. JORANDA.");
                            datosBaseBin.incrementoextra = CH.leerCantidad("IMCREMENTO H. EXTRA.");
                            datosBaseBin.impuestos       = CH.leerCantidad("% DE IMPUESTOS......");
                            FH.grabarValoresBinary(rutabin, pass, datosBaseBin.maxhoras, datosBaseBin.horasbase, datosBaseBin.maxeuxhora, datosBaseBin.preciojoranda, datosBaseBin.incrementoextra, datosBaseBin.impuestos);
                            FH.grabarValores(ruta, pass, datosBaseBin.maxhoras, datosBaseBin.horasbase, datosBaseBin.maxeuxhora, datosBaseBin.preciojoranda, datosBaseBin.incrementoextra, datosBaseBin.impuestos);
                            salir = true;
                        }
                        catch (Exception ex)
                        {
                            CH.lcdColor("!> ERROR: " + ex.Message, ConsoleColor.Red);
                            CH.pausa();
                        }
                    } while (!salir);
                }
                else
                {
                    CH.cls();
                    CH.lcdColor("!> FICHERO DE CONFIGURACION LOCALIZADO...", ConsoleColor.Green);
                    CH.pausa();
                }
            }
            catch (IOException ex)
            {
                CH.lcdColor("!> ERROR I/O: " + ex.Message, ConsoleColor.Red);
                CH.pausa();
            }
            //CH.pausa();
        }
示例#7
0
 public static void listarProductos(Producto[] productos)
 {
     if (productos != null)
     {
         InterfazComercial.listarProductos(productos);
     }
     else
     {
         CH.lcdColor("!> NO HAY PRODUCTOS EN LA BANKA", ConsoleColor.Red);
     }
     CH.pausa();
 }
示例#8
0
        public static void registrarProducto(ref Banka banka)
        {
            Producto producto = new Producto();

            producto.id           = banka.lista_productos.Length + 1;
            producto.nombre       = CH.leerString("NOMBRE PRODUCTO");
            producto.descripcion  = CH.leerCadena("DESCRIPCION....");
            producto.tipo_interes = CH.leerFloat("TIPO DE INTERES");
            banka.agregarProducto(producto);
            CH.lcdColor("\ni> Se ha agreado un nuevo producto a la banka!", ConsoleColor.Green);
            CH.pausa();
        }
        // PROCEDIMIENTO PARA CONTRATAR UN DIRECTOR (DIOS) PARA LA BANKA
        public static void contratarDirector(ref Banka banka)
        {
            // 1. Crear objeto cliente y pedir los datos
            // 2. Asignarle el TipoEmpleado DIRECTOR
            // 3. Añadir a plantilla de empleados de la banka

            bool         salir   = false;
            Cliente      cliente = new Cliente();
            Empleado     empleado;
            TipoEmpleado tipo     = banka.getTipoEmpleado(1); // COGEMOS EL TIPO DE EMPLEADO 1 -> DIRECCION PARA ASIGNARSELO AL CLIENTE
            Producto     producto = banka.lista_productos[0]; // EL PRODUCTO CUENTA DE AHORROS POR DEFECTO...
            Contrato     contrato = null;                     // EL CONTRATO PARA EL DIRECTOR - CON SALDO Y TARJETA BLACK


            do
            {
                cliente.nombre    = InterfazCliente.leerNombre();
                cliente.apellidos = InterfazCliente.leerApellidos();
                do
                {
                    try {
                        cliente.dni = InterfazCliente.leerDni();
                        salir       = true;
                    } catch (Exception e) {
                        CH.lcd(e.Message);
                        //CH.lcd(e.StackTrace);
                    }
                } while (!salir);
                salir = false;
                do
                {
                    try {
                        cliente.fecha_nac = CH.leerCadena("FECHA NACIMIENTO..");
                        salir             = true;
                    } catch (Exception e) {
                        CH.lcd(e.Message);
                    }
                } while (!salir);
                salir            = false;
                cliente.usuario  = CH.leerCadena("NOMBRE DE USUARIO.");
                cliente.password = CH.leerCadena("CONTRASEÑA........");
                salir            = true;
            } while (!salir);

            empleado = new Empleado(1, cliente.nombre, cliente.apellidos, cliente.dni, cliente.fecha_nac, cliente.usuario, cliente.password, new TipoCliente("PLATINUM", 100000.00F, 5000000), cliente, tipo);
            contrato = new Contrato(1, 1, 1, DateTime.Now.ToString(), null, 1000000.0F, true, producto);
            empleado.agregarContrato(contrato);
            banka.contratarEmpleado(empleado);
            banka.agregarCliente(empleado);
            CH.lcd("\ni> Se ha contratado al director de la banka... \n");
            CH.pausa();
        }
示例#10
0
        public static void contratarProductos(ref Banka banka)
        {
            // 1. pedir dni
            // 2. buscar dni en lista de clientes
            // 3. si lo encuentra, cargarlo
            // 4. listar productos
            // 5. seleccionar uno
            // 6. pedir datos del contrato (importe-fechafin)
            // 7. cliente.agregarContrato(contrato);

            string   dni      = "";
            Cliente  cliente  = null;
            Producto producto = null;
            Contrato contrato = null;
            byte     indice;
            int      id;

            dni = CH.leerDni();

            foreach (Cliente c in banka.lista_clientes)
            {
                if (c.dni.ToUpper().Equals(dni.ToUpper()))
                {
                    cliente = c;
                    break;
                }
            }

            if (cliente != null)
            {
                contrato = new Contrato();
                Byte.TryParse(banka.lista_productos.Length.ToString(), out indice);
                InterfazContrato.listarProductosIndice(banka.lista_productos);
                id                          = CH.leerOpcionMsg(indice, "Selecciona un producto de la lista");
                producto                    = banka.lista_productos[id - 1];
                contrato.id                 = Contrato.contratos + 1;
                contrato.producto           = producto;
                contrato.id_producto        = producto.id;
                contrato.fecha_contratacion = DateTime.Now.ToString();
                contrato.fecha_finalizacion = DateTime.Now.AddYears(1).ToString();
                contrato.saldo              = InterfazContrato.leerSaldo();
                contrato.activo             = true;
                Contrato.contratos++;
                cliente.agregarContrato(contrato);
                CH.lcdColor("i> Se ha contratado el producto al cliente", ConsoleColor.DarkGreen);
            }
            else
            {
                CH.lcdColor("!> Cliente no encontrado!!", ConsoleColor.DarkRed);
            }
            CH.pausa();
        }
示例#11
0
        /// <summary>
        /// Procedimiento para mostrar el menu de opciones seccion 3. Trabajadores
        /// <paramref name="migestoria">Recibe la Gestoria por referencia</paramref>
        /// </summary>
        public static void menu_trabajadores(Gestora migestoria)
        {
            if (migestoria.empresas != null)
            {
                bool salir         = false; // CONTROL DE SALIDA MENU
                byte opcion        = 0;     // LA OPCIÓN DE MENÚ ELEGIDA
                byte empresaActiva = 0;     // GUARDARA LA EMPRESA SOBRE LA CUAL SE GESTIONAN LOS TRABAJADORES

                do                          // MIENTRAS NO DIGAMOS QUE QUEREMOS SALIR.... HACER ESTO...
                {
                    // SI NO HAY EMPRESA ACTIVCA, LA PEDIMOS Y MOSTRAMOS MENU
                    if (empresaActiva == 0)
                    {
                        empresaActiva = InterfazTrabajador.pedirEmpresa(migestoria);
                    }
                    InterfazTrabajador.menuTrabajador(empresaActiva, migestoria);
                    opcion = CH.leerOpcion(5);
                    switch (opcion)
                    {
                    case 1:         // REGISTRAR TRABAJADOR
                        ControlerTrabajador.nuevoTrabajador(migestoria, empresaActiva);
                        break;

                    case 2:         // CONSULTAR TRABAJADOR
                        ControlerTrabajador.consultarTrabajador(migestoria, empresaActiva);
                        break;

                    case 3:         // MODIFICAR TRABAJADOR
                        ControlerTrabajador.modificarTrabajador(ref migestoria, empresaActiva);
                        break;

                    case 4:         // ELIMINAR TRABAJADOR
                        ControlerTrabajador.despedirTrabajador(ref migestoria, empresaActiva);
                        break;

                    case 5:         // CONSULTAR TRABAJADORES
                        InterfazEmpresa.listaTrabajadores(migestoria, empresaActiva);
                        break;

                    case 0:         // SALIR
                        salir = true;
                        break;
                    }
                } while (!salir);
            }
            else
            {
                CH.lcdColor("\n!> NO HAY NINGUNA 'EMPRESA' EN LA GESTORÍA COMO PARA TENER TRABAJADORES QUE GESTIONAR...\ni> CRÉA ALGUNA Y CONTRATA!!, BONIKO", ConsoleColor.Red);
                CH.pausa();
            }
        }
示例#12
0
        /// <summary>
        /// Procedimiento para mostrar el menu de opciones sección 1. empresas
        /// <paramref name="migestoria">Recibe la gestoria</paramref>
        /// </summary>
        public static void menu_empresas(Gestora migestoria)
        {
            // ZONA DE ATRIBUTOS E INICIALIZACIÓN
            bool salir;     // CONTROL DE SALIDA DEL MENU
            int  opcion;    // OPCION DEL MENU ELEGIDA

            // ENTRADA
            salir  = false;
            opcion = 0;
            // PROCESO
            do
            {
                InterfazEmpresa.menu_empresa();
                opcion = CH.leerOpcion(5);
                switch (opcion)
                {
                case 1:
                    ControlerEmpresa.nuevaEmpresa(migestoria);
                    break;

                case 2:
                    ControlerEmpresa.consultarEmpresa(migestoria);
                    CH.pausa();
                    break;

                case 3:
                    ControlerEmpresa.modificarEmpresa(ref migestoria);
                    CH.pausa();
                    break;

                case 4:
                    ControlerEmpresa.borrarEmpresa(migestoria);
                    CH.pausa();
                    break;

                case 5:
                    InterfazEmpresa.listadoEmpresas(migestoria, false);
                    CH.pausa();
                    break;

                case 0:
                    //Console.WriteLine("\nBYE BYE!! .. MiK.. VUELVE PRONTO :)\n");
                    salir = true;
                    break;
                }
            } while (!salir);

            // SALIDA
        }
        /// <summary>
        /// Método para logearse al sistema de administración de valores de configuración de la nómina por defecto
        /// </summary>
        public static bool logIn()
        {
            bool   logeado = false;
            string cadena  = "";
            string aux     = "";

            string[]     pass_split = null;
            StreamReader sr;

            cadena = CH.leerCadena("INTRODUCE CONTRASEÑA DE ACCESO");

            if (File.Exists(ruta))
            {
                CH.lcdColor("i> ACCEDIENDO AL FICHERO DE CONFIGURACION...", ConsoleColor.Green);
                try
                {
                    //File.OpenText(ruta);
                    sr         = File.OpenText(ruta);
                    aux        = sr.ReadLine();
                    pass_split = aux.Split(':');
                    pass       = pass_split[1];
                    //CH.lcd("PASS:"******"i> LOGIN O.K.", ConsoleColor.Yellow);
                        CH.pausa();
                    }
                    else
                    {
                        CH.lcdColor("i> LOGIN K.O..", ConsoleColor.Red);
                    }
                }
                catch (Exception ex)
                {
                    CH.lcdColor(ex.Message, ConsoleColor.Red);
                }
            }
            else
            {
                CH.lcdColor("i> ERROR. NO SE ENCUENTRA EL FICHERO DE CONFIGURACION", ConsoleColor.Red);
            }
            return(logeado);
        }
        public static DatosBase cargarDatosBinary()
        {
            string pass;
            int    maxhoras, horasbase;
            float  maxeurxhora, preciojornada, incrementoextra, impuestos;

            DatosBase    datos = null;
            BinaryReader br    = null;
            FileStream   fr    = null;

            try
            {
                datos = new DatosBase();
                fr    = File.Open(rutabin, FileMode.Open, FileAccess.Read);
                br    = new BinaryReader(fr);

                pass            = br.ReadString().Trim();
                maxhoras        = br.ReadInt32();
                horasbase       = br.ReadInt32();
                maxeurxhora     = br.ReadSingle();
                preciojornada   = br.ReadSingle();
                incrementoextra = br.ReadSingle();
                impuestos       = br.ReadSingle();

                datos.maxhoras        = maxhoras;
                datos.horasbase       = horasbase;
                datos.maxeuxhora      = maxeurxhora;
                datos.preciojoranda   = preciojornada;
                datos.incrementoextra = incrementoextra;
                datos.impuestos       = impuestos;
            }
            catch (Exception ex)
            {
                CH.lcdColor("!> ERROR: " + ex.Message, ConsoleColor.Red);
                CH.pausa();
            }
            finally
            {
                br.Dispose();
            }

            //Console.WriteLine("{0} | {1} | {2} | {3} | {4}",pass,maxhoras,maxeurxhora,preciojornada,factorextra);
            //CH.pausa();
            return(datos);
        }
示例#15
0
        public static void consultarProductos(Producto[] productos)
        {
            byte     opcion; // dado que no habra muchos productos, le ponemos un byte
            Producto producto;

            if (productos != null)
            {
                Byte.TryParse(productos.Length.ToString(), out opcion);
                InterfazComercial.listarProductos(productos);
                opcion   = CH.leerOpcionMsg(opcion, "Elije un producto de la lista");
                producto = productos[opcion - 1];
                CH.lcd("\n" + producto.ToString());
            }
            else
            {
                CH.lcd("i> No hay productos en la banka!!");
            }
            CH.pausa();
        }
示例#16
0
        // OPCION FÁCIL PARA TIPOS EMPLEADOS... YO COMO ES NATURAL ME COMPLICARÉ!!
        // public static string[] tiposEmpleados = new string[3]{"DIRECTOR","CAJERO","COMERCIAL"};

        // ZONA DE MÉTODOS
        public static void comenzar()
        {
            // ZONA DE VARIABLES E INICIALIZACIÓN
            // 1. CREAR BANKA CON DATOS POR DEFECTO -Y-O-U- CONSTANTES
            // 2. MOSTRAR MENU
            // 3. PEDIR OPCION
            // 4. ACTUAR EN CONSECUENCIA

            banka = new Banka();
            bool salir  = false;
            int  opcion = 0;

            // ENTRADA

            // PROCESO
            do
            {
                InterfazBanka.menu_principal(banka.nombre);
                opcion = CH.leerOpcion(3);
                switch (opcion)
                {
                case 1:     // INICIAMOS EL MÓDULO DE AMINISTRACIÓN
                    ControladorAdministracion.comenzar(banka);
                    break;

                case 2:     // INICIAMOS EL MÓDULO PARA LOS CLIENTES DE LA BANCA
                    CH.pausa();
                    break;

                case 3:     // CARGAMOS DATOS A LA BANKA PARA MODO DEBUG
                    ControladorBanka.debug();
                    CH.pausa();
                    break;

                case 0:
                    salir = true;
                    break;
                }
            } while (!salir);

            // SALIDA
            Console.WriteLine("\nBYE BYE!! .. MiK.. VUELVE PRONTO :)\n");
        }
示例#17
0
        public static void ingreso(ref Banka banka)
        {
            // 1. Pedir dni
            // 2. LocalizarCliente
            // - SI ENCONTRADO -
            // 3. Listar Cuentas Ahorros (indice)
            // 3. Pedir Cuenta de Ahorro (indice)
            // -REPETIR ESTO HASTA CANTIDAD O.K.-
            // 4. Pedir cantidad
            // 5. Evaluar limite segun tipoCliente
            // 6. Si ok, ingresar Cantidad

            string  dni      = "";
            Cliente cliente  = null;
            byte    numc     = 0;
            float   cantidad = 0.0F;

            dni     = CH.leerDni();
            cliente = banka.obtenerClienteXDNI(dni);
            if (cliente != null)
            {
                if (cliente.lista_contratos != null)
                {
                    InterfazComercial.listarContratos(cliente);
                    Byte.TryParse(cliente.lista_contratos.Length.ToString(), out numc);
                    numc     = CH.leerOpcionMsg(numc, "Elije un contrato de la lista");
                    cantidad = CH.leerCantidad("CANTIDAD A INGRESAR");
                    cliente.lista_contratos[numc - 1].ingreso(cantidad);
                    CH.lcdColor("\ni> Se ha ingresado la cantidad en cuenta", ConsoleColor.Green);
                }
                else
                {
                    CH.lcdColor("!> EL CLIENTE NO TIENE CONTRATOS!!", ConsoleColor.Red);
                }
            }
            else
            {
                CH.lcdColor("!> CLIENTE NO ENCONTRADO", ConsoleColor.Red);
            }

            CH.pausa();
        }
        private static string rutabin = "Data/config.data"; // LA RUTA DEL FICHIERO DE CONFIGURACION EN FORMATO BINARIO

        /// <summary>
        /// Procedimiento para mostrar el menu principal de adminstración para gestionar los datos de configuracion
        /// <paramref name="migestoria">Recibe el objeto gestoria</paramref>
        /// </summary>
        public static void menu_adminstracion()
        {
            bool salir;
            int  opcion;

            opcion = 0;
            salir  = false;

            if (ControlerAdministracion.logIn())
            {
                do
                {
                    InterfazAdministracion.mostrar_menu();
                    opcion = ConsoleHelper.leerOpcion(3);
                    switch (opcion)
                    {
                    case 1:
                        ControlerAdministracion.modificarPass(pass);
                        break;

                    case 2:
                        ControlerAdministracion.modificarValores();
                        break;

                    case 3:
                        InterfazAdministracion.listarDatos(datosBase.maxhoras, datosBase.horasbase, datosBase.maxeuxhora, datosBase.preciojoranda, datosBase.incrementoextra, datosBase.impuestos);
                        InterfazAdministracion.listarDatosBin(datosBaseBin.maxhoras, datosBaseBin.horasbase, datosBaseBin.maxeuxhora, datosBaseBin.preciojoranda, datosBaseBin.incrementoextra, datosBaseBin.impuestos);
                        CH.pausa();
                        break;

                    case 0:
                        salir = true;
                        break;
                    }
                } while (!salir);
            }
            else
            {
                CH.lcdColor("!> CONTRASEÑA INCORRECTA", ConsoleColor.Red);
                CH.pausa();
            }
        }
示例#19
0
        // METODO QUE RECIBE EL TRABAJADOR POR REFERENCIA PARA AÑADIRLE UNA NÓMINA

        public static void pedirNomina(ref Trabajador trabajador)
        {
            Nomina    nomina;
            DatosBase datos;
            bool      salir;

            salir  = false;
            datos  = ControlerAdministracion.cargarDatos();
            nomina = new Nomina();

            do
            {
                try
                {
                    nomina.nombre    = trabajador.nombre;
                    nomina.apellidos = trabajador.apellidos;
                    InterfazNomina.pedirDatosNomina(ref nomina);
                    nomina.eurosHoras = datos.preciojoranda;                      // ESTA CONSTANTE ESTA EN CONTROLER GESTORIA, PERO ¿COMO SE LLEGA DE AQUI ALLI?
                    nomina.calcularBruto(datos.horasbase, datos.incrementoextra); // HAY QUE PASARLE EL MAX. DE HORAS NORMALES (EL RESTO SON EXTRAS) Y EL FACTOR DE INCREMENTO
                    nomina.calcularImpuestos(datos.impuestos);                    // EL PORCENTAJE DE LA TASA DE IMPUESTOS
                    if (trabajador.AgregarNomina(nomina))
                    {
                        CH.lcdColor("\ni> NÓMINA REGISTRADA CORRECTAMENTE!!\n", ConsoleColor.Green);
                        Console.WriteLine(nomina.ToString());
                        ConsoleHelper.pausa();
                        salir = true;
                    }
                    else
                    {
                        CH.lcdColor("!> ERROR REGISTRANDO LA NÓMINA!!", ConsoleColor.Red);
                        CH.pausa();
                    };
                }
                catch (Exception ex)
                {
                    CH.lcdColor("\n!> CLASS ERR: " + ex.Message.ToUpper(), ConsoleColor.Red);
                    CH.pausa();
                    salir = true;
                }
            } while (!salir);
        }
示例#20
0
        /// <summary>
        /// Procedimiento para agregar una nueva empresa al listado de empresas de la Gestoria
        /// <paramref name="migestoria">La Estructura Gestoria por referencia</paramref>
        /// </summary>
        public static void nuevaEmpresa(Gestora migestoria)
        {
            // 1. PEDIR LOS DATOS DE LA EMPRESA
            // 2. SI NO EXISTE ESTRUCTURA EMPRESA, LA CREO
            // 3. SI EXISTE, AÑADO. SE COMPRUEBA EN EL MÉTODO AGREGAR
            string  aux;
            Empresa empresa;

            // ENTRADA
            CH.lcd("i> SI, AMO... VAMOS A CREAR UNA NUEVA EMPRESA\n");
            empresa = null;
            aux     = null;
            // PROCESO
            aux     = InterfazEmpresa.leerEmpresa();
            empresa = new Empresa(aux);
            if (migestoria.agregarEmpresa(empresa))
            {
                aux = "\ni> SE HA CREADO UNA NUEVA EMPRESA Y AGREGADO A LA GESTORIA";
            }
            // SALIDA
            CH.lcdColor(aux, ConsoleColor.Green);
            CH.pausa();
        }
        private static int nivel;                   // NIVEL DE ACCESO: 1-DIRECCION 2-COMERCIAL 3-CAJERO
        public static void comenzar(Banka banka)
        {
            // 1. COMPROBAR SI HAY DIRECTOR (DIOS - PUEDE HACERLO TODO!! .. O CASI). SINO, PEDIRLO

            if (banka.hayDirector())
            {
                empleadoLogeado = ControladorAdministracion.logIn(banka.lista_empleados);
                if (empleadoLogeado != null)
                {
                    nivel = empleadoLogeado.tipo_empleado.nivel_acceso;
                    switch (nivel)
                    {
                    case 1:
                        ControladorDireccion.comenzar(ref banka);
                        break;

                    case 2:
                        ControladorCajero.comenzar(ref banka);
                        break;

                    case 3:
                        ControladorComercial.comenzar(banka);
                        break;
                    }
                }
                else
                {
                    CH.lcdColor("\n!> EMPLEADO NO ENCONTRADO", ConsoleColor.Red);
                    CH.pausa();
                }
            }
            else
            {
                CH.lcdColor("\n!> NO HAY DIRECTOR EN LA BANCA.. CONTRATALO PRIMERO AHORA!", ConsoleColor.Red);
                ControladorAdministracion.contratarDirector(ref banka);
            }
        }
示例#22
0
        public static void consultarProducto(Producto[] productos)
        {
            // 1. Listar Producto con Indice
            // 2. Elegir producto
            // 3. Mostrar datos

            byte opcion = 0;
            byte elementos_byte; // SUPONIENDO QUE NO HAYA MAS DE 255 PRODUCTOS....
            int  elementos = 0;

            elementos = productos.Length;
            if (elementos > 0)
            {
                Byte.TryParse(elementos.ToString(), out elementos_byte);
                InterfazContrato.listarProductosIndice(productos);
                opcion = CH.leerOpcionMsg(elementos_byte, "Selecciona un producto de la lista");
                CH.lcd(productos[opcion - 1].ToString());
            }
            else
            {
                CH.lcdColor("No hay productos en la banka!!", ConsoleColor.Magenta);
            }
            CH.pausa();
        }
示例#23
0
        // PROCEDIMIENTO PARA REGISTRAR UN CLIENTE EN LA BANKA
        // @param Banka - la banca para usar su metodo agregarCliente
        public static void registrarCliente(ref Banka banka)
        {
            // 1. Creamos un cliente vacio
            // 2. Pedimos datos uno a uno
            // 3. Con el cliente completo, le contratamos una cuenta de ahorros
            // 4. Lo agregamos a la banka

            bool        salir    = false;
            Cliente     cliente  = new Cliente();
            Contrato    contrato = null;
            TipoCliente tipoc    = null;
            int         indice   = 0;
            float       saldo    = 0.0F;
            string      dni      = "";

            if (banka.lista_clientes != null)
            {
                indice = banka.lista_clientes.Length + 1;
            }

            do
            {
                cliente.id        = indice;
                cliente.nombre    = InterfazCliente.leerNombre();
                cliente.apellidos = InterfazCliente.leerApellidos();
                do
                {
                    try
                    {
                        dni = InterfazCliente.leerDni().ToUpper();
                        if (!banka.existeDNI(dni))
                        {
                            cliente.dni = dni;
                            salir       = true;
                        }
                        else
                        {
                            CH.lcdColor("!> EL D.N.I. YA ESTÁ REGISTRADO EN EL SISTEMA", ConsoleColor.Red);
                        }
                    }
                    catch (Exception e)
                    {
                        CH.lcd(e.Message);
                        //CH.lcd(e.StackTrace);
                    }
                } while (!salir);
                salir = false;
                do
                {
                    try
                    {
                        cliente.fecha_nac = CH.leerCadena("FECHA NACIMIENTO..");
                        salir             = true;
                    }
                    catch (Exception e)
                    {
                        CH.lcd(e.Message);
                    }
                } while (!salir);
                salir = false;
                CH.lcdColor("-- DATOS DE ACCESO --", ConsoleColor.Blue);
                cliente.usuario  = CH.leerCadena("NOMBRE DE USUARIO.");
                cliente.password = CH.leerCadena("CONTRASEÑA........");
                salir            = true;
            } while (!salir);

            // YA TENEMOS EL CLIENTE... A CONTRATAR UNA CUENTA CUENTA AHORROS SI O SI

            contrato            = ControladorContrato.crearContratoDefault(banka.lista_productos[0]); // 0 - Cuenta de Ahorros
            contrato.id_cliente = cliente.id;                                                         // EN VERDAD NO ES NECESARIO, PUES EL CONTRARO ES CONTENIDO EN UN CLIENTE
            cliente.agregarContrato(contrato);

            // YA QUE TENEMOS EL CONTRATO, EVALUAMOS EL IMPORTE PARA VER EL TIPO DE CLIENTE

            saldo = contrato.saldo;
            if (saldo > 15000.00F)
            {
                tipoc = banka.lista_tipos_clientes[2]; // 0-silver 1-gold 2-platinum
            }
            else if (saldo > 6000.00F)
            {
                tipoc = banka.lista_tipos_clientes[1];
            }
            else
            {
                tipoc = banka.lista_tipos_clientes[0];
            }

            cliente.tipo_cliente = tipoc;
            banka.agregarCliente(cliente);

            CH.lcd("\n" + contrato.ToString());
            CH.lcd("\ni> Se ha agregado un nuevo cliente a la banka...");
            CH.pausa();
        }
        /// <summary>
        /// Función para obtener los datos base del fichero de texto y volcarlos a un objeto tipo DatosBase con los datos de config.
        /// </summary>
        public static DatosBase cargarDatos()
        {
            //string pass;
            int   maxhoras, horasbase;
            float maxeurxhora, preciojornada, incrementoextra, impuestos;

            string linea = null;

            string[]     tokens = null;
            DatosBase    datos  = null;;
            StreamReader sr     = null;;

            try
            {
                datos = new DatosBase();
                sr    = File.OpenText(ruta);
                linea = sr.ReadLine();

                /* NO GUARDAMOS LA PASSS EN EL OBJETO!!
                 * tokens = linea.Split(':');
                 * pass = tokens[1];
                 */
                linea  = sr.ReadLine();
                tokens = linea.Split(':');
                Int32.TryParse(tokens[1], out maxhoras);
                datos.maxhoras = maxhoras;

                linea  = sr.ReadLine();
                tokens = linea.Split(':');
                Int32.TryParse(tokens[1], out horasbase);
                datos.horasbase = horasbase;

                linea  = sr.ReadLine();
                tokens = linea.Split(':');
                Single.TryParse(tokens[1], out maxeurxhora);
                datos.maxeuxhora = maxeurxhora;

                linea  = sr.ReadLine();
                tokens = linea.Split(':');
                Single.TryParse(tokens[1], out preciojornada);
                datos.preciojoranda = preciojornada;

                linea  = sr.ReadLine();
                tokens = linea.Split(':');
                Single.TryParse(tokens[1], out incrementoextra);
                datos.incrementoextra = incrementoextra;

                linea  = sr.ReadLine();
                tokens = linea.Split(':');
                Single.TryParse(tokens[1], out impuestos);
                datos.impuestos = impuestos;
            }
            catch (Exception ex)
            {
                CH.lcdColor("ERROR: " + ex.Message, ConsoleColor.Red);
                CH.pausa();
            }
            finally
            {
                sr.Dispose();
            }

            //Console.WriteLine("{0} | {1} | {2} | {3} | {4}",pass,maxhoras,maxeurxhora,preciojornada,factorextra);
            //CH.pausa();
            return(datos);
        }
示例#25
0
        // MÉTODO PARA MOSTRAR EL MENU DE NOMINAS. RECIBE LA GESTORIA POR REFERENCIA
        // PARA PODER APLICARLE LOS CAMIOS QUE SE REALIZEN

        /// <summary>
        /// Procedimiento para mostrar el menu principal para gestión de nóminas
        /// <paramref name="migestoria">Recibe el objeto gestoria</paramref>
        /// </summary>
        public static void menu_nominas(Gestora migestoria)
        {
            if (migestoria.empresas != null)
            {
                // 1. PEDIR EMPRESA
                // 2. PEDIR TRABAJADOR
                // 3. MOSTRAR MENU NOMINAS

                bool salir            = false; // FLAG PARA SALIR DEL PROGRAMA
                int  opcion           = 0;     // OPCIÓN ELEGIDA DEL MENU
                byte empresaActiva    = 0;     // EMPRESA DE TRABAJO SELECCIONADA
                byte trabajadorActivo = 0;     // TRABAJADOR ACTIVO SELECCIONADO


                do
                {
                    if (empresaActiva == 0)
                    {
                        empresaActiva = InterfazTrabajador.pedirEmpresa(migestoria);
                    }
                    if (migestoria.empresas[empresaActiva - 1].plantilla != null)
                    {
                        //InterfazTrabajador.menuTrabajador(empresaActiva, migestoria);
                        if (trabajadorActivo == 0)
                        {
                            trabajadorActivo = InterfazTrabajador.seleccionarTrabajador(migestoria, empresaActiva);
                        }
                        InterfazNomina.menuNomina(empresaActiva, trabajadorActivo, migestoria);
                        opcion = ConsoleHelper.leerOpcion(5);
                        Trabajador trabajador = migestoria.empresas[empresaActiva - 1].plantilla[trabajadorActivo - 1];
                        switch (opcion)
                        {
                        case 1:
                            ControlerNomina.pedirNomina(ref trabajador);
                            break;

                        case 2:
                            ControlerNomina.consultarDatosNomina(trabajador);
                            ConsoleHelper.pausa();
                            break;

                        case 3:
                            ControlerNomina.modificarNomina(ref trabajador);
                            ConsoleHelper.pausa();
                            break;

                        case 4:
                            ControlerNomina.eliminarNomina(ref trabajador);
                            break;

                        case 5:
                            ControlerNomina.listadoNominas(migestoria.empresas[empresaActiva - 1].plantilla[trabajadorActivo - 1]);
                            ConsoleHelper.pausa();
                            break;

                        case 0:
                            //Console.WriteLine("\nBYE BYE!! .. MiK.. VUELVE PRONTO :)\n");
                            salir = true;
                            break;
                        }
                    }
                    else
                    {
                        CH.lcdColor("\n!> ¡¡NO HAY NINGUN TRABAJADOR EN LA EMPRESA ACTIVA!!...\n!> CONTRATA ALGUIEN, RATA", ConsoleColor.Red);
                        CH.pausa();
                        salir = true;
                    }
                } while (!salir);
            }
            else
            {
                CH.lcdColor("\n!> NO HAY NINGUNA 'EMPRESA' EN LA GESTORÍA...\ni> CRÉA ALGUNA Y CONTRATA!!, BONIKO", ConsoleColor.Red);
                CH.pausa();
            }
        }
示例#26
0
        // PROCEDIMIENTO PARA REGISTRAR UN CLIENTE EN LA BANKA
        // @param Banka - la banca para usar su metodo agregarCliente
        public static void registrarEmpleado(ref Banka banka)
        {
            // 1. Creamos un cliente vacio
            // 2. Pedimos datos uno a uno
            // 3. Con el cliente completo, le contratamos una cuenta de ahorros,
            // 4. Evaluamos el tipoCliente y asignamos
            // 4. Lo agregamos a la banka

            bool         salir    = false;
            Empleado     empleado = new Empleado();
            Cliente      cliente  = new Cliente();
            Contrato     contrato = null;
            TipoCliente  tipoc    = null;
            TipoEmpleado tipoe    = null;
            int          indice   = 0;
            int          indicee  = 0;
            float        saldo    = 0.0F;
            byte         totalte;
            string       dni = "";


            if (banka.lista_clientes != null)
            {
                indice = banka.lista_clientes.Length + 1;
            }

            do
            {
                empleado.id        = indice;
                empleado.nombre    = InterfazCliente.leerNombre();
                empleado.apellidos = InterfazCliente.leerApellidos();
                do
                {
                    try
                    {
                        dni = InterfazCliente.leerDni().ToUpper();
                        if (!banka.existeDNI(dni))
                        {
                            empleado.dni = dni;
                            salir        = true;
                        }
                        else
                        {
                            CH.lcdColor("!> EL D.N.I. YA ESTÁ REGISTRADO EN EL SISTEMA", ConsoleColor.Red);
                        }
                    }
                    catch (Exception e)
                    {
                        CH.lcd(e.Message);
                        //CH.lcd(e.StackTrace);
                    }
                } while (!salir);
                salir = false;
                do
                {
                    try
                    {
                        empleado.fecha_nac = CH.leerCadena("FECHA NACIMIENTO..");
                        salir = true;
                    }
                    catch (Exception e)
                    {
                        CH.lcd(e.Message);
                    }
                } while (!salir);
                salir = false;
                CH.lcdColor("-- DATOS DE ACCESO --", ConsoleColor.Blue);
                empleado.usuario  = CH.leerCadena("NOMBRE DE USUARIO.");
                empleado.password = CH.leerCadena("CONTRASEÑA........");
                salir             = true;
            } while (!salir);

            // YA TENEMOS EL CLIENTE... A CONTRATAR UNA CUENTA CUENTA AHORROS SI O SI

            contrato            = ControladorContrato.crearContratoDefault(banka.lista_productos[0]); // 0 - Cuenta Ahorros
            contrato.id_cliente = empleado.id;                                                        // EN VERDAD NO ES NECESARIO, PUES ES CONTRARO ES CONTENIDO EN UN CLIENTE
            empleado.agregarContrato(contrato);

            // YA QUE TENEMOS EL CONTRATO, EVALUAMOS EL IMPORTE PARA VER EL TIPO DE CLIENTE

            saldo = contrato.saldo;
            if (saldo > 15000.00F)
            {
                tipoc = banka.lista_tipos_clientes[2]; // 0-silver 1-gold 2-platinum
            }
            else if (saldo > 6000.00F)
            {
                tipoc = banka.lista_tipos_clientes[1];
            }
            else
            {
                tipoc = banka.lista_tipos_clientes[0];
            }

            CH.lcd("\n" + contrato.ToString());

            empleado.tipo_cliente = tipoc;

            // AHORA VAMOS A DECIRLE QUE TIPO DE EMPLEADO ES...
            CH.lcd("\ni> OK, MiK... Ahora vamos a decir que tipo de empleado es...\n");
            Byte.TryParse(banka.lista_tipos_empleados.Length.ToString(), out totalte);
            InterfazEmpleado.listarTiposEmpleadosIndice(banka.lista_tipos_empleados);
            indicee = CH.leerOpcionMsg(totalte, "Elige un Tipo de Empleado");
            tipoe   = banka.lista_tipos_empleados[indicee - 1];

            empleado.tipo_empleado = tipoe;
            cliente          = new Cliente(empleado.id, empleado.nombre, empleado.apellidos, empleado.dni, empleado.fecha_nac, empleado.usuario, empleado.password, tipoc);
            empleado.cliente = cliente;
            banka.contratarEmpleado(empleado);
            banka.agregarCliente(empleado);
            CH.lcd(empleado.ToString());
            CH.lcdColor("\ni> Se ha agregado un nuevo empleado y cliente a la banka...", ConsoleColor.Green);
            CH.pausa();
        }