public static void PagarDeudas(this Colono claseColono, Colono colono, Colonia catalinas) { if (colono.Saldo > 0) { catalinas.SaldoActual += colono.Saldo; Colonia.GuardarPagos(colono); Colonia.GuardarImporte(catalinas); colono.Saldo = 0; } }
/// <summary> /// Aumenta el stock según la cantidad pasada por parámetro. /// </summary> /// <param name="colonia"></param> /// <param name="p1"></param> /// <param name="cantidad"></param> public void AumentarStock(Colonia colonia, Producto p1) { try { colonia.stockProductos += p1; } catch (StockMaximoException ex) { throw ex; } }
public static void PagarDeudas(this Colono claseColono, Colono colono, Colonia catalinas) { if (colono.SaldoCuota + colono.SaldoProductos > 0) { catalinas.SaldoActual += colono.SaldoProductos + colono.SaldoCuota; Colonia.GuardarPagos(colono); Colonia.GuardarImporte(catalinas); colono.SaldoProductos = 0; colono.SaldoCuota = 0; Console.WriteLine("Se han saldado las deudas de " + colono.Apellido + " " + colono.Nombre); } }
/// <summary> /// Busca si un entero coincide con el DNI de un colono. /// </summary> /// <param name="catalinas"></param> /// <param name="dni"></param> /// <returns></returns> public Colono ObtenerDatos(Colonia catalinas, int dni) { Colono auxiliar = new Colono(); foreach (Grupo grupo in catalinas.listadoDeGrupos) { foreach (Colono colono in grupo.ListadoColonos) { if (colono.Dni == dni) { auxiliar = colono; break; } } } return(auxiliar); }
/// <summary> /// Efectua una venta. Modifica el stock del producto, el saldo a favor de la colonia, /// el saldo deudor al colono y agrega el producto a su lista de comprados. /// </summary> /// <param name="colonia"></param> /// <param name="p1"></param> /// <param name="c1"></param> /// <param name="cantidad"></param> public void RealizaVenta(Colonia colonia, Producto producto, Colono colono, int cantidadComprada) { if (colonia.stockProductos == producto) { colono.Saldo += producto.Precio * cantidadComprada; for (int i = 0; i < cantidadComprada; i++) { colono.ListaProductosComprados.Add(producto); } //bajar stock this.stockProductos.BajarCantidad(stockProductos, producto, cantidadComprada); } else { Console.WriteLine("No se pudo realizar venta"); } }
/// <summary> /// Agrega colonos a la colonia. /// </summary> /// <param name="colonia"></param> /// <param name="co"></param> /// <returns></returns> //La colonia debe ser la encargada de agregar chicos y asignarle un grupo. public static Colonia operator +(Colonia colonia, Colono co) { Random numeroColor = new Random(); int indice = 0; if (colonia != co) { //Si no hay grupos, se crea uno y agrega al colono. if (colonia.listadoDeGrupos.Count == 0) { Grupo nuevoGrupo = new Grupo(10, Colonia.GeneradorColores(), co.EdadGrupo); nuevoGrupo += co; colonia.listadoDeGrupos.Add(nuevoGrupo); } else { foreach (Grupo aux in colonia.listadoDeGrupos) { //Si el grupo existente y es de la edad del colono lo agrega //si la capacidad del grupo no ha sido pasada. if (Colonia.RecorrerGruposEdad(colonia, co.EdadGrupo, out indice)) { if (aux.ListadoColonos.Count < aux.Capacidad) { colonia.listadoDeGrupos[indice].ListadoColonos.Add(co); //aux.ListadoColonos.Add(co); break; } } else { //Si no existe la edad del grupo, sea crea y agrega al colono. Random otroRandom = new Random(); Grupo otroGrupo = new Grupo(10, Colonia.GeneradorColores(), co.EdadGrupo); otroGrupo += co; colonia.listadoDeGrupos.Add(otroGrupo); break; } } } } return(colonia); }
/// <summary> /// Guarda en un archivo de texto el importe que el colono ha saldado. /// </summary> /// <param name="catalinas"></param> /// <returns></returns> public static bool GuardarImporte(Colonia catalinas) { bool retorno = false; string rutaDeGuardado = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + @"\" + "saldo-colonia.txt"; Encoding miCodificacion = Encoding.UTF8; try { using (StreamWriter sw = new StreamWriter(rutaDeGuardado, true, miCodificacion)) { sw.WriteLine(catalinas.SaldoActual); retorno = true; } } catch (Exception ex) { Console.WriteLine(ex.Message); } return(retorno); }
public Colonia Deserealizar(out Colonia catalinas) { Encoding miCodificacion = Encoding.UTF8; catalinas = null; try { using (XmlTextReader lector = new XmlTextReader(this.Path)) { XmlSerializer ser = new XmlSerializer(typeof(Colonia)); catalinas = ((Colonia)ser.Deserialize(lector)); lector.Close(); } } catch (Exception e) { Console.WriteLine(e.ToString()); } return(catalinas); }
/// <summary> /// Recorre los grupos de la colonia buscando la edad pasada por parámetro. /// </summary> /// <param name="ca"></param> /// <param name="edadDelGrupo"></param> /// <param name="indice"></param> /// <returns>Devuelve true si existe algun grupo de la colonia coincide con la edad del parámetro </returns> private static bool RecorrerGruposEdad(Colonia ca, EEdad edadDelGrupo, out int indice) { bool retorno = false; indice = default; int contador = 0; foreach (Grupo aux in ca.listadoDeGrupos) { if (aux.EdadDelGrupo == edadDelGrupo) { retorno = true; break; } else { contador++; } } indice = contador; return(retorno); }