コード例 #1
0
 public void Actualizar(List <Models.WebServices.TasaMora> tasasMora)
 {
     using (var db = new SMPorresEntities())
     {
         using (var trx = db.Database.BeginTransaction())
             try
             {
                 db.TasasMoraWebs.RemoveRange(db.TasasMoraWebs);
                 for (int i = 0; i < tasasMora.Count; i++)
                 {
                     var item = tasasMora.ElementAt(i);
                     var t    = new TasasMoraWeb
                     {
                         Id     = i + 1,
                         Desde  = item.Desde,
                         Hasta  = item.Hasta,
                         Tasa   = item.Tasa,
                         Estado = item.Estado
                     };
                     db.TasasMoraWebs.Add(t);
                 }
                 db.SaveChanges();
                 trx.Commit();
             }
             catch (Exception ex)
             {
                 trx.Rollback();
                 throw ex;
             }
     }
 }
コード例 #2
0
 public static void Actualizar(string nombre, string descripción, string nombrePadre)
 {
     using (var db = new SMPorresEntities())
     {
         var padre = ObtenerMenuItem(nombrePadre) ?? new ItemsMenu {
             Id = 0
         };
         if (!db.ItemsMenus.Any(im => im.Nombre == nombre && padre.Nombre == nombrePadre))
         {
             var im = new ItemsMenu();
             im.Id          = db.ItemsMenus.Any() ? db.ItemsMenus.Max(c1 => c1.Id) + 1 : 1;
             im.Nombre      = nombre;
             im.Descripcion = descripción;
             im.IdPadre     = padre.Id;
             db.ItemsMenus.Add(im);
         }
         else
         {
             var im = db.ItemsMenus.First(im1 => im1.Nombre == nombre);
             im.Nombre      = nombre;
             im.Descripcion = descripción;
             im.IdPadre     = padre.Id;
         }
         db.SaveChanges();
     }
 }
コード例 #3
0
        internal static List <Pago> CrearCuotas(SMPorresEntities db, PlanPago planPago, int modalidad)
        {
            //leer modalidad y obtener minCuota y maxCuota
            short minC   = CursosRepository.ObtieneMinCuota(modalidad);
            short maxC   = CursosRepository.ObtieneMaxCuota(modalidad);
            var   result = new List <Pago>();

            if (minC != maxC)
            {
                var curso  = CursosRepository.ObtenerCursoPorId(planPago.IdCurso);
                var cuotas = from c in CuotasRepository.ObtenerCuotasActuales()
                             select new { c.NroCuota, c.VtoCuota };
                for (short i = minC; i <= maxC; i++)
                {
                    var p = new Pago();
                    p.Id           = db.Pagos.Any() ? db.Pagos.Max(p1 => p1.Id) + 1 : 1;
                    p.IdPlanPago   = planPago.Id;
                    p.NroCuota     = i;
                    p.ImporteCuota = (i == 0) ? curso.ImporteMatricula : curso.ImporteCuota;
                    p.Estado       = (byte)EstadoPago.Impago;
                    p.FechaVto     = cuotas.First(c => c.NroCuota == i).VtoCuota;
                    db.Pagos.Add(p);
                    db.SaveChanges();
                    result.Add(p);
                }
            }
            return(result);
        }
コード例 #4
0
        internal static void ActualizarCuotas(int idCurso, decimal importe, bool esMatrícula)
        {
            var ciclo = ConfiguracionRepository.ObtenerConfiguracion().CicloLectivo;

            using (var db = new SMPorresEntities())
            {
                var pagos = from p in db.Pagos
                            join pp in db.PlanesPago on p.IdPlanPago equals pp.Id
                            join ca in db.CursosAlumnos on
                            new { pp.IdCurso, pp.IdAlumno } equals new { ca.IdCurso, ca.IdAlumno }
                where !p.Fecha.HasValue &&
                pp.IdCurso == idCurso &&
                ca.CicloLectivo == ciclo
                select p;
                db.Database.Log = s => System.Diagnostics.Debug.WriteLine(s);
                if (esMatrícula)
                {
                    pagos = pagos.Where(m => m.NroCuota == 0);
                }
                else
                {
                    pagos = pagos.Where(m => m.NroCuota > 0);
                }
                foreach (var m in pagos)
                {
                    m.ImporteCuota = importe;
                }
                db.SaveChanges();
            }
        }
