Пример #1
0
        static void Main(string[] args)
        {
            var cl = new Cliente()
            {
                Dni = "1234",
                Nombre = "Eduardo Flores",
                Telefono = "12345678"
            };
            var cc = new CuentaCorriente()
            {
                Cliente = cl,
                Saldo = 1200,
                Credito = 500,
                Interes = (decimal)0.12
            };
            var ca = new CuentaAhorro()
            {
                Cliente = cl,
                Saldo = 12000,
                Bonificacion = 0.01,
                Penalizacion = 0.04
            };

            cc.RetirarEfectivo(3000);
            ca.RetirarEfectivo(10000);

            Console.ReadLine();
        }
Пример #2
0
        public ActionResult ExcelLibroBanco(int Periodo, int Mes)
        {
            Proyecto        Proyecto        = (Proyecto)Session["Proyecto"];
            CuentaCorriente CuentaCorriente = (CuentaCorriente)Session["CuentaCorriente"];

            try
            {
                ViewBag.SaldoInicial = db.Saldo.Where(m => m.CuentaCorrienteID == CuentaCorriente.ID).Where(m => m.Periodo == Periodo).Where(m => m.Mes == Mes).Single().SaldoInicialCartola;
            }
            catch (Exception)
            {
                ViewBag.SaldoInicial = 0;
            }

            var movimientos = db.Movimiento.Where(m => m.Periodo == Periodo).Where(m => m.Mes == Mes).Where(m => m.ProyectoID == Proyecto.ID).Where(a => a.Temporal == null && a.Eliminado == null && ((a.CuentaID != 1 && a.CuentaID != 6) || a.CuentaID == null)).OrderBy(m => m.Fecha).ThenBy(m => m.NumeroComprobante);

            ViewBag.periodo         = Periodo;
            ViewBag.mes             = Mes;
            ViewBag.cuentaCorriente = CuentaCorriente;
            ViewBag.NumeroCuenta    = CuentaCorriente.Numero;
            return(View(movimientos.ToList()));
        }
Пример #3
0
        //private Servis _servi;

        public override void Actualizacion(Servis servi)
        {
            CuentaCorriente ultimoCredit = null;
            CuentaCorriente ultimoDebito = null;

            var     list          = servi.CuentaCorriente.ToList();
            var     listaCreditos = list.OrderByDescending(x => x.Fecha).Where(x => x.Credito > 0).ToList();
            var     listaDebitos  = list.OrderByDescending(x => x.Fecha).Where(x => x.Debito > 0).ToList();
            decimal?deuda         = 0;

            foreach (var cred in listaCreditos)
            {
                deuda = deuda + cred.Credito;
            }
            foreach (var deb in listaDebitos)
            {
                deuda = deuda - deb.Debito;
            }

            if (listaCreditos != null)
            {
                ultimoCredit = listaCreditos.FirstOrDefault();
            }

            if (listaDebitos != null)
            {
                ultimoDebito = listaDebitos.FirstOrDefault();
            }

            if (ultimoDebito != null && ultimoCredit != null)
            {
                TimeSpan ts = ultimoDebito.Fecha - ultimoCredit.Fecha;

                if (ts.Days >= 30 && deuda < 0)
                {
                    servi.Estado = false;
                }
            }
        }
