//TODO: modificar que agregue los proyectos y modificar la base de datos para que acepte el peso del proyecto
        private void proyectoDGW_CellValueChanged(object sender, DataGridViewCellEventArgs e)
        {
            try {
                if (proyectoDGW.Columns[e.ColumnIndex].Name == "Proyectos")
                {
                    DataGridViewRow row = proyectoDGW.Rows[e.RowIndex];
                    DataGridViewCheckBoxCell cellSelecion = row.Cells[0] as DataGridViewCheckBoxCell;
                    if (cellSelecion.Value != null)
                    {
                        if (Convert.ToBoolean(cellSelecion.Value))
                        {
                            PROYECTO Py = project.GetProject((Guid)row.Cells["Codigo"].Value);
                            PROYECTOSPORETAPA projectStageFather = new PROYECTOSPORETAPA();

                            projectStageFather.NROPROYCONTENEDOR = newProject.NROPROY;
                            projectStageFather.NROPROYCONTENIDO = Py.NROPROY;
                            projectStageFather.ETAPA = newProject.ETAPA + 1;
                            projectStageFather.PESO = row.Cells["PesoProyecto"].Value != null ? (decimal)row.Cells["PesoProyecto"].Value : 0;

                            if (Py != null)
                            {
                                newProject.PROYECTOSPORETAPA.Add(projectStageFather); //Proyectos por por etapa va a ser la lista de los hijos
                                Py.PROYECTOSPORETAPA1.Add(projectStageFather); // proyectos por etapa 1 va a ser el campo para el padre
                                Py.ETAPA = projectStageFather.ETAPA + 1;
                            }
                        }
                        else
                        {

                            PROYECTO Py = project.GetProject((Guid)row.Cells["Codigo"].Value);
                            PROYECTOSPORETAPA projectStage = new PROYECTOSPORETAPA();
                            projectStage.NROPROYCONTENEDOR = newProject.NROPROY;
                            projectStage.NROPROYCONTENIDO = Py.NROPROY;
                            projectStage.ETAPA = newProject.ETAPA + 1;
                            projectStage.PESO = row.Cells["PesoProyecto"].Value != null ? (decimal)row.Cells["PesoProyecto"].Value : 0;
                            if (Py != null)
                            {
                                newProject.PROYECTOSPORETAPA.Remove(projectStage);
                                Py.PROYECTOSPORETAPA1.Remove(projectStage);
                                Py.ETAPA = projectStage.ETAPA - 1;
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Error_Form errorForm = new Error_Form(ex.Message);
                errorForm.MdiParent = ParentForm;
                errorForm.Show();
            }
        }
Beispiel #2
0
 //Obtener un los hijos de un proyecto con un guid del proyecto y ademas los proyectos que esten libres que no tengan padre
 public object GetProjects(PROYECTO pj)
 {
     try
     {
         List<PROYECTO> listPy = new List<PROYECTO>();
         PROYECTOSPORETAPA PBS = new PROYECTOSPORETAPA();
         PBS.NROPROYCONTENEDOR = pj.NROPROY;
         listPy = this.GetProjectsFree(pj).ToList(); // obtenemos los proyectos que no tienen un padre y que no sea el proyecto que se va actualizar
         var query = from p in this.sifcaRepository.PROYECTOSPORETAPA where (p.NROPROYCONTENEDOR == pj.NROPROY) select p; //obtenemos los hijos (proyectos por etapa) de este proyecto
         foreach (PROYECTOSPORETAPA pyBstate in query.ToList())
         {
             listPy.Add(this.GetProject(pyBstate.NROPROYCONTENIDO));
         }
         return listPy;
     }
     catch (Exception ex)
     {
         return ex.Message;
     }
 }