コード例 #5
0
        private static PlanPago CrearPlanPago(SMPorresEntities db, int idAlumno, int idCurso,
                                              short porcentajeBeca, int modalidad, TipoBeca tipoBeca)
        {
            var curso = CursosRepository.ObtenerCursoPorId(idCurso);
            var plan  = new PlanPago
            {
                Id       = db.PlanesPago.Any() ? db.PlanesPago.Max(c1 => c1.Id) + 1 : 1,
                IdAlumno = idAlumno,
                IdCurso  = idCurso,
                //Curso = curso,
                CantidadCuotas  = CursosRepository.ObtieneMaxCuota(modalidad), //Configuration.MaxCuotas,
                NroCuota        = CursosRepository.ObtieneMinCuota(modalidad), //1,
                ImporteCuota    = curso.ImporteCuota,
                PorcentajeBeca  = porcentajeBeca,
                TipoBeca        = (byte)tipoBeca,
                Estado          = (short)EstadoPlanPago.Vigente,
                IdUsuarioEstado = Session.CurrentUser.Id,
                FechaGrabacion  = Configuration.CurrentDate,
                IdUsuario       = Session.CurrentUser.Id,
                Modalidad       = modalidad //curso.Modalidad
            };

            db.PlanesPago.Add(plan);
            db.SaveChanges();
            return(plan);
        }
コード例 #6
0
        public static void InsertarPagosCuotas(SMPorresEntities db, Curso curso, int id)
        {
            short minC = CursosRepository.ObtieneMinCuota(curso.Modalidad);
            short maxC = CursosRepository.ObtieneMaxCuota(curso.Modalidad);

            var cuotas = from c in CuotasRepository.ObtenerCuotasActuales()
                         select new { c.NroCuota, c.VtoCuota };

            if (minC != maxC)
            {
                //for (short i = 0; i <= Configuration.MaxCuotas; i++)
                for (short i = minC; i <= maxC; i++)
                {
                    var p = new Pago();
                    p.Id           = db.Pagos.Any() ? db.Pagos.Max(p1 => p1.Id) + 1 : 1;
                    p.IdPlanPago   = id;
                    p.NroCuota     = i;
                    p.ImporteCuota = (i == 0) ? curso.ImporteMatricula : curso.ImporteCuota;
                    p.Estado       = (byte)EstadoPago.Impago;
                    p.FechaVto     = cuotas.First(c => c.NroCuota == i).VtoCuota;
                    db.Pagos.Add(p);
                    db.SaveChanges();
                }
            }
        }
コード例 #7
0
 public static Alumno Insertar(string nombre, string apellido, int idTipoDocumento, decimal nroDocumento,
                               DateTime fechaNacimiento, string email, string dirección, Domicilio domicilio, byte estado, char sexo)
 {
     using (var db = new SMPorresEntities())
     {
         var trx = db.Database.BeginTransaction();
         try
         {
             var id = db.Alumnos.Any() ? db.Alumnos.Max(a1 => a1.Id) + 1 : 1;
             var a  = new Alumno
             {
                 Id              = id,
                 Nombre          = nombre,
                 Apellido        = apellido,
                 IdTipoDocumento = idTipoDocumento,
                 NroDocumento    = nroDocumento,
                 FechaNacimiento = fechaNacimiento,
                 EMail           = email,
                 Direccion       = dirección,
                 IdDomicilio     = DomiciliosRepository.ObtenerIdDomicilio(db, domicilio),
                 Estado          = estado,
                 Sexo            = sexo.ToString()
             };
             db.Alumnos.Add(a);
             db.SaveChanges();
             trx.Commit();
             return(a);
         }
         catch (Exception)
         {
             trx.Rollback();
             throw;
         }
     }
 }
