public int ProgramarActividadesRutinarias(string actividadesR, int AUDI_UsuarioEdita)
        {
            //Formato de actividadesR = HIAR_Interno|HIAR_Interno|HIAR_Interno
            int result = 0;

            if (actividadesR != "")
            {
                ProgramacionActividadesDAO progDAO = new ProgramacionActividadesDAO();
                HistorialAR  historialAR           = null;
                string[]     IDAct = actividadesR.Split('|');
                ControlGrupo CG    = new ControlGrupo();
                foreach (string IDs in IDAct)
                {
                    historialAR = new HistorialAR();
                    ActividadRDAO actDAO = new ActividadRDAO();
                    historialAR.HIAR_Interno = Convert.ToInt32(IDs);
                    //para el numero de la semana
                    DateTimeFormatInfo dfi = DateTimeFormatInfo.CurrentInfo;
                    Calendar           cal = dfi.Calendar;
                    int anio = DateTime.Now.Year;
                    // System.Windows.Forms.MessageBox.Show(anio.ToString());
                    int NumSemana = cal.GetWeekOfYear(DateTime.Now.Date, dfi.CalendarWeekRule, dfi.FirstDayOfWeek);
                    //System.Windows.Forms.MessageBox.Show(NumSemana.ToString());

                    //Obtenemos el Id de la semana de programacion
                    ProgramaSemanal programa = new ProgramaSemanal();
                    programa.PERI_NumSemana = NumSemana;
                    programa.PERI_Anio      = anio;

                    ProgramaDAO progSemDAO = new ProgramaDAO();
                    int         IDprog     = progSemDAO.ObtenerIDProgramaSemanal(programa);

                    if (IDprog > 0)
                    {
                        historialAR.PERI_Interno = IDprog;
                    }
                    else
                    {
                        IDprog = progSemDAO.InsertarProgramaSemanal(programa);
                        if (IDprog > 0)
                        {
                            historialAR.PERI_Interno = IDprog;
                        }
                    }

                    //programamos la actividad rutinaria
                    int res = progDAO.ProgramarActividadesRutinarias(historialAR, AUDI_UsuarioEdita);

                    if (res > 0)
                    {
                        result++;
                    }
                }
                return(result);
            }
            else
            {
                return(0);
            }
        }
        public int CantidadRegistrosParaProgramarActividadesPorLocalizacion(LocalizacionS localizacion, PeriodoProgramacion periodo)
        {
            ProgramacionActividadesDAO progDAO = new ProgramacionActividadesDAO();
            DateTime?FechaLimite = ObtenerFechaLimite(periodo);

            return(progDAO.ObtenerTotalNumRegistros_ActividadesRIniciadasPorLocalizacion_HastaFechaLimite(localizacion, FechaLimite));
        }
        public int EditarFechasProgramadasActividadesRutinarias(string fechasSiguientes, int AUDI_UsuarioEdita)
        {
            //formato de 'fechasSiguientes': 143;03/10/2013|139;03/10/2013|131;09/10/2013|127;09/10/2013
            int result = 0;

            if (fechasSiguientes != "")
            {
                ProgramacionActividadesDAO progDAO = new ProgramacionActividadesDAO();
                HistorialAR  historialAR           = null;
                string[]     IDs_Con_fechas        = fechasSiguientes.Split('|');
                ControlGrupo CG = new ControlGrupo();
                foreach (string IDs_Fechas in IDs_Con_fechas)
                {
                    historialAR = new HistorialAR();
                    string[] fecha = IDs_Fechas.Split(';');
                    historialAR.HIAR_Interno = Convert.ToInt32(fecha[0]);

                    //historialAR.HIAR_FechaProgramado = Convert.ToDateTime(fecha[1]);

                    historialAR.HIAR_FechaProgramado = DateTime.ParseExact(fecha[1], "dd/MM/yyyy", null);
                    int res = progDAO.EditarFechasProgramadasActividadesRutinarias(historialAR, AUDI_UsuarioEdita);
                    if (res > 0)
                    {
                        result++;
                    }
                }
                return(result);
            }
            else
            {
                return(0);
            }
        }
        public int CantidadRegistrosParaProgramarActividades(PeriodoProgramacion periodo)
        {
            ProgramacionActividadesDAO progDAO = new ProgramacionActividadesDAO();
            DateTime?FechaLimite = ObtenerFechaLimite(periodo);

            return(progDAO.ObtenerTotalNumRegistros_ActividadesR_Iniciadas_HastaFechaLimite(FechaLimite));
        }
        public IEnumerable <ActividadR> ObtenerActividadesProgramablesIniciadas(PeriodoProgramacion periodo, int TamanioPagina, int NumeroPagina)
        {
            List <ActividadR> ActividadesRutinarias = new List <ActividadR>();
            DateTime?         FechaLimite           = ObtenerFechaLimite(periodo);

            ProgramacionActividadesDAO progDAO     = new ProgramacionActividadesDAO();
            List <ActividadR>          Actividades = progDAO.ObtenerActividadesR_Iniciadas_HastaFechaLimite(TamanioPagina, NumeroPagina, FechaLimite);

            foreach (ActividadR objActividad in Actividades)
            {
                //Obtenemos el nombre del equipo/inmueble
                if (objActividad.EQUI_Interno != null)
                {
                    Equipo    equipo    = new Equipo();
                    EquipoDAO equipoDAO = new EquipoDAO();
                    equipo.EQUI_Interno = objActividad.EQUI_Interno;
                    equipo = equipoDAO.ObtenerEquipoPorID(equipo);
                    //System.Windows.Forms.MessageBox.Show(equipo.EQUI_Descripcion);


                    if (equipo == null)
                    {
                        continue;
                    }

                    objActividad.EQUI_Descripcion = equipo.EQUI_Descripcion;

                    //obtenemos la localizacion actual del equipo
                    LocalizacionEquipo localEquipo = equipoDAO.ObtenerUltimaLocalizacionEquipo(equipo);
                    if (localEquipo != null)//si no pongo esto no funciona
                    {
                        objActividad.EQUI_LocalizacionExtendida = localEquipo.LOCA_NombreExtendido;
                    }
                    else
                    {
                        objActividad.EQUI_LocalizacionExtendida = null;
                    }
                }
                if (objActividad.LOCA_Interno != null)
                {
                    LocalizacionS    localizacions = new LocalizacionS();
                    LocalizacionSDAO locasDAO      = new LocalizacionSDAO();
                    localizacions.LOCA_Interno = objActividad.LOCA_Interno;
                    localizacions = locasDAO.ObtenerLocalizacion(localizacions);
                    objActividad.LOCA_NombreExtendido = localizacions.LOCA_NombreExtendido;
                }
                //calculamos los dias de retrazo
                if (objActividad.HIAR_FechaProgramado == null)
                {
                    objActividad.HIAR_Retrazo = (DateTime.Now - objActividad.HIAR_SiguienteFecha.Value).Days;
                }
                else
                {
                    objActividad.HIAR_Retrazo = (DateTime.Now - objActividad.HIAR_FechaProgramado.Value).Days;
                }
                ActividadesRutinarias.Add(objActividad);
            }
            return(ActividadesRutinarias);
        }
        public int EditarPeriodoDeProgramacionDeActividades(PeriodoProgramacion periodo, int AUDI_UsuarioEdita)
        {
            ProgramacionActividadesDAO progDAO = new ProgramacionActividadesDAO();

            return(progDAO.EditarPeriodoDeProgramacionActividades(periodo, AUDI_UsuarioEdita));
        }
        public PeriodoProgramacion ObtenerPeriodoDeProgramacionDeActividades()
        {
            ProgramacionActividadesDAO progDAO = new ProgramacionActividadesDAO();

            return(progDAO.ObtenerPeriodoProgramacionActivo());
        }