/// <summary> /// Método que permite eliminar /// un registro en la tabla departamentoProyecto /// </summary> /// <param name="poDepartamentoProyecto">departamentoProyecto a eliminar</param> /// <returns>Int valor del resultado de la ejecución de la sentencia</returns> public static int deleteDepartamentoProyectoMasivo(cls_departamentoProyecto poDepartamentoProyecto) { int vi_resultado; try { String vs_comando = "PA_cont_departamento_proyectoDeleteMasivo"; cls_parameter[] vu_parametros = { new cls_parameter("@paramPK_proyecto", poDepartamentoProyecto.pPK_proyecto) }; cls_sqlDatabase.beginTransaction(); vi_resultado = cls_sqlDatabase.executeNonQuery(vs_comando, true, vu_parametros); cls_interface.insertarTransacccionBitacora(cls_constantes.ELIMINAR, cls_constantes.DEPARTAMENTO_PROYECTO, poDepartamentoProyecto.pPK_departamento + "/Masivo", poDepartamentoProyecto.pUsuarioTransaccion); cls_sqlDatabase.commitTransaction(); return vi_resultado; } catch (Exception po_exception) { cls_sqlDatabase.rollbackTransaction(); throw new Exception("Ocurrió un error al eliminar el registro.", po_exception); } }
/// <summary> /// Método que carga la información /// de un proyecto. /// </summary> //private void cargarObjetoProyecto() //{ // cls_proyecto vo_proyecto = null; // try // { // vo_proyecto = new cls_proyecto(); // vo_proyecto = (cls_proyecto)cls_variablesSistema.vs_proyecto; // this.habilitarControles(true); // } // catch (Exception po_exception) // { // throw new Exception("Ocurrió un error al cargar el registro de proyecto.", po_exception); // } //} /// <summary> /// Guarda la información se que se encuentra /// en el formulario Web, ya sea /// para ingresar o actualizarla /// </summary> /// <returns>Int valor devuelvo por el motor de bases de datos</returns> private int guardarDatos() { int vi_resultado = 1; try { cls_proyecto vo_proyecto = this.crearObjetoProyecto(); cls_departamento vo_dpto = new cls_departamento(); cls_departamentoProyecto vo_dptoProyecto = new cls_departamentoProyecto(); List<cls_departamento> vl_departamentoAsociado = departamentosAsociados(); List<cls_departamentoProyecto> vl_departamentoProyecto = new List<cls_departamentoProyecto>(); //El proyecto es el mismo para todos los departamentos que se vayan a insertar vo_dptoProyecto.pProyecto = vo_proyecto; //Se intenta realizar la inserción del proyecto en la tabla correspondiente vi_resultado = cls_gestorProyecto.insertProyecto(vo_proyecto); //Para cada departamento, se realiza la correspondiente inserción con el proyecto específico foreach (cls_departamento vo_departamento in vl_departamentoAsociado) { vo_dptoProyecto.pDepartamento = vo_departamento; vi_resultado = cls_gestorDepartamentoProyecto.insertDepartamentoProyecto(vo_dptoProyecto); } //Se realiza la inserción en las demás tablas, entregable/componente/paquete/actividad, con respecto al proyecto copiado vi_resultado = cls_gestorProyecto.insertProyectoCopia(vo_proyecto.pPK_proyecto, cls_variablesSistema.vs_proyecto.pPK_proyecto); return vi_resultado; } catch (Exception po_exception) { throw new Exception("Ocurrió un error al guardar el registro de copia del proyecto.", po_exception); } }
/// <summary> /// Guarda la información se que se encuentra /// en el formulario Web, ya sea /// para ingresar o actualizarla /// </summary> /// <returns>Int valor devuelvo por el motor de bases de datos</returns> private int guardarDatos() { int vi_resultado = 1; try { cls_proyecto vo_proyecto = this.crearObjetoProyecto(); cls_departamento vo_dpto = new cls_departamento(); cls_departamentoProyecto vo_dptoProyecto = new cls_departamentoProyecto(); List<cls_departamento> vl_departamentoAsociado = departamentosAsociados(); List<cls_departamentoProyecto> vl_departamentoProyecto = new List<cls_departamentoProyecto>(); //El proyecto es el mismo para todos los departamentos que se vayan a insertar vo_dptoProyecto.pProyecto = vo_proyecto; switch (cls_variablesSistema.tipoEstado) { case cls_constantes.AGREGAR: //Se intenta realizar la inserción del proyecto en la tabla correspondiente vi_resultado = cls_gestorProyecto.insertProyecto(vo_proyecto); //Para cada departamento, se realiza la correspondiente inserción con el proyecto específico foreach (cls_departamento vo_departamento in vl_departamentoAsociado) { vo_dptoProyecto.pDepartamento = vo_departamento; vi_resultado = cls_gestorDepartamentoProyecto.insertDepartamentoProyecto(vo_dptoProyecto); } break; case cls_constantes.EDITAR: vi_resultado = cls_gestorProyecto.updateProyecto(vo_proyecto); //Se revisa cada departamento en la lista que presenta la variable de sistema de "proyecto", si la lista de deparmentos asociados //no cuenta con el departamento de contenido en la lista de la variable de sistema, esta última se intenta eliminar foreach (cls_departamento vo_departamento in cls_variablesSistema.vs_proyecto.pDepartamentoLista) { if (!(vl_departamentoAsociado.Where(dep => dep.pPK_departamento == vo_departamento.pPK_departamento).Count() > 0)) { vo_dptoProyecto.pDepartamento = vo_departamento; vi_resultado = cls_gestorDepartamentoProyecto.deleteDepartamentoProyecto(vo_dptoProyecto); } } //Si alguno de los departamentos recién asociados no se encuentra en la variable del sistema, se procede a realizar la inserción de la misma foreach (cls_departamento vo_departamento in vl_departamentoAsociado) { if (!(cls_variablesSistema.vs_proyecto.pDepartamentoLista.Where(dep => dep.pPK_departamento == vo_departamento.pPK_departamento).Count() > 0)) { vo_dptoProyecto.pDepartamento = vo_departamento; vi_resultado = cls_gestorDepartamentoProyecto.insertDepartamentoProyecto(vo_dptoProyecto); } } break; default: break; } return vi_resultado; } catch (Exception po_exception) { throw new Exception("Ocurrió un error al guardar el registro de proyecto.", po_exception); } }
/// <summary> /// Método que elimina un proyecto /// </summary> /// <param name="po_proyecto">Permiso a eliminar</param> private void eliminarDatos(cls_proyecto po_proyecto) { //Primero se intenta eliminar los departamentos asociados a un proyecto, se presenta una excepción si estos tienen también entregables asociados try { int vi_resultado = 1; cls_departamentoProyecto vo_departamentoProyecto = new cls_departamentoProyecto(); vo_departamentoProyecto.pProyecto = po_proyecto; vi_resultado = cls_gestorDepartamentoProyecto.deleteDepartamentoProyectoMasivo(vo_departamentoProyecto); } catch (Exception po_exception) { throw new Exception("No se ha logralo eliminar los departamentos asociados al proyecto seleccionado.", po_exception); } //Si se eliminaron de manera correcta los departamentos asociados a proyecto, se procede a eliminar el proyecto en si try { cls_gestorProyecto.deleteProyecto(po_proyecto); this.llenarGridView(); this.upd_Principal.Update(); } catch (Exception po_exception) { throw new Exception("No se ha logralo eliminar el registro seleccionado, el proyecto podría presentar entregables asociados.", po_exception); } }
/// <summary> /// Método que obtiene los departamentos asociados a un proyecto específicos /// </summary> private void cargarDepartamentoProyecto(cls_proyecto po_proyecto) { DataSet vo_dataSet = new DataSet(); try { vo_dataSet = cls_gestorDepartamentoProyecto.selectDepartamentoProyecto(po_proyecto); lbx_depasociados.DataSource = vo_dataSet; lbx_depasociados.DataTextField = "nombre"; lbx_depasociados.DataValueField = "PK_departamento"; lbx_depasociados.DataBind(); if (lbx_depasociados.Items.Count > 0) { cls_variablesSistema.vs_proyecto = po_proyecto; foreach (ListItem item in lbx_depasociados.Items) { cls_departamento vo_departamento = new cls_departamento(); cls_departamentoProyecto vo_deptoProyecto = new cls_departamentoProyecto(); lbx_departamentos.Items.Remove(item); vo_departamento.pPK_departamento = Convert.ToInt32(item.Value); vo_departamento.pNombre = item.Text; vo_deptoProyecto.pProyecto = po_proyecto; vo_deptoProyecto.pDepartamentoList.Add(vo_departamento); cls_variablesSistema.vs_proyecto.pDepartamentoLista.Add(vo_departamento); cls_variablesSistema.vs_proyecto.pDptoProyLista.Add(vo_deptoProyecto); } } else { limpiarVariablesSistema(); } } catch (Exception po_exception) { throw new Exception("Ocurrió un error al cargar los departamentos asociados al proyecto.", po_exception); } }