Example #1
0
        private DataTable ObtenerDatos()
        {
            var cupón            = new dsImpresiones.CupónPagoDataTable();
            var idPago           = String.Format("{0:0000000}", _idPago);
            var fechaEmisión     = String.Format("{0:dd/MM/yyyy}", Lib.Configuration.CurrentDate);
            var fechaVencimiento = String.Format("{0:dd/MM/yyyy}", dtFechaPago.Value);
            var pago             = PagosRepository.ObtenerPago(_idPago);
            var nombre           = String.Format("{0} {1}", pago.PlanPago.Alumno.Nombre, pago.PlanPago.Alumno.Apellido);
            var tipoDocumento    = pago.PlanPago.Alumno.TipoDocumento.Descripcion;
            var documento        = pago.PlanPago.Alumno.NroDocumento.ToString("N0");
            var curso            = pago.PlanPago.Curso.Nombre;
            var carrera          = pago.PlanPago.Curso.Carrera.Nombre;
            var fechaCompromiso  = dtFechaPago.Value.Date;

            if (ckTodas.Checked)
            {
                return(GenerarDetalleTodas(cupón, idPago, fechaEmisión, fechaVencimiento, nombre, tipoDocumento,
                                           documento, curso, carrera, fechaCompromiso, pago));
            }
            else if (pago.NroCuota > 0)
            {
                return(GenerarDetalleCuota(cupón, idPago, fechaEmisión, fechaVencimiento, nombre, tipoDocumento,
                                           documento, curso, carrera, fechaCompromiso));
            }
            else
            {
                return(GenerarMatrícula(cupón, idPago, fechaEmisión, fechaVencimiento, nombre, tipoDocumento,
                                        documento, curso, carrera, fechaCompromiso));
            }
        }
Example #2
0
        private DataTable GenerarMatrícula(dsImpresiones.CupónPagoDataTable cupón, string idPago, string fechaEmisión,
                                           string fechaVencimiento, string nombre, string tipoDocumento, string documento, string curso, string carrera,
                                           DateTime fechaCompromiso)
        {
            var p       = PagosRepository.ObtenerDetallePago(_idPago, fechaCompromiso);
            var importe = String.Format("{0:$ 0,0.00}", p.ImporteCuota);

            cupón.AddCupónPagoRow(idPago, fechaEmisión, fechaVencimiento, nombre, tipoDocumento, documento,
                                  //carrera, curso, "", "", "1", "Matrícula", importe);
                                  carrera, curso, "", "", "1", PagosRepository.ObtenerConcepto(p.IdPlanPago, p), importe);

            if (DescuentoMatrículaPagoTermino(p, fechaCompromiso))
            {
                importe = p.ImportePagoTermino.Value.ToString("$ -0,0.00");
                string concepto = "Descuento por pago a término";
                cupón.AddCupónPagoRow(idPago, fechaEmisión, fechaVencimiento, nombre, tipoDocumento, documento,
                                      carrera, curso, "", "", "2", concepto, importe);
            }

            string codBarra = GenerarCódigoBarras(idPago, p.ImportePagado.Value);

            foreach (dsImpresiones.CupónPagoRow row in cupón.Rows)
            {
                row.Total       = String.Format("{0:$ 0,0.00}", p.ImportePagado.Value);
                row.CódigoBarra = codBarra;
            }
            return(cupón);
        }
Example #3
0
        private DataTable GenerarDetalleCuota(dsImpresiones.CupónPagoDataTable cupón, string idPago, string fechaEmisión,
                                              string fechaVencimiento, string nombre, string tipoDocumento, string documento, string curso, string carrera,
                                              DateTime fechaCompromiso)
        {
            var    p        = PagosRepository.ObtenerDetallePago(_idPago, fechaCompromiso);
            var    impBase  = p.ImporteCuota;
            var    importe  = impBase.ToString("$ 0,0.00");
            string concepto = String.Format("Cuota Nº {0}", p.NroCuota);

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

            if (p.ImporteBeca > 0)
            {
                importe  = p.ImporteBeca.Value.ToString("$ -0,0.00");
                concepto = String.Format("Descuento por beca del %{0}", p.PorcBeca);
                cupón.AddCupónPagoRow(idPago, fechaEmisión, fechaVencimiento, nombre, tipoDocumento, documento,
                                      carrera, curso, "", "", "2", concepto, importe);
            }

            if (fechaCompromiso <= p.FechaVto.Value)
            {
                if (p.ImportePagoTermino > 0)
                {
                    importe  = p.ImportePagoTermino.Value.ToString("$ -0,0.00");
                    concepto = "Descuento por pago a término";
                    cupón.AddCupónPagoRow(idPago, fechaEmisión, fechaVencimiento, nombre, tipoDocumento, documento,
                                          carrera, curso, "", "", "3", concepto, importe);
                }
            }
            else
            {
                importe  = p.ImporteRecargo.Value.ToString("$ 0,0.00");
                concepto = String.Format("Recargo por mora - Vencida el {0:dd/MM/yyyy}", p.FechaVto);
                cupón.AddCupónPagoRow(idPago, fechaEmisión, fechaVencimiento, nombre, tipoDocumento, documento,
                                      carrera, curso, "", "", "3", concepto, importe);
            }

            var codBarra = GenerarCódigoBarras(idPago, p.ImportePagado.Value);

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

            return(cupón);
        }
Example #4
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);
        }