Beispiel #1
0
        /// <summary>
        /// Procedimiento para modifiar el nombre de una empresa.
        /// <paramref name="migestoria">Recibe la Gestoria por referencia, ya que modificamos a pelo el nombre</paramref>
        /// </summary>
        private static void modificarEmpresa(ref Gestora migestoria)
        {
            // ZONA DE ATRIBUTOS
            int     opcion;
            int     empresas;
            byte    tope;
            Empresa empresa;

            // ENTRADA
            if (migestoria.empresas != null)
            {
                empresas = migestoria.empresas.Length;
                Byte.TryParse(empresas.ToString(), out tope);
                InterfazEmpresa.listadoEmpresas(migestoria, true);
                opcion  = CH.leerOpcionMsg(tope, "SELECCIONA UNA EMPRESA");
                empresa = migestoria.empresas[opcion - 1];
                // PROCESO
                empresa.nombre = CH.leerCadena("NUEVO NOMBRE EMPRESA..");
                // SALIDA
                CH.lcdColor("\ni> SE HA MODIFICADO CORRECTAMENTE EL NOMBRE DE LA EMPRESA", ConsoleColor.Green);
            }
            else
            {
                CH.lcdColor("!> NO HAY NINGUNA EMPRESA CREADA!", ConsoleColor.DarkYellow);
            }
        }
Beispiel #2
0
        /// <summary>
        /// Procedimiento para consultar los datos de una empresa seleccionada de un indice de empresas.
        /// <paramref name="migestoria">Recibe el objeto gestoria</</paramref>
        /// </summary>
        public static void consultarEmpresa(Gestora migestoria)
        {
            // 1. LISTAR EMPRESAS
            // 2. SELECCIONAR EMPRESA
            // 3. MOSTRAR DATOS EMPRESA
            int     opcion;
            int     empresas;
            byte    tope;
            Empresa empresa;

            // ENTRADA
            if (migestoria.empresas != null)
            {
                empresas = migestoria.empresas.Length;
                Byte.TryParse(empresas.ToString(), out tope);
                InterfazEmpresa.listadoEmpresas(migestoria, true);
                opcion  = CH.leerOpcionMsg(tope, "SELECCIONA UNA EMPRESA");
                empresa = migestoria.empresas[opcion - 1];

                // SALIDA
                CH.lcd(empresa.ToString());
            }
            else
            {
                CH.lcdColor("!> NO HAY NINGUNA EMPRESA CREADA!", ConsoleColor.DarkYellow);
            }
        }
        /// <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();
        }
Beispiel #4
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();
 }
Beispiel #5
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();
        }
Beispiel #6
0
        /// <summary>
        /// Método para eliminar una empresa de la gestoria.
        /// <paramref name="migestoria">Recibe la gestoria entera</paramref>
        /// </summary>
        public static bool borrarEmpresa(Gestora migestoria)
        {
            // 1. LISTAR EMPRESAS
            // 2. SELECCIONAR EMPRESA
            // 3. BORRAR EMPRESA

            bool    borrada;
            byte    opcion;
            byte    tope;
            int     empresas;
            Empresa empresa;
            string  mensaje;

            // ENTRADA
            mensaje = "";
            borrada = false;

            // PROCESO
            if (migestoria.empresas != null)
            {
                empresas = migestoria.empresas.Length;
                Byte.TryParse(empresas.ToString(), out tope);
                InterfazEmpresa.listadoEmpresas(migestoria, true);
                opcion  = CH.leerOpcionMsg(tope, "SELECCIONA UNA EMPRESA DE LA LISTA");
                empresa = migestoria.empresas[opcion - 1];
                if (migestoria.eliminarEmpresa(empresa))
                {
                    mensaje = "\ni> SE HA ELIMINADO CORRECTAMENTE LA EMPRESA DE LA GESTORIA";
                    borrada = true;
                }
                else
                {
                    mensaje = "\n!> ERROR!! ... ALGO HA PASADO QUE LA COSA NO HA SALIDO MUY BIEN";
                }
            }
            else
            {
                mensaje = "\n!> NO HAY NINGUA EMPRESA EN LA GESTORIA!";
            }

            // SALIDA
            if (borrada)
            {
                CH.lcdColor(mensaje, ConsoleColor.Green);
            }
            else
            {
                CH.lcdColor(mensaje, ConsoleColor.Red);
            }

            return(borrada);
        }
