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 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);
            }
        }
Beispiel #3
0
        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);
            }
        }