/// <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); } }
/// <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(); }
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(); }
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(); }
/// <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); }
/// </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); }
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(); }
/// <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); }
/// <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); }
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(); } }
// 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); }
/// <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(); }
/// <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); } }
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(); }
// 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(); }
// 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(); } }
// 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); }