예제 #1
0
        /// <summary>
        /// Ejecuta el procedimiento sp_CedulaParticipacionCoaseguro() y regresa
        /// toda la información de éste.
        /// </summary>
        /// <param name="idPv">El Id de la póliza a buscar.</param>
        /// <returns>Una nueva instancia de <see cref="CedulaParticipacionCoaseguroResultSet"/>
        /// con los datos requeridos.</returns>
        public CedulaParticipacionCoaseguroResultSet ObtenerCedulaParticipacion(int idPv)
        {
            var rs = new CedulaParticipacionCoaseguroResultSet();
            var cmd = db.Database.Connection.CreateCommand();
            var paramIdPv = cmd.CreateParameter();

            cmd.CommandText = "EXEC sp_CedulaParticipacionCoaseguro @IdPv";
            paramIdPv.ParameterName = "@IdPv";
            paramIdPv.Value = idPv;
            cmd.Parameters.Add(paramIdPv);

            try {
                db.Database.Connection.Open();
                var reader = cmd.ExecuteReader();
                var context = (db as IObjectContextAdapter).ObjectContext;

                rs.DatosGenerales = context
                    .Translate<DatosGeneralesCedulaRS>(reader)
                    .FirstOrDefault() ?? new DatosGeneralesCedulaRS();

                reader.NextResult();
                rs.Coaseguradoras = context
                    .Translate<CoaseguradorasCedulaRS>(reader)
                    .ToList();
            } catch {
                // TODO: Posible Log.
                throw;
            } finally {
                db.Database.Connection.Close();
            }

            return rs;
        }
 /// <summary>
 /// Agrega la Cédula de Participación a la plantilla de LaTeX indicada. Regresa el último índice de fila
 /// utilizado (actualiza el índice constantemente para buscar los placeholders).
 /// </summary>
 /// <typeparam name="T">El tipo de dato del lector escritor. Este método debería ser utilizado únicamente con los lectores/escritores de este espacio de nombres.</typeparam>
 /// <param name="lectorEscritor">El lector/escritor que utilizará este método para rellenar su plantilla correspondiente.</param>
 /// <param name="plantilla">Las filas de la plantilla leídas desde el archivo .tex.</param>
 /// <param name="cedula">Los datos de la cédula de participación.</param>
 /// <param name="indice">El índice de la fila de la plantilla a partir de la cual se empezará la búsqueda.</param>
 /// <returns>El último índice de fila utilizado.</returns>
 public static int RellenarCedulaParticipacion <T>(
     this T lectorEscritor,
     IList <string> plantilla,
     CedulaParticipacionCoaseguroResultSet cedula,
     int indice)
     where T : LatexLectorEscritor
 {
     return(RellenarCedulaParticipacionGenerico(plantilla, cedula, indice));
 }
예제 #3
0
 /// <summary>
 /// Genera una nueva instancia con la cédula y el encabezado indicados.
 /// </summary>
 /// <param name="cedula">Los datos de la Cédula de Participación en Coaseguro.</param>
 /// <param name="encabezado">Los datos del encabezado del reporte.</param>
 /// <param name="rutaCompilador">La ruta absoluta al compilador (.exe) de LaTex.</param>
 /// <param name="inputDir">La ruta del directorio de multimedia de la plantilla.</param>
 public CedulaLectorEscritor(
     CedulaParticipacionCoaseguroResultSet cedula,
     EncabezadoReportesEmisionResultSet encabezado,
     string rutaCompilador,
     string inputDir)
     : base(rutaCompilador, inputDir)
 {
     this.cedula     = cedula;
     this.encabezado = encabezado;
 }