コード例 #8
0
ファイル: PagosRepository.cs プロジェクト: lariaspaz/SMPorres
        public void Actualizar(SMPorresEntities db, int idCursoAlumno, Models.WebServices.Pago pago)
        {
            var  p        = db.PagosWeb.Find(pago.Id);
            bool insertar = p == null;

            if (insertar)
            {
                p               = new PagoWeb();
                p.Id            = pago.Id;
                p.IdCursoAlumno = idCursoAlumno;
            }
            p.IdPlanPago          = pago.IdPlanPago;
            p.NroCuota            = (short)pago.NroCuota;
            p.ImporteCuota        = pago.ImporteCuota;
            p.ImporteBeca         = pago.ImporteBeca;
            p.ImporteRecargo      = pago.ImporteRecargo;
            p.ImportePagado       = pago.ImportePagado;
            p.Fecha               = (pago.Fecha == default(DateTime)) ? null : pago.Fecha;
            p.FechaVto            = pago.FechaVto;
            p.ImportePagoTermino  = pago.ImportePagoTérmino;
            p.PorcentajeBeca      = pago.PorcentajeBeca;
            p.FechaVtoPagoTermino = pago.FechaVtoPagoTérmino;
            p.TipoBeca            = pago.TipoBeca;
            p.Estado              = pago.Estado;
            if (insertar)
            {
                db.PagosWeb.Add(p);
            }
            db.SaveChanges();
        }
コード例 #9
0
 public static void Eliminar(decimal id)
 {
     using (var db = new SMPorresEntities())
     {
         if (!db.Alumnos.Any(t => t.Id == id))
         {
             throw new Exception("No existe el alumno con Id " + id);
         }
         var alumno = db.Alumnos.Find(id);
         if (alumno.CursosAlumnos.Any())
         {
             var s = " - " + String.Join("\n - ", alumno.CursosAlumnos.Select(ca => String.Format("{0} de {1}", ca.Curso.Nombre, ca.Curso.Carrera.Nombre)));
             throw new Exception(String.Format("El alumno está asignado a los cursos:\n{1}", alumno.CursosAlumnos.Count(), s));
         }
         if (alumno.PlanesPago.Any())
         {
             var s = " - " + String.Join("\n - ", alumno.PlanesPago.Select(pp => pp.Curso.Nombre));
             throw new Exception(String.Format("El alumno tiene {0} planes de pago en los cursos:\n{1}", alumno.PlanesPago.Count(), s));
         }
         if (alumno.Domicilio != null && alumno.Domicilio.Alumnos.Count == 1)
         {
             var dom = db.Domicilios.Find(alumno.IdDomicilio);
             db.Domicilios.Remove(dom);
         }
         db.Alumnos.Remove(alumno);
         db.SaveChanges();
     }
 }
コード例 #10
0
 public static BecaAlumno Insertar(int idAlumno, int idPago, short beca)
 {
     using (var db = new SMPorresEntities())
     {
         var trx = db.Database.BeginTransaction();
         try
         {
             var id = db.BecasAlumnos.Any() ? db.BecasAlumnos.Max(ba => ba.Id) + 1 : 1;
             var b  = new BecaAlumno
             {
                 Id             = id,
                 IdAlumno       = idAlumno,
                 PorcentajeBeca = beca
             };
             db.BecasAlumnos.Add(b);
             var p = db.Pagos.Find(idPago);
             p.BecaAlumno = b;
             db.SaveChanges();
             trx.Commit();
             return(b);
         }
         catch (Exception)
         {
             trx.Rollback();
             throw;
         }
     }
 }
コード例 #11
0
 public static Curso Insertar(string nombre, int idCarrera, decimal importeMatrícula, decimal descuentoMatrícula, DateTime descuentoHasta,
                              decimal cuota1, decimal cuota2, decimal cuota3, decimal importeCuota, int modalidad, short estado)
 {
     using (var db = new SMPorresEntities())
     {
         var id = db.Cursos.Any() ? db.Cursos.Max(c1 => c1.Id) + 1 : 1;
         var c  = new Curso
         {
             Id                 = id,
             Nombre             = nombre,
             IdCarrera          = idCarrera,
             ImporteMatricula   = importeMatrícula,
             DescuentoMatricula = descuentoMatrícula,
             FechaVencDescuento = descuentoHasta,
             Cuota1             = cuota1,
             Cuota2             = cuota2,
             Cuota3             = cuota3,
             ImporteCuota       = importeCuota,
             Modalidad          = modalidad,
             Estado             = (short)EstadoCurso.Activo //alta = estado activo
         };
         db.Cursos.Add(c);
         db.SaveChanges();
         return(c);
     }
 }
