public AhorroDetalle insertDetalle(string tipo, decimal monto, DateTime fecha) { capitalizar(fecha); AhorroDetalle detalle = new AhorroDetalle(); detalle.fecha = fecha; detalle.monto = Math.Round(monto, 2); detalle.tipo = tipo; if (tipo == "Abono") { detalle.saldoParcial = Math.Round(this.saldo + detalle.monto, 2); } else if (tipo == "Retiro") { detalle.saldoParcial = Math.Round(this.saldo - detalle.monto, 2); } guardarDetalle(detalle); detalle.correlativo = this.detalles.Count; //Reportes.comprobanteMovimiento(this.asociado, this, detalle); return(detalle); }
public void guardarDetalle(AhorroDetalle detalle) { if (detalles == null) { detalles = new List <AhorroDetalle>(); } detalles.Add(detalle); string query = "insert into asociados.ahorrodetalle(id_ahorro, tipo, monto, saldo_parcial, fecha) " + "values(@id, @tipo, @monto, @saldo, @fecha)"; List <SqlParameter> parameters = new List <SqlParameter>() { new SqlParameter("id", this.id), new SqlParameter("tipo", detalle.tipo), new SqlParameter("monto", detalle.monto), new SqlParameter("saldo", detalle.saldoParcial), new SqlParameter("fecha", detalle.fecha) }; Queries.execute(query, parameters); }
public void capitalizar(DateTime fechaHasta) { List <DateTime> fechas = AhorroServicio.fechasCapitalizables(this.ultimaCapitalizacion, fechaHasta); if (fechas.Count > 0) { decimal tasa, monto, saldoParcial; //Para la primera capitalización (que no aplica 3 meses, si no por días) if (this.ultimaCapitalizacion == this.fecha) { int dias = (fechas.First() - this.fecha).Days; tasa = (decimal)((double)this.interes / (100 * 12 * 30)); monto = Math.Round(this.saldo * dias * tasa, 2); saldoParcial = Math.Round(this.saldo + monto, 2); AhorroDetalle detalle = new AhorroDetalle("Abono intereses", monto, fechas.First(), saldo); guardarDetalle(detalle); fechas.RemoveAt(0); } //Para las capizalizaciones trimestrales pendientes. tasa = (decimal)((double)this.interes / (100 * 4)); foreach (DateTime fechaC in fechas) { monto = Math.Round(this.saldo * tasa, 2); saldoParcial = Math.Round(this.saldo + monto, 2); AhorroDetalle detalle = new AhorroDetalle("Abono intereses", monto, fechaC, saldoParcial); guardarDetalle(detalle); } } }