Пример #1
0
        public string GenerarEgreso(int fondoFijoGrupoID)
        {
            int ProyectoID = ((Proyecto)Session["Proyecto"]).ID;
            int monto      = 0;
            List <DetalleEgreso> lista_tmp = new List <DetalleEgreso>();
            List <DetalleEgreso> lista     = new List <DetalleEgreso>();

            try
            {
                List <FondoFijo> fondos = db.FondoFijo.Where(f => f.ProyectoID == ProyectoID && f.FondoFijoGrupoID == fondoFijoGrupoID).OrderByDescending(f => f.ID).ToList();

                foreach (FondoFijo fondo in fondos)
                {
                    DetalleEgreso detalle = new DetalleEgreso();
                    detalle.FechaEmision     = fondo.Fecha;
                    detalle.FechaVencimiento = fondo.Fecha;
                    //detalle.Cuenta = fondo.Cuenta;
                    detalle.CuentaID    = fondo.CuentaID;
                    detalle.Glosa       = fondo.Glosa;
                    detalle.Monto       = fondo.Monto;
                    detalle.FondoFijoID = fondo.ID;
                    //detalle.FondoFijo = fondo;
                    detalle.NDocumento  = fondo.NumeroDocumento;
                    detalle.DocumentoID = null;// DocumentoID;
                    //detalle.Documento = db.Documento.Find(DocumentoID);
                    lista_tmp.Add(detalle);
                    monto = monto + fondo.Monto;
                }
            }
            catch (Exception)
            {
                return("-1");
            }

            if (Session["DetalleEgreso"] != null)
            {
                lista = (List <DetalleEgreso>)Session["DetalleEgreso"];
                lista.AddRange(lista_tmp);
                Session.Remove("DetalleEgreso");
            }
            else
            {
                lista = lista_tmp;
            }

            Session.Add("DetalleEgreso", lista);
            return(monto.ToString());
        }
Пример #2
0
        public ActionResult Reintegro(int id)
        {
            Movimiento movimiento = db.Movimiento.Find(id);
            Persona    Persona    = (Persona)Session["Persona"];

            @ViewBag.Ejecutor = Persona.NombreCompleto;
            DetalleEgreso detalle = db.DetalleEgreso.Find(movimiento.DetalleEgresoID);

            @ViewBag.detalle = detalle;

            try
            {
                @ViewBag.Director  = db.Rol.Include(r => r.TipoRol).Include(r => r.Persona).Where(r => r.TipoRolID == 1).Where(r => r.ProyectoID == movimiento.ProyectoID).Single().Persona.NombreCompleto;
                @ViewBag.Apoderado = db.Rol.Include(r => r.TipoRol).Include(r => r.Persona).Where(r => r.TipoRolID == 6).Where(r => r.ProyectoID == movimiento.ProyectoID).Single().Persona.NombreCompleto;
            }
            catch
            { }

            return(View(movimiento));
        }
Пример #3
0
        //
        // GET: /Reintegros/Edit/5

        public ActionResult Edit(int id, string imprimir = "")
        {
            Movimiento    movimiento = db.Movimiento.Find(id);
            int           periodo    = (int)Session["Periodo"];
            DetalleEgreso detalle    = db.DetalleEgreso.Find(movimiento.DetalleEgresoID);

            ViewBag.detalle             = detalle;
            ViewBag.Arbol               = utils.generarSelectHijos(db.Cuenta.Find(ctes.raizCuentaEgresos), movimiento.CuentaID);
            ViewBag.Imprimir            = imprimir;
            ViewBag.UltimoIdentificador = "0";
            try
            {
                //ViewBag.UltimoIdentificador = db.Movimiento.Where(m => m.ProyectoID == movimiento.ProyectoID).Where(a => a.TipoComprobanteID == ctes.tipoReintegro).Max(a => a.ID).ToString();
                ViewBag.UltimoIdentificador = db.Movimiento.Include(m => m.Proyecto).Include(m => m.TipoComprobante).Include(m => m.Cuenta).Include(m => m.Persona).Include(m => m.Proveedor).Include(m => m.CuentaCorriente).Where(m => m.TipoComprobanteID == ctes.tipoReintegro).Where(m => m.ProyectoID == movimiento.ProyectoID).Where(a => a.Temporal == null && a.Eliminado == null && a.CuentaID != 1).Max(a => a.ID).ToString();
            }
            catch (Exception)
            {
                ViewBag.UltimoIdentificador = "0";
            }


            return(View(movimiento));
        }