コード例 #12
0
        private static Alumno GrabarAlumno(SMPorresEntities db, string nombre, string apellido,
                                           int idTipoDocumento, decimal nroDocumento, DateTime fechaNacimiento, string email, string dirección,
                                           char sexo)
        {
            var id = db.Alumnos.Any() ? db.Alumnos.Max(a1 => a1.Id) + 1 : 1;
            var a  = new Alumno
            {
                Id              = id,
                Nombre          = nombre,
                Apellido        = apellido,
                IdTipoDocumento = idTipoDocumento,
                NroDocumento    = nroDocumento,
                FechaNacimiento = fechaNacimiento,
                EMail           = email,
                Direccion       = dirección,
                IdDomicilio     = null,
                Estado          = 1,
                Sexo            = sexo.ToString(),
                Contraseña      = GenerarContraseña(id, nroDocumento)
            };

            db.Alumnos.Add(a);
            db.SaveChanges();
            return(a);
        }
コード例 #13
0
        internal static void GeneraNuevaCuotaDeMatricula(int idPlanPago, decimal importeCuota, int orden)//idPlanPago, int i, decimal importeCuota, int idPago) //, Curso curso)
        {
            using (var db = new SMPorresEntities())
            {
                var cGen = db.Pagos.Where(x =>
                                          x.IdPlanPago == idPlanPago &
                                          x.NroCuota == 0).ToList();

                int loop = 1;
                foreach (var item in cGen)
                {
                    if (loop == orden)
                    {
                        var pa = db.Pagos.Find(item.Id);
                        pa.Estado             = (byte)EstadoPago.Impago;
                        pa.ImporteCuota       = importeCuota;
                        pa.ImportePagoTermino = 0;
                        db.SaveChanges();
                    }
                    loop++;
                }

                if (cGen.Count() == 1 && orden == 2)    // crea la segunda cuota
                {
                    GeneraNuevaCuotaDeMatricula(idPlanPago, 0, importeCuota);
                }
                if (cGen.Count() == 2 && orden == 3)    // crea la tercer cuota
                {
                    //GeneraNuevaCuota(idPlanPago, 0, cGen.FirstOrDefault().PlanPago.Curso);
                    GeneraNuevaCuotaDeMatricula(idPlanPago, 0, importeCuota);
                }
            }
        }
コード例 #14
0
 public void ActualizarYEncriptarContraseña(int idAlumno, string contraseña)
 {
     using (var db = new SMPorresEntities())
     {
         var a = db.AlumnosWeb.Find(idAlumno);
         a.Contraseña = EncriptarContraseña(contraseña);
         db.SaveChanges();
     }
 }
コード例 #15
0
 internal static void ActualizarNroyCantidadCuotas(int id, int modalidad)
 {
     using (var db = new SMPorresEntities())
     {
         var pp = db.PlanesPago.Find(id);
         pp.NroCuota       = CursosRepository.ObtieneMinCuota(modalidad);
         pp.CantidadCuotas = CursosRepository.ObtieneMaxCuota(modalidad);
         db.SaveChanges();
     }
 }
コード例 #16
0
 internal static void GeneraNuevaCuotaDeMatricula(Pago p, decimal importeCuota)//idPlanPago, int i, decimal importeCuota, int idPago) //, Curso curso)
 {
     using (var db = new SMPorresEntities())
     {
         var pa = db.Pagos.Find(p.Id);
         pa.Estado             = (byte)EstadoPago.Impago;
         pa.ImportePagoTermino = p.PlanPago.Curso.DescuentoMatricula;
         pa.ImporteCuota       = importeCuota;
         db.SaveChanges();
     }
 }
