private void dgvCronPDI_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
        {
            PeriodoWS.gerenciaPeriodo data = dgvCronPDI.Rows[e.RowIndex].DataBoundItem as PeriodoWS.gerenciaPeriodo;

            dgvCronPDI.Rows[e.RowIndex].Cells["ID5"].Value     = data.gerencia.idGerencia;
            dgvCronPDI.Rows[e.RowIndex].Cells["Nombre5"].Value = data.gerencia.nombre;
        }
        private void frmAdmGestCronAgregarPeriodo_Load(object sender, EventArgs e)
        {
            GerenciaWS.gerencia[] lista = daoGerencia.listarGerencias();

            BindingList <GerenciaWS.gerencia> gerencias = new BindingList <GerenciaWS.gerencia>();

            if (lista != null)
            {
                gerencias = new BindingList <GerenciaWS.gerencia>(lista);
            }
            //Crear la lista de gerenciaXperiodos
            gerenciasPeriodos         = new BindingList <PeriodoWS.gerenciaPeriodo>();
            dtpHoraNotificacion.Value = DateTime.Parse("08:00:00");
            foreach (GerenciaWS.gerencia g in gerencias)
            {
                PeriodoWS.gerenciaPeriodo gp = new PeriodoWS.gerenciaPeriodo();
                gp.gerencia            = new PeriodoWS.gerencia();
                gp.gerencia.nombre     = g.nombre;
                gp.gerencia.idGerencia = g.idGerencia;

                gp.fechaInicioPlan      = DateTime.Now;
                gp.fechaFinPlan         = DateTime.Now;
                gp.fechaInicioEvalPrevD = DateTime.Now;
                gp.fechaFinEvalPrevD    = DateTime.Now;
                gp.fechaInicioEvalFinD  = DateTime.Now;
                gp.fechaFinEvalFinD     = DateTime.Now;
                gp.fechaInicioCal       = DateTime.Now;
                gp.fechaFinCal          = DateTime.Now;
                gp.fechaInicioPDI       = DateTime.Now;
                gp.fechaFinPDI          = DateTime.Now;

                gp.fechaInicioPlanSpecified      = true;
                gp.fechaFinPlanSpecified         = true;
                gp.fechaInicioEvalPrevDSpecified = true;
                gp.fechaFinEvalPrevDSpecified    = true;
                gp.fechaInicioEvalFinDSpecified  = true;
                gp.fechaFinEvalFinDSpecified     = true;
                gp.fechaInicioCalSpecified       = true;
                gp.fechaFinCalSpecified          = true;
                gp.fechaInicioPDISpecified       = true;
                gp.fechaFinPDISpecified          = true;

                gerenciasPeriodos.Add(gp);
            }

            dgvCronPlanificacion.AutoGenerateColumns = false;
            dgvCronEvPrevia.AutoGenerateColumns      = false;
            dgvCronEvFinal.AutoGenerateColumns       = false;
            dgvCronPDI.AutoGenerateColumns           = false;
            dgvCalibNotas.AutoGenerateColumns        = false;

            //POSIBLE ERROR SI GERENCIASPERIODOS ES LISTA VACIA
            dgvCronPlanificacion.DataSource = gerenciasPeriodos;
            dgvCronEvPrevia.DataSource      = gerenciasPeriodos;
            dgvCronEvFinal.DataSource       = gerenciasPeriodos;
            dgvCronPDI.DataSource           = gerenciasPeriodos;
            dgvCalibNotas.DataSource        = gerenciasPeriodos;
        }
        //Funcion para actualizar las fechas de inicio/fin de una gerencia

        private void actualizarGP(PeriodoWS.gerenciaPeriodo g)
        {
            for (int i = 0; i < gerenciasPeriodos.Count(); i++)
            {
                if (gerenciasPeriodos[i].gerencia.idGerencia == g.gerencia.idGerencia)
                {
                    gerenciasPeriodos[i] = g;
                }
            }
        }
        void mostrarFormularioFechaYActualizar(DataGridViewCellEventArgs e, Etapas etapa)
        {
            PeriodoWS.gerenciaPeriodo gp = new PeriodoWS.gerenciaPeriodo();

            if (e.ColumnIndex == 2)
            {
                frmAdmGestCronVerDetalleFecha form = new frmAdmGestCronVerDetalleFecha();
                form.Titulo = "Fecha de Inicio:";
                if (form.ShowDialog() == DialogResult.OK)
                {
                    DateTime fecha = form.FechaSeleccionada;


                    if (etapa == Etapas.Planificacion)
                    {
                        gp = (PeriodoWS.gerenciaPeriodo)dgvCronPlanificacion.CurrentRow.DataBoundItem;
                        gp.fechaInicioPlan = fecha;
                    }
                    else if (etapa == Etapas.PreviaD)
                    {
                        gp = (PeriodoWS.gerenciaPeriodo)dgvCronEvPrevia.CurrentRow.DataBoundItem;
                        gp.fechaInicioEvalPrevD = fecha;
                    }
                    else if (etapa == Etapas.FinalD)
                    {
                        gp = (PeriodoWS.gerenciaPeriodo)dgvCronEvFinal.CurrentRow.DataBoundItem;
                        gp.fechaInicioEvalFinD = fecha;
                    }
                    else if (etapa == Etapas.Calibracion)
                    {
                        gp = (PeriodoWS.gerenciaPeriodo)dgvCalibNotas.CurrentRow.DataBoundItem;
                        gp.fechaInicioCal = fecha;
                    }
                    else if (etapa == Etapas.PDI)
                    {
                        gp = (PeriodoWS.gerenciaPeriodo)dgvCronPDI.CurrentRow.DataBoundItem;
                        gp.fechaInicioPDI = fecha;
                    }

                    actualizarGP(gp);
                    dgvCronPlanificacion.DataSource = gerenciasPeriodos;
                    dgvCronEvPrevia.DataSource      = gerenciasPeriodos;
                    dgvCronEvFinal.DataSource       = gerenciasPeriodos;
                    dgvCronPDI.DataSource           = gerenciasPeriodos;
                    dgvCalibNotas.DataSource        = gerenciasPeriodos;
                }
            }
            else if (e.ColumnIndex == 3)
            {
                frmAdmGestCronVerDetalleFecha form = new frmAdmGestCronVerDetalleFecha();
                form.Titulo = "Fecha de Fin:";
                if (form.ShowDialog() == DialogResult.OK)
                {
                    DateTime fecha = form.FechaSeleccionada;

                    if (etapa == Etapas.Planificacion)
                    {
                        gp = (PeriodoWS.gerenciaPeriodo)dgvCronPlanificacion.CurrentRow.DataBoundItem;
                        gp.fechaFinPlan = fecha;
                    }
                    else if (etapa == Etapas.PreviaD)
                    {
                        gp = (PeriodoWS.gerenciaPeriodo)dgvCronEvPrevia.CurrentRow.DataBoundItem;
                        gp.fechaFinEvalPrevD = fecha;
                    }
                    else if (etapa == Etapas.FinalD)
                    {
                        gp = (PeriodoWS.gerenciaPeriodo)dgvCronEvFinal.CurrentRow.DataBoundItem;
                        gp.fechaFinEvalFinD = fecha;
                    }
                    else if (etapa == Etapas.Calibracion)
                    {
                        gp             = (PeriodoWS.gerenciaPeriodo)dgvCalibNotas.CurrentRow.DataBoundItem;
                        gp.fechaFinCal = fecha;
                    }
                    else if (etapa == Etapas.PDI)
                    {
                        gp             = (PeriodoWS.gerenciaPeriodo)dgvCronPDI.CurrentRow.DataBoundItem;
                        gp.fechaFinPDI = fecha;
                    }
                    actualizarGP(gp);
                    dgvCronPlanificacion.DataSource = gerenciasPeriodos;
                    dgvCronEvPrevia.DataSource      = gerenciasPeriodos;
                    dgvCronEvFinal.DataSource       = gerenciasPeriodos;
                    dgvCronPDI.DataSource           = gerenciasPeriodos;
                    dgvCalibNotas.DataSource        = gerenciasPeriodos;
                }
            }
        }