예제 #4
0
 /// <summary>
 /// Genera una nueva instancia con la cédula, el anexo y el encabezado indicados.
 /// </summary>
 /// <param name="cedula">Los datos de la Cédula de Participación en Coaseguro.</param>
 /// <param name="anexo">Los datos del Anexo y Condiciones Particulares en Coaseguro.</param>
 /// <param name="encabezado">Los datos del encabezado del reporte.</param>
 /// <param name="rutaCompilador">La ruta absoluta al compilador (.exe) de LaTex.</param>
 /// <param name="inputDir">La ruta del directorio de multimedia de la plantilla.</param>
 public CedulaAnexoLectorEscritor(
     CedulaParticipacionCoaseguroResultSet cedula,
     AnexoCondicionesParticularesCoaseguroResultSet anexo,
     EncabezadoReportesEmisionResultSet encabezado,
     string rutaCompilador,
     string inputDir)
     : base(rutaCompilador, inputDir)
 {
     this.cedula     = cedula;
     this.anexo      = anexo;
     this.encabezado = encabezado;
 }
        /// <summary>
        /// Regresa el código para la tabla de coaseguradoras con sus respectivos porcentajes y montos
        /// de participación para la sección de Cédula de Participación.
        /// </summary>
        /// <param name="cedula">Los datos de la cédula de participación.</param>
        /// <returns>Una cadena con todo el código de la tabla.</returns>
        private static string ObtenerTablaCoaseguradorasCedulaParticipacion(CedulaParticipacionCoaseguroResultSet cedula)
        {
            var builder = new StringBuilder($@"GRUPO MEXICANO DE SEGUROS, S.A. DE C.V. & Líder & ")
                          .Append($@"{cedula.DatosGenerales.PorcentajeGMX.ToString("N2")} \% & ")
                          .AppendLine($@"\$ {cedula.DatosGenerales.MontoParticipacionGMX.ToString("N2")}\\\hline");

            foreach (var coas in cedula.Coaseguradoras)
            {
                builder
                .Append($@"{coas.Coaseguradora} & Seguidor & ")
                .Append($@"{coas.PorcentajeParticipacion.ToString("N2")} \% & ")
                .AppendLine($@"\$ {coas.MontoParticipacion.ToString("N2")}\\\hline");
            }

            return(builder.ToString());
        }
        /// <summary>
        /// Agrega la Cédula de Participación a la plantilla de LaTeX indicada. Regresa el último índice de fila
        /// utilizado (actualiza el índice constantemente para buscar los placeholders).
        /// </summary>
        /// <param name="plantilla">Las filas de la plantilla leídas desde el archivo .tex.</param>
        /// <param name="cedula">Los datos de la cédula de participación.</param>
        /// <param name="indice">El índice de la fila de la plantilla a partir de la cual se empezará la búsqueda.</param>
        /// <returns>El último índice de fila utilizado.</returns>
        private static int RellenarCedulaParticipacionGenerico(IList <string> plantilla, CedulaParticipacionCoaseguroResultSet cedula, int indice)
        {
            indice            = plantilla.FindIndex(linea => linea.Contains("<SUC-COD-RAMO-POLIZA-ENDO-SUF>"), indice);
            plantilla[indice] = plantilla[indice]
                                .Replace("<SUC-COD-RAMO-POLIZA-ENDO-SUF>", cedula.DatosGenerales.Poliza);

            indice            = plantilla.FindIndex(linea => linea.Contains("<ASEGURADO>"), indice);
            plantilla[indice] = plantilla[indice]
                                .Replace("<ASEGURADO>", cedula.DatosGenerales.Asegurado);

            indice            = plantilla.FindIndex(linea => linea.Contains("<CEDULA-TABLA-COASEGURADORAS>"), indice);
            plantilla[indice] = ObtenerTablaCoaseguradorasCedulaParticipacion(cedula);

            indice            = plantilla.FindIndex(linea => linea.Contains("<CEDULA-DIA>"), indice);
            plantilla[indice] = plantilla[indice]
                                .Replace("<CEDULA-DIA>", cedula.DatosGenerales.FechaEmision.Day.ToString().PadLeft(2, '0'))
                                .Replace("<CEDULA-MES>", cedula.DatosGenerales.FechaEmision.ToString("MMMM", CultureInfo.GetCultureInfo("es-MX")))
                                .Replace("<CEDULA-ANIO>", cedula.DatosGenerales.FechaEmision.Year.ToString());

            indice            = plantilla.FindIndex(linea => linea.Contains("<TABLA-FIRMAS>"), indice);
            plantilla[indice] = ObtenerTablaRepresentantes(cedula.Coaseguradoras.Select(coas => coas.Coaseguradora));

            return(indice);
        }