Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
                }
            }
        }