public bool actualizarTarea()
        {
            bool        exito       = false;
            clsConexion objConexion = new clsConexion();

            if (objConexion.abrirConexion())
            {
                if (objConexion.beginTransaction())
                {
                    DataTable dtTiempoTarea = new DataTable();
                    string    query         = string.Format("select tiempo from tarea where id = {0};", this.id);
                    dtTiempoTarea = objConexion.consultaTransaction(query);
                    if (dtTiempoTarea.Rows.Count == 1)
                    {
                        string statement = string.Format("update tarea set descripcion = '{0}', costo = '{1}', tiempo = {2} where id = {3};", this.descripcion, this.costo, this.tiempo, this.id);
                        if (objConexion.gestionTransaction(statement) == 1)
                        {
                            DataTable dtTiempoProyecto = new DataTable();
                            query            = string.Format("select tiempo_total from proyecto where id = {0};", this.objProyecto.getId_Proyecto());
                            dtTiempoProyecto = objConexion.consultaTransaction(query);
                            if (dtTiempoProyecto.Rows.Count == 1)
                            {
                                int TiempoProyecto = Convert.ToInt32(dtTiempoProyecto.Rows[0][0]) - Convert.ToInt32(dtTiempoTarea.Rows[0][0]);
                                if (TiempoProyecto < 0)
                                {
                                    TiempoProyecto = 0;
                                }
                                TiempoProyecto += this.tiempo;
                                statement       = string.Format("update proyecto set tiempo_total = {0} where id = {1};", TiempoProyecto, this.objProyecto.getId_Proyecto());
                                if (objConexion.gestionTransaction(statement) == 1)
                                {
                                    objConexion.commit();
                                    exito = true;
                                }
                                else
                                {
                                    objConexion.rollback();
                                }
                            }
                            else
                            {
                                objConexion.rollback();
                            }
                        }
                        else
                        {
                            objConexion.rollback();
                        }
                    }
                }
                objConexion.cerrarConexion();
            }
            return(exito);
        }
        public bool eliminarTarea(int _id_proyecto, string _costo, int _tiempo)
        {
            bool        exito       = false;
            clsConexion objConexion = new clsConexion();

            if (objConexion.abrirConexion())
            {
                if (objConexion.beginTransaction())
                {
                    string statement = string.Format("delete tarea where id = {0};", this.id);
                    if (objConexion.gestionTransaction(statement) == 1)
                    {
                        DataTable dtProyecto = new DataTable();
                        string    query      = string.Format("select costo_total, tiempo_total from proyecto where id = {0};", _id_proyecto);
                        dtProyecto = objConexion.consultaTransaction(query);
                        if (dtProyecto.Rows.Count == 1)
                        {
                            string costofinal  = "" + (Convert.ToDouble(dtProyecto.Rows[0][0]) - Convert.ToDouble(_costo));
                            int    tiempofinal = (Convert.ToInt32(dtProyecto.Rows[0][1]) - _tiempo);
                            if (Convert.ToDouble(costofinal) < 0)
                            {
                                costofinal = "0";
                            }
                            if (tiempofinal < 0)
                            {
                                tiempofinal = 0;
                            }
                            statement = string.Format("update proyecto set costo_total = '{0}', tiempo_total = {1} where id = {2};", costofinal, tiempofinal, _id_proyecto);
                            if (objConexion.gestionTransaction(statement) == 1)
                            {
                                objConexion.commit();
                                exito = true;
                            }
                            else
                            {
                                objConexion.rollback();
                            }
                        }
                        else
                        {
                            objConexion.rollback();
                        }
                    }
                    else
                    {
                        objConexion.rollback();
                    }
                }
                objConexion.cerrarConexion();
            }
            return(exito);
        }
        public bool nuevoDetalleTarea(int _id_proyecto, string _costo)
        {
            bool        exito       = false;
            clsConexion objConexion = new clsConexion();

            if (objConexion.abrirConexion())
            {
                if (objConexion.beginTransaction())
                {
                    string statement = string.Format("insert into detalletarea values({0}, {1}, '{2}', {3});", this.objTarea.getIdTarea(), this.objRecurso.getIdRecurso(), this.monto, this.cantidad);
                    if (objConexion.gestionTransaction(statement) == 1)
                    {
                        DataTable dtCantidadRecursos = new DataTable();
                        string    query = string.Format("select stock from recurso where id = {0};", this.objRecurso.getIdRecurso());
                        dtCantidadRecursos = objConexion.consultaTransaction(query);
                        if (dtCantidadRecursos.Rows.Count == 1)
                        {
                            int stock = (Convert.ToInt32(dtCantidadRecursos.Rows[0][0]) - this.cantidad);
                            if (stock < 0)
                            {
                                stock = 0;
                            }
                            statement = string.Format("update recurso set stock = {0} where id = {1};", stock, this.objRecurso.getIdRecurso());
                            if (objConexion.gestionTransaction(statement) == 1)
                            {
                                string costoActualizado = "" + (Convert.ToDouble(_costo) + Convert.ToDouble(this.monto));
                                statement = string.Format("update tarea set costo = '{0}' where id = {1};", costoActualizado, this.objTarea.getIdTarea());
                                if (objConexion.gestionTransaction(statement) == 1)
                                {
                                    DataTable dtCostoProyecto = new DataTable();
                                    query           = string.Format("select costo_total from proyecto where id = {0};", _id_proyecto);
                                    dtCostoProyecto = objConexion.consultaTransaction(query);
                                    if (dtCostoProyecto.Rows.Count == 1)
                                    {
                                        costoActualizado = "" + (Convert.ToDouble(costoActualizado) + Convert.ToDouble(dtCostoProyecto.Rows[0][0]));
                                        statement        = string.Format("update proyecto set costo_total = '{0}' where id = {1};", costoActualizado, _id_proyecto);
                                        if (objConexion.gestionTransaction(statement) == 1)
                                        {
                                            objConexion.commit();
                                            exito = true;
                                        }
                                        else
                                        {
                                            objConexion.rollback();
                                        }
                                    }
                                    else
                                    {
                                        objConexion.rollback();
                                    }
                                }
                                else
                                {
                                    objConexion.rollback();
                                }
                            }
                            else
                            {
                                objConexion.rollback();
                            }
                        }
                        else
                        {
                            objConexion.rollback();
                        }
                    }
                    else
                    {
                        objConexion.rollback();
                    }
                }
                objConexion.cerrarConexion();
            }
            return(exito);
        }
        public bool eliminarDetalle(int _id_proyecto, string _costo)
        {
            bool        exito       = false;
            clsConexion objConexion = new clsConexion();

            if (objConexion.abrirConexion())
            {
                if (objConexion.beginTransaction())
                {
                    DataTable dtMontoDetalle = new DataTable();
                    string    query          = string.Format("select monto from detalletarea where id = {0};", this.id);
                    dtMontoDetalle = objConexion.consultaTransaction(query);
                    if (dtMontoDetalle.Rows.Count == 1)
                    {
                        string statement = string.Format("delete detalletarea where id = {0};", this.id);
                        if (objConexion.gestionTransaction(statement) == 1)
                        {
                            string costoActualizado = "" + (Convert.ToDouble(_costo) - Convert.ToDouble(dtMontoDetalle.Rows[0][0]));
                            if (Convert.ToDouble(costoActualizado) < 0)
                            {
                                costoActualizado = "0";
                            }
                            statement = string.Format("update tarea set costo = '{0}' where id = {1};", costoActualizado, this.objTarea.getIdTarea());
                            if (objConexion.gestionTransaction(statement) == 1)
                            {
                                DataTable dtCostoProyecto = new DataTable();
                                query           = string.Format("select costo_total from proyecto where id = {0};", _id_proyecto);
                                dtCostoProyecto = objConexion.consultaTransaction(query);
                                if (dtCostoProyecto.Rows.Count == 1)
                                {
                                    costoActualizado = "" + (Convert.ToDouble(dtCostoProyecto.Rows[0][0]) - Convert.ToDouble(dtMontoDetalle.Rows[0][0]));
                                    if (Convert.ToDouble(costoActualizado) < 0)
                                    {
                                        costoActualizado = "0";
                                    }
                                    statement = string.Format("update proyecto set costo_total = '{0}' where id = {1};", costoActualizado, _id_proyecto);
                                    if (objConexion.gestionTransaction(statement) == 1)
                                    {
                                        objConexion.commit();
                                        exito = true;
                                    }
                                    else
                                    {
                                        objConexion.rollback();
                                    }
                                }
                                else
                                {
                                    objConexion.rollback();
                                }
                            }
                            else
                            {
                                objConexion.rollback();
                            }
                        }
                        else
                        {
                            objConexion.rollback();
                        }
                    }
                }
                objConexion.cerrarConexion();
            }
            return(exito);
        }