Пример #4
0
        public ActionResult Edit(Movimiento movimiento)
        {
            Usuario         Usuario         = (Usuario)Session["Usuario"];
            int             periodo         = (int)Session["Periodo"];
            int             mes             = (int)Session["Mes"];
            Persona         persona         = (Persona)Session["Persona"];
            Proyecto        Proyecto        = (Proyecto)Session["Proyecto"];
            CuentaCorriente CuentaCorriente = (CuentaCorriente)Session["CuentaCorriente"];
            int             montoOriginal   = Int32.Parse(Request.Form["MontoOriginal"].ToString());

            movimiento.CuentaID = Int32.Parse(Request.Form["CuentaID"].ToString());
            //movimiento.DetalleEgresoID = Int32.Parse(Request.Form["DetalleEgresoID"].ToString());
            movimiento.PersonaID         = null;
            movimiento.ProveedorID       = null;
            movimiento.TipoComprobanteID = ctes.tipoReintegro;
            int originalID = movimiento.ID;

            movimiento.Descripcion = movimiento.Descripcion.ToUpper();
            int?modificadoID = 0;

            ViewBag.UltimoIdentificador = "0";

            try
            {
                ViewBag.UltimoIdentificador = db.Movimiento.Where(m => m.ProyectoID == movimiento.ProyectoID).Where(a => a.TipoComprobanteID == ctes.tipoReintegro).Max(a => a.ID).ToString();
            }
            catch (Exception)
            { }

            if (!movimiento.Periodo.Equals(periodo) || !movimiento.Mes.Equals(mes))
            {
                if (Usuario.esAdministrador || Usuario.esSupervisor)
                {
                    if (ModelState.IsValid)
                    {
                        try
                        {
                            db.Movimiento.Attach(movimiento);
                            db.Entry(movimiento).State = EntityState.Modified;
                            db.SaveChanges();

                            // Se deben actualizar los saldos

                            int mes_comprobante     = movimiento.Mes;
                            int periodo_comprobante = movimiento.Periodo;
                            int mes_proyecto        = mes;
                            int periodo_proyecto    = periodo;

                            utils.RecalcularSaldos(periodo_comprobante, periodo_proyecto, mes_comprobante, mes_proyecto, Proyecto, CuentaCorriente);
                        }
                        catch (Exception e)
                        {
                            utils.Log(2, e.Message);
                            ViewBag.Mensaje = utils.mensajeError("No fue posible modificar este Reintegro, intente nuevamente.");
                        }
                    }
                }
                else
                {
                    // Se elimina cualquier modificación anterior, solo queda la última.
                    try
                    {
                        Autorizacion autorizaciontmp = db.Autorizacion.Where(a => a.OriginalID == originalID).Single();
                        modificadoID = autorizaciontmp.ModificadoID;
                        db.Autorizacion.Remove(autorizaciontmp);
                        db.SaveChanges();
                    }
                    catch (Exception)
                    { }

                    try
                    {
                        Movimiento tmp = db.Movimiento.Find(modificadoID);
                        db.Movimiento.Remove(tmp);
                        db.SaveChanges();
                    }
                    catch (Exception)
                    { }

                    // Edicion del movimiento debe autorizarse, cambios se registran de forma temporal.
                    movimiento.ID        = 0;
                    movimiento.Temporal  = "S";
                    movimiento.Eliminado = "N";
                    movimiento.UsuarioID = Usuario.ID;
                    db.Movimiento.Add(movimiento);
                    db.SaveChanges();

                    // Se registra en la tabla de Autorizaciones
                    Autorizacion autorizacion = new Autorizacion();
                    autorizacion.OriginalID     = originalID;
                    autorizacion.ModificadoID   = movimiento.ID;
                    autorizacion.SolicitaID     = persona.ID;
                    autorizacion.Tipo           = "Modificación";
                    autorizacion.FechaSolicitud = DateTime.Now;

                    db.Autorizacion.Add(autorizacion);
                    db.SaveChanges();

                    ViewBag.Mensaje = utils.mensajeAdvertencia("La modificación ha sido solicitada al Supervisor.");
                }
            }
            else
            {
                movimiento.UsuarioID = Usuario.ID;
                if (movimiento.NDocumento == 0 || movimiento.NDocumento == null)
                {
                    movimiento.NDocumento = 1;
                }

                if (ModelState.IsValid)
                {
                    try
                    {
                        db.Entry(movimiento).State = EntityState.Modified;
                        db.SaveChanges();
                        return(RedirectToAction("Create"));
                    }
                    catch (Exception e)
                    {
                        utils.Log(2, e.Message);
                        ViewBag.Mensaje = utils.mensajeError("No fue posible modificar este Ingreso, intente nuevamente");
                    }
                }

                if (utils.actualizarSaldoIngreso(movimiento, ModelState, montoOriginal))
                {
                    @ViewBag.Mensaje = utils.mensajeOK("Ingreso registrado con éxito!");
                }
                else
                {
                    @ViewBag.Mensaje = utils.mensajeError("Ocurrió un error el actualizar los saldos");
                }
            }

            DetalleEgreso detalle = db.DetalleEgreso.Find(movimiento.DetalleEgresoID);

            ViewBag.detalle = detalle;
            ViewBag.Arbol   = utils.generarSelectHijos(db.Cuenta.Find(ctes.raizCuentaEgresos), movimiento.CuentaID);
            return(View(movimiento));
        }
