Ejemplo n.º 1
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);
        }
Ejemplo n.º 2
0
        private async Task RegistrarListaPlanPago(CDPDto cdp, List <LineaPlanPagoDto> lista)
        {
            valorPciId = User.FindFirst(ClaimTypes.Role).Value;
            if (!string.IsNullOrEmpty(valorPciId))
            {
                pciId = int.Parse(valorPciId);
            }
            List <PlanPago> listaPlanPago = new List <PlanPago>();
            PlanPago        planPago      = null;
            int             numeroPagos   = 1;
            DateTime        fechaActual   = _generalInterface.ObtenerFechaHoraActual();
            int             mesAnterior   = 0;

            if (lista != null && lista.Count > 0)
            {
                foreach (var item in lista)
                {
                    planPago       = MapearPlanPago(cdp, fechaActual.Year, item.MesId, item.Valor, numeroPagos, item.Viaticos);
                    planPago.PciId = pciId;
                    listaPlanPago.Add(planPago);
                    mesAnterior = item.MesId;
                    numeroPagos++;
                }

                await _dataContext.PlanPago.AddRangeAsync(listaPlanPago);

                await _dataContext.SaveChangesAsync();
            }
        }
Ejemplo n.º 3
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);
        }
Ejemplo n.º 4
0
        public async Task RegistrarPlanPago(PlanPago plan)
        {
            await _context.PlanPago.AddAsync(plan);

            //bool resultado = await _unitOfWork.CompleteAsync();
            //return resultado;
        }
Ejemplo n.º 5
0
        public async Task <PlanPago> ObtenerUltimoPlanPagoDeCompromisoXMes(int crp, int MesId)
        {
            PlanPago ultimoPlanPago = new PlanPago();
            var      lista          = await(from c in _context.PlanPago
                                            where (c.Crp == crp)
                                            where (c.MesPago == MesId)
                                            select new PlanPago()
            {
                PlanPagoId               = c.PlanPagoId,
                Cdp                      = c.Cdp,
                Crp                      = c.Crp,
                AnioPago                 = c.AnioPago,
                MesPago                  = c.MesPago,
                ValorAPagar              = c.ValorAPagar,
                Viaticos                 = c.Viaticos,
                NumeroPago               = c.NumeroPago,
                EstadoPlanPagoId         = c.EstadoPlanPagoId,
                NumeroRadicadoSupervisor = c.NumeroRadicadoSupervisor,
                FechaRadicadoSupervisor  = c.FechaRadicadoSupervisor,
                ValorFacturado           = c.ValorFacturado,
                TerceroId                = c.TerceroId
            }).ToListAsync();

            if (lista != null && lista.Count > 0)
            {
                ultimoPlanPago = lista.OrderBy(x => x.NumeroPago).Last();
            }

            return(ultimoPlanPago);
        }
Ejemplo n.º 6
0
 public frmEdición(string alumno, string cursoView, string nombreCurso, PlanPago plan) : this(alumno, cursoView, nombreCurso)
 {
     this.Text     = "Edición de plan de pago";
     txtCuota.Text = String.Format("{0} de {1}", plan.NroCuota, plan.CantidadCuotas);
     cargarCbModalidad(Convert.ToInt16(plan.Modalidad));
     txtPorcentajeBeca.DecValue = plan.PorcentajeBeca;
     this.TipoBeca = (TipoBeca)plan.TipoBeca;
 }
Ejemplo n.º 7
0
        //SE AGREGA NUEVO REPOSITORIO
        public List <PlanPago> GetPlanPagos(int CodPrest)
        {
            List <PlanPago> CitasList = new List <PlanPago>();

            try
            {
                SqlCommand cmd = CrearComando("SP_Calculo_Pago_Cod"); //Pasamos el procedimiento almacenado.
                cmd.Parameters.AddWithValue("@CodPrest", CodPrest);
                //cmd.Parameters.AddWithValue("@Monto", Monto);//Agregamos los parametros.
                //cmd.Parameters.AddWithValue("@Tasa", Tasa);
                //cmd.Parameters.AddWithValue("@Plazo", Plazo);
                //cmd.Parameters.AddWithValue("@Frecuency", Frecuency);
                //cmd.Parameters.AddWithValue("@FecAprob", Fecha);
                //cmd.Parameters.AddWithValue("@Tipo", Tipopres);
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                DataTable      dt = new DataTable();
                AbrirConexion();
                da.Fill(dt);
                CerrarConexion();
                //Bind EmpModel generic list using LINQ
                CitasList = (from DataRow dr in dt.Rows
                             select new PlanPago()
                {
                    Codigo = Convert.ToString(dr["Codigo"]),
                    Num = Convert.ToInt32(dr["Num"]),
                    Fecha = Convert.ToString(dr["Fecha"]),
                    Capital = Convert.ToDecimal(dr["Cuota"]),
                    Interes = Convert.ToDecimal(dr["Interes"]),
                    //Frecuency = Convert.ToString(dr["Frecuency"]),
                    Total = Convert.ToDecimal(dr["Capital"]),
                    Saldo = Convert.ToDecimal(dr["Saldo"]),
                    Accion = 1
                             //Mensaje = "Se cargó correctamente la información de la cita."
                }).ToList();
                if (CitasList.Count == 0)
                {
                    PlanPago ss = new PlanPago();
                    ss.Accion = 0;
                    //ss.Mensaje = "No se encontraron registros!";
                    CitasList.Add(ss);
                }
            }
            catch (Exception ex)
            {
                PlanPago oCita = new PlanPago();
                //oCita.Accion = 0;
                //oCita.Mensaje = ex.Message.ToString();
                CitasList.Add(oCita);
                throw new Exception("Error Obteniendo todos los registros " + ex.Message, ex);
            }
            return(CitasList);
        }
