protected void btnAdd_Click(object sender, EventArgs e)
        {
            int origen         = int.Parse(ddlOrigen.SelectedValue);
            int destino        = origen;
            int usuario        = int.Parse(Session["IdUser"].ToString());
            int financiamiento = 0;


            TechoFinancieroTMPtransferencias obj = new TechoFinancieroTMPtransferencias();



            List <TechoFinancieroTMPtransferencias> lista = uow.TechoFinancieroTMPtransferenciasBL.Get(p => p.Usuario == usuario && p.Financiamiento == financiamiento && p.OrigenId == origen && p.DestinoId == destino).ToList();

            if (lista.Count > 0)
            {
                uow.Errors.Add("Las unidades presupuestales Origen y Destino que indico ya están registradas");
            }



            obj.Usuario        = usuario;
            obj.Financiamiento = 0;
            obj.OrigenId       = origen;
            obj.DestinoId      = destino;
            obj.Importe        = decimal.Parse(txtImporte.Value);

            uow.TechoFinancieroTMPtransferenciasBL.Insert(obj);



            if (uow.Errors.Count == 0)
            {
                uow.SaveChanges();
            }

            if (uow.Errors.Count == 0)
            {
                MostrarDetalle();
                txtImporte.Value = string.Empty;
            }
            else
            {
                divMsgSuccess.Style.Add("display", "none");
                divMsgFail.Style.Add("display", "block");

                string mensaje;
                mensaje = string.Empty;
                foreach (string cad in uow.Errors)
                {
                    mensaje = mensaje + cad + "<br>";
                }

                lblMensajeFail.Text = mensaje;
            }
        }
        protected void imgBtnEliminar_Click(object sender, ImageClickEventArgs e)
        {
            GridViewRow row = (GridViewRow)((ImageButton)sender).NamingContainer;
            int         id  = int.Parse(gridDetalle.DataKeys[row.RowIndex].Values["Id"].ToString());

            TechoFinancieroTMPtransferencias obj = uow.TechoFinancieroTMPtransferenciasBL.GetByID(id);

            uow.TechoFinancieroTMPtransferenciasBL.Delete(obj);
            uow.SaveChanges();
            MostrarDetalle();
        }
        protected void btnAdd_Click(object sender, EventArgs e)
        {
            int origen         = int.Parse(ddlOrigen.SelectedValue);
            int destino        = int.Parse(ddlDestino.SelectedValue);
            int usuario        = int.Parse(Session["IdUser"].ToString());
            int financiamiento = int.Parse(_financiamiento.Text);

            decimal importeDisponible;
            decimal importeTransferencias;
            decimal importe;

            TechoFinancieroTMPtransferencias obj = new TechoFinancieroTMPtransferencias();

            uow.Errors.Clear();
            if (origen == destino)
            {
                uow.Errors.Add("La unidad presupuestal ORIGEN no puede ser la misma que la unidad presupuestal DESTINO");
            }


            List <TechoFinancieroTMPtransferencias> lista = uow.TechoFinancieroTMPtransferenciasBL.Get(p => p.Usuario == usuario && p.Financiamiento == financiamiento && p.OrigenId == origen && p.DestinoId == destino).ToList();

            if (lista.Count > 0)
            {
                uow.Errors.Add("Las unidades presupuestales Origen y Destino que indico ya están registradas");
            }

            //techo financiero disponible de la unidad presupuestal Origen
            TechoFinancieroUnidadPresupuestal tfup = uow.TechoFinancieroUnidadPresuestalBusinessLogic.Get(p => p.TechoFinancieroId == financiamiento && p.UnidadPresupuestalId == origen).First();

            importeDisponible     = (tfup.Importe - tfup.DetalleObraFinanciamiento.Sum(p => p.Importe));
            importeTransferencias = uow.TechoFinancieroTMPtransferenciasBL.Get(p => p.Usuario == usuario && p.Financiamiento == financiamiento && p.OrigenId == origen).ToList().Sum(q => q.Importe);
            importe = decimal.Parse(txtImporte.Value);

            if (importeDisponible < (importeTransferencias + importe))
            {
                uow.Errors.Add("El importe que desea registrar dejaría sobregiraria el disponible de la Unidad Presupuestal Origen, verifique y corrija sus datos ");
            }



            obj.Usuario        = usuario;
            obj.Financiamiento = int.Parse(_financiamiento.Text);
            obj.OrigenId       = origen;
            obj.DestinoId      = destino;
            obj.Importe        = decimal.Parse(txtImporte.Value);

            uow.TechoFinancieroTMPtransferenciasBL.Insert(obj);



            if (uow.Errors.Count == 0)
            {
                uow.SaveChanges();
            }

            if (uow.Errors.Count == 0)
            {
                MostrarDetalleTransferencia();
                txtImporte.Value = string.Empty;

                //divMsgSuccess.Style.Add("display", "block");
                //lblMensajeSuccess.Text = "El Techo Financiero ha sido registrado correctamente";
            }
            else
            {
                divMsgSuccess.Style.Add("display", "none");
                divMsgFail.Style.Add("display", "block");

                string mensaje;
                mensaje = string.Empty;
                foreach (string cad in uow.Errors)
                {
                    mensaje = mensaje + cad + "<br>";
                }

                lblMensajeFail.Text = mensaje;
            }
        }