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