private DateTime FijarPeriodoPorPeriodicidad(DateTime periodo, EnumPeriodicidad periodicidad, int datoPeriodo) { DateTime fecha = periodo; if (periodicidad == EnumPeriodicidad.trimestral) { switch (datoPeriodo) { case 1: fecha = new DateTime(periodo.Year, 1, 1); break; case 2: fecha = new DateTime(periodo.Year, 4, 1); break; case 3: fecha = new DateTime(periodo.Year, 7, 1); break; case 4: fecha = new DateTime(periodo.Year, 10, 1); break; default: break; } } return(fecha); }
public string ObtenerPeriodoPorPeriodicidad(DateTime periodo, EnumPeriodicidad periodicidad, int datoPeriodo) { string resultado = string.Empty; DateTime fecha = periodo; if (periodicidad == EnumPeriodicidad.trimestral) { switch (datoPeriodo) { case 1: fecha = new DateTime(periodo.Year, 1, 1); break; case 2: fecha = new DateTime(periodo.Year, 4, 1); break; case 3: fecha = new DateTime(periodo.Year, 7, 1); break; case 4: fecha = new DateTime(periodo.Year, 10, 1); break; default: break; } } switch (periodicidad) { case EnumPeriodicidad.diario: resultado = fecha.ToString("yyyyMMdd"); break; case EnumPeriodicidad.mensual: resultado = fecha.ToString("yyyyMM"); break; case EnumPeriodicidad.trimestral: int trimester = (fecha.Month - 1) / 3 + 1; resultado = fecha.ToString("yyyy") + trimester.ToString(); break; case EnumPeriodicidad.semestral: int semestre = (fecha.Month - 1) / 3 + 1; resultado = semestre > 2 ? "2" : "1"; break; case EnumPeriodicidad.anual: resultado = fecha.ToString("yyyy"); break; default: break; } return(resultado); }
private string ConstruirConsultaArchivo(List <MODCamposArchivo> prmCampos, int prmIdArchivo, int prmIdReporte, DateTime prmPeriodo, EnumPeriodicidad prmPeriodicidad, int prmIdFlujo, int prmDatoPeriodo, int?prmIdElemento = 0) { IReporteNegocio reporteNegocio = FabricaNegocio.CrearReporteNegocio; string sql = $"SELECT {prmIdArchivo} AS IdArchivo"; prmCampos.OrderBy(x => x.Orden).ToList().ForEach(x => { sql += $", {x.Nombre} "; }); var reporte = reporteNegocio.Obtener(new Comun.Entidades.Reportes.MODReporteFiltro() { Id = prmIdReporte }); string nombreTabla = String.Empty; if (prmIdElemento != null && prmIdElemento != 0) { var elemento = reporteNegocio.Obtener(new Comun.Entidades.Reportes.MODReporteFiltro() { Id = (int)prmIdElemento }); nombreTabla = $"TB_{elemento.First().Nombre.ToUpper().Replace(" ", "_")}_{reporte.First().NombreEmpresa.ToUpper().Replace(" ", "_")}_{reporte.First().Nombre.ToUpper().Replace(" ", "_")}"; } else { nombreTabla = $"TB_{reporte.First().Nombre.ToUpper().Replace(" ", "_")}_{reporte.First().NombreEmpresa.ToUpper().Replace(" ", "_")}_{reporte.First().Nombre.ToUpper().Replace(" ", "_")}"; } sql += $" FROM {nombreTabla}"; string periodo = ObtenerPeriodoPorPeriodicidad(prmPeriodo, prmPeriodicidad, prmDatoPeriodo); sql += $" WHERE VERSION_SIR = (SELECT MAX(VERSION_SIR) FROM {nombreTabla} WHERE PERIODO_SIR = '{periodo}' AND IDFLUJO_SIR = {prmIdFlujo}) AND PERIODO_SIR = '{periodo}' AND IDFLUJO_SIR = {prmIdFlujo}"; return(sql); }