コード例 #17
0
 public static PlanPago Actualizar(int planDePagoId, short porcentajeBeca, TipoBeca tipoBeca)
 {
     using (var db = new SMPorresEntities())
     {
         var p = db.PlanesPago.Find(planDePagoId);
         p.PorcentajeBeca = porcentajeBeca;
         p.TipoBeca       = (byte)tipoBeca;
         db.SaveChanges();
         return(p);
     }
 }
コード例 #18
0
 internal static void Insertar(int idUsuario, int idItemMenu)
 {
     using (var db = new SMPorresEntities())
     {
         var id = db.UsuariosItemsMenus.Any() ? db.UsuariosItemsMenus.Max(g1 => g1.Id) + 1 : 1;
         var uu = new UsuariosItemsMenu {
             Id = id, IdUsuario = idUsuario, IdItemMenu = idItemMenu
         };
         db.UsuariosItemsMenus.Add(uu);
         db.SaveChanges();
     }
 }
コード例 #19
0
 internal static void Insertar(int idGrupo, int idUsuario)
 {
     using (var db = new SMPorresEntities())
     {
         var id = db.GruposUsuarios.Any() ? db.GruposUsuarios.Max(g1 => g1.Id) + 1 : 1;
         var gu = new GruposUsuario {
             Id = id, IdGrupo = idGrupo, IdUsuario = idUsuario
         };
         db.GruposUsuarios.Add(gu);
         db.SaveChanges();
     }
 }
コード例 #20
0
 public static void Eliminar(decimal id)
 {
     using (var db = new SMPorresEntities())
     {
         if (!db.TasasMora.Any(t => t.Id == id))
         {
             throw new Exception("No existe la tasa con Id " + id);
         }
         var t1 = db.TasasMora.Find(id);
         db.TasasMora.Remove(t1);
         db.SaveChanges();
     }
 }
コード例 #21
0
 internal static void Eliminar(int id)
 {
     using (var db = new SMPorresEntities())
     {
         if (!db.Grupos.Any(t => t.Id == id))
         {
             throw new Exception("No existe el grupo con Id " + id);
         }
         var c = db.Grupos.Find(id);
         db.Grupos.Remove(c);
         db.SaveChanges();
     }
 }
コード例 #22
0
 internal static void Eliminar(int idCurso, int idAlumno)
 {
     using (var db = new SMPorresEntities())
     {
         var ca = db.CursosAlumnos.FirstOrDefault(t => t.IdCurso == idCurso && t.IdAlumno == idAlumno);
         if (ca == null)
         {
             return;
         }
         db.CursosAlumnos.Remove(ca);
         db.SaveChanges();
     }
 }
コード例 #23
0
 internal static void Eliminar(int idUsuario, int idItemMenu)
 {
     using (var db = new SMPorresEntities())
     {
         var uu = db.UsuariosItemsMenus.FirstOrDefault(t => t.IdUsuario == idUsuario && t.IdItemMenu == idItemMenu);
         if (uu == null)
         {
             return;
         }
         db.UsuariosItemsMenus.Remove(uu);
         db.SaveChanges();
     }
 }
コード例 #24
0
 internal static void Eliminar(int idGrupo, int idUsuario)
 {
     using (var db = new SMPorresEntities())
     {
         var gu = db.GruposUsuarios.FirstOrDefault(t => t.IdGrupo == idGrupo && t.IdUsuario == idUsuario);
         if (gu == null)
         {
             return;
         }
         db.GruposUsuarios.Remove(gu);
         db.SaveChanges();
     }
 }
コード例 #25
0
ファイル: PagosRepository.cs プロジェクト: lariaspaz/SMPorres
 internal void EliminarPagos(SMPorresEntities db, List <CursoAlumno> cursosAlumnos)
 {
     foreach (var item in cursosAlumnos)
     {
         var pagos = db.PagosWeb.Where(p => p.IdCursoAlumno == item.Id);
         foreach (var i in pagos)
         {
             var p = db.PagosWeb.Find(i.Id);
             db.PagosWeb.Remove(p);
         }
         db.SaveChanges();
     }
 }
