示例#1
0
        public int GuardadoDatosAmortizacion(ModeloCotizacion _modeloSolicitud, ModeloCalculoAmortizacion _modelAmortizacion)
        {
            try
            {
                var sentenciaSQL = $@"EXEC sp_insertar_simulacionCredito @AMO_ID = {_modeloSolicitud.idamortizacion}
								                                          ,@SUC_ID = {_modeloSolicitud.idsucursal}
								                                          ,@INT_ID = {_modeloSolicitud.idinteres}
								                                          ,@USU_ID = {_modeloSolicitud.idusuario}
								                                          ,@SIM_MONSOLICITADO ='{_modeloSolicitud.monto.ToString().Replace(',','.')}'
								                                          ,@SIM_PLAMESES = '{_modeloSolicitud.plazo.ToString().Replace(',', '.')}'
								                                          ,@SIM_INTANUAL = '{_modelAmortizacion.interes.ToString().Replace(',', '.')}'
								                                          ,@SIM_CUAMENSUAL = '{_modelAmortizacion.primeracuota.ToString().Replace(',', '.')}'
								                                          ,@SIM_PAGTOTAL = '{_modelAmortizacion.Pagototal.ToString().Replace(',', '.')}'"                                ;
                var resultProc   = ctx.Database.SqlQuery <int>(sentenciaSQL).ToList();

                return(resultProc.First());
            }
            catch (Exception e)
            {
                throw;
            }
        }
