/// <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)); }
/// <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; }
/// <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); }