コード例 #26
0
 internal static void ReiniciarContraseña(int id, string contraseña)
 {
     using (var db = new SMPorresEntities())
     {
         if (!db.Usuarios.Any(t => t.Id == id))
         {
             throw new Exception("No existe el usuario con Id " + id);
         }
         var u = db.Usuarios.Find(id);
         u.Contraseña = Lib.Security.Cryptography.CalcularSHA512(contraseña);
         db.SaveChanges();
     }
 }
コード例 #27
0
 public static void AnularPlanDePago(int id)
 {
     using (var db = new SMPorresEntities())
     {
         if (!db.PlanesPago.Any(t => t.Id == id))
         {
             throw new Exception(String.Format("No existe plan de pago {0}", id));
         }
         var pp = db.PlanesPago.Find(id);
         pp.Estado = (int)Models.EstadoPlanPago.Baja;
         db.SaveChanges();
     }
 }
コード例 #28
0
 internal static BecaAlumno Actualizar(int id, short beca)
 {
     using (var db = new SMPorresEntities())
     {
         if (!db.BecasAlumnos.Any(t => t.Id == id))
         {
             throw new Exception("No existe la beca con Id " + id);
         }
         var b = db.BecasAlumnos.Find(id);
         b.PorcentajeBeca = beca;
         db.SaveChanges();
         return(b);
     }
 }
コード例 #29
0
        public static void GrabarRendición(string archivo, List <PagoBSE> pagos)
        {
            using (var db = new SMPorresEntities())
            {
                var trx = db.Database.BeginTransaction();
                try
                {
                    var ca = CabecerasArchivosRepository.Insertar(db, TipoArchivo.RendiciónBSE, archivo);
                    var id = db.RendicionesBSE.Any() ? db.RendicionesBSE.Max(t => t.Id) + 1 : 1;
                    foreach (var p in pagos)
                    {
                        var rend = new RendicionBSE();
                        rend.Id = id++;
                        rend.IdCabeceraArchivo = ca.Id;
                        rend.CodigoSucursal    = p.CodigoSucursal;
                        rend.NombreSucursal    = p.NombreSucursal;
                        rend.Moneda            = p.Moneda;
                        rend.Comprobante       = p.Comprobante;
                        rend.TipoMovimiento    = p.TipoMovimiento;
                        rend.Importe           = p.Importe;
                        rend.FechaProceso      = p.FechaProceso;
                        rend.CuilUsuario       = p.CuilUsuario;
                        rend.NombreUsuario     = p.NombreUsuario;
                        rend.Hora            = p.Hora;
                        rend.CodigoBarra     = p.CodigoBarra;
                        rend.GrupoTerminal   = p.GrupoTerminal;
                        rend.NroRendicion    = p.NroRendicion;
                        rend.FechaMovimiento = p.FechaMovimiento;
                        db.RendicionesBSE.Add(rend);

                        if (p.DetallePago != null)
                        {
                            var pago = p.DetallePago;
                            pago.Fecha       = rend.FechaPago;
                            pago.IdMedioPago = 2; //BSE
                            pago.IdArchivo   = ca.Id;
                            pago.Descripcion = "Importado desde " + ca.NombreArchivo;
                            PagosRepository.PagarCuota(db, pago);
                        }
                    }
                    db.SaveChanges();
                    trx.Commit();
                }
                catch (Exception)
                {
                    trx.Rollback();
                    throw;
                }
            }
        }
コード例 #30
0
        internal static void InsertarMatricula(SMPorresEntities db, Curso curso, int idPlanPago)
        {
            //carga cuota matricula
            var pm = new Pago();

            pm.Id           = db.Pagos.Any() ? db.Pagos.Max(p1 => p1.Id) + 1 : 1;
            pm.IdPlanPago   = idPlanPago;
            pm.NroCuota     = 0;
            pm.ImporteCuota = curso.ImporteMatricula;
            pm.Estado       = (byte)EstadoPago.Impago;
            pm.FechaVto     = DateTime.Now.AddDays(1).Date;
            db.Pagos.Add(pm);
            db.SaveChanges();
        }