Пример #5
0
        public ActionResult Autorizar(int id)
        {
            Persona      persona      = (Persona)Session["Persona"];
            Autorizacion autorizacion = db.Autorizacion.Find(id);

            autorizacion.Autorizado        = "S";
            autorizacion.AutorizaID        = persona.ID;
            autorizacion.FechaAutorizacion = DateTime.Now;
            Movimiento original   = db.Movimiento.Find(autorizacion.OriginalID);
            Movimiento modificado = db.Movimiento.Find(autorizacion.ModificadoID);

            //autorizacion.OriginalID = null;
            db.Entry(autorizacion).State = EntityState.Modified;
            db.SaveChanges();

            if (autorizacion.Tipo.Equals("Modificación"))
            {
                if (original.TipoComprobanteID == ctes.tipoIngreso || original.TipoComprobanteID == ctes.tipoReintegro)
                {
                    // Comprobante de Ingreso y Reintegro
                    original.Temporal  = null;
                    original.Eliminado = "S";
                    // Mejor marcar como eliminado
                    utils.actualizarSaldoIngreso(modificado, ModelState, original.Monto_Ingresos);
                    db.Entry(original).State = EntityState.Modified;
                    //db.Movimiento.Remove(original);
                    db.SaveChanges();

                    modificado.Temporal        = null;
                    modificado.Eliminado       = null;
                    db.Entry(modificado).State = EntityState.Modified;
                    db.SaveChanges();
                }
                else if (original.TipoComprobanteID == ctes.tipoEgreso)
                {
                    // Comprobante de Egreso
                    db.Database.ExecuteSqlCommand("UPDATE BoletaHonorario SET EgresoID = " + modificado.ID + " WHERE EgresoID = " + original.ID);
                    db.Database.ExecuteSqlCommand("UPDATE BoletaHonorario SET EgresoID = " + modificado.ID + " WHERE EgresoID = " + original.ID);
                    db.Database.ExecuteSqlCommand("UPDATE DeudaPendiente SET EgresoID = " + modificado.ID + " WHERE EgresoID = " + original.ID);
                    db.Database.ExecuteSqlCommand("DELETE FROM DetalleEgreso WHERE MovimientoID = " + original.ID);
                    db.Database.ExecuteSqlCommand("UPDATE DetalleEgreso SET Temporal = NULL WHERE MovimientoID = " + modificado.ID);

                    // Comprobante de Ingreso y Reintegro
                    utils.actualizarSaldoEgreso(modificado, ModelState, original.Monto_Egresos);
                    //db.Movimiento.Remove(original);

                    //db.Database.ExecuteSqlCommand("DELETE FROM DetalleEgreso WHERE MovimientoID = " + original.ID);
                    //db.Database.ExecuteSqlCommand("DELETE FROM Movimiento WHERE ID = " + original.ID);

                    original.Temporal        = null;
                    original.Eliminado       = "S";
                    db.Entry(original).State = EntityState.Modified;
                    db.Movimiento.Remove(original);
                    db.SaveChanges();

                    modificado.Temporal        = null;
                    modificado.Eliminado       = null;
                    db.Entry(modificado).State = EntityState.Modified;
                    db.SaveChanges();

                    // Actualizamos Informacion de FF si EXISTE
                    try
                    {
                        DetalleEgreso de = db.DetalleEgreso.Where(d => d.MovimientoID == modificado.ID).Take(1).Single();
                        if (de.FondoFijo != null)
                        {
                            int            ffgID = de.FondoFijo.FondoFijoGrupoID;
                            FondoFijoGrupo ffg   = db.FondoFijoGrupo.Find(ffgID);
                            ffg.EgresoID        = modificado.ID;
                            ffg.Activo          = "N";
                            ffg.Modificacion    = DateTime.Now;
                            db.Entry(ffg).State = EntityState.Modified;
                            db.SaveChanges();
                        }
                    }
                    catch (Exception)
                    { }
                }
            }
            else if (autorizacion.Tipo.Equals("Anulación"))
            {
                if (original.TipoComprobanteID == ctes.tipoIngreso || original.TipoComprobanteID == ctes.tipoReintegro)
                {
                    // Comprobante de Ingreso y Reintegro
                    int monto = original.Monto_Ingresos;
                    utils.anularSaldoIngreso(modificado, ModelState, monto);
                    original.Temporal        = null;
                    original.Eliminado       = "S";
                    db.Entry(original).State = EntityState.Modified;
                    //db.Movimiento.Remove(original);
                    db.SaveChanges();

                    modificado.Temporal        = null;
                    modificado.Eliminado       = null;
                    modificado.Nulo            = "S";
                    db.Entry(modificado).State = EntityState.Modified;
                    db.SaveChanges();
                }
                else if (original.TipoComprobanteID == ctes.tipoEgreso)
                {
                    // Comprobante de Egreso
                    db.Database.ExecuteSqlCommand("UPDATE BoletaHonorario SET EgresoID = NULL WHERE EgresoID = " + original.ID);
                    db.Database.ExecuteSqlCommand("UPDATE BoletaHonorario SET EgresoID = NULL WHERE EgresoID = " + original.ID);
                    db.Database.ExecuteSqlCommand("UPDATE DeudaPendiente SET EgresoID = NULL WHERE EgresoID = " + original.ID);
                    db.Database.ExecuteSqlCommand("DELETE FROM DetalleEgreso WHERE MovimientoID = " + original.ID);

                    int monto = original.Monto_Egresos;
                    utils.anularSaldoEgreso(modificado, ModelState, monto);
                    original.Temporal        = null;
                    original.Nulo            = "S";
                    db.Entry(original).State = EntityState.Modified;
                    //db.Movimiento.Remove(original);
                    db.SaveChanges();
                    db.SaveChanges();

                    modificado.Temporal        = null;
                    modificado.Eliminado       = null;
                    db.Entry(modificado).State = EntityState.Modified;
                    db.SaveChanges();
                }
            }

            // Actualizar todos los saldos de todos los periodos
            int periodo_comprobante = modificado.Periodo;
            int mes_comprobante     = modificado.Mes;


            return(RedirectToAction("Pendientes"));
        }