Beispiel #7
0
        /// </summary>
        /// Procedimiento de carga de datos para Modo DEBUG
        /// <param name="migestoria">Recibe la gestoria </param>
        /// </summary>
        public static void modoDebug(Gestora migestoria)
        {
            // MODO DEBUG //
            // MODO DEBUG // -> NUTRIENDO DE DATOS PARA EL MODO DEBUG!!
            // MODO DEBUG //

            Nomina n1  = new Nomina("ARTURO", "PEREZ", "ENERO", 120, 12.0F);
            Nomina n2  = new Nomina("ARTURO", "PEREZ", "FEBRERO", 150, 12.0F);
            Nomina n3  = new Nomina("ARTURO", "PEREZ", "MARZO", 170, 12.0F);
            Nomina n4  = new Nomina("ARTURO", "PEREZ", "ABRIL", 200, 12.0F);
            Nomina n5  = new Nomina("ARTURO", "PEREZ", "MAYO", 240, 12.0F);
            Nomina n6  = new Nomina("ARTURO", "PEREZ", "JUNIO", 142, 12.0F);
            Nomina n7  = new Nomina("ARTURO", "PEREZ", "JULIO", 160, 12.0F);
            Nomina n8  = new Nomina("ARTURO", "PEREZ", "AGOSTO", 145, 12.0F);
            Nomina n9  = new Nomina("ARTURO", "PEREZ", "SEPTIEMBRE", 90, 12.0F);
            Nomina n10 = new Nomina("ARTURO", "PEREZ", "OCUBRE", 210, 12.0F);
            Nomina n11 = new Nomina("ARTURO", "PEREZ", "NOVIEMBRE", 100, 12.0F);
            Nomina n12 = new Nomina("ARTURO", "PEREZ", "DICIEMBRE", 136, 12.0F);
            Nomina n13 = new Nomina("MIGUEL", "CAMACHO", "ENERO", 136, 12.0F);
            Nomina n14 = new Nomina("MIGUEL", "CAMACHO", "FEBRERO", 146, 12.0F);

            Trabajador trabajador1 = new Trabajador("MIGUEL", "CAMACHO", "25020050Y");
            Trabajador trabajador2 = new Trabajador("ROSA", "LOPEZ", "25020050Y");
            Trabajador trabajador3 = new Trabajador("ARTURO", "PEREZ", "25020050Y");

            Empresa empresa  = new Empresa("CENEC", null);
            Empresa empresa2 = new Empresa("PANDORA", null);

            trabajador3.AgregarNomina(n1);
            trabajador3.AgregarNomina(n2);
            trabajador3.AgregarNomina(n3);
            trabajador3.AgregarNomina(n4);
            trabajador3.AgregarNomina(n5);
            trabajador3.AgregarNomina(n6);
            trabajador3.AgregarNomina(n7);
            trabajador3.AgregarNomina(n8);
            trabajador3.AgregarNomina(n9);
            trabajador3.AgregarNomina(n10);
            trabajador3.AgregarNomina(n11);
            trabajador3.AgregarNomina(n12);
            trabajador1.AgregarNomina(n13);
            trabajador1.AgregarNomina(n14);

            empresa.contratar(trabajador1);
            empresa.contratar(trabajador2);
            empresa2.contratar(trabajador3);

            migestoria.agregarEmpresa(empresa);
            migestoria.agregarEmpresa(empresa2);

            CH.lcdColor("\ni> CARGA DE DATOS COMPLETADA", ConsoleColor.Green);
        }
Beispiel #8
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();
        }
Beispiel #9
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();
            }
        }
        ///<summary>
        ///METODO PARA MODIFICAR LOS VALORES DE CONFIGURAICÓN DEL LA NÓMINA
        ///USA FILE Y SCREEN, POR LO QUE LO DEJAMOS EN EL CONTROLADOR   !!!
        ///</summary>
        public static void modificarPass(string pass)
        {
            // 1. Modificar pidiendo el nuevo dato

            try
            {
                pass = CH.leerPass("NUEVA CONTRASEÑA");
            }
            catch (Exception ex)
            {
                CH.lcdColor("\n" + ex.Message + "\n", ConsoleColor.Red);
            }

            FH.grabarValores(ruta, pass, datosBase.maxhoras, datosBase.horasbase, datosBase.maxeuxhora, datosBase.preciojoranda, datosBase.incrementoextra, datosBase.impuestos);
        }
Beispiel #11
0
        /// <summary>
        /// Procedimiento para añadir un nuevo trabajador a la empresa activa.. Pdría recibir sólo la empresa activa. >> V2.0
        /// <paramref name="empresaActiva">El indice de la empresa activa para gestionar sus trajadores</paramref>
        /// <paramref name="migestoria">Le Gestoria con todas las empresa</paramref>
        public static void nuevoTrabajador(Gestora migestoria, byte empresaActiva)
        {
            // 1. PEDIR DATOS TRABAJADOR.
            // 2. AÑADIR AL ARRAY DE TRABAJADORES DE LA EMPRESA ACTIVA!

            Console.WriteLine("i> TU MANDAS, AMO... VAMOS A CONTRATAR UN NUEVO TRABAJADOR");

            Trabajador trabajador = new Trabajador();

            trabajador = InterfazTrabajador.pedirTrabajador();
            migestoria.empresas[empresaActiva - 1].contratar(trabajador);

            CH.lcdColor("\ni> SE HA REGISTRADO AL TRABAJADOR CORRECTAMENTE EN LA EMPRESA!", ConsoleColor.Green);
            ConsoleHelper.pausa();
        }
        /// <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);
        }