Ejemplo n.º 8
0
        public async Task <PlanPago> ObtenerPlanPagoDetallado(int planPagoId)
        {
            PlanPago planPago  = new PlanPago();
            var      parameter = new SqlParameter("planPagoId", planPagoId);

            var lista = await _context.PlanPago
                        .FromSqlRaw("EXECUTE dbo.USP_PlanPago_ObtenerDetallado @planPagoId", parameter)
                        .ToListAsync();

            if (lista != null)
            {
                planPago = lista[0];
            }

            return(planPago);
        }
Ejemplo n.º 9
0
        internal static Pago CrearMatrícula(SMPorresEntities db, PlanPago planPago)
        {
            var p = new Pago();

            p.Id         = db.Pagos.Any() ? db.Pagos.Max(p1 => p1.Id) + 1 : 1;
            p.IdPlanPago = planPago.Id;
            p.NroCuota   = 0;
            var curso = CursosRepository.ObtenerCursoPorId(planPago.IdCurso);

            p.ImporteCuota = curso.ImporteMatricula;
            var vto = (from c in CuotasRepository.ObtenerCuotasActuales()
                       where c.NroCuota == 0
                       select c.VtoCuota).First();

            p.FechaVto = vto;
            p.Estado   = (byte)EstadoPago.Impago;
            db.Pagos.Add(p);
            db.SaveChanges();
            return(p);
        }
Ejemplo n.º 10
0
        private PlanPago MapearPlanPago(CDPDto cdp, int anio, int mesPago, decimal valor, int numeroPago, bool viaticos)
        {
            var planPago = new PlanPago();

            planPago.Crp = cdp.Crp;
            planPago.EstadoPlanPagoId = (int)EstadoPlanPago.PorPagar;
            planPago.Cdp             = cdp.Cdp;
            planPago.AnioPago        = anio;
            planPago.MesPago         = mesPago;
            planPago.ValorInicial    = valor;
            planPago.ValorAdicion    = 0;
            planPago.ValorAPagar     = valor;
            planPago.SaldoDisponible = valor;
            planPago.Viaticos        = viaticos;
            planPago.TerceroId       = cdp.TerceroId;
            planPago.NumeroPago      = numeroPago;
            planPago.PciId           = pciId;

            planPago.UsuarioIdRegistro = usuarioId;
            planPago.FechaRegistro     = _generalInterface.ObtenerFechaHoraActual();

            return(planPago);
        }
Ejemplo n.º 11
0
        public static PlanPago Insertar(SMPorresEntities db, int idAlumno, int idCurso)
        {
            _log.Debug("Creando plan de pago");

            if (idAlumno == 0)
            {
                throw new Exception("No se pudo determinar el alumno.");
            }
            if (idCurso == 0)
            {
                throw new Exception("No se pudo determinar el curso.");
            }

            if (db.PlanesPago.Any(pp => pp.IdAlumno == idAlumno && pp.IdCurso == idCurso & pp.Estado == (short)EstadoPlanPago.Vigente))
            {
                throw new Exception("El alumno ya tiene un plan de pago vigente en este curso.");
            }

            var curso = CursosRepository.ObtenerCursoPorId(idCurso);

            if (curso == null)
            {
                throw new Exception("No se encontró el curso " + idCurso);
            }

            var id = db.PlanesPago.Any() ? db.PlanesPago.Max(c1 => c1.Id) + 1 : 1;
            //var trx = db.Database.BeginTransaction();
            var plan = new PlanPago
            {
                Id              = id,
                IdAlumno        = idAlumno,
                IdCurso         = idCurso,
                CantidadCuotas  = CursosRepository.ObtieneMaxCuota(curso.Modalidad), //Configuration.MaxCuotas,
                NroCuota        = CursosRepository.ObtieneMinCuota(curso.Modalidad), //1,
                ImporteCuota    = curso.ImporteCuota,
                PorcentajeBeca  = 0,
                TipoBeca        = (byte)TipoBeca.AplicaHastaVto,
                Estado          = (short)EstadoPlanPago.Vigente,
                IdUsuarioEstado = Session.CurrentUser.Id,
                FechaGrabacion  = Configuration.CurrentDate,
                IdUsuario       = Session.CurrentUser.Id,
                Modalidad       = curso.Modalidad
            };

            _log.Debug("Generando pagos");
            try
            {
                db.PlanesPago.Add(plan);
                db.SaveChanges();

                PagosRepository.InsertarMatricula(db, curso, id);

                PagosRepository.InsertarPagosCuotas(db, curso, id);
            }
            catch (Exception ex)
            {
                _log.Error(ex.Message, ex);
                //trx.Rollback();
                throw;
            }
            return(plan);
        }