Пример #6
0
        public ActionResult Conciliar(int detalleEgresoID = 0, int movimientoID = 0)
        {
            int proyectoID = 0;

            try
            {
                if (movimientoID > 0)
                {
                    // Conciliacion de Ingreso o Reintegro
                    Movimiento movimiento = db.Movimiento.Find(movimientoID);
                    proyectoID = movimiento.ProyectoID;
                    int periodo = movimiento.Periodo;
                    int mes     = movimiento.Mes;
                    // Si el movimiento no ha sido conciliado, seguimos.
                    if (movimiento.Conciliado == null)
                    {
                        movimiento.Conciliado      = "S";
                        db.Entry(movimiento).State = EntityState.Modified;
                        db.SaveChanges();

                        ConciliacionRegistro cr = new ConciliacionRegistro();
                        cr.MovimientoID = movimiento.ID;
                        cr.Periodo      = periodo;
                        cr.Mes          = mes;
                        db.ConciliacionRegistro.Add(cr);
                        db.SaveChanges();
                    }
                    else
                    {
                        movimiento.Conciliado      = null;
                        db.Entry(movimiento).State = EntityState.Modified;
                        db.SaveChanges();

                        try
                        {
                            ConciliacionRegistro cr = db.ConciliacionRegistro.Where(c => c.MovimientoID == movimiento.ID).Single();
                            db.Entry(cr).State = EntityState.Deleted;
                            db.SaveChanges();
                        }
                        catch (Exception)
                        { }
                    }
                }

                if (detalleEgresoID > 0)
                {
                    // Conciliacion de Egreso
                    DetalleEgreso detalle = db.DetalleEgreso.Find(detalleEgresoID);
                    proyectoID = detalle.Egreso.ProyectoID;
                    int periodo = detalle.Egreso.Periodo;
                    int mes     = detalle.Egreso.Mes;
                    // Si el movimiento no ha sido conciliado, seguimos.
                    if (detalle.Conciliado == null)
                    {
                        detalle.Conciliado      = "S";
                        db.Entry(detalle).State = EntityState.Modified;
                        db.SaveChanges();

                        ConciliacionRegistro cr = new ConciliacionRegistro();
                        cr.DetalleID = detalle.ID;
                        cr.Periodo   = periodo;
                        cr.Mes       = mes;
                        db.ConciliacionRegistro.Add(cr);
                        db.SaveChanges();
                    }
                    else
                    {
                        detalle.Conciliado      = null;
                        db.Entry(detalle).State = EntityState.Modified;
                        db.SaveChanges();

                        try
                        {
                            ConciliacionRegistro cr = db.ConciliacionRegistro.Where(c => c.DetalleID == detalle.ID).Single();
                            db.Entry(cr).State = EntityState.Deleted;
                            db.SaveChanges();
                        }
                        catch (Exception)
                        { }
                    }

                    int cantidad = db.DetalleEgreso.Where(d => d.MovimientoID == detalle.MovimientoID).Where(d => d.Conciliado == null).Where(m => m.Temporal == null).Count();

                    // Si se conciliaron todos los detalles, se concilia el Egreso
                    if (cantidad == 0)
                    {
                        Movimiento movimiento = db.Movimiento.Find(detalle.MovimientoID);
                        movimiento.Conciliado      = "S";
                        db.Entry(movimiento).State = EntityState.Modified;
                        db.SaveChanges();
                    }
                    else
                    {
                        Movimiento movimiento = db.Movimiento.Find(detalle.MovimientoID);
                        movimiento.Conciliado      = null;
                        db.Entry(movimiento).State = EntityState.Modified;
                        db.SaveChanges();
                    }
                }
            }
            catch (Exception)
            { }

            return(RedirectToAction("Index", "Logs", new { proyectoID = proyectoID }));
        }