Beispiel #14
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();
            }
        }
Beispiel #16
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);
        }
Beispiel #17
0
        /// <summary>
        /// Procedimiento para elminar un trabador.
        /// <paramref name="empresaActiva">El indice de la empresa activa para gestionar sus trajadores</paramref>
        /// <paramref name="migestoria">Le Gestoria con todas las empresa</paramref>
        public static void despedirTrabajador(ref Gestora migestoria, byte empresaActiva)
        {
            // 1. LISTAR TRABAJADORES CON INDICE
            // 2. PEDIR TRABAJADOR
            // 3. ELIMINAR TRABAJADOR > MÉTODO .despedir MODELO Trabajador
            byte opcion = 0;

            InterfazTrabajador.listarTrabajadores(migestoria.empresas[empresaActiva - 1]);
            if (migestoria.empresas[empresaActiva - 1].plantilla != null)
            {
                opcion = InterfazTrabajador.leerOpcionTrabajadorOp((byte)migestoria.empresas[empresaActiva - 1].plantilla.Length, "ELIMINAR");
                if (opcion != 0)
                {
                    Trabajador trabajador = migestoria.empresas[empresaActiva - 1].plantilla[opcion - 1];
                    if (migestoria.empresas[empresaActiva - 1].despedir(trabajador))
                    {
                        CH.lcdColor("i> SE HA DESPEDIDO AL TRABAJADOR!", ConsoleColor.Red);
                    }
                }
            }
            ConsoleHelper.pausa();
        }
Beispiel #18
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);
            }
        }
Beispiel #20
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();
        }
Beispiel #21
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();
        }
Beispiel #22
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();
            }
        }
Beispiel #23
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();
        }
        /// <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);
        }
        /// <summary>
        /// Procedimiento para modificar los valores de configuración por defecto de las nóminas.
        /// Usa tanto file.io como consosole.writre por lo que lo dejaremos de momento EN EL CONTROLADOR!!!
        /// </summary>
        public static void modificarValores()
        {
            // 1. Listar los valores
            // 2. Elegir uno
            // 3. Modificar pidiendo el nuevo dato

            int  opcion;
            bool salir;
            byte formato;

            salir = false;

            // LOS MODIFICAMOS EN EL OBJETO DIRECTAMENTE

            do
            {
                try
                {
                    InterfazAdministracion.listarDatos(datosBase.maxhoras, datosBase.horasbase, datosBase.maxeuxhora, datosBase.preciojoranda, datosBase.incrementoextra, datosBase.impuestos);
                    opcion = CH.leerOpcionMsg(6, "Introduce el número del valor a modificar");

                    switch (opcion)
                    {
                    case 1:
                        datosBase.maxhoras = CH.leerNumero("NUEVO MAXIMO HORAS");
                        salir = true;
                        break;

                    case 2:
                        datosBase.horasbase = CH.leerNumero("NUEVO HORAS SALARIO BASE");
                        salir = true;
                        break;

                    case 3:
                        datosBase.maxeuxhora = CH.leerFloat("EUROS MAXIMOS POR HORA");
                        salir = true;
                        break;

                    case 4:
                        datosBase.preciojoranda = CH.leerFloat("PRECIO JORNADA");
                        salir = true;
                        break;

                    case 5:
                        datosBase.incrementoextra = CH.leerFloat("FACTOR EXTRA");
                        salir = true;
                        break;

                    case 6:
                        datosBase.impuestos = CH.leerFloat("PORCENTAJE DE IMPUESTOS");
                        salir = true;
                        break;
                    }

                    // LOS VOLCAMOS DEL OBJETO AL FICHERO DE DATOS DE CONFIGURACION.
                    // PEDIMOS EL FORMATO Y USAMOS UNO U OTRO. USA FILEHELPER.CLASS > FH!!
                    formato = FH.pedirFormato();
                    switch (formato)
                    {
                    case (1):       // FORMATO TEXTO
                        FH.grabarValores(ruta, pass, datosBase.maxhoras, datosBase.horasbase, datosBase.maxeuxhora, datosBase.preciojoranda, datosBase.incrementoextra, datosBase.impuestos);
                        break;

                    case (2):       // FORMATO BINARIO
                        FH.grabarValoresBinary(rutabin, pass, datosBase.maxhoras, datosBase.horasbase, datosBase.maxeuxhora, datosBase.preciojoranda, datosBase.incrementoextra, datosBase.impuestos);
                        break;
                    }
                }
                catch (Exception ex)
                {
                    CH.lcdColor("!> ERROR: " + ex.Message, ConsoleColor.Red);
                }
            } while (!salir);
        }