Ejemplo n.º 12
0
 public void ActualizarPlanPago(PlanPago plan)
 {
     _context.PlanPago.Update(plan);
 }
Ejemplo n.º 13
0
 public void CambiarPlanPago(PlanPago planPago, Reserva reserva)
 {
     throw new NotImplementedException();
 }
Ejemplo n.º 14
0
 public void GenerarContrato(Reserva reserva, PlanPago planPago)
 {
     throw new NotImplementedException();
 }
Ejemplo n.º 15
0
        private async Task ActualizarListaPlanPago(CDPDto cdp, List <LineaPlanPagoDto> listaTotal)
        {
            valorPciId = User.FindFirst(ClaimTypes.Role).Value;
            if (!string.IsNullOrEmpty(valorPciId))
            {
                pciId = int.Parse(valorPciId);
            }
            int             numeroPagos   = 1;
            List <PlanPago> listaPlanPago = new List <PlanPago>();
            PlanPago        planPago      = null;
            DateTime        fechaActual   = _generalInterface.ObtenerFechaHoraActual();

            #region Registrar nuevos

            List <LineaPlanPagoDto> listaNueva = listaTotal
                                                 .Where(x => x.EstadoModificacion == (int)EstadoModificacion.Insertado)
                                                 .OrderBy(x => x.MesId)
                                                 .ToList();

            if (listaNueva != null && listaNueva.Count > 0)
            {
                var listaActualXCompromiso = await _repo.ObtenerLineasPlanPagoXCompromiso((int)cdp.Crp, pciId);

                foreach (var item in listaNueva)
                {
                    var planesPagoBD = listaActualXCompromiso.ToList();

                    if (planesPagoBD == null)
                    {
                        numeroPagos = 1;
                    }
                    else
                    {
                        if (numeroPagos == 1)
                        {
                            numeroPagos = planesPagoBD.Count() + 1;
                        }
                    }

                    planPago = MapearPlanPago(cdp, fechaActual.Year, item.MesId, item.Valor, numeroPagos, item.Viaticos);

                    listaPlanPago.Add(planPago);
                    numeroPagos++;
                }

                await _dataContext.PlanPago.AddRangeAsync(listaPlanPago);

                await _dataContext.SaveChangesAsync();
            }

            #endregion Registrar nuevos

            #region Actualizar registros

            List <LineaPlanPagoDto> listaModificada = listaTotal
                                                      .Where(x => x.EstadoModificacion == (int)EstadoModificacion.Modificado)
                                                      .ToList();

            if (listaModificada != null && listaModificada.Count > 0)
            {
                foreach (var item in listaModificada)
                {
                    planPago = await _repo.ObtenerPlanPagoBase(item.PlanPagoId);

                    if (planPago != null)
                    {
                        planPago.ValorInicial          = item.Valor;
                        planPago.ValorAdicion          = 0;
                        planPago.ValorAPagar           = item.Valor;
                        planPago.SaldoDisponible       = 0;
                        planPago.UsuarioIdModificacion = usuarioId;
                        planPago.Viaticos          = item.Viaticos;
                        planPago.FechaModificacion = _generalInterface.ObtenerFechaHoraActual();
                        await _dataContext.SaveChangesAsync();
                    }
                }
            }

            #endregion Actualizar registros
        }