示例#2
0
        public string PrintFile(string path, ModeloCotizacion _modelosolicitud, ModeloCalculoAmortizacion _modeloAmortizacion)
        {
            try
            {
                #region variable de estilo
                var normalFont = FontFactory.GetFont(FontFactory.HELVETICA, 12);
                var boldFont1  = FontFactory.GetFont(FontFactory.HELVETICA_BOLD, 11);
                var boldFont2  = FontFactory.GetFont(FontFactory.HELVETICA_BOLD, 12);
                var boldFont   = FontFactory.GetFont(FontFactory.HELVETICA_BOLD, 7);
                #endregion

                if (!Directory.Exists(path))
                {
                    Directory.CreateDirectory(path);
                }
                string pathFull         = path + "\\Content\\" + _modelosolicitud.id.ToString() + ".pdf";
                System.IO.FileStream fs = new FileStream(pathFull, FileMode.Create);

                Document document = new Document(PageSize.A4, 10, 10, 10, 10);

                PdfWriter writer = PdfWriter.GetInstance(document, fs);
                document.AddAuthor("Katherine Porras");
                document.AddCreator("Katherine Porras");
                document.AddKeywords("UTE");
                document.AddSubject("Documentacion Amortización");
                document.AddTitle("Documentacion Amortización");
                document.AddHeader("Header", "Header Text");

                //#region CuerpoPDF
                document.Open();

                // CabeceraC:\Users\dsamueza\Source\Repos\dsamueza\ComplexivoKP\KatherinePorras_FINBANK\Content\image\finbank.png
                var logo = iTextSharp.text.Image.GetInstance((path + "\\Content\\image\\finbank.png"));
                logo.Alignment = Element.ALIGN_LEFT;
                logo.ScaleAbsoluteHeight(50);
                logo.ScaleAbsoluteWidth(50);

                PdfPTable tblCuerpo = new PdfPTable(1);
                PdfPCell  clLogo    = new PdfPCell(logo);
                clLogo.Border = 0;
                clLogo.HorizontalAlignment = Element.ALIGN_LEFT;
                //PdfPCell clPieLogo = new PdfPCell(new Phrase("Mardis Research", FontFactory.GetFont("Arial", 10, 1)));
                //clPieLogo.Border = 0;
                //clPieLogo.HorizontalAlignment = Element.ALIGN_LEFT;
                tblCuerpo.AddCell(clLogo);
                //tblCuerpo.AddCell(clPieLogo);
                PdfPCell saltoLinea = new PdfPCell(new Paragraph("\n"));
                saltoLinea.Border = 0;

                // Escribimos el encabezamiento en el documento
                PdfPCell cltitulo = new PdfPCell(new Paragraph("Detalle de Solicitud", boldFont2));
                cltitulo.Colspan             = 2;
                cltitulo.Border              = 0;
                cltitulo.PaddingTop          = 10;
                cltitulo.PaddingBottom       = 10;
                cltitulo.HorizontalAlignment = 1;
                tblCuerpo.AddCell(saltoLinea);
                tblCuerpo.AddCell(saltoLinea);
                tblCuerpo.AddCell(cltitulo);
                tblCuerpo.AddCell(saltoLinea);
                tblCuerpo.WidthPercentage = 100;
                iTextSharp.text.Font _standardFont = new iTextSharp.text.Font(iTextSharp.text.Font.FontFamily.HELVETICA, 7, iTextSharp.text.Font.NORMAL, BaseColor.BLACK);

                //Datos Local
                PdfPTable tblInformación = new PdfPTable(3);

                PdfPCell clDato     = null;
                var      phraseDato = new Phrase();
                phraseDato.Add(new Chunk("Cliente: ", boldFont));
                phraseDato.Add(new Chunk(_modelosolicitud.nombre, _standardFont));
                clDato               = new PdfPCell(phraseDato);
                clDato.BorderWidth   = 0;
                clDato.PaddingTop    = 3;
                clDato.PaddingBottom = 3;
                tblInformación.AddCell(clDato);

                clDato     = null;
                phraseDato = new Phrase();
                phraseDato.Add(new Chunk("Cédula: ", boldFont));
                phraseDato.Add(new Chunk(_modelosolicitud.cedula, _standardFont));
                clDato               = new PdfPCell(phraseDato);
                clDato.BorderWidth   = 0;
                clDato.PaddingTop    = 3;
                clDato.PaddingBottom = 3;
                tblInformación.AddCell(clDato);

                clDato     = null;
                phraseDato = new Phrase();
                phraseDato.Add(new Chunk("Mail: ", boldFont));
                phraseDato.Add(new Chunk(_modelosolicitud.Mail, _standardFont));
                clDato               = new PdfPCell(phraseDato);
                clDato.BorderWidth   = 0;
                clDato.PaddingTop    = 3;
                clDato.PaddingBottom = 3;
                tblInformación.AddCell(clDato);
                var Sucursal = _amortizacionDoa.ObtenerDatosSucursal()
                               .Where(x => x.Value == _modelosolicitud.idinteres.ToString())
                               .Select(x => x.Text).First();

                clDato     = null;
                phraseDato = new Phrase();
                phraseDato.Add(new Chunk("Sucursal: ", boldFont));
                phraseDato.Add(new Chunk(Sucursal, _standardFont));
                clDato               = new PdfPCell(phraseDato);
                clDato.BorderWidth   = 0;
                clDato.PaddingTop    = 3;
                clDato.PaddingBottom = 3;
                tblInformación.AddCell(clDato);

                var Interes = _amortizacionDoa.ObtenerDatosInteres()
                              .Where(x => x.Value == _modelosolicitud.idinteres.ToString())
                              .Select(x => x.Text).First();
                clDato     = null;
                phraseDato = new Phrase();
                phraseDato.Add(new Chunk("Tipo Interes: ", boldFont));
                phraseDato.Add(new Chunk(Interes, _standardFont));
                clDato               = new PdfPCell(phraseDato);
                clDato.BorderWidth   = 0;
                clDato.PaddingTop    = 3;
                clDato.PaddingBottom = 3;
                tblInformación.AddCell(clDato);

                var Amortizacion = _amortizacionDoa.ObtenerDatosAmortizacion()
                                   .Where(x => x.Value == _modelosolicitud.idinteres.ToString())
                                   .Select(x => x.Text).First();
                clDato     = null;
                phraseDato = new Phrase();
                phraseDato.Add(new Chunk("Tipo Amortizacion: ", boldFont));
                phraseDato.Add(new Chunk(Amortizacion, _standardFont));
                clDato               = new PdfPCell(phraseDato);
                clDato.BorderWidth   = 0;
                clDato.PaddingTop    = 3;
                clDato.PaddingBottom = 3;
                tblInformación.AddCell(clDato);

                tblCuerpo.AddCell(tblInformación);

                //Numero de Orden
                PdfPTable tblInfoOrden = new PdfPTable(2);

                clDato     = null;
                phraseDato = new Phrase();
                phraseDato.Add(new Chunk("Orden # ", boldFont));
                phraseDato.Add(new Chunk(_modeloAmortizacion.idSolicitud.ToString(), _standardFont));
                clDato               = new PdfPCell(phraseDato);
                clDato.BorderWidth   = 0;
                clDato.PaddingTop    = 5;
                clDato.PaddingBottom = 5;
                tblInfoOrden.AddCell(clDato);


                PdfPCell clTablaPedido;
                //Datos Pedidos
                PdfPCell clTitulotabla = new PdfPCell(new Phrase("Pedidos"));
                clTitulotabla.HorizontalAlignment = Element.ALIGN_CENTER;

                PdfPTable tblPedido = new PdfPTable(10);
                tblPedido.WidthPercentage = 100;

                PdfPCell clPago = new PdfPCell(new Phrase("Pago#", boldFont));
                clPago.BorderWidth       = 0;
                clPago.BorderWidthBottom = 0.75f;

                PdfPCell clCuota = new PdfPCell(new Phrase("Cuota", boldFont));
                clCuota.BorderWidth       = 0;
                clCuota.BorderWidthBottom = 0.75f;

                PdfPCell clCantInteres = new PdfPCell(new Phrase("Interés.", boldFont));
                clCantInteres.BorderWidth       = 0;
                clCantInteres.BorderWidthBottom = 0.75f;

                PdfPCell clCapital = new PdfPCell(new Phrase("Capital", boldFont));
                clCapital.BorderWidth       = 0;
                clCapital.BorderWidthBottom = 0.75f;

                PdfPCell clSaldo = new PdfPCell(new Phrase("Saldo", boldFont));
                clSaldo.BorderWidth       = 0;
                clSaldo.BorderWidthBottom = 0.75f;


                tblPedido.AddCell(clPago);
                tblPedido.AddCell(clCuota);
                tblPedido.AddCell(clCantInteres);
                tblPedido.AddCell(clCapital);
                tblPedido.AddCell(clSaldo);


                var subtotalPedido = 0.00;
                var ivatotalPedido = 0.00;
                var totalPedido    = 0.00;

                foreach (var item in _modeloAmortizacion.ListaDatosAmortizacion)
                {
                    clPago                    = new PdfPCell(new Phrase(item.mumeroPago.ToString(), _standardFont));
                    clPago.BorderWidth        = 0;
                    clCuota                   = new PdfPCell(new Phrase(item.cuota.ToString(), _standardFont));
                    clCuota.BorderWidth       = 0;
                    clCantInteres             = new PdfPCell(new Phrase(item.interes.ToString(), _standardFont));
                    clCantInteres.BorderWidth = 0;
                    clCapital                 = new PdfPCell(new Phrase(item.capital.ToString(), _standardFont));
                    clCapital.BorderWidth     = 0;
                    clSaldo                   = new PdfPCell(new Phrase(item.Saldo.ToString(), _standardFont));
                    clSaldo.BorderWidth       = 0;


                    tblPedido.AddCell(clPago);
                    tblPedido.AddCell(clCuota);
                    tblPedido.AddCell(clCantInteres);
                    tblPedido.AddCell(clCapital);
                    tblPedido.AddCell(clSaldo);
                }
                clTablaPedido = new PdfPCell(tblPedido);

                //Totales Factura(Detalle Pedido)
                ivatotalPedido = Math.Round(ivatotalPedido, 2);
                totalPedido    = ivatotalPedido + subtotalPedido;
                PdfPTable tblDatosPedido = new PdfPTable(1);

                clDato     = null;
                phraseDato = new Phrase();
                phraseDato.Add(new Chunk("Monto solicitado: ", boldFont));
                phraseDato.Add(new Chunk(_modelosolicitud.monto.ToString(), _standardFont));
                clDato               = new PdfPCell(phraseDato);
                clDato.BorderWidth   = 0;
                clDato.PaddingTop    = 3;
                clDato.PaddingBottom = 3;
                tblDatosPedido.AddCell(clDato);

                clDato     = null;
                phraseDato = new Phrase();
                phraseDato.Add(new Chunk("Plazo en meses ", boldFont));
                phraseDato.Add(new Chunk(_modelosolicitud.plazo.ToString(), _standardFont));
                clDato               = new PdfPCell(phraseDato);
                clDato.BorderWidth   = 0;
                clDato.PaddingTop    = 3;
                clDato.PaddingBottom = 3;
                tblDatosPedido.AddCell(clDato);

                clDato     = null;
                phraseDato = new Phrase();
                phraseDato.Add(new Chunk("Total: ", boldFont));
                phraseDato.Add(new Chunk(_modeloAmortizacion.Pagototal.ToString(), _standardFont));
                clDato               = new PdfPCell(phraseDato);
                clDato.BorderWidth   = 0;
                clDato.PaddingTop    = 3;
                clDato.PaddingBottom = 3;
                tblDatosPedido.AddCell(clDato);

                tblCuerpo.AddCell(clTablaPedido);
                tblCuerpo.AddCell(tblDatosPedido);

                document.Add(tblCuerpo);

                document.Close();
                writer.Close();
                fs.Close();



                // loading bytes from a file is very easy in C#. The built in System.IO.File.ReadAll* methods take care of making sure every byte is read properly.

                return(pathFull);
            }
            catch (Exception ex)
            {
                return("");
            }
        }
