/// <summary> /// Deposita un objeto moneda en la alcancía, modifica los atributos asociativos de ambos /// </summary> /// <param name="parObjMoneda">Parámetro de tipo clsMONEDA</param> /// <param name="parMensajeResultadoDepositarMoneda">Parámetro de tipo string por referencia para indicar el éxtio o fracaso</param> public void transDepositarObjMoneda(clsMONEDA parObjMoneda, ref string parMensajeResultadoDepositarMoneda) { if (EsValidaDenominacion(parObjMoneda)) { parObjMoneda.AsociadorObjAlcancia(this); this.AsociarObjMoneda(parObjMoneda); this.ActualizarSaldoConteoMonedas(parObjMoneda, 1); parMensajeResultadoDepositarMoneda = "Se depositó la moneda exitosamente"; } }
/// <summary> /// Retira un objeto moneda de la alcancía, modifica los atributos asociativos de ambos /// </summary> /// <param name="parObjMoneda">Parámetro de tipo clsMONEDA</param> /// <param name="parMensajeResultadoDepositarMoneda">Parámetro de tipo string por referencia para indicar el éxtio o fracaso</param> public void transRetirarObjMoneda(clsMONEDA parObjMoneda, ref string parMensajeResultadoDepositarMoneda) { if (EncontrarMonedaEnAlcancia(parObjMoneda)) { parObjMoneda.DisociarObjAlcancia(this); this.DisociarObjMoneda(parObjMoneda); this.ActualizarSaldoConteoMonedas(parObjMoneda, (-1)); parMensajeResultadoDepositarMoneda = "Se retiró la moneda exitosamente"; } }
/// <summary> /// Verifica si la denominación de un objeto moneda es admitida en el objeto alcancía /// </summary> /// <param name="parObjMoneda">Parámetro de tipo clsMONEDA</param> /// <returns>Returna el éxito o fracaso de la operación por medio de un bool</returns> bool EsValidaDenominacion(clsMONEDA parObjMoneda) { for (int varIndice = 0; varIndice < this.atrVectorDenominacionesAceptables.Length; varIndice++) { if (parObjMoneda.ObtenerDenominacion() == this.atrVectorDenominacionesAceptables[varIndice]) { return(true); } } return(false); }
/// <summary> /// Recibe un parámetro de tipo clsMONEDA y un factor que indicará el aumento o decremento de los atributos derivables. Actualiza el saldo total de la alcancía, el saldo total por denominaciones, la cantidad de monedas de la alcancía y la cantidad de monedas por denominación /// </summary> /// <param name="parObjeto">Parámetro de tipo clsMONEDA</param> /// <param name="parFactor">Parámetro de tipo entero. 1 para incrementar, -1 para decrementar</param> public void ActualizarSaldoConteoMonedas(clsMONEDA parObjeto, int parFactor) { this.atrSaldoTotalMonedas += (uint)((parObjeto.ObtenerDenominacion() * parFactor)); this.atrConteoTotalMonedas = (byte)(atrConteoTotalMonedas + parFactor); for (int varPosicion = 0; varPosicion < this.atrVectorDenominacionesAceptables.Length; varPosicion++) { if (parObjeto.ObtenerDenominacion() == this.atrVectorDenominacionesAceptables[varPosicion]) { this.atrVectorSaldoTotalMonedasPorDenominacion[varPosicion] += (uint)(parObjeto.ObtenerDenominacion() * parFactor); this.atrVectorConteoMonedasPorDenominacion[varPosicion] = (byte)(this.atrVectorConteoMonedasPorDenominacion[varPosicion] + parFactor); } } }
/// <summary> /// Encuentra un objeto de tipo moneda en la colección de la alcancía, verifica por medio de la denominación. /// </summary> /// <param name="parObjMoneda">parámetro de tipo clsMONEDA</param> /// <returns></returns> bool EncontrarMonedaEnAlcancia(clsMONEDA parObjMoneda) { for (int varIndice = 0; varIndice < this.atrVectorDenominacionesAceptables.Length; varIndice++) { if (parObjMoneda.ObtenerDenominacion() == this.atrVectorDenominacionesAceptables[varIndice]) { for (int varIndice2 = 0; varIndice2 < this.atrColeccionObjsMoneda.Count; varIndice2++) { if (parObjMoneda.ObtenerDenominacion() == this.atrColeccionObjsMoneda[varIndice2].ObtenerDenominacion()) { return(true); } } } } return(false); }
/// <summary> /// Método que disocia un objeto de tipo moneda de la alcancía /// </summary> /// <param name="parObjeto">Parametro de tipo clsMONEDA que instrucciona el metodo</param> private void DisociarObjMoneda(clsMONEDA parObjeto) { this.atrColeccionObjsMoneda.Remove(parObjeto); }
/// <summary> /// El metodo adiciona un objeto moneda a la alcancia /// </summary> /// <param name="parObjeto">Parametro de tipo clsMONEDA que instrucciona el metodo</param> private void AsociarObjMoneda(clsMONEDA parObjeto) { this.atrColeccionObjsMoneda.Add(parObjeto); }