public int EjecutarActividadesRutinarias(string actividadesR, int AUDI_UsuarioEdita) { //Formato de actividadesR = HIAR_Interno;ACRU_Interno;HIAR_FechaEjecutadoAnterior|HIAR_Interno;ACRU_Interno;HIAR_FechaEjecutadoAnterior int result = 0; if (actividadesR != "") { EjecucionActividadesRDAO ejecDAO = new EjecucionActividadesRDAO(); HistorialAR historialAR = null; HistorialAR AuxHistorialAR = null; ActividadR actividadR = null; string[] IDAct = actividadesR.Split('|'); ControlGrupo CG = new ControlGrupo(); foreach (string IDs in IDAct) { string[] ID = IDs.Split(';'); actividadR = new ActividadR(); ActividadRDAO actDAO = new ActividadRDAO(); actividadR.HIAR_Interno = Convert.ToInt32(ID[0]); actividadR.HIAR_FechaEjecutado = DateTime.ParseExact(ID[2], "dd/MM/yyyy", null); //actividadR.HIAR_FechaEjecutado = Convert.ToDateTime(ID[2]); //Ejecutamos la actividad rutinaria int res = ejecDAO.EjecutarActividadesRutinarias(actividadR, AUDI_UsuarioEdita); if (res > 0) { //ahora iniciamos una nueva actividad rutinaria HistorialARDAO histAR_DAO = new HistorialARDAO(); AuxHistorialAR = new HistorialAR();//para datos auxiliares AuxHistorialAR.HIAR_Interno = actividadR.HIAR_Interno; AuxHistorialAR = histAR_DAO.ObtenerHistorialActividadRutinaria(AuxHistorialAR); actividadR.ACRU_Interno = Convert.ToInt32(ID[1]); historialAR = new HistorialAR(); historialAR.HIAR_Interno = null; historialAR.ACRU_Interno = actividadR.ACRU_Interno; //ultima fecha de ejecucion historialAR.HIAR_FechaEjecucionAnterior = actividadR.HIAR_FechaEjecutado; //1)obtenemos las frecuencias de la actividad rutinaria actividadR = actDAO.ObtenerActividadPorId(actividadR); if (actividadR != null) { switch (actividadR.ACRU_UnidadFrecuencia)//calculamos las siguientes fechas { case "M": historialAR.HIAR_SiguienteFecha = historialAR.HIAR_FechaEjecucionAnterior.Value.AddMonths(actividadR.ACRU_Frecuencia); break; case "S": historialAR.HIAR_SiguienteFecha = historialAR.HIAR_FechaEjecucionAnterior.Value.AddDays(actividadR.ACRU_Frecuencia * 7); break; case "D": historialAR.HIAR_SiguienteFecha = historialAR.HIAR_FechaEjecucionAnterior.Value.AddDays(actividadR.ACRU_Frecuencia); break; } historialAR.HIAR_Estado = "I"; if (AuxHistorialAR.EQUI_Interno != null) { historialAR.LOCA_Interno = null; historialAR.EQUI_Interno = AuxHistorialAR.EQUI_Interno; } else { historialAR.EQUI_Interno = null; historialAR.LOCA_Interno = AuxHistorialAR.LOCA_Interno; } res = histAR_DAO.InsertarHistorialAR(historialAR, AUDI_UsuarioEdita, null); if (res > 0) { result++; } else { //corregimos la ejecucion de la actividad---anulamos la ejecucion de la actividad ejecDAO.AnularEjecutarActividadesRutinarias(actividadR, AUDI_UsuarioEdita); } } else { //corregimos la ejecucion de la actividad---anulamos la ejecucion de la actividad ejecDAO.AnularEjecutarActividadesRutinarias(actividadR, AUDI_UsuarioEdita); } } } return(result); } else { return(0); } }
public ActividadR ObtenerActividadPorId(ActividadR Actividad) { ActividadRDAO DataActividad = new ActividadRDAO(); return(DataActividad.ObtenerActividadPorId(Actividad)); }