Ejemplo n.º 1
0
 private void ConsultarDatos()
 {
     dgvDatos.SetDataSource(CuotasRepository.ObtenerCuotas());
 }
Ejemplo n.º 2
0
        private DataTable GenerarDetalleTodas(dsImpresiones.CupónPagoDataTable cupón, string idPago, string fechaEmisión, string fechaVencimiento, string nombre, string tipoDocumento, string documento, string curso, string carrera, DateTime fechaCompromiso, Pago pago)
        {
            var pagos = PagosRepository.ObtenerPagos(pago.IdPlanPago).Where(p => p.Fecha == null && p.NroCuota > 0);
            var min   = pagos.Min(p => p.NroCuota);
            var max   = pagos.Max(p => p.NroCuota);

            // CUOTAS *************************
            var    totalBase = pagos.Sum(p => p.ImporteCuota);
            var    importe   = totalBase.ToString("$ 0,0.00");
            string concepto  = String.Format("Cuotas de {0} a {1} ", min, max);

            cupón.AddCupónPagoRow(idPago, fechaEmisión, fechaVencimiento, nombre, tipoDocumento, documento,
                                  carrera, curso, "", "", "1", concepto, importe);

            // BECAS *************************
            decimal totalBecas = 0, totalPagoATérmino = 0, totalRecargos = 0;
            string  cuotasBecadas = "", cuotasPagoATérmino = "", cuotasRecargoPorMora = "";
            decimal descBeca    = 0;
            var     cuotas      = CuotasRepository.ObtenerCuotas();
            var     totalAPagar = (decimal)0;

            foreach (var p in pagos)
            {
                var     impBase = pago.ImporteCuota;
                decimal beca    = 0;

                var p1 = PagosRepository.ObtenerPago(p.Id);
                if (p1.PlanPago.PorcentajeBeca > 0)
                {
                    descBeca       = (decimal)p1.PlanPago.PorcentajeBeca;
                    beca           = p.ImporteCuota * (descBeca / 100);
                    totalBecas    += beca;
                    cuotasBecadas += String.IsNullOrEmpty(cuotasBecadas) ? p.NroCuota.ToString() : "," + p.NroCuota;
                }

                var cuota = cuotas.Where(c => c.NroCuota == p.NroCuota).FirstOrDefault();
                if (cuota == null)
                {
                    ShowError("Falta parametrizar la cuota " + p.NroCuota);
                    return(null);
                }
                var vtoCuota  = cuota.VtoCuota;
                var impBecado = impBase - beca;
                if (fechaCompromiso <= vtoCuota)
                {
                    var dpt             = (decimal)(ConfiguracionRepository.ObtenerConfiguracion().DescuentoPagoTermino / 100);
                    var descPagoTérmino = Math.Round(impBecado * dpt, 2);
                    totalPagoATérmino  += descPagoTérmino;
                    totalAPagar        += impBase - beca - descPagoTérmino;
                    cuotasPagoATérmino += cuotasPagoATérmino == "" ? p.NroCuota.ToString() : "," + p.NroCuota;
                }
                else
                {
                    var porcRecargo      = (ConfiguracionRepository.ObtenerConfiguracion().InteresPorMora / 100) / 30.0;
                    var díasAtraso       = Math.Truncate((fechaCompromiso - vtoCuota).TotalDays);
                    var porcRecargoTotal = (decimal)(porcRecargo * díasAtraso);
                    var recargoPorMora   = Math.Round(impBecado * porcRecargoTotal, 2);
                    totalRecargos        += recargoPorMora;
                    totalAPagar          += impBase - beca + recargoPorMora;
                    cuotasRecargoPorMora += cuotasRecargoPorMora == "" ? p.NroCuota.ToString() : "," + p.NroCuota;
                }
            }

            if (totalBecas > 0)
            {
                importe  = totalBecas.ToString("$ -0,0.00");
                concepto = String.Format("Descuento de %{0} por becas de cuotas {1} ", descBeca, cuotasBecadas);
                cupón.AddCupónPagoRow(idPago, fechaEmisión, fechaVencimiento, nombre, tipoDocumento, documento,
                                      carrera, curso, "", "", "2", concepto, importe);
            }

            if (totalPagoATérmino > 0)
            {
                importe  = totalPagoATérmino.ToString("$ -0,0.00");
                concepto = String.Format("Descuento por pago a término de cuotas {0} ", cuotasPagoATérmino);
                cupón.AddCupónPagoRow(idPago, fechaEmisión, fechaVencimiento, nombre, tipoDocumento, documento,
                                      carrera, curso, "", "", "2", concepto, importe);
            }

            if (totalRecargos > 0)
            {
                importe  = totalRecargos.ToString("$ 0,0.00");
                concepto = String.Format("Recargo por mora de cuotas {0} ", cuotasRecargoPorMora);
                cupón.AddCupónPagoRow(idPago, fechaEmisión, fechaVencimiento, nombre, tipoDocumento, documento,
                                      carrera, curso, "", "", "2", concepto, importe);
            }

            var codBarra = GenerarCódigoBarras(idPago, totalAPagar);

            foreach (dsImpresiones.CupónPagoRow row in cupón.Rows)
            {
                row.Total       = String.Format("{0:$ 0,0.00}", totalAPagar);
                row.CódigoBarra = codBarra;
            }

            return(cupón);
        }