コード例 #1
0
        public decimal ObtenerValorCuota(decimal idFondo, DateTime fecha)
        {
            EECCIndividualDA da = new EECCIndividualDA();

            return(da.ObtenerValorCuota(idFondo, fecha));
        }
コード例 #2
0
        public void SaveToFile(string path)
        {
            StreamWriter sw = new StreamWriter(path, false, Encoding.Default);

            try
            {
                WriteRTFHeader(sw);

                EECCIndividualDA da = new EECCIndividualDA();

                DataTable dtParticipes = da.ObtenerParticipeIndividual(idFondo, fechaInicio, fechaFin, idCliente);

                StringBuilder sb = new StringBuilder();

                foreach (DataRow drParticipe in dtParticipes.Rows)
                {
                    decimal totalCuentasInicial = 0;
                    decimal totalFondoInicial   = 0;
                    decimal totalCuentasFinal   = 0;
                    decimal totalFondoFinal     = 0;
                    bool    unicaCuenta         = false;

                    decimal idParticipe = Convert.ToDecimal(drParticipe["ID"]);

                    //sw.WriteLine();
                    int linesLeft = 92;
                    int lineIndex = 1;


                    #region Datos Generales
                    GoTo(11, ref lineIndex, ref linesLeft, sw);
                    Write(fondo, 16, ref lineIndex, ref linesLeft, sw);
                    Write(drParticipe["CODIGO"].ToString(), 16, ref lineIndex, ref linesLeft, sw);
                    Write(drParticipe["NOMBRE"].ToString(), 16, ref lineIndex, ref linesLeft, sw);
                    if (drParticipe["TIPO_PERSONA"].Equals("MAN"))
                    {
                        DataTable dtMancomunos = da.ObtenerMacomunos(Convert.ToInt32(drParticipe["CODIGO"]));
                        foreach (DataRow drMancomuno in dtMancomunos.Rows)
                        {
                            if (drMancomuno["ESTADO"].Equals("ACT"))
                            {
                                Write(drMancomuno["PARTICIPE"].ToString(), 16, ref lineIndex, ref linesLeft, sw);
                            }
                        }
                    }
                    Write(drParticipe["DIRECCION"].ToString(), 16, ref lineIndex, ref linesLeft, sw);
                    if (!drParticipe["TIPO_UBICACION"].ToString().Equals("-1"))
                    {
                        Write(drParticipe["TIPO_UBICACION"].ToString() + " " + drParticipe["UBICACION"].ToString(), 16, ref lineIndex, ref linesLeft, sw);
                    }
                    Write(string.Format("{0} {1} {2}", drParticipe["DISTRITO"].ToString(), drParticipe["CIUDAD"].ToString(), drParticipe["DEPARTAMENTO"].ToString()), 16, ref lineIndex, ref linesLeft, sw);
                    Write(drParticipe["PAIS"].ToString(), 16, ref lineIndex, ref linesLeft, sw);
                    #endregion

                    #region Saldo Inicial
                    GoTo(26, ref lineIndex, ref linesLeft, sw);
                    decimal saldoInicial = da.ObtenerSaldoEnFondo(idFondo, idParticipe, fechaInicio);

                    sb.Append(@"\b ");
                    sb.Append(fechaInicio.ToString("dd/MM/yyyy").PadRight(16, ' '));
                    sb.Append("SALDO INICIAL".PadRight(18, ' '));
                    sb.Append(saldoInicial.ToString(Constants.ConstantesING.FormatoCuotas).PadLeft(18, ' '));
                    sb.Append(valorCuotaInicial.ToString(Constants.ConstantesING.FormatoValorCuota).PadLeft(19, ' '));
                    sb.Append(string.Format("{1} {0}", (saldoInicial * valorCuotaInicial).ToString("N"), moneda).PadLeft(18, ' '));
                    sb.Append(@" \b0");
                    Write(sb.ToString(), 18, ref lineIndex, ref linesLeft, sw);
                    sb.Remove(0, sb.Length);

                    totalFondoInicial = saldoInicial;
                    #endregion

                    #region Movimientos
                    GoTo(34, ref lineIndex, ref linesLeft, sw);
                    DataTable dtCuentas = da.ObtenerCuentas(idParticipe);

                    // Una sola cuenta
                    if (dtCuentas.Rows.Count == 1)
                    {
                        decimal   idCuentaParticipacion = Convert.ToDecimal(dtCuentas.Rows[0]["ID"]);
                        DataTable dtMovimientos         = da.ObtenerMovimientos(idFondo, idCuentaParticipacion, fechaInicio, fechaFin);
                        foreach (DataRow drMovimiento in dtMovimientos.Rows)
                        {
                            decimal numeroCuotas = Convert.ToDecimal(drMovimiento["NUMERO_CUOTAS"]);
                            decimal valorCuota   = (drMovimiento["VALOR_CUOTA"] == DBNull.Value) ? 0 : Convert.ToDecimal(drMovimiento["VALOR_CUOTA"]);
                            sb.Append(Convert.ToDateTime(drMovimiento["FECHA_PROCESO"]).ToString("dd/MM/yyyy").PadRight(16, ' '));
                            sb.Append(drMovimiento["MOVIMIENTO"].ToString().PadRight(18, ' '));
                            sb.Append(numeroCuotas.ToString(Constants.ConstantesING.FormatoCuotas).PadLeft(18, ' '));
                            if (valorCuota == 0)
                            {
                                sb.Append("".PadLeft(19, ' '));
                                sb.Append("".PadLeft(18, ' '));
                            }
                            else
                            {
                                sb.Append(valorCuota.ToString(Constants.ConstantesING.FormatoValorCuota).PadLeft(19, ' '));
                                sb.Append(string.Format("{1} {0}", (numeroCuotas * valorCuota).ToString("N"), moneda).PadLeft(18, ' '));
                            }
                            Write(sb.ToString(), 18, ref lineIndex, ref linesLeft, sw);
                            sb.Remove(0, sb.Length);
                        }

                        unicaCuenta = true;
                    }
                    // Varias cuentas
                    else
                    {
                        foreach (DataRow drCuenta in dtCuentas.Rows)
                        {
                            decimal idCuentaParticipacion = Convert.ToDecimal(drCuenta["ID"]);
                            bool    cuentaEliminada       = drCuenta["FLAG_ELIMINADO"].ToString().Equals("S");
                            decimal saldoInicialCuenta    = da.ObtenerSaldoEnCuenta(idFondo, idCuentaParticipacion, fechaInicio);

                            if (!cuentaEliminada || saldoInicialCuenta > 0)
                            {
                                //Cabecera
                                Write(string.Format(@"\b {0} {1} \b0", drCuenta["CODIGO"], drCuenta["ETIQUETA"]), 18, ref lineIndex, ref linesLeft, sw);

                                //Saldo inicial cuenta
                                sb.Append(fechaInicio.ToString("dd/MM/yyyy").PadRight(16, ' '));
                                sb.Append("SALDO INICIAL".PadRight(18, ' '));
                                sb.Append(saldoInicialCuenta.ToString(Constants.ConstantesING.FormatoCuotas).PadLeft(18, ' '));
                                sb.Append(valorCuotaInicial.ToString(Constants.ConstantesING.FormatoValorCuota).PadLeft(19, ' '));
                                sb.Append(string.Format("{1} {0}", (saldoInicialCuenta * valorCuotaInicial).ToString("N"), moneda).PadLeft(18, ' '));
                                Write(sb.ToString(), 18, ref lineIndex, ref linesLeft, sw);
                                sb.Remove(0, sb.Length);

                                totalCuentasInicial += saldoInicialCuenta;

                                //Movimientos
                                DataTable dtMovimientos = da.ObtenerMovimientos(idFondo, idCuentaParticipacion, fechaInicio, fechaFin);
                                foreach (DataRow drMovimiento in dtMovimientos.Rows)
                                {
                                    decimal numeroCuotas = Convert.ToDecimal(drMovimiento["NUMERO_CUOTAS"]);
                                    decimal valorCuota   = (drMovimiento["VALOR_CUOTA"] == DBNull.Value) ? 0 : Convert.ToDecimal(drMovimiento["VALOR_CUOTA"]);
                                    sb.Append(Convert.ToDateTime(drMovimiento["FECHA_PROCESO"]).ToString("dd/MM/yyyy").PadRight(16, ' '));
                                    sb.Append(drMovimiento["MOVIMIENTO"].ToString().PadRight(18, ' '));
                                    sb.Append(numeroCuotas.ToString(Constants.ConstantesING.FormatoCuotas).PadLeft(18, ' '));
                                    if (valorCuota == 0)
                                    {
                                        sb.Append("".PadLeft(19, ' '));
                                        sb.Append("".PadLeft(18, ' '));
                                    }
                                    else
                                    {
                                        sb.Append(valorCuota.ToString(Constants.ConstantesING.FormatoValorCuota).PadLeft(19, ' '));
                                        sb.Append(string.Format("{1} {0}", (numeroCuotas * valorCuota).ToString("N"), moneda).PadLeft(18, ' '));
                                    }
                                    Write(sb.ToString(), 18, ref lineIndex, ref linesLeft, sw);
                                    sb.Remove(0, sb.Length);
                                }

                                //Saldo final cuenta
                                decimal saldoFinalCuenta = da.ObtenerSaldoEnCuenta(idFondo, idCuentaParticipacion, fechaFin);
                                sb.Append(fechaFin.ToString("dd/MM/yyyy").PadRight(16, ' '));
                                sb.Append("SALDO FINAL".PadRight(18, ' '));
                                sb.Append(saldoFinalCuenta.ToString(Constants.ConstantesING.FormatoCuotas).PadLeft(18, ' '));
                                sb.Append(valorCuotaFinal.ToString(Constants.ConstantesING.FormatoValorCuota).PadLeft(19, ' '));
                                sb.Append(string.Format("{1} {0}", (saldoFinalCuenta * valorCuotaFinal).ToString("N"), moneda).PadLeft(18, ' '));
                                Write(sb.ToString(), 18, ref lineIndex, ref linesLeft, sw);
                                sb.Remove(0, sb.Length);

                                totalCuentasFinal += saldoFinalCuenta;
                                Write("", 18, ref lineIndex, ref linesLeft, sw);
                            }
                        }
                    }
                    #endregion

                    #region Saldo Final
                    GoTo(69, ref lineIndex, ref linesLeft, sw);
                    decimal saldoFinal = da.ObtenerSaldoEnFondo(idFondo, idParticipe, fechaFin);

                    sb.Append(@"\b ");
                    sb.Append(fechaFin.ToString("dd/MM/yyyy").PadRight(16, ' '));
                    sb.Append("SALDO FINAL".PadRight(18, ' '));
                    sb.Append(saldoFinal.ToString(Constants.ConstantesING.FormatoCuotas).PadLeft(18, ' '));
                    sb.Append(valorCuotaFinal.ToString(Constants.ConstantesING.FormatoValorCuota).PadLeft(19, ' '));
                    sb.Append(string.Format("{1} {0}", (saldoFinal * valorCuotaFinal).ToString("N"), moneda).PadLeft(18, ' '));
                    sb.Append(@" \b0");
                    Write(sb.ToString(), 18, ref lineIndex, ref linesLeft, sw);
                    sb.Remove(0, sb.Length);

                    totalFondoFinal = saldoFinal;
                    #endregion

                    if ((!unicaCuenta) && (totalCuentasInicial != totalFondoInicial))
                    {
                        Write("@@INICIAL", 18, ref lineIndex, ref linesLeft, sw);
                    }
                    if ((!unicaCuenta) && (totalCuentasFinal != totalFondoFinal))
                    {
                        Write("@@FINAL", 18, ref lineIndex, ref linesLeft, sw);
                    }

                    CompletePage(lineIndex, linesLeft, sw);
                }
                WriteRTFFooter(sw);
            }
            finally
            {
                sw.Close();
            }
        }
コード例 #3
0
        public DataTable ObtenerFondos()
        {
            EECCIndividualDA da = new EECCIndividualDA();

            return(da.ObtenerFondos());
        }