Пример #4
0
        public void Baja(CuentaCorriente pCuenta)
        {
            SqlConnection _cnn = new SqlConnection(Conexion.Cnn);

            SqlCommand _comando = new SqlCommand("CuentaCorrienteBaja", _cnn);

            _comando.CommandType = System.Data.CommandType.StoredProcedure;
            _comando.Parameters.AddWithValue("@NumCta", pCuenta.NumCta);
            SqlParameter _retorno = new SqlParameter("@Retorno", System.Data.SqlDbType.Int);

            _retorno.Direction = System.Data.ParameterDirection.ReturnValue;
            _comando.Parameters.Add(_retorno);

            try
            {
                _cnn.Open();
                _comando.ExecuteNonQuery();
                if ((int)_retorno.Value == -1)
                {
                    throw new Exception("La cuenta tiene Movimientos asignados");
                }
                else if ((int)_retorno.Value == -2)
                {
                    throw new Exception("Error en Borrar Cuenta Corriente");
                }
                else if ((int)_retorno.Value == -3)
                {
                    throw new Exception("Error en Borrar Cuenta");
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            finally
            {
                _cnn.Close();
            }
        }
Пример #5
0
        /// <summary>
        /// Modifica el saldo de una cuenta.
        /// </summary>
        /// <param name="banco">Lista de cuentas corrientes.</param>
        static void ActualizarSaldoBanco(List <CuentaCorriente> banco) // Ejercicio 3
        {
            int     i;
            decimal modificacion;
            string  cuenta;

            Console.WriteLine("¿Cuál es el número de cuenta?");
            cuenta = Console.ReadLine();
            Console.WriteLine("¿Cuánto dinero deseas añadir a la cuenta? (Pon un valor negativo si deseas retirar dinero.");
            modificacion = decimal.Parse(Console.ReadLine());

            for (i = 0; i < banco.Count; i++)
            {
                if (banco[i].numero_cc == cuenta) // cuando encuentre la cuenta
                {
                    CuentaCorriente temp = banco[i];
                    temp.saldo = temp.saldo + modificacion;
                    banco[i]   = temp;

                    Console.WriteLine("El saldo actual de la cuenta (tras la operación) es de: " + temp.saldo);
                }
            }
        }
        //metodo para dar de alta en base de datos.
        public void AltaUsuario(Usuario usuario)
        {
            Comando.Connection = Conexion;
            Conexion.Open();
            Comando.CommandText = "AltaUsuario";
            Comando.CommandType = CommandType.StoredProcedure;
            Comando.Parameters.Clear();
            Comando.Parameters.AddWithValue("@nombre", usuario.nombre);
            Comando.Parameters.AddWithValue("@apellido", usuario.apellido);
            Comando.Parameters.AddWithValue("@dni", usuario.dni);
            Comando.Parameters.AddWithValue("@usuario", usuario.usuario1);
            Comando.Parameters.AddWithValue("@clave", usuario.clave);
            Comando.ExecuteNonQuery();
            Conexion.Close();

            CajaDeAhorro caja = new CajaDeAhorro(usuario.dni, 70000, 1);

            metCajaAhorro.AltaCajaDeAhorro(caja);
            CuentaCorriente ctaCte = new CuentaCorriente(usuario.dni, 0, 1);

            metCuentaCorriente.AltaCuentaCorriente(ctaCte);

            MessageBox.Show("Insertado con exito!");
        }
Пример #7
0
        //operaciones
        public void Alta(CuentaCorriente pCuenta)
        {
            SqlConnection _cnn = new SqlConnection(Conexion.Cnn);

            SqlCommand _comando = new SqlCommand("CuentaCorrienteAlta", _cnn);

            _comando.CommandType = System.Data.CommandType.StoredProcedure;
            _comando.Parameters.AddWithValue("@NumCli", pCuenta.UnCliente.NumCli);
            _comando.Parameters.AddWithValue("@MinimoCta", pCuenta.MinimoCta);
            SqlParameter _retorno = new SqlParameter("@Retorno", System.Data.SqlDbType.Int);

            _retorno.Direction = System.Data.ParameterDirection.ReturnValue;
            _comando.Parameters.Add(_retorno);

            try
            {
                _cnn.Open();
                _comando.ExecuteNonQuery();
                if ((int)_retorno.Value == -1)
                {
                    throw new Exception("El cliente no existe - No se creo cuenta");
                }
                else if ((int)_retorno.Value == -2)
                {
                    throw new Exception("Error en Alta");
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            finally
            {
                _cnn.Close();
            }
        }
        public void ValidarValorConsignacionInicialIncorrecto()
        {
            string          numeroDeCuenta  = "1001";
            string          nombreDeCuenta  = "Cuenta de Ejemplo";
            CuentaCorriente cuentaCorriente = new CuentaCorriente();

            cuentaCorriente.Numero = numeroDeCuenta;
            cuentaCorriente.Nombre = nombreDeCuenta;
            IList <string> errores = cuentaCorriente.CanConsign(500);
            string         obtenido;
            string         esperado = $"No es posible realizar la consignacion, el monto minimo debe ser de: {CuentaCorriente.VALOR_MINIMO_CONSIGNACION_INICIAL}";

            if (errores.Contains(esperado))
            {
                obtenido = esperado;
            }
            else
            {
                obtenido = cuentaCorriente.Consignar(500, "No implementa");
            }


            Assert.AreEqual(esperado, obtenido);
        }
Пример #9
0
        public ActionResult Propiedades(FormCollection form)
        {
            var Meses = new string[12]
            {
                "Enero",
                "Febrero",
                "Marzo",
                "Abril",
                "Mayo",
                "Junio",
                "Julio",
                "Agosto",
                "Septiembre",
                "Octubre",
                "Noviembre",
                "Diciembre"
            };

            if (form["Proyecto"] == null || form["Proyecto"].ToString().Equals(""))
            {
                return(Propiedades());
            }

            int proyectoID = Int32.Parse(form["Proyecto"]);
            //int CuentaCorrienteID = Int32.Parse(collection["CuentaCorriente"]);
            Persona Persona = (Persona)Session["Persona"];
            Usuario usuario = (Usuario)Session["Usuario"];
            Rol     Rol     = new Rol();

            if (!usuario.esAdministrador)
            {
                Rol = (Rol)db.Rol.Where(r => r.PersonaID == Persona.ID).Where(r => r.ProyectoID == proyectoID).Single();
            }
            //Rol Rol = (Rol)db.Rol.Where(r => r.PersonaID == Persona.ID).Where(r => r.ProyectoID == EstablecimientoID).Single();
            Session.Add("Rol", Rol);
            Proyecto Proyecto = db.Proyecto.Find(proyectoID);

            Session.Add("Proyecto", Proyecto);

            Response.Cookies["ProyectoUsado"]["ID"]   = proyectoID.ToString();
            Response.Cookies["ProyectoUsado"].Expires = DateTime.Now.AddDays(30);

            // Verificamos periodo y mes abierto
            try
            {
                Periodo Periodo = (from p in db.Periodo
                                   where p.ProyectoID == Proyecto.ID
                                   orderby p.Ano descending, p.Mes descending
                                   select p).Take(1).Single();

                int periodo_actual, mes_actual;

                if (Periodo.Mes == 12)
                {
                    mes_actual     = 1;
                    periodo_actual = Periodo.Ano + 1;
                }
                else
                {
                    mes_actual     = Periodo.Mes + 1;
                    periodo_actual = Periodo.Ano;
                }

                Session.Add("Mes", mes_actual);
                Session.Add("Periodo", periodo_actual);
                Session.Add("Fecha", Meses[mes_actual - 1] + " " + periodo_actual);
            }
            catch (Exception e)
            {
                utils.Log(1, "No hay periodos cerramos en la base de datos, por lo tanto se selecciona fecha actual. " + e.Message);
                if (Proyecto.MesInicio == null)
                {
                    Session.Add("Mes", DateTime.Now.Month);
                    Session.Add("Periodo", DateTime.Now.Year);
                    Session.Add("Fecha", Meses[DateTime.Now.Month - 1] + " " + DateTime.Now.Year);
                }
                else
                {
                    Session.Add("Mes", Proyecto.MesInicio);
                    Session.Add("Periodo", Proyecto.PeriodoInicio);
                    Session.Add("Fecha", Meses[Proyecto.MesInicio.Value - 1] + " " + Proyecto.PeriodoInicio);
                }
            }

            //Session.Add("InformacionPie", Proyecto.NombreLista + " (" + CuentaCorriente.NumeroLista + ") | " + Persona.NombreCompleto + " | " + Session["Fecha"].ToString());
            //ViewBag.Mensaje = utils.mensajeOK("Propiedades cambiadas satisfactoriamente.");

            try
            {
                CuentaCorriente CuentaCorriente = db.CuentaCorriente.Where(c => c.ProyectoID == proyectoID).Single();
                Session.Add("CuentaCorriente", CuentaCorriente);
                if (usuario.esAdministrador)
                {
                    Session.Add("InformacionPie", Proyecto.NombreLista + " | " + CuentaCorriente.Banco.Nombre + " " + CuentaCorriente.NumeroLista + " | " + Persona.NombreCompleto + " | " + Session["Fecha"].ToString() + " | ProyectoID: " + Proyecto.ID + " CtaCteID: " + CuentaCorriente.ID + " PersonaID: " + Persona.ID);
                }
                else
                {
                    Session.Add("InformacionPie", Proyecto.NombreLista + " | " + CuentaCorriente.Banco.Nombre + " " + CuentaCorriente.NumeroLista + " | " + Persona.NombreCompleto + " | " + Session["Fecha"].ToString());
                }
                //Session.Add("InformacionPie", Proyecto.NombreLista + " (" + CuentaCorriente.NumeroLista + ") | " + Persona.NombreCompleto + " | " + Session["Fecha"].ToString());
                return(RedirectToAction("../Home"));
            }
            catch (Exception)
            {
                utils.Log(2, "LOGIN NOK | El proyecto no tiene asignada ninguna cuenta corriente asignada.");
                return(RedirectToAction("IngresoCuentaCorriente"));
            }

            //return Propiedades();
        }
Пример #10
0
        public ActionResult CambiarPeriodo(int?proyectoID, FormCollection form)
        {
            Proyecto Proyecto = (Proyecto)Session["Proyecto"];

            if (Request.Form["CambiarPeriodo"] != null && !Request.Form["CambiarPeriodo"].ToString().Equals(""))
            {
                foreach (var key in form.AllKeys)
                {
                    if (key.Contains("Mes_") && key.Contains("_"))
                    {
                        string[] datos = key.Split('_');
                        if ("Mes".Equals(datos[0]) && datos.Count() == 2)
                        {
                            // Limpiamos los datos
                            int movimientoID = Int32.Parse(datos[1]);
                            int mes          = Int32.Parse(form[key].ToString());
                            int periodo      = Int32.Parse(form["Periodo_" + movimientoID].ToString());

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

                            // Si no hay cambios del periodo ni del mes
                            if (mes == mv.Mes && periodo == mv.Periodo)
                            {
                                continue;
                            }

                            // Obtenemos cuenta corriente del proyecto
                            CuentaCorriente cc           = db.CuentaCorriente.Where(c => c.ProyectoID == mv.ProyectoID).Single();
                            int             saldoInicial = 0;

                            try
                            {
                                saldoInicial = db.Saldo.Where(s => s.CuentaCorrienteID == cc.ID).Where(s => s.Periodo == periodo).Where(s => s.Mes == mes).Single().SaldoInicialCartola;
                            }
                            catch (Exception)
                            {
                                saldoInicial = 0;
                            }

                            // Si solo retrocedio el mes (mas comun)
                            if (mes < mv.Mes && periodo == mv.Periodo)
                            {
                                for (int i = mes; mes <= mv.Mes; i++)
                                {
                                    int ingresos = 0;
                                    int egresos  = 0;

                                    try
                                    {
                                        ingresos = db.Movimiento.Where(a => a.ProyectoID == mv.ProyectoID && a.Periodo == periodo && a.Mes == i && ((a.TipoComprobanteID != 2 && a.CuentaID != 1)) && a.Eliminado == null && a.Nulo == null && a.Temporal == null).Sum(a => a.Monto_Ingresos);
                                    }
                                    catch (Exception)
                                    {
                                        ingresos = 0;
                                    }

                                    try
                                    {
                                        egresos = db.Movimiento.Where(a => a.ProyectoID == mv.ProyectoID && a.Periodo == periodo && a.Mes == i && (a.TipoComprobanteID == 2 && (a.CuentaID != 6 || a.CuentaID == null) || a.CuentaID == null) && a.Eliminado == null && a.Nulo == null && a.Temporal == null).Sum(a => a.Monto_Egresos);
                                    }
                                    catch (Exception)
                                    {
                                        egresos = 0;
                                    }

                                    int saldoFinal = saldoInicial + ingresos - egresos;

                                    Saldo Saldo = db.Saldo.Where(s => s.CuentaCorrienteID == cc.ID && s.Periodo == periodo && s.Mes == i).Single();
                                    Saldo.SaldoFinal      = saldoFinal;
                                    db.Entry(Saldo).State = EntityState.Modified;
                                    db.SaveChanges();

                                    saldoInicial = saldoFinal;
                                }

                                mv.Mes             = mes;
                                db.Entry(mv).State = EntityState.Modified;
                                db.SaveChanges();
                            }

                            // Si solo retrocedio el periodo
                            if (mes == mv.Mes && periodo < mv.Periodo)
                            {
                                continue;
                            }

                            // Si retrocedio ambos
                            if (mes < mv.Mes && periodo < mv.Periodo)
                            {
                                continue;
                            }
                        }
                    }
                }
            }

            if (proyectoID == null)
            {
                ViewBag.ProyectoID = new SelectList(db.Proyecto.Where(p => p.Eliminado == null).OrderBy(p => p.CodCodeni), "ID", "NombreLista", Proyecto.ID);
                var movimiento = db.Movimiento.Where(a => a.ProyectoID == Proyecto.ID && a.Temporal == null && ((a.TipoComprobanteID != 2 && a.CuentaID != 1) || (a.TipoComprobanteID == 2 && (a.CuentaID != 6 || a.CuentaID == null) || a.CuentaID == null)) && a.Eliminado == null).OrderBy(a => a.Proyecto.CodCodeni).ThenByDescending(a => a.Periodo).ThenByDescending(a => a.Mes).ThenByDescending(a => a.NumeroComprobante);
                return(View(movimiento.ToList()));
            }
            else
            {
                ViewBag.ProyectoID = new SelectList(db.Proyecto.Where(p => p.Eliminado == null).OrderBy(p => p.CodCodeni), "ID", "NombreLista", proyectoID);
                var movimiento = db.Movimiento.Where(a => a.ProyectoID == proyectoID && a.Temporal == null && ((a.TipoComprobanteID != 2 && a.CuentaID != 1) || (a.TipoComprobanteID == 2 && (a.CuentaID != 6 || a.CuentaID == null) || a.CuentaID == null)) && a.Eliminado == null).OrderByDescending(a => a.Periodo).ThenByDescending(a => a.Mes).ThenByDescending(a => a.NumeroComprobante);
                return(View(movimiento.ToList()));
            }

            //return View(movimiento.ToList());
        }
Пример #11
0
        public ActionResult ReiniciarProyecto(int proyectoID, int ingreso, int egreso, int reintegro, int deuda, int?monto)
        {
            Proyecto        Proyecto        = db.Proyecto.Find(proyectoID);
            CuentaCorriente CuentaCorriente = db.CuentaCorriente.Where(c => c.ProyectoID == proyectoID).Single();
            Saldo           Saldo           = db.Saldo.Where(s => s.CuentaCorrienteID == CuentaCorriente.ID).OrderByDescending(s => s.ID).Take(1).Single();
            int             mes             = Saldo.Mes;
            int             periodo         = Saldo.Periodo;


            db.Database.ExecuteSqlCommand("DELETE FROM Saldo WHERE CuentaCorrienteID = " + CuentaCorriente.ID);

            Saldo saldo = new Saldo();

            saldo.CuentaCorrienteID = CuentaCorriente.ID;
            saldo.Mes     = mes;
            saldo.Periodo = periodo;
            if (monto != null)
            {
                saldo.SaldoInicialCartola = Int32.Parse(monto.ToString());
            }
            else
            {
                saldo.SaldoInicialCartola = 0;
            }
            saldo.SaldoFinal = saldo.SaldoInicialCartola;
            //saldo.SaldoFinalCartola = saldo.SaldoInicialCartola;

            db.Saldo.Add(saldo);
            db.SaveChanges();

            db.Database.ExecuteSqlCommand("UPDATE BoletaHonorario SET EgresoID = NULL WHERE ProyectoID = " + proyectoID);
            db.Database.ExecuteSqlCommand("UPDATE BoletaHonorario SET EgresoID = NULL WHERE ProyectoID = " + proyectoID);
            db.Database.ExecuteSqlCommand("UPDATE DeudaPendiente SET EgresoID = NULL WHERE ProyectoID = " + proyectoID);
            db.Database.ExecuteSqlCommand("UPDATE FondoFijoGrupo SET EgresoID = NULL, Activo = 'S' WHERE ProyectoID = " + proyectoID);
            db.Database.ExecuteSqlCommand("UPDATE FondoFijo SET EgresoID = NULL WHERE ProyectoID = " + proyectoID);
            db.Database.ExecuteSqlCommand("DELETE FROM DeudaPendiente WHERE ProyectoID = " + proyectoID);
            db.Database.ExecuteSqlCommand("DELETE FROM DetalleEgreso WHERE MovimientoID IN (SELECT ID FROM Movimiento WHERE ProyectoID = " + proyectoID + ")");
            db.Database.ExecuteSqlCommand("DELETE FROM Movimiento WHERE ProyectoID = " + proyectoID);

            // Registramos Ingreso
            if (ingreso > 0)
            {
                try
                {
                    Movimiento Ingreso = new Movimiento();
                    Ingreso.NumeroComprobante = ingreso;
                    Ingreso.Monto_Ingresos    = 0;
                    Ingreso.ProyectoID        = Proyecto.ID;
                    Ingreso.CuentaCorrienteID = CuentaCorriente.ID;
                    Ingreso.Mes               = mes;
                    Ingreso.Periodo           = periodo;
                    Ingreso.PersonaID         = null;
                    Ingreso.DetalleEgresoID   = null;
                    Ingreso.ProveedorID       = null;
                    Ingreso.TipoComprobanteID = ctes.tipoIngreso;
                    Ingreso.CuentaID          = 1;
                    Ingreso.Saldo             = 0;
                    Ingreso.Fecha             = DateTime.Now;
                    Ingreso.FechaCheque       = DateTime.Now;

                    db.Movimiento.Add(Ingreso);
                    db.SaveChanges();
                }
                catch (Exception)
                { }
            }

            // Registramos Egreso
            if (egreso > 0)
            {
                try
                {
                    Movimiento Egreso = new Movimiento();
                    Egreso.NumeroComprobante = egreso;
                    Egreso.Monto_Egresos     = 0;
                    Egreso.ProyectoID        = Proyecto.ID;
                    Egreso.CuentaCorrienteID = CuentaCorriente.ID;
                    Egreso.Mes               = mes;
                    Egreso.Periodo           = periodo;
                    Egreso.PersonaID         = null;
                    Egreso.DetalleEgresoID   = null;
                    Egreso.ProveedorID       = null;
                    Egreso.TipoComprobanteID = ctes.tipoEgreso;
                    Egreso.CuentaID          = 6;
                    Egreso.Saldo             = 0;
                    Egreso.Fecha             = DateTime.Now;
                    Egreso.FechaCheque       = DateTime.Now;

                    db.Movimiento.Add(Egreso);
                    db.SaveChanges();
                }
                catch (Exception)
                { }
            }

            // Registramos Reintegro
            if (reintegro > 0)
            {
                try
                {
                    Movimiento Reintegro = new Movimiento();
                    Reintegro.NumeroComprobante = reintegro;
                    Reintegro.Monto_Egresos     = 0;
                    Reintegro.ProyectoID        = Proyecto.ID;
                    Reintegro.CuentaCorrienteID = CuentaCorriente.ID;
                    Reintegro.Mes               = mes;
                    Reintegro.Periodo           = periodo;
                    Reintegro.PersonaID         = null;
                    Reintegro.DetalleEgresoID   = null;
                    Reintegro.ProveedorID       = null;
                    Reintegro.TipoComprobanteID = ctes.tipoReintegro;
                    Reintegro.CuentaID          = 1;
                    Reintegro.Saldo             = 0;
                    Reintegro.Fecha             = DateTime.Now;
                    Reintegro.FechaCheque       = DateTime.Now;

                    db.Movimiento.Add(Reintegro);
                    db.SaveChanges();
                }
                catch (Exception)
                { }
            }

            if (deuda > 0)
            {
                try
                {
                    DeudaPendiente deudapendiente = new DeudaPendiente();
                    deudapendiente.NumeroComprobante = deuda;
                    deudapendiente.ProyectoID        = Proyecto.ID;
                    deudapendiente.CuentaID          = 1;
                    deudapendiente.Mes         = mes;
                    deudapendiente.Periodo     = periodo;
                    deudapendiente.EgresoID    = null;
                    deudapendiente.ProveedorID = null;
                    deudapendiente.Rut         = null;
                    deudapendiente.DV          = null;
                    deudapendiente.PersonaID   = null;
                    deudapendiente.Monto       = 0;
                    deudapendiente.Fecha       = DateTime.Now;
                    deudapendiente.DocumentoID = 1;

                    db.DeudaPendiente.Add(deudapendiente);
                    db.SaveChanges();
                }
                catch (Exception)
                { }
            }

            Persona Persona = (Persona)Session["Persona"];
            RegistroModificacionProyecto registro = new RegistroModificacionProyecto();

            registro.ProyectoID  = Proyecto.ID;
            registro.PersonaID   = Persona.ID;
            registro.Descripcion = "REINICIO";
            db.RegistroModificacionProyecto.Add(registro);
            db.SaveChanges();
            utils.Log(1, "REINICIA PROYECTO / ProyectoID " + Proyecto.ID + " PersonaID " + Persona.ID);
            return(RedirectToAction("Correlativos"));
        }
Пример #12
0
        public ActionResult Create(Proyecto proyecto)
        {
            Usuario usuario = (Usuario)Session["Usuario"];

            if (!usuario.Administrador.Equals("S"))
            {
                Proyecto tmp = (Proyecto)Session["Proyecto"];
                return(RedirectToAction("Edit", new { id = tmp.ID }));
            }

            try
            {
                if (ModelState.IsValid)
                {
                    // Ingreso dirección
                    Direccion direccion = proyecto.Direccion;
                    direccion.Mostrar  = 1;
                    direccion.ComunaID = Int32.Parse(Request.Form["ComunaID"].ToString());
                    db.Direccion.Add(direccion);
                    db.SaveChanges();

                    // Ingreso convenio
                    Convenio convenio = proyecto.Convenio;
                    if (Request.Form["FechaInicio"] != null && Request.Form["FechaTermino"] != null && !Request.Form["FechaTermino"].ToString().Equals("") && !Request.Form["FechaInicio"].ToString().Equals(""))
                    {
                        convenio.FechaInicio  = DateTime.Parse(Request.Form["FechaInicio"].ToString());
                        convenio.FechaTermino = DateTime.Parse(Request.Form["FechaTermino"].ToString());
                    }
                    else
                    {
                        convenio.FechaInicio  = null;
                        convenio.FechaTermino = null;
                    }

                    // Se define periodo de inicio del proyecto
                    int?periodo_inicio = Int32.Parse(Request.Form["PeriodoInicio"].ToString());
                    int?mes_inicio     = Int32.Parse(Request.Form["MesInicio"].ToString());

                    convenio.Periodo = periodo_inicio;
                    convenio.Mes     = mes_inicio;

                    db.Convenio.Add(convenio);
                    db.SaveChanges();

                    db.Proyecto.Add(proyecto);
                    db.SaveChanges();

                    convenio.ProyectoID      = proyecto.ID;
                    db.Entry(convenio).State = EntityState.Modified;
                    db.SaveChanges();

                    if (Request.Form["Numero"] != null && Request.Form["BancoID"] != null && !Request.Form["Numero"].ToString().Equals("") && !Request.Form["BancoID"].ToString().Equals(""))
                    {
                        Direccion direccionCtaCte = new Direccion();
                        direccionCtaCte.Mostrar  = 1;
                        direccionCtaCte.ComunaID = Int32.Parse(Request.Form["ComunaID"].ToString());
                        db.Direccion.Add(direccionCtaCte);
                        db.SaveChanges();

                        // Se ingresa cuenta corriente
                        CuentaCorriente cuentaCorriente = new CuentaCorriente();
                        cuentaCorriente.ProyectoID   = proyecto.ID;
                        cuentaCorriente.BancoID      = Int32.Parse(Request.Form["BancoID"].ToString());
                        cuentaCorriente.Numero       = Request.Form["Numero"].ToString();
                        cuentaCorriente.Desactiva    = 0;
                        cuentaCorriente.LineaCredito = 0;
                        cuentaCorriente.DireccionID  = direccionCtaCte.ID;
                        db.CuentaCorriente.Add(cuentaCorriente);
                        db.SaveChanges();

                        proyecto.MesInicio     = mes_inicio;
                        proyecto.PeriodoInicio = periodo_inicio;

                        db.Entry(proyecto).State = EntityState.Modified;
                        db.SaveChanges();

                        // Se define saldo inicial para periodo
                        Saldo saldo = new Saldo();
                        saldo.CuentaCorrienteID = cuentaCorriente.ID;
                        saldo.Mes     = (int)mes_inicio;
                        saldo.Periodo = (int)periodo_inicio;

                        if (Request.Form["SaldoInicial"] != null && !Request.Form["SaldoInicial"].ToString().Equals("") && !Request.Form["SaldoInicial"].ToString().Equals("0"))
                        {
                            saldo.SaldoInicialCartola = Int32.Parse(Request.Form["SaldoInicial"].ToString());
                            saldo.SaldoFinal          = saldo.SaldoInicialCartola;
                            //saldo.SaldoFinalCartola = saldo.SaldoInicialCartola;
                        }
                        else
                        {
                            saldo.SaldoInicialCartola = 0;
                            saldo.SaldoFinal          = 0;
                            // saldo.SaldoFinalCartola = 0;
                        }

                        db.Saldo.Add(saldo);
                        db.SaveChanges();
                    }

                    // Si se selecciona Supervisor, le asignamos Rol y verificamos que tenga cuenta de Usuario activa.
                    if (Request.Form["PersonaID"] != null && !Request.Form["PersonaID"].ToString().Equals(""))
                    {
                        int tipoRolID = 4;
                        int personaID = Int32.Parse(Request.Form["PersonaID"].ToString());

                        try
                        {
                            Usuario usuario_tmp = db.Usuario.Where(u => u.PersonaID == personaID).Single();
                        }
                        catch (Exception)
                        {
                            // El usuario no tiene cuenta y por lo tanto se le crea una de nivel supervisor
                            Persona persona = db.Persona.Find(personaID);
                            string  nombre  = (persona.Nombres.Substring(0, 1) + "" + persona.ApellidoParterno).Replace(" ", "").ToLower().ToString();

                            Usuario tmp = new Usuario();
                            tmp.PersonaID     = personaID;
                            tmp.Nombre        = nombre;
                            tmp.Estado        = "A";
                            tmp.Administrador = "N";
                            tmp.Supervisor    = "S";
                            tmp.Password      = utils.md5(persona.Rut.Trim());

                            db.Usuario.Add(tmp);
                            db.SaveChanges();
                        }

                        try
                        {
                            Rol rol_tmp = db.Rol.Where(r => r.PersonaID == personaID).Where(r => r.TipoRolID == tipoRolID).Where(r => r.ProyectoID == proyecto.ID).Single();
                        }
                        catch (Exception)
                        {
                            // El usuario no tiene rol, se le asigna rol supervisor sobre el proyecto
                            Rol tmp = new Rol();
                            tmp.PersonaID  = personaID;
                            tmp.ProyectoID = proyecto.ID;
                            tmp.TipoRolID  = tipoRolID;

                            db.Rol.Add(tmp);
                            db.SaveChanges();
                        }
                    }

                    return(RedirectToAction("Create"));
                }
            }
            catch (Exception e)
            {
                ViewBag.Mensaje = utils.mensajeError(e.Message + " " + e.StackTrace);
                if (e.InnerException != null)
                {
                    ViewBag.Mensaje = utils.mensajeError(e.InnerException.Message + " " + e.StackTrace);
                    if (e.InnerException.InnerException != null)
                    {
                        ViewBag.Mensaje = utils.mensajeError(e.InnerException.InnerException.Message + " " + e.StackTrace);
                    }
                }
            }

            ViewBag.PersonaID            = new SelectList(db.Persona.OrderBy(p => p.Nombres).ThenBy(p => p.ApellidoParterno).ThenBy(p => p.ApellidoMaterno), "ID", "NombreLista");
            ViewBag.SistemaAsistencialID = new SelectList(db.SistemaAsistencial, "ID", "NombreLista", proyecto.SistemaAsistencialID);
            ViewBag.TipoProyectoID       = new SelectList(db.TipoProyecto, "ID", "NombreLista", proyecto.TipoProyectoID);
            ViewBag.RegionID             = new SelectList(db.Region.OrderBy(a => a.Nombre), "ID", "Nombre");
            ViewBag.BancoID = new SelectList(db.Banco, "ID", "Nombre");
            return(View(proyecto));
        }
Пример #13
0
        //
        // GET: /CuentaCorriente/Details/5

        public ViewResult Details(int id)
        {
            CuentaCorriente cuentacorriente = db.CuentaCorriente.Find(id);

            return(View(cuentacorriente));
        }
Пример #14
0
 public FrmImputaciones(string IdCuenta, ItemCuentaCorriente icc, string ProcessName, CuentaCorriente CtaCorriente)
 {
     InitializeComponent();
     _idCuenta            = IdCuenta;
     _itemCuentaCorriente = icc;
     _processName         = ProcessName;
     _ctaCorriente        = CtaCorriente;
     Init();
 }
 public override SavingInvestementProduct createProduct()
 {
     CuentaCorriente cuenta = new CuentaCorriente();
     
     return cuenta;
 }
Пример #16
0
        public ActionResult Codeni(int Periodo = 0, int Mes = 0)
        {
            if (Periodo == 0 || Mes == 0)
            {
                Periodo = (int)Session["Periodo"];
                Mes     = (int)Session["Mes"];
            }

            Proyecto        proyecto        = (Proyecto)Session["Proyecto"];
            CuentaCorriente cuentaCorriente = (CuentaCorriente)Session["CuentaCorriente"];

            ViewBag.Periodo = Periodo;
            ViewBag.Mes     = Mes;

            ViewBag.SaldoInicialCta = db.Saldo.Where(m => m.CuentaCorrienteID == cuentaCorriente.ID).Where(m => m.Periodo == Periodo).Where(m => m.Mes == Mes).Single().SaldoInicialCartola;
            ViewBag.SaldoFinalCta   = db.Saldo.Where(m => m.CuentaCorrienteID == cuentaCorriente.ID).Where(m => m.Periodo == Periodo).Where(m => m.Mes == Mes).Single().SaldoFinal;

            ViewBag.CuentasIngresos = db.Cuenta.Where(c => c.Tipo.Equals("I")).Where(c => c.Codigo.Length <= 2).OrderBy(c => c.Orden).ToList();
            ViewBag.CuentasEgresos  = db.Cuenta.Where(c => c.Tipo.Equals("E")).Where(c => c.Codigo.Length <= 2).OrderBy(c => c.Orden).ToList();

            try
            {
                ViewBag.plazas = db.Convenio.Where(c => c.ProyectoID == proyecto.ID && c.Mes == Mes && c.Periodo == Periodo).Single().NroPlazas.ToString();
            }
            catch (Exception)
            {
                ViewBag.plazas = "0";
            }


            try
            {
                ViewBag.Reintegros = db.Movimiento.Where(m => m.TipoComprobanteID == ctes.tipoReintegro).Where(m => m.Periodo == Periodo).Where(m => m.Mes == Mes).Where(m => m.ProyectoID == proyecto.ID).Where(m => m.Nulo == null && m.CuentaID != 1 && m.Eliminado == null && m.Temporal == null).OrderBy(m => m.CuentaID).ToList();
            }
            catch (Exception)
            {
                ViewBag.Reintegros = new List <Movimiento>();
            }

            try
            {
                ViewBag.Ingresos = db.Movimiento.Where(m => m.TipoComprobanteID == ctes.tipoIngreso).Where(m => m.Periodo == Periodo).Where(m => m.Mes == Mes).Where(m => m.ProyectoID == proyecto.ID).Where(m => m.Nulo == null && m.CuentaID != 1 && m.Eliminado == null && m.Temporal == null).OrderBy(m => m.CuentaID).ToList();
            }
            catch (Exception)
            {
                ViewBag.Ingresos = new List <Movimiento>();
            }

            try
            {
                ViewBag.Egresos = db.DetalleEgreso.Where(m => m.Egreso.Periodo == Periodo).Where(m => m.Egreso.Mes == Mes).Where(m => m.Egreso.ProyectoID == proyecto.ID).Where(m => m.Nulo == null && m.Temporal == null && m.Egreso.Eliminado == null && ((m.CuentaID != 6 || m.CuentaID == null) || m.CuentaID == null)).OrderBy(m => m.CuentaID).ToList();
            } catch (Exception)
            {
                ViewBag.Egresos = new List <DetalleEgreso>();
            }

            try
            {
                ViewBag.indemnizacion = db.Periodo.Where(c => c.ProyectoID == proyecto.ID && c.Mes == Mes && c.Ano == Periodo).Single().Indemnizacion;
            }
            catch (Exception)
            {
                ViewBag.indemnizacion = 0;
            }

            // Periodo

            ViewBag.FechaRendicion = "0";

            try
            {
                Periodo PeriodoRendicion = db.Periodo.Where(p => p.Ano == Periodo && p.Mes == Mes && p.ProyectoID == proyecto.ID).Single();
                ViewBag.FechaRendicion = PeriodoRendicion.Fecha.Value.ToShortDateString() + " " + PeriodoRendicion.Fecha.Value.ToShortTimeString();
            }
            catch (Exception)
            {
                ViewBag.FechaRendicion = "0";
            }

            return(View());
        }
Пример #17
0
        public ActionResult Guardar()
        {
            var Meses = new string[12]
            {
                "Enero",
                "Febrero",
                "Marzo",
                "Abril",
                "Mayo",
                "Junio",
                "Julio",
                "Agosto",
                "Septiembre",
                "Octubre",
                "Noviembre",
                "Diciembre"
            };

            int             periodo         = (int)Session["Periodo"];
            int             mes             = (int)Session["Mes"];
            Proyecto        proyecto        = (Proyecto)Session["Proyecto"];
            CuentaCorriente cuentaCorriente = (CuentaCorriente)Session["CuentaCorriente"];
            Persona         persona         = (Persona)Session["Persona"];
            int             intervenciones  = 0;
            int             indemnizacion   = 0;

            try
            {
                if (Request.Form["Intervenciones"] == null || Request.Form["Intervenciones"].ToString().Equals(""))
                {
                    throw new Exception("Debe ingresar el número de intervenciones correspondientes al período.");
                }

                intervenciones = Int32.Parse(Request.Form["Intervenciones"].ToString());
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
                //@ViewBag.Mensaje = utils.mensajeError("Debe ingresar las intervenciones correspondientes al período.");
                //return View();
            }

            try
            {
                indemnizacion = Int32.Parse(Request.Form["Indemnizacion"].ToString());
            }
            catch (Exception)
            {
                indemnizacion = 0;
            }

            // Guardamos interveciones
            Intervencion intervencion = new Intervencion();

            intervencion.Mes        = mes;
            intervencion.Periodo    = periodo;
            intervencion.ProyectoID = proyecto.ID;
            intervencion.Cobertura  = proyecto.Convenio.NroPlazas;
            intervencion.Atenciones = intervenciones;

            try
            {
                if (ModelState.IsValid)
                {
                    db.Intervencion.Add(intervencion);
                    db.SaveChanges();
                }
                else
                {
                    throw new Exception("ModelState no válido.");
                }
            }
            catch (Exception e)
            {
                //throw new Exception(e.StackTrace);
                @ViewBag.Mensaje = utils.mensajeError(utils.Mensaje(e));
                return(View());
            }

            int prox_mes     = mes;
            int prox_periodo = periodo;

            if (mes == 12)
            {
                prox_periodo++;
                prox_mes = 1;
            }
            else
            {
                prox_mes++;
            }

            try
            {
                // Actualizamos convenio para proximo mes
                //Response.Write("actualizando convenio/");
                //Response.Write("mes: " + mes + ", periodo:" + periodo + "/proxm:" + prox_mes+",prox_pe:" + prox_periodo);
                //Convenio Convenio = db.Convenio.Where(c => c.ProyectoID == proyecto.ID && c.Mes == mes && c.Periodo == periodo).Single();
                //if (Convenio.Periodo != prox_periodo && Convenio.Mes != prox_mes)
                //{
                Proyecto Proyecto = db.Proyecto.Find(proyecto.ID);

                //Convenio = null;
                Convenio Convenio = new Convenio();

                Convenio.ResEx        = proyecto.Convenio.ResEx;
                Convenio.NroPlazas    = proyecto.Convenio.NroPlazas;
                Convenio.Comentarios  = proyecto.Convenio.Comentarios;
                Convenio.ProyectoID   = proyecto.ID;
                Convenio.Periodo      = prox_periodo;
                Convenio.Mes          = prox_mes;
                Convenio.FechaInicio  = proyecto.Convenio.FechaInicio;
                Convenio.FechaTermino = proyecto.Convenio.FechaTermino;
                db.Convenio.Add(Convenio);
                db.SaveChanges();

                Proyecto.Convenio        = null;
                Proyecto.ConvenioID      = Convenio.ID;
                db.Entry(Proyecto).State = EntityState.Modified;
                db.SaveChanges();

                Session.Remove("Proyecto");
                Session.Add("Proyecto", Proyecto);

                //Response.Write("convenio actualizado");
                //}
            }
            catch (Exception e)
            {
                //throw new Exception(e.StackTrace);
                @ViewBag.Mensaje = utils.mensajeError(utils.Mensaje(e));
                return(View());
            }

            // Cerramos movimientos del período
            int suma_ingresos = 0;
            int suma_egresos  = 0;

            try
            {
                //List<Movimiento> movimientos = db.Movimiento.Where(m => m.Periodo == periodo).Where(m => m.Mes == mes).Where(m => m.ProyectoID == proyecto.ID).ToList();

                //List<Movimiento> ingresos = db.Movimiento.Where(m => m.Periodo == periodo).Where(m => m.Mes == mes).Where(m => m.ProyectoID == proyecto.ID).ToList();
                //List<Movimiento> egresos = db.Movimiento.Where(m => m.Periodo == periodo).Where(m => m.Mes == mes).Where(m => m.ProyectoID == proyecto.ID).ToList();

                List <Movimiento> ingresos = db.Movimiento.Where(m => m.Periodo == periodo).Where(m => m.Mes == mes).Where(m => m.ProyectoID == proyecto.ID).Where(m => m.TipoComprobanteID != ctes.tipoEgreso).Where(m => m.Nulo == null && m.CuentaID != 1 && m.Eliminado == null && m.Temporal == null).ToList();
                List <Movimiento> egresos  = db.Movimiento.Where(m => m.Periodo == periodo).Where(m => m.Mes == mes).Where(m => m.ProyectoID == proyecto.ID).Where(m => m.TipoComprobanteID == ctes.tipoEgreso).Where(m => m.Nulo == null && m.Temporal == null && m.Eliminado == null && ((m.CuentaID != 6 || m.CuentaID == null) || m.CuentaID == null)).ToList();

                suma_ingresos = ingresos.Sum(m => m.Monto_Ingresos);
                suma_egresos  = egresos.Sum(m => m.Monto_Egresos);

                foreach (Movimiento movimiento in ingresos)
                {
                    movimiento.Cerrado = "S";
                    if (ModelState.IsValid)
                    {
                        db.Entry(movimiento).State = EntityState.Modified;
                        db.SaveChanges();
                    }
                    else
                    {
                        throw new Exception("ModelState no válido. (" + movimiento.ID + ")");
                    }
                }

                foreach (Movimiento movimiento in egresos)
                {
                    movimiento.Cerrado = "S";
                    if (ModelState.IsValid)
                    {
                        db.Entry(movimiento).State = EntityState.Modified;
                        db.SaveChanges();
                    }
                    else
                    {
                        throw new Exception("ModelState no válido. (" + movimiento.ID + ")");
                    }
                }
            }
            catch (Exception e)
            {
                @ViewBag.Mensaje = utils.mensajeError(utils.Mensaje(e));
                return(View());
                //throw new Exception(e.StackTrace);
            }

            // Cerramos el periodo
            Periodo periodo_cierre = new Periodo();

            periodo_cierre.Mes           = mes;
            periodo_cierre.Ano           = periodo;
            periodo_cierre.ProyectoID    = proyecto.ID;
            periodo_cierre.Indemnizacion = indemnizacion;
            periodo_cierre.Fecha         = DateTime.Now;
            periodo_cierre.PersonaID     = persona.ID;

            try
            {
                if (ModelState.IsValid)
                {
                    db.Periodo.Add(periodo_cierre);
                    db.SaveChanges();

                    if (mes == 12)
                    {
                        Session.Add("Mes", 1);
                        Session.Add("Periodo", periodo + 1);
                    }
                    else
                    {
                        Session.Add("Mes", mes + 1);
                        Session.Add("Periodo", periodo);
                    }

                    Session.Add("Fecha", Meses[(int)Session["Mes"] - 1] + " " + Session["Periodo"].ToString());
                    //Session.Add("InformacionPie", proyecto.NombreLista + " (" + cuentaCorriente.NumeroLista + ") | " + persona.NombreCompleto + " | " + Session["Fecha"].ToString());

                    Usuario usuario = (Usuario)Session["Usuario"];
                    Persona Persona = (Persona)Session["Persona"];

                    if (usuario.esAdministrador)
                    {
                        Session.Add("InformacionPie", proyecto.NombreLista + " (" + cuentaCorriente.NumeroLista + ") | " + Persona.NombreCompleto + " | " + Session["Fecha"].ToString() + " | ProyectoID: " + proyecto.ID + " CtaCteID: " + cuentaCorriente.ID + " PersonaID: " + Persona.ID);
                    }
                    else
                    {
                        Session.Add("InformacionPie", proyecto.NombreLista + " (" + cuentaCorriente.NumeroLista + ") | " + Persona.NombreCompleto + " | " + Session["Fecha"].ToString());
                    }
                }
            }
            catch (Exception e)
            {
                //@ViewBag.Mensaje = utils.mensajeError(e.Message);
                //return View();
                throw new Exception(e.StackTrace);
            }

            try
            {
                Saldo saldoOriginal = db.Saldo.Where(m => m.CuentaCorrienteID == cuentaCorriente.ID).Where(m => m.Periodo == periodo).Where(m => m.Mes == mes).Single();
                //int saldoFinal = saldoOriginal.SaldoInicialCartola + suma_ingresos - suma_egresos - indemnizacion;
                int saldoFinal = saldoOriginal.SaldoInicialCartola + suma_ingresos - suma_egresos;
                //saldoOriginal.SaldoFinalCartola = saldoFinal;
                saldoOriginal.SaldoFinal      = saldoFinal;
                db.Entry(saldoOriginal).State = EntityState.Modified;
                db.SaveChanges();

                // ----

                Saldo saldo = new Saldo();
                saldo.CuentaCorrienteID = cuentaCorriente.ID;
                saldo.Mes                 = Int32.Parse(Session["Mes"].ToString());
                saldo.Periodo             = Int32.Parse(Session["Periodo"].ToString());
                saldo.SaldoInicialCartola = saldoFinal;
                saldo.SaldoFinal          = saldoFinal;
                //saldo.SaldoFinalCartola = saldoFinal;

                db.Saldo.Add(saldo);
                db.SaveChanges();
            }
            catch (Exception)
            {}

            @ViewBag.Mensaje = utils.mensajeOK("Rendición de cuentas generada con éxito.");
            return(View());
            //return RedirectToAction("Index");
        }
Пример #18
0
        public ActionResult Create(Movimiento movimiento)
        {
            utils.Log(1, "Inicio proceso de ingreso");

            int             saldoFinal      = 0;
            int             periodo         = (int)Session["Periodo"];
            int             mes             = (int)Session["Mes"];
            int             cuentaID        = Int32.Parse(Request.Form["CuentaID"].ToString());
            Proyecto        Proyecto        = (Proyecto)Session["Proyecto"];
            CuentaCorriente CuentaCorriente = (CuentaCorriente)Session["CuentaCorriente"];

            movimiento.NumeroComprobante = 1;

            if (db.Movimiento.Where(a => a.TipoComprobanteID == 1).Where(a => a.Periodo == periodo).Count() > 0)
            {
                movimiento.NumeroComprobante = db.Movimiento.Where(a => a.TipoComprobanteID == 1).Where(a => a.Periodo == periodo).Max(a => a.NumeroComprobante) + 1;
            }

            movimiento.EstablecimientoID = Proyecto.ID;
            movimiento.CuentaCorrienteID = CuentaCorriente.ID;
            movimiento.Mes                 = (int)Session["Mes"];
            movimiento.Periodo             = (int)Session["Periodo"];
            movimiento.BeneficiarioID      = 2;
            movimiento.ComprobanteEgresoID = 1;
            movimiento.TipoComprobanteID   = 1;
            movimiento.CuentaID            = cuentaID;
            ViewBag.NroComprobante         = movimiento.NumeroComprobante.ToString();
            ViewBag.Arbol    = utils.generarSelectHijos(db.Cuenta.Find(Int32.Parse(System.Configuration.ConfigurationManager.AppSettings["ID_CUENTA_INGRESO"])), cuentaID);
            movimiento.Saldo = saldoFinal;

            try
            {
                if (ModelState.IsValid)
                {
                    db.Movimiento.Add(movimiento);
                    db.SaveChanges();
                    @ViewBag.Mensaje = utils.mensajeOK("Ingreso registrado con éxito!");
                }
                else
                {
                    @ViewBag.Mensaje = utils.mensajeError("Ocurrió un error al registrar el ingreso");
                    utils.erroresState(ModelState);
                    return(View(movimiento));
                }
            }
            catch (SqlException e)
            {
                @ViewBag.Mensaje = utils.mensajeError(e.Message);
                return(View(movimiento));
            }
            catch (Exception e)
            {
                @ViewBag.Mensaje = utils.mensajeError(e.Message);
                return(View(movimiento));
            }

            utils.Log(1, "Fin proceso de ingreso");
            return(View(movimiento));

            /*
             * int saldoFinal = 0;
             * int periodo = (int)Session["Periodo"];
             * int mes = (int)Session["Mes"];
             * Proyecto Establecimiento = (Proyecto)Session["Proyecto"];
             * CuentaCorriente CuentaCorriente = (CuentaCorriente)Session["CuentaCorriente"];
             * int NumeroComprobante = 1;
             * if (db.Movimiento.Where(a => a.TipoComprobanteID == 1).Where(a => a.Periodo == periodo).Count() > 0)
             * {
             *  NumeroComprobante = db.Movimiento.Where(a => a.TipoComprobanteID == 1).Where(a => a.Periodo == periodo).Max(a => a.NumeroComprobante) + 1;
             * }
             * movimiento.EstablecimientoID = Establecimiento.ID;
             * movimiento.CuentaCorrienteID = CuentaCorriente.ID;
             * movimiento.Mes = (int)Session["Mes"];
             * movimiento.Periodo = (int)Session["Periodo"];
             * movimiento.CuentaID = Int32.Parse(Request.Form["CuentaID"].ToString());
             * movimiento.NumeroComprobante = NumeroComprobante;
             * movimiento.BeneficiarioID = 2;
             * movimiento.ComprobanteEgresoID = 1;
             * movimiento.TipoComprobanteID = 1;
             *
             * /*
             * try
             * {
             *  // Si existe registro del saldo actual, se suma monto del ingreso al saldo final
             *  Saldo Saldo = db.Saldo.Where(s => s.CuentaCorrienteID == CuentaCorriente.ID).Where(s => s.Periodo == periodo).Where(s => s.Mes == mes).Single();
             *  Saldo.SaldoFinal += movimiento.Monto_Ingresos;
             *  if (ModelState.IsValid)
             *  {
             *      db.Entry(Saldo).State = EntityState.Modified;
             *      db.SaveChanges();
             *  }
             *  else
             *  {
             *      utils.erroresState(ModelState);
             *      return Create(movimiento);
             *  }
             *  saldoFinal = Saldo.SaldoFinal;
             *  utils.Log(1, "Existe registro de saldo para periodo actual, se actualiza el saldo final.");
             * }
             * catch (Exception e)
             * {
             *  utils.Log(1, "No existe registro de saldo para periodo actual. " + e.InnerException.Message);
             *  try
             *  {
             *      // Verificamos si existe periodo anterior
             *      int periodo_anterior = periodo, mes_anterior = mes;
             *      if (mes == 1)
             *      {
             *          mes_anterior = 12;
             *          periodo_anterior--;
             *      }
             *      else
             *      {
             *          mes_anterior--;
             *      }
             *      Saldo SaldoAnterior = db.Saldo.Where(s => s.CuentaCorrienteID == CuentaCorriente.ID).Where(s => s.Periodo == periodo_anterior).Where(s => s.Mes == mes_anterior).Single();
             *      // Ingresamos nuevo registro de saldo y actualizamos saldo final
             *      Saldo SaldoActual = new Saldo();
             *      SaldoActual.SaldoInicialCartola = SaldoAnterior.SaldoFinal;
             *      SaldoActual.SaldoFinal = SaldoAnterior.SaldoFinal + movimiento.Monto_Ingresos;
             *      SaldoActual.Periodo = periodo;
             *      SaldoActual.Mes = mes;
             *      SaldoActual.CuentaCorrienteID = CuentaCorriente.ID;
             *      db.Saldo.Add(SaldoActual);
             *      db.SaveChanges();
             *      saldoFinal = SaldoActual.SaldoFinal;
             *      utils.Log(1, "Existe registro de saldo para periodo anterior y se ingresa y actualiza saldo para periodo actual");
             *  }
             *  catch (Exception e2)
             *  {
             *      utils.Log(1, "No existe registro de saldo para periodo anterior. " + e2.Message);
             *      try
             *      {
             *          // Si no existe saldo para periodo actual ni anterior, definimos saldo inicial en CERO en el periodo actual para la cuenta corriente.
             *          Saldo SaldoActual = new Saldo();
             *          SaldoActual.SaldoInicialCartola = 0;
             *          SaldoActual.SaldoFinal = movimiento.Monto_Ingresos;
             *          SaldoActual.Periodo = periodo;
             *          SaldoActual.Mes = mes;
             *          SaldoActual.CuentaCorrienteID = CuentaCorriente.ID;
             *          db.Saldo.Add(SaldoActual);
             *          db.SaveChanges();
             *
             *          saldoFinal = 0;// SaldoActual.SaldoFinal;
             *          utils.Log(1, "Se crea registro para saldo para periodo actual y se define saldo inicial CERO.");
             *      }
             *      catch (Exception e3)
             *      {
             *          @ViewBag.Mensaje = utils.mensajeError(e3.Message);
             *          return Create(movimiento);
             *      }
             *  }
             * }
             */
            /*
             * movimiento.Saldo = saldoFinal;
             * try
             * {
             *  if (ModelState.IsValid)
             *  {
             *      db.Movimiento.Add(movimiento);
             *      db.SaveChanges();
             *  }
             *  else
             *  {
             *      utils.erroresState(ModelState);
             *      return Create(movimiento);
             *  }
             * }
             * catch (Exception e)
             * {
             *  @ViewBag.Mensaje = utils.mensajeError(e.Message);
             *  return Create(movimiento);
             * }
             *
             * return Create();
             * */
        }
Пример #19
0
        public void RecalcularSaldos(int p_desde, int p_hasta, int m_desde, int m_hasta, Proyecto p, CuentaCorriente c)
        {
            SAG2DB db           = new SAG2DB();
            int    saldoInicial = 0;

            try
            {
                saldoInicial = db.Saldo.Where(s => s.CuentaCorrienteID == c.ID && s.Mes == m_desde && s.Periodo == p_desde).Single().SaldoInicialCartola;
            }
            catch (Exception)
            {
                saldoInicial = 0;
            }

            int saldo = saldoInicial;

            if (p_desde == p_hasta)
            {
                for (int i = m_desde; i <= m_hasta; i++)
                {
                    int ig = db.Movimiento.Where(m => m.Mes == i && m.ProyectoID == p.ID && m.Periodo == p_desde && m.Nulo == null && m.Temporal == null && m.Eliminado == null).Sum(m => m.Monto_Ingresos);
                    int eg = db.Movimiento.Where(m => m.Mes == i && m.ProyectoID == p.ID && m.Periodo == p_desde && m.Nulo == null && m.Temporal == null && m.Eliminado == null).Sum(m => m.Monto_Egresos);

                    Saldo sa = db.Saldo.Where(s => s.CuentaCorrienteID == c.ID && s.Mes == i && s.Periodo == p_desde).Single();
                    sa.SaldoInicialCartola = saldo;
                    saldo              = saldo + ig - eg;
                    sa.SaldoFinal      = saldo;
                    db.Entry(sa).State = EntityState.Modified;
                    db.SaveChanges();
                }
            }

            // Exite cambio de año en las modificaciones
            if (p_desde < p_hasta)
            {
                for (int i = m_desde; i <= 12; i++)
                {
                    int ig = db.Movimiento.Where(m => m.Mes == i && m.ProyectoID == p.ID && m.Periodo == p_desde && m.Nulo == null && m.Temporal == null && m.Eliminado == null).Sum(m => m.Monto_Ingresos);
                    int eg = db.Movimiento.Where(m => m.Mes == i && m.ProyectoID == p.ID && m.Periodo == p_desde && m.Nulo == null && m.Temporal == null && m.Eliminado == null).Sum(m => m.Monto_Egresos);

                    Saldo sa = db.Saldo.Where(s => s.CuentaCorrienteID == c.ID && s.Mes == i && s.Periodo == p_desde).Single();
                    sa.SaldoInicialCartola = saldo;
                    saldo              = saldo + ig - eg;
                    sa.SaldoFinal      = saldo;
                    db.Entry(sa).State = EntityState.Modified;
                    db.SaveChanges();
                }

                for (int i = 1; i <= m_hasta; i++)
                {
                    int ig = db.Movimiento.Where(m => m.Mes == i && m.ProyectoID == p.ID && m.Periodo == p_hasta && m.Nulo == null && m.Temporal == null && m.Eliminado == null).Sum(m => m.Monto_Ingresos);
                    int eg = db.Movimiento.Where(m => m.Mes == i && m.ProyectoID == p.ID && m.Periodo == p_hasta && m.Nulo == null && m.Temporal == null && m.Eliminado == null).Sum(m => m.Monto_Egresos);

                    Saldo sa = db.Saldo.Where(s => s.CuentaCorrienteID == c.ID && s.Mes == i && s.Periodo == p_hasta).Single();
                    sa.SaldoInicialCartola = saldo;
                    saldo              = saldo + ig - eg;
                    sa.SaldoFinal      = saldo;
                    db.Entry(sa).State = EntityState.Modified;
                    db.SaveChanges();
                }
            }
        }
Пример #20
0
 public FrmImputacionesCtaCte(string IdCuenta, ItemCuentaCorriente icc, string ProcessName, CuentaCorriente CtaCorriente, string Origen)
 {
     InitializeComponent();
     _idCuenta            = IdCuenta;
     _itemCuentaCorriente = icc;
     _processName         = ProcessName;
     _ctaCorriente        = CtaCorriente;
     _origen            = Origen;
     _imputarPagoCtaCte = new businessrules.ImputarPagoCuentaCorriente(this._origen, this._idCuenta, CtaCorriente);
     Init();
 }
Пример #21
0
        public ActionResult Conciliacion(int Periodo, int Mes)
        {
            ViewBag.SaldoCartola    = "0";
            ViewBag.GastosBancarios = "0";
            ViewBag.Depositos       = "0";
            int periodo = Periodo;
            int mes     = Mes;

            ViewBag.Fecha = DateTime.Now.ToShortDateString();
            Proyecto        Proyecto        = (Proyecto)Session["Proyecto"];
            CuentaCorriente CuentaCorriente = (CuentaCorriente)Session["CuentaCorriente"];

            try
            {
                ViewBag.SaldoInicial = db.Saldo.Where(m => m.CuentaCorrienteID == CuentaCorriente.ID).Where(m => m.Periodo == Periodo).Where(m => m.Mes == Mes).Single().SaldoInicialCartola;
            }
            catch (Exception)
            {
                ViewBag.SaldoInicial = 0;
            }

            var movimientos = from m in db.Movimiento
                              where (m.ProyectoID == Proyecto.ID) && ((m.Periodo == periodo && m.Mes == mes) || (m.Periodo < periodo) || (m.Periodo == periodo && m.Mes < mes)) && m.Temporal == null && m.Nulo == null && m.Eliminado == null && ((m.CuentaID != 1 && m.CuentaID != 6) || m.CuentaID == null)
                              orderby m.Periodo, m.Fecha, m.NumeroComprobante
            select m;

            ViewBag.periodo         = Periodo;
            ViewBag.mes             = Mes;
            ViewBag.cuentaCorriente = (CuentaCorriente)Session["CuentaCorriente"];
            ViewBag.NumeroCuenta    = @ViewBag.cuentaCorriente.Numero;
            //ViewBag.Cheques = movimientos.Sum(m => m.Monto_Egresos);

            try
            {
                var detalles = from m in db.Movimiento
                               where (m.ProyectoID == Proyecto.ID) && ((m.Periodo == Periodo && m.Mes == Mes) || (m.Periodo < Periodo) || (m.Periodo == Periodo && m.Mes < Mes)) && m.Temporal == null && m.Eliminado == null && m.Nulo == null && ((m.CuentaID != 1 && m.CuentaID != 6) || m.CuentaID == null)
                               select m;
                ViewBag.Cheques = detalles.Sum(d => d.Monto_Egresos);
                //ViewBag.Cheques = db.DetalleEgreso.Where(d => d.Egreso.ProyectoID == Proyecto.ID).Where(m => m.Egreso.Periodo <= Periodo).Where(m => m.Egreso.Mes <= Mes).Where(d => d.Conciliado == null && d.Temporal == null && d.Nulo == null && d.CuentaID != 1 && d.CuentaID != 6).Sum(d => d.Monto);
            }
            catch (Exception)
            {
                ViewBag.Cheques = 0;
            }

            try
            {
                Conciliacion Conciliacion = db.Conciliacion.Where(c => c.ProyectoID == Proyecto.ID).Where(c => c.Periodo == Periodo).Where(c => c.Mes == Mes).Single();
                ViewBag.ConciliacionID  = Conciliacion.ID;
                ViewBag.SaldoCartola    = Conciliacion.SaldoCartola;
                ViewBag.GastosBancarios = Conciliacion.Gastos;
                ViewBag.Depositos       = Conciliacion.Depositos;
                ViewBag.Fecha           = Conciliacion.FechaCartola.ToShortDateString();
                ViewBag.SaldoLibro      = Conciliacion.SaldoCartola + Conciliacion.Depositos - ViewBag.Cheques + Conciliacion.Gastos;
            }
            catch (Exception)
            {
                ViewBag.SaldoCartola    = 0;
                ViewBag.GastosBancarios = 0;
                ViewBag.Depositos       = 0;
                ViewBag.Fecha           = DateTime.Now.ToShortDateString();
                ViewBag.SaldoLibro      = 0;
            }

            return(View(movimientos.ToList()));
        }
Пример #22
0
        public ActionResult Create(Movimiento movimiento)
        {
            utils.Log(1, "Inicio proceso de ingreso");

            int             saldoFinal      = 0;
            int             periodo         = (int)Session["Periodo"];
            int             mes             = (int)Session["Mes"];
            int             cuentaID        = Int32.Parse(Request.Form["CuentaID"].ToString());
            Proyecto        Proyecto        = (Proyecto)Session["Proyecto"];
            CuentaCorriente CuentaCorriente = (CuentaCorriente)Session["CuentaCorriente"];

            movimiento.NumeroComprobante = 1;
            movimiento.Descripcion       = movimiento.Descripcion.ToUpper();

            if (db.Movimiento.Where(m => m.ProyectoID == Proyecto.ID).Where(a => a.TipoComprobanteID == ctes.tipoIngreso).Where(a => a.Periodo == periodo).Count() > 0)
            {
                movimiento.NumeroComprobante = db.Movimiento.Where(m => m.ProyectoID == Proyecto.ID).Where(a => a.TipoComprobanteID == ctes.tipoIngreso).Where(a => a.Periodo == periodo).Max(a => a.NumeroComprobante) + 1;
            }

            movimiento.ProyectoID        = Proyecto.ID;
            movimiento.CuentaCorrienteID = CuentaCorriente.ID;
            movimiento.Mes               = (int)Session["Mes"];
            movimiento.Periodo           = (int)Session["Periodo"];
            movimiento.PersonaID         = null;
            movimiento.DetalleEgresoID   = null;
            movimiento.ProveedorID       = null;
            movimiento.TipoComprobanteID = ctes.tipoIngreso;
            movimiento.CuentaID          = cuentaID;
            ViewBag.NroComprobante       = movimiento.NumeroComprobante.ToString();
            ViewBag.Arbol         = utils.generarSelectHijos(db.Cuenta.Find(ctes.raizCuentaIngresos), cuentaID);
            movimiento.Saldo      = saldoFinal;
            movimiento.NDocumento = 0;

            try
            {
                Usuario Usuario = (Usuario)Session["Usuario"];
                movimiento.UsuarioID     = Usuario.ID;
                movimiento.FechaCreacion = DateTime.Now;

                if (ModelState.IsValid)
                {
                    db.Movimiento.Add(movimiento);
                    db.SaveChanges();
                }
                else
                {
                    utils.erroresState(ModelState);
                    throw new Exception("Ocurrió un error al registrar el ingreso");
                }

                if (utils.ingresarSaldoIngreso(movimiento, ModelState))
                {
                    @ViewBag.Mensaje = utils.mensajeOK("Ingreso registrado con éxito!");
                }
                else
                {
                    throw new Exception("Ocurrio un error al actualiza el saldo de la cuenta corriente.");
                }
            }
            catch (SqlException e)
            {
                @ViewBag.Mensaje = utils.mensajeError(utils.Mensaje(e));
                return(View(movimiento));
            }
            catch (Exception e)
            {
                @ViewBag.Mensaje = utils.mensajeError(utils.Mensaje(e));
                return(View(movimiento));
            }

            utils.Log(1, "Fin proceso de ingreso");
            if (Request.Form["ImprimirComprobante"].ToString().Equals("true"))
            {
                return(RedirectToAction("Edit", new { @id = movimiento.ID, @imprimir = "true" }));
            }
            else
            {
                return(RedirectToAction("Create"));
            }
            //return View(movimiento);
        }
Пример #23
0
        public ActionResult Create(Movimiento movimiento)
        {
            int periodo = (int)Session["Periodo"];
            int mes     = (int)Session["Mes"];

            Proyecto        Proyecto        = (Proyecto)Session["Proyecto"];
            CuentaCorriente CuentaCorriente = (CuentaCorriente)Session["CuentaCorriente"];

            movimiento.NumeroComprobante = 1;
            bool senainfo = false;

            if (senainfo)
            {
                if (db.Movimiento.Where(m => m.ProyectoID == Proyecto.ID).Where(a => a.TipoComprobanteID != ctes.tipoIngreso).Where(a => a.Periodo == periodo).Count() > 0)
                {
                    movimiento.NumeroComprobante = db.Movimiento.Where(m => m.ProyectoID == Proyecto.ID).Where(a => a.TipoComprobanteID != ctes.tipoIngreso).Where(a => a.Periodo == periodo).Max(a => a.NumeroComprobante) + 1;
                }
            }
            else
            {
                if (db.Movimiento.Where(m => m.ProyectoID == Proyecto.ID).Where(a => a.TipoComprobanteID == ctes.tipoReintegro).Where(a => a.Periodo == periodo).Count() > 0)
                {
                    movimiento.NumeroComprobante = db.Movimiento.Where(m => m.ProyectoID == Proyecto.ID).Where(a => a.TipoComprobanteID == ctes.tipoReintegro).Where(a => a.Periodo == periodo).Max(a => a.NumeroComprobante) + 1;
                }
            }

            movimiento.ProyectoID        = Proyecto.ID;
            movimiento.CuentaCorrienteID = CuentaCorriente.ID;
            movimiento.Mes               = (int)Session["Mes"];
            movimiento.Periodo           = (int)Session["Periodo"];
            movimiento.TipoComprobanteID = ctes.tipoReintegro;
            movimiento.Descripcion       = movimiento.Descripcion.ToUpper();

            if (movimiento.NDocumento == 0 || movimiento.NDocumento == null)
            {
                movimiento.NDocumento = 1;
            }

            try
            {
                Usuario Usuario = (Usuario)Session["Usuario"];
                movimiento.UsuarioID     = Usuario.ID;
                movimiento.FechaCreacion = DateTime.Now;

                if (ModelState.IsValid)
                {
                    db.Movimiento.Add(movimiento);
                    db.SaveChanges();
                }
                else
                {
                    throw new Exception("Ocurrió un error al registrar el reintegro.");
                }

                if (!utils.ingresarSaldoIngreso(movimiento, ModelState))
                {
                    throw new Exception("Ocurrio un error al actualiza el saldo de la cuenta corriente.");
                }
                else
                {
                    //return RedirectToAction("Create");
                }
            }
            catch (Exception e)
            {
                @ViewBag.Mensaje = utils.mensajeError(e.Message);
            }

            if (Request.Form["ImprimirComprobante"].ToString().Equals("true"))
            {
                return(RedirectToAction("Edit", new { @id = movimiento.ID, @imprimir = "true" }));
            }
            else
            {
                return(RedirectToAction("Create"));
            }
        }
Пример #24
0
        public ActionResult RegistroSemanalPago()
        {
            DateTime        inicio;
            DateTime        fin;
            Proyecto        Proyecto        = (Proyecto)Session["Proyecto"];
            CuentaCorriente CuentaCorriente = (CuentaCorriente)Session["CuentaCorriente"];

            if (Request.QueryString["i"] != null && Request.QueryString["f"] != null && Request.QueryString["s"] != null)
            {
                @ViewBag.Fecha = Request.QueryString["s"].ToString();
                inicio         = DateTime.Parse(Request.QueryString["i"].ToString());
                fin            = DateTime.Parse(Request.QueryString["f"].ToString()).AddDays(1);
            }
            else
            {
                DateTime Fecha = new DateTime();
                try
                {
                    Fecha = new DateTime((int)Session["Periodo"], (int)Session["Mes"], DateTime.Now.Day);
                }
                catch (Exception)
                {
                    try
                    {
                        Fecha = new DateTime((int)Session["Periodo"], (int)Session["Mes"], 30);
                    }
                    catch (Exception)
                    {
                        try
                        {
                            Fecha = new DateTime((int)Session["Periodo"], (int)Session["Mes"], 29);
                        }
                        catch (Exception)
                        {
                            Fecha = new DateTime((int)Session["Periodo"], (int)Session["Mes"], 28);
                        }
                    }
                }
                @ViewBag.Fecha = Fecha.ToShortDateString();
                // Si semana empieza el domingo, agregar 2
                int      add = Int32.Parse(System.Configuration.ConfigurationManager.AppSettings["addDays"]);
                int      rm  = Int32.Parse(System.Configuration.ConfigurationManager.AppSettings["rmDays"]);
                DateTime to  = DateTime.Now.AddDays(add); // stores today date
                int      x   = (int)to.DayOfWeek;         // gets the day of this week
                inicio = to.AddDays(-x - rm);             // get the start date of this week
                fin    = to.AddDays(6 - x - rm);          // get the end date of this week
            }

            List <Movimiento> Ingresos = db.Movimiento.Where(m => m.Fecha >= inicio).Where(m => m.Fecha <= fin).Where(m => m.ProyectoID == Proyecto.ID).Where(m => m.TipoComprobanteID != ctes.tipoEgreso).Where(m => m.CuentaID != 1 && m.Eliminado == null && m.Temporal == null).ToList();
            List <Movimiento> Egresos  = db.Movimiento.Where(m => m.Fecha >= inicio).Where(m => m.Fecha <= fin).Where(m => m.ProyectoID == Proyecto.ID).Where(m => m.TipoComprobanteID == ctes.tipoEgreso).Where(m => m.Temporal == null && m.Eliminado == null && ((m.CuentaID != 6 || m.CuentaID == null) || m.CuentaID == null)).ToList();

            @ViewBag.Ingresos_Reintegros = Ingresos;
            @ViewBag.Egresos             = Egresos;
            ViewBag.total_ingresos       = Ingresos.Sum(i => i.Monto_Ingresos);
            ViewBag.total_egresos        = Egresos.Sum(e => e.Monto_Egresos);
            ViewBag.Monto_Ingresos       = 0;
            ViewBag.Monto_Egresos        = 0;
            ViewBag.SaldoFinal           = 0;

            try
            {
                DateTime inicioTmp = new DateTime(inicio.Year, inicio.Month, 1);

                //DateTime inicioTmp = DateTime.Parse("01-" + inicio.Month + "-" + inicio.Year);
                //inicio = inicioTmp;
                //int ingresos = db.Movimiento.Where(m => m.Fecha >= inicio).Where(m => m.Fecha <= fin).Where(m => m.ProyectoID == Proyecto.ID).Where(m => m.Nulo == null && m.CuentaID != 1 && m.Eliminado == null && m.Temporal == null).Sum(m => m.Monto_Ingresos);
                //int egresos = db.Movimiento.Where(m => m.Fecha >= inicio).Where(m => m.Fecha <= fin).Where(m => m.ProyectoID == Proyecto.ID).Where(m => m.Nulo == null && m.Temporal == null && m.Eliminado == null && ((m.CuentaID != 6 || m.CuentaID == null) || m.CuentaID == null)).Sum(m => m.Monto_Egresos);
                //Movimiento mv = db.Movimiento.Where(m => m.Fecha >= inicio).Where(m => m.Fecha <= fin).Where(m => m.ProyectoID == Proyecto.ID).Where(m => m.Nulo == null).Where(a => a.Temporal == null).OrderBy(m => m.ID).Take(1).Single();

                List <Movimiento> Ingresos_t = db.Movimiento.Where(m => m.Fecha >= inicioTmp).Where(m => m.Fecha < inicio).Where(m => m.ProyectoID == Proyecto.ID).Where(m => m.TipoComprobanteID != ctes.tipoEgreso).Where(m => m.Nulo == null && m.CuentaID != 1 && m.Eliminado == null && m.Temporal == null).ToList();
                List <Movimiento> Egresos_t  = db.Movimiento.Where(m => m.Fecha >= inicioTmp).Where(m => m.Fecha < inicio).Where(m => m.ProyectoID == Proyecto.ID).Where(m => m.TipoComprobanteID == ctes.tipoEgreso).Where(m => m.Nulo == null && m.Temporal == null && m.Eliminado == null && ((m.CuentaID != 6 || m.CuentaID == null) || m.CuentaID == null)).ToList();


                ViewBag.Monto_Ingresos = Ingresos_t.Sum(i => i.Monto_Ingresos);;
                ViewBag.Monto_Egresos  = Egresos_t.Sum(e => e.Monto_Egresos);
                //ViewBag.SaldoFinal = ingresos - egresos;//mv.Saldo;
            }
            catch
            { }

            ViewBag.SaldoPeriodo = 0;

            // Obtenemos saldo hasta la semana seleccionada
            int periodo      = inicio.Year;
            int mes          = inicio.Month;
            int saldoInicial = 0;

            try
            {
                saldoInicial = db.Saldo.Where(m => m.CuentaCorrienteID == CuentaCorriente.ID && m.Periodo == periodo & m.Mes == mes).Single().SaldoInicialCartola;
            }
            catch (Exception)
            {
                // Error, no ha saldo para el periodo
                try
                {
                    Saldo Saldo = db.Saldo.Where(m => m.CuentaCorrienteID == CuentaCorriente.ID).Single();
                    if (periodo == Saldo.Periodo && mes > Saldo.Mes)
                    {
                        saldoInicial = Saldo.SaldoInicialCartola;
                    }
                }
                catch (Exception)
                { }
            }

            try
            {
                int ingresos = db.Movimiento.Where(m => m.Fecha < inicio && m.Periodo == periodo && m.Mes == mes).Where(m => m.ProyectoID == Proyecto.ID).Where(m => m.Nulo == null && m.CuentaID != 1 && m.Eliminado == null && m.Temporal == null).Sum(m => m.Monto_Ingresos);
                int egresos  = db.Movimiento.Where(m => m.Fecha < inicio && m.Periodo == periodo && m.Mes == mes).Where(m => m.ProyectoID == Proyecto.ID).Where(m => m.Nulo == null && m.Temporal == null && m.Eliminado == null && ((m.CuentaID != 6 || m.CuentaID == null) || m.CuentaID == null)).Sum(m => m.Monto_Egresos);
                ViewBag.SaldoPeriodo = ingresos - egresos + db.Saldo.Where(m => m.CuentaCorrienteID == CuentaCorriente.ID).Where(m => m.Periodo == periodo).Where(m => m.Mes == mes).Single().SaldoInicialCartola;
            }
            catch (Exception)
            {
                //Response.Write(e.Message + " "+e.StackTrace);
            }

            ViewBag.SaldoInicial = saldoInicial;
            return(View());
        }
Пример #25
0
 public void ParaPoderSerializar(CuentaCorriente unaCC, CuentaCAhorro unaCA)
 {
 }
Пример #26
0
 public ImputarPagoCuentaCorriente(string Origen, string IdCuenta, CuentaCorriente CtaCte)
 {
     _origen   = Origen;
     _idCuenta = IdCuenta;
     _ctaCte   = CtaCte;
 }
Пример #27
0
        public ActionResult Conciliacion(FormCollection form)
        {
            ViewBag.ConciliacionID  = "0";
            ViewBag.SaldoCartola    = "0";
            ViewBag.GastosBancarios = "0";
            ViewBag.Depositos       = "0";
            ViewBag.Fecha           = DateTime.Now.ToShortDateString();

            int             periodo         = Int32.Parse(form["Periodo"]);
            int             mes             = Int32.Parse(form["Mes"].ToString());
            Proyecto        Proyecto        = (Proyecto)Session["Proyecto"];
            CuentaCorriente CuentaCorriente = (CuentaCorriente)Session["CuentaCorriente"];

            // Periodo anterior
            try
            {
                ViewBag.SaldoInicial = db.Saldo.Where(m => m.CuentaCorrienteID == CuentaCorriente.ID).Where(m => m.Periodo == periodo).Where(m => m.Mes == mes).Single().SaldoInicialCartola;
            }
            catch (Exception)
            {
                ViewBag.SaldoInicial = 0;
            }

            var movimientos = from m in db.Movimiento
                              where (m.ProyectoID == Proyecto.ID) && ((m.Periodo == periodo && m.Mes == mes) || (m.Periodo < periodo) || (m.Periodo == periodo && m.Mes < mes)) && m.Temporal == null && m.Nulo == null && m.Eliminado == null && ((m.CuentaID != 1 && m.CuentaID != 6) || m.CuentaID == null)
                              orderby m.Periodo, m.Fecha, m.NumeroComprobante
            select m;

            //var movimientos = db.Movimiento.Where(m => m.Periodo == periodo).Where(m => m.Mes == mes).Where(m => m.ProyectoID == Proyecto.ID);
            @ViewBag.periodo         = periodo;
            @ViewBag.mes             = mes;
            @ViewBag.cuentaCorriente = (CuentaCorriente)Session["CuentaCorriente"];
            @ViewBag.NumeroCuenta    = @ViewBag.cuentaCorriente.Numero;

            if ((Request.Form["Guardar"] != null && Request.Form["Guardar"].ToString().Equals("Guardar")) || (Request.Form["ImprimirConciliacion"] != null && Request.Form["ImprimirConciliacion"].ToString().Equals("Imprimir")))
            {
                try
                {
                    //int ID = Int32.Parse(Request.Form["ConciliacionID"].ToString());
                    Conciliacion Conciliacion = db.Conciliacion.Where(c => c.ProyectoID == Proyecto.ID).Where(c => c.Periodo == periodo).Where(c => c.Mes == mes).Single();
                    Conciliacion.Depositos         = Int32.Parse(Request.Form["Depositos"].ToString());
                    Conciliacion.FechaCartola      = DateTime.Parse(Request.Form["Fecha"].ToString());
                    Conciliacion.FechaConciliacion = DateTime.Now;
                    Conciliacion.Gastos            = Int32.Parse(Request.Form["GastosBancarios"].ToString());
                    Conciliacion.SaldoCartola      = Int32.Parse(Request.Form["SaldoCartola"].ToString());
                    Conciliacion.PersonaID         = ((Persona)Session["Persona"]).ID;
                    db.Entry(Conciliacion).State   = EntityState.Modified;
                    db.SaveChanges();

                    //ViewBag.ConciliacionID = Conciliacion.ID;
                    ViewBag.SaldoCartola    = Conciliacion.SaldoCartola;
                    ViewBag.GastosBancarios = Conciliacion.Gastos;
                    ViewBag.Depositos       = Conciliacion.Depositos;
                    ViewBag.Fecha           = Conciliacion.FechaCartola.ToShortDateString();
                }
                catch (Exception)
                {
                    Conciliacion Conciliacion = new Conciliacion();
                    //ViewBag.ConciliacionID = Conciliacion.ID;
                    //Conciliacion Conciliacion = db.Conciliacion.Where(c => c.ProyectoID == Proyecto.ID).Where(c => c.Periodo == periodo).Where(c => c.Mes == mes).Single();
                    Conciliacion.Depositos         = Int32.Parse(Request.Form["Depositos"].ToString());
                    Conciliacion.FechaCartola      = DateTime.Parse(Request.Form["Fecha"].ToString());
                    Conciliacion.FechaConciliacion = DateTime.Now;
                    Conciliacion.Gastos            = Int32.Parse(Request.Form["GastosBancarios"].ToString());
                    Conciliacion.SaldoCartola      = Int32.Parse(Request.Form["SaldoCartola"].ToString());
                    Conciliacion.Periodo           = periodo;
                    Conciliacion.Mes        = mes;
                    Conciliacion.PersonaID  = ((Persona)Session["Persona"]).ID;
                    Conciliacion.ProyectoID = Proyecto.ID;
                    db.Conciliacion.Add(Conciliacion);
                    db.SaveChanges();

                    //ViewBag.ConciliacionID = Conciliacion.ID;
                    ViewBag.SaldoCartola    = Conciliacion.SaldoCartola;
                    ViewBag.GastosBancarios = Conciliacion.Gastos;
                    ViewBag.Depositos       = Conciliacion.Depositos;
                    ViewBag.Fecha           = Conciliacion.FechaCartola.ToShortDateString();
                }

                /*
                 * ViewBag.SaldoCartola = Request.Form["SaldoCartola"].ToString();
                 * ViewBag.GastosBancarios = Request.Form["GastosBancarios"].ToString();
                 * ViewBag.Depositos = Request.Form["Depositos"].ToString();
                 * ViewBag.Fecha = Request.Form["Fecha"].ToString();
                 *
                 *
                 * try
                 * {
                 *  Conciliacion Conciliacion = db.Conciliacion.Where(c => c.ProyectoID == Proyecto.ID).Where(c => c.Periodo == periodo).Where(c => c.Mes == mes).Single();
                 *  ViewBag.ConciliacionID = Conciliacion.ID;
                 *  ViewBag.SaldoCartola = Conciliacion.SaldoCartola;
                 *  ViewBag.GastosBancarios = Conciliacion.Gastos;
                 *  ViewBag.Depositos = Conciliacion.Depositos;
                 *  ViewBag.Fecha = Conciliacion.FechaCartola.ToShortDateString();
                 * }
                 * catch (Exception)
                 * { } */
            }

            try
            {
                Conciliacion Conciliacion = db.Conciliacion.Where(c => c.ProyectoID == Proyecto.ID).Where(c => c.Periodo == periodo).Where(c => c.Mes == mes).Single();
                //ViewBag.ConciliacionID = Conciliacion.ID;
                ViewBag.SaldoCartola    = Conciliacion.SaldoCartola;
                ViewBag.GastosBancarios = Conciliacion.Gastos;
                ViewBag.Depositos       = Conciliacion.Depositos;
                ViewBag.Fecha           = Conciliacion.FechaCartola.ToShortDateString();
            }
            catch (Exception)
            { }

            if (Request.Form["ImprimirConciliacion"] != null && Request.Form["ImprimirConciliacion"].ToString().Equals("Imprimir"))
            {
                @ViewBag.Imprimir = "true";
            }
            else
            {
                @ViewBag.Imprimir = "false";
            }

            return(View(movimientos.ToList()));
        }
Пример #28
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));
        }
Пример #29
0
        private CuentaCorriente GetCuentaCorriente(int id)
        {
            CuentaCorriente cuentaBuscada = cuentasCorriente.Find(buscada => buscada.Id == id);

            return(cuentaBuscada);
        }
Пример #30
0
        static void Main(string[] args)
        {
            int    opcion = 0;
            string value;
            char   continuar = 's';

            Persona p1 = new Persona();

            p1.Nombre   = "Joel";
            p1.Apellido = "Mora";
            p1.Edad     = 20;
            p1.Saludar();
            string datosPersonales = p1.RecuperarDatosPersonales();

            Console.WriteLine(datosPersonales);
            Console.WriteLine("***********************************");

            Empleado e1 = new Empleado();

            e1.Nombre   = "Walter";
            e1.Apellido = "Martinez";
            e1.Sueldo   = 40000;
            e1.Edad     = 20;
            e1.Saludar();
            e1.Trabajar();
            Console.WriteLine(e1.RecuperarDatosPersonales());

            Banco           banco = new Banco();
            CuentaCorriente cc1   = new CuentaCorriente(1234, 1000);

            TarjetaDeCredito tarjetaCredito = new TarjetaDeCredito();

            tarjetaCredito.Nombre      = "VISA GOLD";
            tarjetaCredito.PrecioVenta = 300;
            banco.VenderProducto(cc1);
            //  banco.VenderProducto(tarjetaCredito);



            Console.WriteLine(cc1);
            Console.WriteLine(cc1.ToString());

            /*
             * CajaDeAhorro ca1 = new CajaDeAhorro();
             * ca1.Saldo = 500;
             * ca1.Numero = 123123;
             *
             * banco.ExtraerDeCuenta(ca1, 3000);
             * banco.ExtraerDeCuenta(ca1, 100);
             *
             * banco.ExtraerDeCuenta(cc1, 400);
             *
             *
             * RRHH rrhh = new RRHH();
             * rrhh.MostrarDatosPersonales(p1);
             * rrhh.MostrarDatosPersonales(e1);
             *
             * do
             * {
             *
             *
             *
             * Console.WriteLine("\n1 CAJA DE AHORRO\n" +
             *                "2 CUENTA CORRIENTE\n" +
             *                "3 SALIR\n\n" +
             *                "A que cuenta desea acceder?");
             *
             * value = Console.ReadLine();
             * opcion = Convert.ToInt32(value);
             *
             * switch (opcion)
             * {
             *  case 1:
             *
             *      break;
             *  case 2:
             *
             *      break;
             *  case 3:
             *
             *      break;
             *  default:
             *
             *      break;
             * }
             *
             * } while (continuar == 's');
             */
        }
Пример #31
0
        public ActionResult Index(FormCollection collection)
        {
            var Meses = new string[12]
            {
                "Enero",
                "Febrero",
                "Marzo",
                "Abril",
                "Mayo",
                "Junio",
                "Julio",
                "Agosto",
                "Septiembre",
                "Octubre",
                "Noviembre",
                "Diciembre"
            };

            string  mensaje       = "";
            Usuario usuario       = new Usuario();
            string  contraseña    = utils.md5(collection["Password"].ToString().ToLower());
            string  nombreUsuario = collection["NombreUsuario"].ToString().ToLower();

            try
            {
                usuario = (from u in db.Usuario
                           where u.Nombre == nombreUsuario && u.Password == contraseña
                           select u).Single();

                if (!usuario.estaHabilitado)
                {
                    mensaje = utils.mensajeError("Su cuenta se encuentra deshabilitado para ingresar a SAG2.");
                    return(Index(mensaje));
                }

                Persona Persona = db.Persona.Find(usuario.PersonaID);
                Session.Add("Persona", Persona);
                Session.Add("Usuario", usuario);
                Session.Add("Logueado", true);

                Rol Rol = new Rol();
                if (usuario.esAdministrador)
                {
                    Session.Add("CambioTipo", true);
                    Session.Add("Rol", Rol);
                    Response.Redirect("./Proyecto", true);
                }
                Proyecto        Proyecto        = new Proyecto();
                CuentaCorriente CuentaCorriente = new CuentaCorriente();

                // Se obtiene lista de roles del usuario
                List <Rol> Roles = db.Rol.Where(r => r.PersonaID == Persona.ID).ToList();

                if (Roles.Count == 1)
                {
                    // Carga de perfil y establecimiento para cuando tiene un establecimiento asignado
                    Session.Add("Rol", Roles[0]);
                    Proyecto = db.Proyecto.Find(Roles[0].ProyectoID);
                    Session.Add("Proyecto", Proyecto);
                    List <CuentaCorriente> CuentasCorrientes = db.CuentaCorriente.Where(r => r.ProyectoID == Proyecto.ID).Distinct().ToList();

                    // Si el proyecto está eliminado, no es posible acceder a él.
                    if (Proyecto.estaEliminado)
                    {
                        throw new Exception("El Proyecto asignado se eliminó y no es posible acceder.");
                    }

                    // Si el usuario es normal, no es ni supervisor ni administrador
                    if (!usuario.esSupervisor && !usuario.esAdministrador && Proyecto.estaCerrado)
                    {
                        throw new Exception("El Proyecto asignado está cerrado y no es posible acceder.");
                    }

                    // Verificamos periodo y mes abierto
                    try
                    {
                        Periodo Periodo = (from p in db.Periodo
                                           where p.ProyectoID == Proyecto.ID
                                           orderby p.Ano descending, p.Mes descending
                                           select p).Take(1).Single();

                        int periodo_actual, mes_actual;

                        if (Periodo.Mes == 12)
                        {
                            mes_actual     = 1;
                            periodo_actual = Periodo.Ano + 1;
                        }
                        else
                        {
                            mes_actual     = Periodo.Mes + 1;
                            periodo_actual = Periodo.Ano;
                        }

                        Session.Add("Mes", mes_actual);
                        Session.Add("Periodo", periodo_actual);
                        Session.Add("Fecha", Meses[mes_actual - 1] + " " + periodo_actual);
                    }
                    catch (Exception e)
                    {
                        utils.Log(1, "No hay periodos cerramos en la base de datos, por lo tanto se selecciona fecha actual. " + e.Message);
                        if (Proyecto.MesInicio == null)
                        {
                            Session.Add("Mes", DateTime.Now.Month);
                            Session.Add("Periodo", DateTime.Now.Year);
                            Session.Add("Fecha", Meses[DateTime.Now.Month - 1] + " " + DateTime.Now.Year);
                        }
                        else
                        {
                            Session.Add("Mes", Proyecto.MesInicio);
                            Session.Add("Periodo", Proyecto.PeriodoInicio);
                            Session.Add("Fecha", Meses[Proyecto.MesInicio.Value - 1] + " " + Proyecto.PeriodoInicio);
                        }
                    }

                    if (CuentasCorrientes.Count == 1)
                    {
                        CuentaCorriente = (CuentaCorriente)db.CuentaCorriente.Where(r => r.ProyectoID == Proyecto.ID).Single();
                        Session.Add("CuentaCorriente", CuentaCorriente);

                        if (usuario.esAdministrador)
                        {
                            Session.Add("InformacionPie", Proyecto.NombreLista + " | " + CuentaCorriente.Banco.Nombre + " " + CuentaCorriente.NumeroLista + " | " + Persona.NombreCompleto + " | " + Session["Fecha"].ToString() + " | ProyectoID: " + Proyecto.ID + " CtaCteID: " + CuentaCorriente.ID + " PersonaID: " + Persona.ID);
                        }
                        else
                        {
                            Session.Add("InformacionPie", Proyecto.NombreLista + " | " + CuentaCorriente.Banco.Nombre + " " + CuentaCorriente.NumeroLista + " | " + Persona.NombreCompleto + " | " + Session["Fecha"].ToString());
                        }
                    }
                    else
                    {
                        utils.Log(2, "LOGIN NOK | El proyecto no tiene asignada ninguna cuenta corriente asignada.");
                        return(RedirectToAction("IngresoCuentaCorriente"));
                    }
                }
                else if (Roles.Count > 1)
                {
                    Response.Redirect("./Proyecto", true);
                }
                else
                {
                    mensaje = utils.mensajeError("Usted no tiene permisos sobre ningún proyecto.");
                    return(Index(mensaje));
                }
            }
            catch (Exception e)
            {
                mensaje = utils.mensajeError("Nombre de usuario o contraseña inválida. " + e.Message);
                utils.Log(2, "LOGIN NOK | " + e.Message + e.StackTrace);
                if (e.InnerException != null)
                {
                    utils.Log(2, "LOGIN NOK | " + e.InnerException.Message + e.StackTrace);
                    if (e.InnerException.Message.Contains("The server was not found"))
                    {
                        mensaje = utils.mensajeError("El servidor de Base de Datos no se encuentra disponible. " + e.InnerException.Message + e.InnerException.StackTrace);
                    }
                }
                return(Index(mensaje));
            }

            utils.Log(1, "LOGIN OK | " + usuario.Nombre + " | " + Request.UserAgent + " | " + Request.UserHostAddress);
            Response.Redirect(FormsAuthentication.DefaultUrl, true);
            return(Index());
        }