示例#3
0
 public string _GeneradoraPDF(string path, ModeloCotizacion _modelosolicitud, ModeloCalculoAmortizacion _modeloAmortizacion)
 {
     return(_generadorPDF.PrintFile(path, _modelosolicitud, _modeloAmortizacion));
 }
示例#4
0
        public ModeloCalculoAmortizacion _RealizarCalculoAmortizacion(ModeloCotizacion _modelosolicitud)
        {
            ModeloCalculoAmortizacion _tb_modelocaluloamortizacion = new ModeloCalculoAmortizacion();
            var _ModelInteresAnual = _sfb_amortizacionDao.ObtenerDatosInteres().Where(x => x.Value == _modelosolicitud.idinteres.ToString());

            switch (_modelosolicitud.idamortizacion)
            {
            case 1:
                if (_ModelInteresAnual.Count() > 0)
                {
                    double interesMesual = (double)((_ModelInteresAnual.First().Monto / 12) / 100);
                    var    elevacion     = (Math.Pow((1 + interesMesual), _modelosolicitud.plazo));
                    var    PrimeraCuota  = (_modelosolicitud.monto) * ((elevacion) * interesMesual)
                                           / ((elevacion) - 1);
                    _tb_modelocaluloamortizacion.primeracuota           = PrimeraCuota;
                    _tb_modelocaluloamortizacion.interes                = _ModelInteresAnual.First().Monto;
                    _tb_modelocaluloamortizacion.ListaDatosAmortizacion = new List <ModeloTablaAmortizacion>();
                    var _montodeuda = _modelosolicitud.monto;
                    for (int i = 0; i < _modelosolicitud.plazo; i++)
                    {
                        var _montoActual = _montodeuda;
                        _tb_modelocaluloamortizacion
                        .ListaDatosAmortizacion
                        .Add(new ModeloTablaAmortizacion
                        {
                            mumeroPago = (i + 1),
                            cuota      = Math.Round(PrimeraCuota, 2),
                            interes    = Math.Round((_montoActual * interesMesual), 2),
                            capital    = Math.Round((PrimeraCuota - (_montoActual * interesMesual)), 2),
                            Saldo      = Math.Round((_montoActual - (PrimeraCuota - (_montoActual * interesMesual))), 2)
                        });
                        _montodeuda = _montoActual - (PrimeraCuota - (_montoActual * interesMesual));
                    }
                }

                break;

            case 2:

                if (_ModelInteresAnual.Count() > 0)
                {
                    double interesMesual = (double)((_ModelInteresAnual.First().Monto / 12) / 100);
                    var    capital       = (_modelosolicitud.monto) / (_modelosolicitud.plazo);
                    var    interes       = (_modelosolicitud.monto) * (interesMesual);
                    var    PrimeraCuota  = capital + interes;
                    _tb_modelocaluloamortizacion.primeracuota           = PrimeraCuota;
                    _tb_modelocaluloamortizacion.interes                = _ModelInteresAnual.First().Monto;
                    _tb_modelocaluloamortizacion.ListaDatosAmortizacion = new List <ModeloTablaAmortizacion>();
                    var _montodeuda = _modelosolicitud.monto;

                    for (int i = 0; i < _modelosolicitud.plazo; i++)
                    {
                        var _montoActual = _montodeuda;
                        _tb_modelocaluloamortizacion
                        .ListaDatosAmortizacion
                        .Add(new ModeloTablaAmortizacion
                        {
                            mumeroPago = (i + 1),
                            capital    = Math.Round((capital), 2),
                            Saldo      = Math.Round((_montoActual - capital), 2),
                            cuota      = Math.Round(capital + (_montoActual * interesMesual), 2),
                            interes    = Math.Round((_montoActual * interesMesual), 2),
                        });
                        _montodeuda = _montoActual - capital;
                    }
                }

                break;
            }
            _tb_modelocaluloamortizacion.Pagototal    = Math.Round(((_tb_modelocaluloamortizacion.ListaDatosAmortizacion.Select(b => b.interes).Sum()) + _modelosolicitud.monto), 2);
            _tb_modelocaluloamortizacion.primeracuota = Math.Round(_tb_modelocaluloamortizacion.primeracuota, 2);
            return(_tb_modelocaluloamortizacion);
        }
示例#5
0
 public int _GestionGuardarAmortizacion(ModeloCotizacion _modelosolicitud, ModeloCalculoAmortizacion _modeloAmortizacion)
 {
     return(_sfb_amortizacionDao.GuardadoDatosAmortizacion(_modelosolicitud, _modeloAmortizacion));
 }