Example #1
0
        public ActionResult NuevoGrupo()
        {
            Proyecto Proyecto = (Proyecto)Session["Proyecto"];
            int      Periodo  = (int)Session["Periodo"];
            int      NumeroFF = 0;

            try
            {
                NumeroFF = db.FondoFijoGrupo.Where(f => f.ProyectoID == Proyecto.ID && f.Periodo == Periodo).Max(f => f.Numero);
            }
            catch (Exception)
            {
                NumeroFF = 1;
            }

            FondoFijoGrupo ffg = new FondoFijoGrupo();

            ffg.Activo       = "S";
            ffg.Creacion     = DateTime.Now;
            ffg.Modificacion = DateTime.Now;
            ffg.Monto        = 0;
            ffg.Numero       = NumeroFF + 1;
            ffg.Periodo      = Periodo;
            ffg.ProyectoID   = Proyecto.ID;
            ffg.EgresoID     = null;
            ffg.Descripcion  = "Caja Chica " + ffg.Numero;
            ffg.ID           = 0;

            db.FondoFijoGrupo.Add(ffg);
            db.SaveChanges();

            return(RedirectToAction("Create", new { Grupo = ffg.ID }));
        }
Example #2
0
        public ActionResult Create(FondoFijo fondofijo)
        {
            fondofijo.Periodo    = (int)Session["Periodo"];
            fondofijo.Mes        = (int)Session["Mes"];
            fondofijo.ProyectoID = ((Proyecto)Session["Proyecto"]).ID;
            fondofijo.CuentaID   = Int32.Parse(Request.Form["CuentaID"].ToString());
            fondofijo.Glosa      = fondofijo.Glosa.ToUpper();

            if (fondofijo.NumeroDocumento == null || fondofijo.NumeroDocumento <= 0)
            {
                fondofijo.NumeroDocumento = 1;
            }
            //fondofijo.Egreso = null;

            if (ModelState.IsValid)
            {
                db.FondoFijo.Add(fondofijo);
                db.SaveChanges();

                // Actualizacion del Fondo Fijo Grupo
                FondoFijoGrupo ffg = db.FondoFijoGrupo.Find(fondofijo.FondoFijoGrupoID);
                ffg.Modificacion    = DateTime.Now;
                ffg.Monto           = db.FondoFijo.Where(f => f.FondoFijoGrupoID == fondofijo.FondoFijoGrupoID).Sum(f => f.Monto);
                db.Entry(ffg).State = EntityState.Modified;
                db.SaveChanges();

                return(RedirectToAction("Create", new { Grupo = ffg.ID }));
            }

            ViewBag.Arbol      = utils.generarSelectHijos(db.Cuenta.Find(30));
            ViewBag.ProyectoID = new SelectList(db.Proyecto, "ID", "NombreLista", fondofijo.ProyectoID);
            return(View(fondofijo));
        }
Example #3
0
        //
        // GET: /FondoFijo/Edit/5

        public ActionResult Edit(int id)
        {
            FondoFijo fondofijo = db.FondoFijo.Find(id);

            ViewBag.Arbol      = utils.generarSelectHijos(db.Cuenta.Find(30), fondofijo.CuentaID);
            ViewBag.ProyectoID = new SelectList(db.Proyecto, "ID", "NombreLista", fondofijo.ProyectoID);

            FondoFijoGrupo ffg = db.FondoFijoGrupo.Find(fondofijo.FondoFijoGrupoID);

            ViewBag.NombreFondoFijo  = ffg.Descripcion;
            ViewBag.FondoFijoGrupoID = ffg.ID;

            return(View(fondofijo));
        }
Example #4
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"));
        }
Example #5
0
        //
        // GET: /FondoFijo/Create

        public ActionResult Create(int Grupo = 0)
        {
            // Se revisa si existe fondo fijo activo, si no se crea uno
            FondoFijoGrupo ffg        = new FondoFijoGrupo();
            int            Periodo    = (int)Session["Periodo"];
            int            ProyectoID = ((Proyecto)Session["Proyecto"]).ID;
            int            NumeroFF   = 0;

            try
            {
                NumeroFF = db.FondoFijoGrupo.Where(f => f.ProyectoID == ProyectoID && f.Periodo == Periodo).Max(f => f.Numero);
            }
            catch (Exception)
            {
                NumeroFF = 1;
            }

            if (Grupo > 0)
            {
                // Si el grupo viene definido se busca
                ffg = db.FondoFijoGrupo.Find(Grupo);
            }
            else
            {
                try
                {
                    // Si el grupo no viene definido se intenta obtener una caja chica activa
                    ffg = db.FondoFijoGrupo.Where(f => f.ProyectoID == ProyectoID && f.Periodo == Periodo && f.Activo.Equals("S")).OrderByDescending(f => f.ID).Take(1).Single();
                }
                catch (Exception)
                {
                    // Si no hay caja chica activa se crea una

                    ffg.Activo       = "S";
                    ffg.Creacion     = DateTime.Now;
                    ffg.Modificacion = DateTime.Now;
                    ffg.Monto        = 0;
                    ffg.Numero       = NumeroFF + 1;
                    ffg.Periodo      = Periodo;
                    ffg.ProyectoID   = ProyectoID;
                    ffg.EgresoID     = null;
                    ffg.Descripcion  = "Caja Chica " + ffg.Numero;
                    ffg.ID           = 0;

                    db.FondoFijoGrupo.Add(ffg);
                    db.SaveChanges();
                }
            }

            ViewBag.Estado           = ffg.Activo;
            ViewBag.NombreFondoFijo  = ffg.Descripcion;
            ViewBag.FondoFijoGrupoID = ffg.ID;
            ViewBag.Arbol            = utils.generarSelectHijos(db.Cuenta.Find(30));
            ViewBag.ProyectoID       = new SelectList(db.Proyecto, "ID", "NombreLista");

            // Detalle del FF

            ViewBag.Listado = db.FondoFijo.Include(f => f.Cuenta).Include(f => f.Proyecto).Where(f => f.ProyectoID == ProyectoID && f.FondoFijoGrupoID == ffg.ID).OrderByDescending(f => f.ID);

            return(View());
        }