Ejemplo n.º 16
0
        private List <PlanPago> obtenerListaPlanPago(IList <PlanPagoDto> lista)
        {
            List <PlanPago> listaCDP = new List <PlanPago>();
            PlanPago        cdp      = null;

            var listaTercero = _context.Tercero.ToList();
            var listaRubrosPresupuestales = _context.RubroPresupuestal.ToList();
            var listaUsoPresupuestal      = _context.UsoPresupuestal.ToList();
            var listaEstadoPlanPago       = _context.Estado
                                            .Where(x => x.TipoDocumento.ToUpper() == "PLANDEPAGOS")
                                            .ToList();
            var listaEstadoOrdenPago = _context.Estado
                                       .Where(x => x.TipoDocumento.ToUpper() == "ORDENPAGO")
                                       .ToList();

            foreach (var item in lista)
            {
                cdp = new PlanPago();

                cdp.Cdp      = item.Cdp;
                cdp.Crp      = item.Crp;
                cdp.AnioPago = item.AnioPago;
                cdp.MesPago  = item.MesPago;

                if (item.ValorInicial > 0)
                {
                    cdp.ValorInicial = item.ValorInicial;
                }
                if (item.ValorAPagar > 0)
                {
                    cdp.ValorAPagar = item.ValorAPagar;
                }
                if (item.SaldoDisponible > 0)
                {
                    cdp.SaldoDisponible = item.SaldoDisponible;
                }

                cdp.Viaticos = item.ViaticosDescripcion == "NO" ? false : true;

                if (item.NumeroPago > 0)
                {
                    cdp.NumeroPago = item.NumeroPago;
                }
                if (!string.IsNullOrEmpty(item.NumeroRadicadoProveedor))
                {
                    cdp.NumeroRadicadoProveedor = item.NumeroRadicadoProveedor;
                }
                if (item.FechaRadicadoProveedor != DateTime.MinValue)
                {
                    cdp.FechaRadicadoProveedor = item.FechaRadicadoProveedor;
                }
                if (!string.IsNullOrEmpty(item.NumeroRadicadoSupervisor))
                {
                    cdp.NumeroRadicadoSupervisor = item.NumeroRadicadoSupervisor;
                }
                if (item.FechaRadicadoSupervisor != DateTime.MinValue)
                {
                    cdp.FechaRadicadoSupervisor = item.FechaRadicadoSupervisor;
                }
                if (!string.IsNullOrEmpty(item.NumeroFactura))
                {
                    cdp.NumeroFactura = item.NumeroFactura;
                }
                if (item.ValorFacturado > 0)
                {
                    cdp.ValorFacturado = item.ValorFacturado;
                }
                if (!string.IsNullOrEmpty(item.Observaciones))
                {
                    cdp.Observaciones = item.Observaciones;
                }
                if (item.FechaFactura != DateTime.MinValue)
                {
                    cdp.FechaFactura = item.FechaFactura;
                }

                //Tercero
                if (item.TipoIdentificacionTercero > 0 &&
                    !string.IsNullOrEmpty(item.IdentificacionTercero))
                {
                    var tercero = listaTercero
                                  .Where(c => c.TipoIdentificacion == item.TipoIdentificacionTercero)
                                  .Where(c => c.NumeroIdentificacion == item.IdentificacionTercero)
                                  .FirstOrDefault();
                    if (tercero != null)
                    {
                        cdp.TerceroId = tercero.TerceroId;
                    }
                }

                //Estado PlanPago
                if (!string.IsNullOrEmpty(item.EstadoPlanPago))
                {
                    var estado = listaEstadoPlanPago
                                 .Where(c => c.Nombre.ToUpper() == item.EstadoPlanPago.ToUpper())
                                 .FirstOrDefault();
                    if (estado != null)
                    {
                        cdp.EstadoPlanPagoId = estado.EstadoId;
                    }
                }

                //Estado OrdenPago
                if (!string.IsNullOrEmpty(item.EstadoOrdenPago))
                {
                    var estado = listaEstadoOrdenPago
                                 .Where(c => c.Nombre.ToUpper() == item.EstadoOrdenPago.ToUpper())
                                 .FirstOrDefault();
                    if (estado != null)
                    {
                        cdp.EstadoOrdenPagoId = estado.EstadoId;
                    }
                }

                //Rubro Presupuestal
                if (!string.IsNullOrEmpty(item.IdentificacionRubroPresupuestal))
                {
                    var rubro = listaRubrosPresupuestales
                                .Where(c => c.Identificacion.ToUpper() == item.IdentificacionRubroPresupuestal.ToUpper())
                                .FirstOrDefault();
                    if (rubro != null)
                    {
                        cdp.RubroPresupuestalId = rubro.RubroPresupuestalId;
                    }
                }

                //Uso Presupuestal
                if (!string.IsNullOrEmpty(item.IdentificacionUsoPresupuestal))
                {
                    var uso = listaUsoPresupuestal
                              .Where(c => c.Identificacion.ToUpper() == item.IdentificacionUsoPresupuestal.ToUpper())
                              .FirstOrDefault();
                    if (uso != null)
                    {
                        cdp.UsoPresupuestalId = uso.UsoPresupuestalId;
                    }
                }

                listaCDP.Add(cdp);
            }

            return(listaCDP);
        }
Ejemplo n.º 17
0
 public void EscogerPlanPago(PlanPago planPago, PreReserva prereserva)
 {
     throw new NotImplementedException();
 }