Пример #7
0
        public string Conciliar(int detalleEgresoID = 0, int movimientoID = 0)
        {
            Persona  Persona = (Persona)Session["Persona"];
            Usuario  Usuario = (Usuario)Session["Usuario"];
            DateTime fecha   = DateTime.Now;

            string respuesta      = "";
            bool   estaConciliado = false;

            try
            {
                if (movimientoID > 0)
                {
                    // Conciliacion de Ingreso o Reintegro
                    try
                    {
                        ConciliacionRegistro cr = db.ConciliacionRegistro.Where(c => c.MovimientoID == movimientoID).Single();
                        estaConciliado = true;
                    }
                    catch (Exception)
                    {
                        estaConciliado = false;
                    }

                    Movimiento movimiento = db.Movimiento.Find(movimientoID);

                    // Si el movimiento no ha sido conciliado, seguimos.
                    if (!estaConciliado)
                    {
                        try
                        {
                            // Se crea el registro de conciliación
                            ConciliacionRegistro cr = new ConciliacionRegistro();
                            cr.MovimientoID = movimiento.ID;

                            // Dependiendo del nivel del usuario se define el periodo conciliado.
                            if (Usuario.esAdministrador)
                            {
                                cr.Periodo = movimiento.Periodo;
                                cr.Mes     = movimiento.Mes;
                            }
                            else
                            {
                                cr.Periodo = (int)Session["Periodo"];
                                cr.Mes     = (int)Session["Mes"];
                            }

                            cr.PersonaID = Persona.ID;
                            cr.Fecha     = fecha;

                            db.ConciliacionRegistro.Add(cr);
                            db.SaveChanges();

                            try
                            {
                                // Se define el movimiento como conciliado
                                movimiento.Conciliado      = "S";
                                db.Entry(movimiento).State = EntityState.Modified;
                                db.SaveChanges();
                            }
                            catch (Exception)
                            {
                                //return "No se pudo crear el registro de conciliacion: 385. " + e.StackTrace.ToString();
                            }
                        }
                        catch (Exception)
                        {
                            //return "No se pudo crear el registro de conciliacion: 390. " + e.StackTrace.ToString();
                        }

                        respuesta = "OK";
                    }
                    else
                    {
                        try
                        {
                            // Se elimina el registro de conciliación
                            ConciliacionRegistro cr = db.ConciliacionRegistro.Where(c => c.MovimientoID == movimiento.ID).Single();
                            db.Entry(cr).State = EntityState.Deleted;
                            db.SaveChanges();
                            // Al parecer aca falla
                            /*La secuencia no contiene elementos en System.Linq.Enumerable.Single[TSource](IEnumerable`1 source) en System.Linq.Queryable.Single[TSource](IQueryable`1 source) en SAG2.Controllers.BancoController.Conciliar(Int32 detalleEgresoID, Int32 movimientoID)*/
                        }
                        catch (Exception)
                        {
                            //return "No se pudo encontrar el registro de conciliacion: 408. " + e.StackTrace.ToString();
                        }

                        try
                        {
                            // Se asigna como no conciliado al movimiento
                            movimiento.Conciliado      = null;
                            db.Entry(movimiento).State = EntityState.Modified;
                            db.SaveChanges();
                        }
                        catch (Exception)
                        {
                            //return "No se pudo encontrar el registro de conciliacion: 420. " + e.StackTrace.ToString();
                        }

                        respuesta = "OK2";
                    }
                }

                if (detalleEgresoID > 0)
                {
                    // Conciliacion de Egreso
                    DetalleEgreso detalle = db.DetalleEgreso.Find(detalleEgresoID);

                    try
                    {
                        ConciliacionRegistro cr = db.ConciliacionRegistro.Where(c => c.DetalleID == detalleEgresoID).Single();
                        estaConciliado = true;
                    }
                    catch (Exception)
                    {
                        estaConciliado = false;
                    }
                    // Si el movimiento no ha sido conciliado, seguimos.
                    if (!estaConciliado)
                    {
                        try
                        {
                            ConciliacionRegistro cr = new ConciliacionRegistro();
                            cr.DetalleID = detalle.ID;

                            if (Usuario.esAdministrador)
                            {
                                cr.Periodo = detalle.Egreso.Periodo;
                                cr.Mes     = detalle.Egreso.Mes;
                            }
                            else
                            {
                                cr.Periodo = (int)Session["Periodo"];
                                cr.Mes     = (int)Session["Mes"];
                            }

                            cr.PersonaID = Persona.ID;
                            cr.Fecha     = fecha;

                            db.ConciliacionRegistro.Add(cr);
                            db.SaveChanges();

                            try
                            {
                                detalle.Conciliado      = "S";
                                db.Entry(detalle).State = EntityState.Modified;
                                db.SaveChanges();
                            }
                            catch (Exception)
                            {
                                //return "No se pudo encontrar el registro de conciliacion: 465. " + e.StackTrace.ToString();
                            }

                            respuesta = "OK";
                        }
                        catch (Exception)
                        {
                            //return "No se pudo encontrar el registro de conciliacion: 472. " + e.StackTrace.ToString();
                        }
                    }
                    else
                    {
                        try
                        {
                            ConciliacionRegistro cr = db.ConciliacionRegistro.Where(c => c.DetalleID == detalle.ID).Single();
                            db.Entry(cr).State = EntityState.Deleted;
                            db.SaveChanges();
                            try
                            {
                                detalle.Conciliado      = null;
                                db.Entry(detalle).State = EntityState.Modified;
                                db.SaveChanges();
                            }
                            catch (Exception)
                            {
                                //return "No se pudo encontrar el registro de conciliacion: 490. " + e.StackTrace.ToString();
                            }
                        }
                        catch (Exception)
                        {
                            //return "No se pudo encontrar el registro de conciliacion: 495. " + e.StackTrace.ToString();
                        }

                        respuesta = "OK2";
                    }

                    int cantidad = db.DetalleEgreso.Where(d => d.MovimientoID == detalle.MovimientoID).Where(d => d.Conciliado == null).Where(m => m.Temporal == null).Count();

                    // Si se conciliaron todos los detalles, se concilia el Egreso
                    if (cantidad == 0)
                    {
                        Movimiento movimiento = db.Movimiento.Find(detalle.MovimientoID);
                        movimiento.Conciliado      = "S";
                        db.Entry(movimiento).State = EntityState.Modified;
                        db.SaveChanges();
                    }
                    else
                    {
                        Movimiento movimiento = db.Movimiento.Find(detalle.MovimientoID);
                        movimiento.Conciliado      = null;
                        db.Entry(movimiento).State = EntityState.Modified;
                        db.SaveChanges();
                    }
                }

                return(respuesta);
            }
            catch (Exception e)
            {
                return(e.StackTrace.ToString());
            }
        }