TFS_ANTIGUO/SInCathay/ULA.Cathay.Credito/ControllersWebApi/RecopilacionInformacion/DocumentosRecopilacionAPI.cs

977 lines
No EOL
67 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web.Http;
using ULA.Cathay.Credito.Json;
using ULA.Cathay.Credito.WCFDocumentos;
using ULA.Cathay.CreditoModel.Credito;
using ULA.Cathay.CreditoModel.DAL.Credito;
using Ultimus.Interfaces;
using ULA.Cathay.Credito.ControllersWebApi.RecopilacionInformacion;
using Ultimus.Interfaces.UltimusIntegration;
using ULA.Cathay.CreditoModel.Entidades;
using System.Text;
namespace ULA.Cathay.Credito.ControllersWebApi
{
public partial class DocumentosAPIController : ApiController
{
private string SaltoLinea = "\n";
/// <summary>
///
/// </summary>
/// <param name="IdSolicitud"></param>
/// <returns></returns>
[HttpGet]
public ResultadoGeneracion GenerarCaratulaCredito(Solicitud modelo)
{
Entrada obj = new Entrada();
TipoTramite TipoTramite = null;
//Solicitud modelo = new Solicitud();
DocumentoDB doc = new DocumentoDB();
UltimusUser userCartula = new UltimusUser();
List<Moneda> MonedaCatalogo = new List<Moneda>();
ResultadoGeneracion respuesta = new ResultadoGeneracion();
CaratulaCreditoDAL ConnCaratulaDal = new CaratulaCreditoDAL();
GrupoInteresEconomicoDAL ConnCGIE = new GrupoInteresEconomicoDAL();
List<AprobacionesComite> FirmasCaratula = new List<AprobacionesComite>();
IngresoClienteAPIController ConnOferta = new IngresoClienteAPIController();
List<GrupoInteresEconomico> ExposicionGie = new List<GrupoInteresEconomico>();
CaratulaCreditoAPIController ConnCaratula = new CaratulaCreditoAPIController();
UltimusIntegrationAPIController UltimusIntgration = new UltimusIntegrationAPIController();
UltimusIntegrationClient UltimusClient = new UltimusIntegrationClient(UltimusIntgration.wSHttpBinding, UltimusIntgration.endpointAddress);
int? Indice = 0;
string Error = string.Empty;
decimal MontoMayorLinea = 0;
string NombreEjecutivo = string.Empty;
string IdentificacionPrincipal = string.Empty;
string TituloCambioCondicionesTipoCaratula = string.Empty;
try
{
MonedaCatalogo = new MonedaDAL().Obtener();
//modelo.IdSolicitud = IdSolicitud;
JsonSolicitud modelJson = ConnCaratula.ConsultarDatosSolicitusCaratula(modelo);
string Step = modelo.Step;
int? IncidentStatus = modelo.IncidentStatus;
if (modelJson.CodigoRespuesta != TipoCodigoRespuesta.EXITOSO.ToString())
throw new Exception(modelJson.DescripcionRespuesta);
modelo = modelJson.Solicitud;
if (modelo != null)
{
//***********************************************************
//Si oferta es nula o No hay Facilidades Ni Hay Operaciones
//***********************************************************
if (modelo.Oferta == null ||
((modelo.Oferta.OfertaFacilidades == null || modelo.Oferta.OfertaFacilidades.Count == 0) &&
(modelo.Oferta.OfertaOperaciones == null || modelo.Oferta.OfertaOperaciones.Count == 0)))
{
respuesta.Error = string.Format("No existen facilidades ni operaciones asociadas a la oferta de la solicitud {0}", modelo.IdSolicitud);
return respuesta;
}
if (modelo.Oferta.IdTipoCategoria == null)
{
respuesta.Error = string.Format("No existe una categoría asociada a la oferta de la solicitud {0}", modelo.IdSolicitud);
return respuesta;
}
obj.TipoDb = TipoDB.SQLServer;
obj.Formato = FormatoSalida.pdf;
obj.ConnectionString = null;
doc.Ruta = string.Format("{0}\\{1}", getRutaPlantillasDocumentos(), "CaratulaCredito.dotx");
doc.NumeroCopias = 1;
obj.NombreDocumentoGenerado = string.Format("{0}_{1}_{2}", "CaratulaCredito", modelo.IdSolicitud, DateTime.Now.ToString("dd.MM.yyyy_hh.mm.ss"));
doc.CamposAdicionales = new List<Campo>();
doc.TablasAdicionales = new List<Tabla>();
doc.CamposAdicionales.Add(new Campo() { Nombre = "CodigoCaratula", Valor = modelo.CaratulaCredito.CodigoCaratula });
doc.CamposAdicionales.Add(new Campo() { Nombre = "FechaAprobacion", Valor =modelo.CaratulaCredito.FechaAprobacion!=null? string.Format("Fecha Aprobación: {0:dd-MMM-yyyy}", modelo.CaratulaCredito.FechaAprobacion): string.Empty });
doc.CamposAdicionales.Add(new Campo() { Nombre = "EStadoCaratula", Valor = modelo.CaratulaCredito.IdEstadoCaratula != null ? string.Format("Estado: {0}", modelo.CaratulaCredito.EstadosCaratula.Descripcion) : string.Empty });
#region Seccion Tabla de los participante
Tabla Participantes = new Tabla();
Participantes.FilasResultado = new List<FilaResultado>();
Participantes.Puntero = "TablaDeudores";
foreach (Solicitante Soli in modelo.Solicitante)
{
#region NombreCliente
string NombreCliente = "";
switch (Soli.Cliente.IdTipoCliente)
{
case EnumTipoCliente.Fisico:
string PNombre = string.IsNullOrEmpty(Soli.Cliente.PrimerNombre) ? "" : Soli.Cliente.PrimerNombre.Trim() + " ";
string SNombre = string.IsNullOrEmpty(Soli.Cliente.SegundoNombre) ? "" : Soli.Cliente.SegundoNombre.Trim() + " ";
string PApellido = string.IsNullOrEmpty(Soli.Cliente.PrimerApellido) ? "" : Soli.Cliente.PrimerApellido.Trim() + " ";
string SApellido = string.IsNullOrEmpty(Soli.Cliente.SegundoApellido) ? "" : Soli.Cliente.SegundoApellido.Trim() + " ";
NombreCliente = String.Format("{0}{1}{2}{3}", PNombre, SNombre, PApellido, SApellido);
break;
case EnumTipoCliente.Juridico:
NombreCliente = string.IsNullOrEmpty(Soli.Cliente.RazonSocial) ? "" : Soli.Cliente.RazonSocial.Trim();
break;
}
#endregion
FilaResultado FrSoli = new FilaResultado();
FrSoli.Columnas = new List<ColumnaResultado>();
FrSoli.Columnas.Add(new ColumnaResultado() { Valor = Soli.TipoSolicitante.Descripcion.Trim() });
FrSoli.Columnas.Add(new ColumnaResultado() { Valor = NombreCliente });
FrSoli.Columnas.Add(new ColumnaResultado() { Valor = Soli.Cliente.NumeroIdentificacion });
FrSoli.Columnas.Add(new ColumnaResultado() { Valor = Soli.Cliente.CodigoCiiu });
FrSoli.Columnas.Add(new ColumnaResultado() { Valor = Soli.Cliente.DescNivelCapacidadPago });
FrSoli.Columnas.Add(new ColumnaResultado() { Valor = Soli.Cliente.CategoriaRiesgo });
FrSoli.Columnas.Add(new ColumnaResultado() { Valor = Soli.Cliente.DescRiesgoCambiario });
FrSoli.Columnas.Add(new ColumnaResultado() { Valor = Soli.Cliente.DescGeneraMonedaExtrangera });
FrSoli.Columnas.Add(new ColumnaResultado() { Valor = Soli.Cliente.DescClasificacionMetodologia });
FrSoli.Columnas.Add(new ColumnaResultado() { Valor = string.Format("{0:n2}", Math.Round((Soli.Cliente.CoberturaServicioDeuda.HasValue ? Soli.Cliente.CoberturaServicioDeuda.Value : 0), 2, MidpointRounding.AwayFromZero)) });
Participantes.FilasResultado.Add(FrSoli);
++Indice;
if (Soli.EsPrincipal.Value)
{
IdentificacionPrincipal = Soli.Cliente.NumeroIdentificacion;
NombreEjecutivo = Soli.Cliente.Ejecutivo != null ? Soli.Cliente.Ejecutivo.Nombre : "";
TipoTramite = new TipoTramiteDAL().Obtener(Soli.Cliente.IdTipoTramite).FirstOrDefault();
}
}
doc.TablasAdicionales.Add(Participantes);
#endregion
TituloCambioCondicionesTipoCaratula = TipoTramite.IdTipoTramite == EnumTipoTramite.CambioCondiciones ? string.Format("{0} {1}", "Cambio de Condiciones", modelo.CaratulaCredito.IdTipoCaratula == EnumTipoCaratula.Permanente ? "Permanentes" : "Temporales") : "";
if (string.IsNullOrEmpty(TituloCambioCondicionesTipoCaratula))
doc.CamposAdicionales.Add(new Campo() { Nombre = "CategoriaOferta", Valor = string.Format("***** {0} *****", modelo.Oferta.TipoCategoria != null ? modelo.Oferta.TipoCategoria.Descripcion : "") });
else
doc.CamposAdicionales.Add(new Campo() { Nombre = "CategoriaOferta", Valor = string.Format("***** {0} ***** {1}", TituloCambioCondicionesTipoCaratula, modelo.CaratulaCredito.TipoCambioCondiciones != null ? SaltoLinea + modelo.CaratulaCredito.TipoCambioCondiciones.Descripcion : "") });
#region Seccion Tabla Exposicion Total Por GIE
ExposicionGie = ConnCGIE.Obtener(IdentificacionPrincipal);
Tabla ExposicionTotalPorGIE = new Tabla();
ExposicionTotalPorGIE.FilasResultado = new List<FilaResultado>();
ExposicionTotalPorGIE.Puntero = "TablaExposicionTotalPorGIE";
foreach (GrupoInteresEconomico Miembrro in ExposicionGie)
{
foreach (GrupoInteresEconomicoDetalle Expo in Miembrro.GrupoInteresEconomicoDetalle)
{
if ((Expo.TipoOperacion == "0" && Expo.Incident == modelo.Incidente) || (Expo.TipoOperacion != "0"))
{
FilaResultado FrExpo = new FilaResultado();
FrExpo.Columnas = new List<ColumnaResultado>();
FrExpo.Columnas.Add(new ColumnaResultado() { Valor = null });
string PNombre = string.IsNullOrEmpty(Miembrro.Nombre) ? "" : Miembrro.Nombre.Trim() + " ";
string PApellido = string.IsNullOrEmpty(Miembrro.PrimerApellido) ? "" : Miembrro.PrimerApellido.Trim() + " ";
string SApellido = string.IsNullOrEmpty(Miembrro.SegundoApellido) ? "" : Miembrro.SegundoApellido.Trim() + " ";
string MarcaCumpleAcuerdoSUGEF4_04_o_5_04 = Miembrro.CumpleAcuerdoSUGEF4_04_o_5_04.HasValue ? (Miembrro.CumpleAcuerdoSUGEF4_04_o_5_04.Value == true ? "***" : "") : "";
FrExpo.Columnas.Add(new ColumnaResultado() { Valor = string.Format("{0}{1}{2}{3}", MarcaCumpleAcuerdoSUGEF4_04_o_5_04, PNombre, PApellido, SApellido) });
FrExpo.Columnas.Add(new ColumnaResultado() { Valor = Miembrro.CodigoBPSap });
FrExpo.Columnas.Add(new ColumnaResultado() { Valor = Expo.CodigoIncisoSUGEF.HasValue ? Expo.IncisoSugef.Descripcion : "No Aplica" });
FrExpo.Columnas.Add(new ColumnaResultado() { Valor = Expo.DescTipoOperacion });
Moneda moneda = string.IsNullOrEmpty(Expo.Moneda) ? new Moneda() : MonedaCatalogo.Where(x => x.Nemonico.ToLower().Trim().Contains(Expo.Moneda.ToLower().Trim())).FirstOrDefault();
FrExpo.Columnas.Add(new ColumnaResultado() { Valor = string.Format("{0} {1}", moneda.Nemonico, moneda.Simbolo) });
FrExpo.Columnas.Add(new ColumnaResultado() { Valor = string.Format("{0:n2}", Expo.MontoSolicitado) });
FrExpo.Columnas.Add(new ColumnaResultado() { Valor = string.Format("{0:n2}", Expo.SaldoPendiente) });
FrExpo.Columnas.Add(new ColumnaResultado() { Valor = string.Format("{0:n2}", Expo.ExposicionPropuesta) });
FrExpo.Columnas.Add(new ColumnaResultado() { Valor = string.Format("{0:MMM-yy}", Expo.FechaVencimiento) });
FrExpo.Columnas.Add(new ColumnaResultado() { Valor = string.IsNullOrEmpty(Expo.DescTipoGarantia) ? "" : Expo.DescTipoGarantia });
ExposicionTotalPorGIE.FilasResultado.Add(FrExpo);
}
}
}
doc.TablasAdicionales.Add(ExposicionTotalPorGIE);
#endregion
doc.CamposAdicionales.Add(new Campo() { Nombre = "DeudoresTipoGIE", Valor = modelo.CaratulaCredito.DescTipoGie });
doc.CamposAdicionales.Add(new Campo() { Nombre = "ExposicionObservaciones", Valor = modelo.CaratulaCredito.ExpocisionObservaciones });
doc.CamposAdicionales.Add(new Campo() { Nombre = "ExposicionNombre", Valor = modelo.CaratulaCredito.ExposicionNombre });
doc.CamposAdicionales.Add(new Campo() { Nombre = "ExposicionAcuerdoSUGEF", Valor = modelo.CaratulaCredito.DescAcuerdoSUGEF5_04 });
doc.CamposAdicionales.Add(new Campo() { Nombre = "EtiquetaPermisoArt117SBN135BCCR", Valor = modelo.CaratulaCredito.PermisoSBNBCCR == null ? "" : "Permiso Art. 117 SBN ó 135 BCCR" });
doc.CamposAdicionales.Add(new Campo() { Nombre = "PermisoArt117SBN135BCCR", Valor = modelo.CaratulaCredito.PermisoSBNBCCR == null ? "" : modelo.CaratulaCredito.PermisoSBNBCCR.DescPermisoSBNBCCR });
doc.CamposAdicionales.Add(new Campo() { Nombre = "ExposicionNumero", Valor = modelo.CaratulaCredito.ExposicionNumero });
doc.CamposAdicionales.Add(new Campo() { Nombre = "ExpSubTotalsaldoActualDolares", Valor = string.Format("{0:n2}", Math.Round((modelo.CaratulaCredito.SubTotalSaldoDolares.HasValue ? modelo.CaratulaCredito.SubTotalSaldoDolares.Value : 0), 2, MidpointRounding.AwayFromZero)) });
doc.CamposAdicionales.Add(new Campo() { Nombre = "ExpSubTotalsaldoActualColones", Valor = string.Format("{0:n2}", Math.Round((modelo.CaratulaCredito.SubTotalSaldoMonedaLocal.HasValue ? modelo.CaratulaCredito.SubTotalSaldoMonedaLocal.Value : 0), 2, MidpointRounding.AwayFromZero)) });
doc.CamposAdicionales.Add(new Campo() { Nombre = "ExpSubTotalExposicionPropuestaDolares", Valor = string.Format("{0:n2}", Math.Round((modelo.CaratulaCredito.SubTotalExposicionDolares.HasValue ? modelo.CaratulaCredito.SubTotalExposicionDolares.Value : 0), 2, MidpointRounding.AwayFromZero)) });
doc.CamposAdicionales.Add(new Campo() { Nombre = "ExpSubTotalExposicionPropuestaColones", Valor = string.Format("{0:n2}", Math.Round((modelo.CaratulaCredito.SubTotalExposicionMonedaLocal.HasValue ? modelo.CaratulaCredito.SubTotalExposicionMonedaLocal.Value : 0), 2, MidpointRounding.AwayFromZero)) });
doc.CamposAdicionales.Add(new Campo() { Nombre = "ExpTotalsaldoActualDolares", Valor = string.Format("{0:n2}", Math.Round((modelo.CaratulaCredito.TotalSaldo.HasValue ? modelo.CaratulaCredito.TotalSaldo.Value : 0), 2, MidpointRounding.AwayFromZero)) });
doc.CamposAdicionales.Add(new Campo() { Nombre = "ExpTotalExposicionPropuestaDoloares", Valor = string.Format("{0:n2}", Math.Round((modelo.CaratulaCredito.TotalExposicion.HasValue ? modelo.CaratulaCredito.TotalExposicion.Value : 0), 2, MidpointRounding.AwayFromZero)) });
//Amortización Programada Dolares
doc.CamposAdicionales.Add(new Campo() { Nombre = "AmortizacionProgramadaDolares", Valor = string.Format("{0}", modelo.CaratulaCredito.AmortizacionProgDolares.HasValue ? modelo.CaratulaCredito.AmortizacionProgDolares.Value > 0 ? "USD $" : " " : " ") });
doc.CamposAdicionales.Add(new Campo() { Nombre = "AmortizacionProgramadaDolaresMonto", Valor = string.Format("{0}", modelo.CaratulaCredito.AmortizacionProgDolares.HasValue ? modelo.CaratulaCredito.AmortizacionProgDolares.Value > 0 ? "- $ " + modelo.CaratulaCredito.AmortizacionProgDolares.Value.ToString("n2") : " " : " ") });
doc.CamposAdicionales.Add(new Campo() { Nombre = "AmortizacionProgramadaDolaresLabel", Valor = string.Format("{0}", modelo.CaratulaCredito.AmortizacionProgDolares.HasValue ? modelo.CaratulaCredito.AmortizacionProgDolares.Value > 0 ? "Amortización Programada" : " " : " ") });
//
//Amortización Programada Colones
doc.CamposAdicionales.Add(new Campo() { Nombre = "AmortizacionProgramadaColones", Valor = string.Format("{0}", modelo.CaratulaCredito.AmortizacionProgMonedaLocal.HasValue ? modelo.CaratulaCredito.AmortizacionProgMonedaLocal.Value > 0 ? "CRC ¢" : " " : " ") });
doc.CamposAdicionales.Add(new Campo() { Nombre = "AmortizacionProgramadaColonesMonto", Valor = string.Format("{0}", modelo.CaratulaCredito.AmortizacionProgMonedaLocal.HasValue ? modelo.CaratulaCredito.AmortizacionProgMonedaLocal.Value > 0 ? "- ¢ " + modelo.CaratulaCredito.AmortizacionProgMonedaLocal.Value.ToString("n2") : " " : " ") });
doc.CamposAdicionales.Add(new Campo() { Nombre = "AmortizacionProgramadaColonesLabel", Valor = string.Format("{0}", modelo.CaratulaCredito.AmortizacionProgMonedaLocal.HasValue ? modelo.CaratulaCredito.AmortizacionProgMonedaLocal.Value > 0 ? "Amortización Programada" : " " : " ") });
//
Moneda MonedaExposicion = new MonedaDAL().ObtenerMoneda(null, modelo.CaratulaCredito.SimboloMonedaTotalExposicion);
MonedaExposicion = MonedaExposicion == null ? new Moneda() : MonedaExposicion;
doc.CamposAdicionales.Add(new Campo() { Nombre = "SimboloMonedaTotalExposicion", Valor = string.Format("{0} {1}", string.IsNullOrEmpty(MonedaExposicion.Nemonico) ? "" : MonedaExposicion.Nemonico.Trim(), modelo.CaratulaCredito.SimboloMonedaTotalExposicion) });
doc.CamposAdicionales.Add(new Campo() { Nombre = "SimboloMonedaExposicionCapitalAjustado", Valor = string.Format("{0} {1}", string.IsNullOrEmpty(MonedaExposicion.Nemonico) ? "" : MonedaExposicion.Nemonico.Trim(), modelo.CaratulaCredito.SimboloMonedaTotalExposicion) });
doc.CamposAdicionales.Add(new Campo() { Nombre = "SimboloMonedaTotalSaldoActual", Valor = string.Format("{0} {1}", string.IsNullOrEmpty(MonedaExposicion.Nemonico) ? "" : MonedaExposicion.Nemonico.Trim(), modelo.CaratulaCredito.SimboloMonedaTotalExposicion) });
doc.CamposAdicionales.Add(new Campo() { Nombre = "ExposicionTipoCambio", Valor = string.Format("{0:n2}", modelo.CaratulaCredito.TipoCambio) });
doc.CamposAdicionales.Add(new Campo() { Nombre = "ExposicionCapitalAjustado", Valor = string.Format("{0:n2}", modelo.CaratulaCredito.CapitalAjustado) });
doc.CamposAdicionales.Add(new Campo() { Nombre = "ExposicionFecha", Valor = string.Format("{0:dd-MMM-yyyy}", modelo.CaratulaCredito.FechaCapitalAjustado) });
doc.CamposAdicionales.Add(new Campo() { Nombre = "RentabilidadMarginalAcumulada", Valor = string.Format("{0:n2}", modelo.CaratulaCredito.MarginalAcumuladaGrupoEmpresarial) });
doc.CamposAdicionales.Add(new Campo() { Nombre = "RentabilidadGrupoEmpresarial", Valor = string.Format("{0:n2}", modelo.CaratulaCredito.PorcentajeGrupoEmpresarial) });
doc.CamposAdicionales.Add(new Campo() { Nombre = "RentabilidadNumeroProductos", Valor = string.Format("{0}", (modelo.CaratulaCredito.NumeroProductos.HasValue ? modelo.CaratulaCredito.NumeroProductos.Value.ToString("n0") : "")) });
doc.CamposAdicionales.Add(new Campo() { Nombre = "RentabilidadEF", Valor = string.Format("{0:dd-MMM-yyyy}", modelo.CaratulaCredito.EFal) });
doc.CamposAdicionales.Add(new Campo() { Nombre = "ActividadEconomica", Valor = modelo.CaratulaCredito.Actividad });
doc.CamposAdicionales.Add(new Campo() { Nombre = "ActividadEconomicaPIB", Valor = modelo.CaratulaCredito.DescActividadEconomicaPIB });
doc.CamposAdicionales.Add(new Campo() { Nombre = "ActividadEconomicaCIIU", Valor = modelo.CaratulaCredito.DescActividadEconomicaCIIU });
doc.CamposAdicionales.Add(new Campo() { Nombre = "ActividadEconomicaSUGEFGeneral", Valor = string.Format("{0}", modelo.CaratulaCredito.DescSUGEFGeneral) });
doc.CamposAdicionales.Add(new Campo() { Nombre = "ActividadEconomicaSUGEFDetallada", Valor = string.Format("{0}", modelo.CaratulaCredito.DescSUGEFDetallada) });
doc.CamposAdicionales.Add(new Campo() { Nombre = "ActividadSectorEconomicoSUGEF", Valor = modelo.CaratulaCredito.DescSectorEconomicoSUGEF });
doc.CamposAdicionales.Add(new Campo() { Nombre = "ActividadEconomicaLey8262", Valor = modelo.CaratulaCredito.DescLey8262 });
doc.CamposAdicionales.Add(new Campo() { Nombre = "ActividadEconomicaPuntaje", Valor = string.Format("{0:n2}", modelo.CaratulaCredito.Puntaje ?? 0) });
doc.CamposAdicionales.Add(new Campo() { Nombre = "ActividadEconomicaBeneficiarioSBD", Valor = modelo.CaratulaCredito.DescBeneficiarioSBD });
///Sección de facilidades
if (modelo.Oferta.OfertaFacilidades != null && modelo.Oferta.OfertaFacilidades.Count > 0)
{
doc.CamposAdicionales.Add(new Campo() { Nombre = "TasaTBP", Valor = string.Format("{0:n2} %", modelo.Oferta.OfertaFacilidades.FirstOrDefault().TBPPropuestaMonedaLocal) });
doc.CamposAdicionales.Add(new Campo() { Nombre = "TasaPR", Valor = string.Format("{0:n2} %", modelo.Oferta.OfertaFacilidades.FirstOrDefault().TRPropuestaDolares) });
}
else if (modelo.Oferta.OfertaOperaciones != null && modelo.Oferta.OfertaOperaciones.Count > 0)
{
doc.CamposAdicionales.Add(new Campo() { Nombre = "TasaTBP", Valor = string.Format("{0:n2} %", modelo.Oferta.OfertaOperaciones.FirstOrDefault().TBPPropuestaMonedaLocal) });
doc.CamposAdicionales.Add(new Campo() { Nombre = "TasaPR", Valor = string.Format("{0:n2} %", modelo.Oferta.OfertaOperaciones.FirstOrDefault().TRPropuestaDolares) });
}
Indice = 0;
modelo.Oferta.IdSolicitud = modelo.IdSolicitud;
doc.CamposAdicionales.Add(new Campo() { Nombre = "Otros", Valor = modelo.CaratulaCredito.ExposicionOtros });
#region Seccion Tabla Facilidades y Tabla Facilidades Detalle
Tabla TablaFacilidades = new Tabla();
TablaFacilidades.FilasResultado = new List<FilaResultado>();
TablaFacilidades.Puntero = "TablaFacilidades";
Tabla TablaFacilidadesDetalle = new Tabla();
TablaFacilidadesDetalle.FilasResultado = new List<FilaResultado>();
TablaFacilidadesDetalle.Puntero = "TablaFacilidadesDetalle";
foreach (OfertaFacilidades FacilidadLineas in modelo.Oferta.OfertaFacilidades.Where(q => q.Secuencia != 0 && q.Eslinea == true))
{
Indice = Indice == 0 ? ++Indice : Indice;
TablaFacilidadesDetalle.FilasResultado.Add(AgregarFilaFacilidadDetalle(FacilidadLineas, Indice.Value));
}
if (Indice != 0)
{
OfertaFacilidades FacilidadEspecifico = new OfertaFacilidades()
{
TipoFacilidad = new TipoFacilidad() { Descripcion = "Linea" },
Detalle = modelo.Oferta.DetalleLinea,
Moneda = modelo.Oferta.Moneda,
MontoActual = modelo.Oferta.MontoActualLinea,
MontoPropuesto = modelo.Oferta.MontoPropuestoLinea,
PlazoMaximoActual = modelo.Oferta.PlazoActualLinea,
PlazoMaximoPropuesto = modelo.Oferta.PlazoLinea,
FechaVencimientoActual = modelo.Oferta.FechaVencimientoActualLinea,
FechaVencimiento = modelo.Oferta.FechaVencimientoLinea,
RazonSuperandoLimites = modelo.Oferta.RazonLineaSuperaLimiteGlobal
};
TablaFacilidades.FilasResultado.Add(AgregarFilaFacilidadResumen(FacilidadEspecifico, Indice.Value, TipoTramite.IdTipoTramite));
}
foreach (OfertaFacilidades FacilidadEspecifico in modelo.Oferta.OfertaFacilidades.Where(q => q.Secuencia != 0 && q.EsEspecifico == true))
{
++Indice;
TablaFacilidades.FilasResultado.Add(AgregarFilaFacilidadResumen(FacilidadEspecifico, Indice.Value, TipoTramite.IdTipoTramite));
TablaFacilidadesDetalle.FilasResultado.Add(AgregarFilaFacilidadDetalle(FacilidadEspecifico, Indice.Value));
}
foreach (OfertaOperaciones Operaciones in modelo.Oferta.OfertaOperaciones)
{
++Indice;
TablaFacilidades.FilasResultado.Add(AgregarFilaFacilidadResumen(Operaciones, Indice.Value, TipoTramite.IdTipoTramite));
TablaFacilidadesDetalle.FilasResultado.Add(AgregarFilaFacilidadDetalle(Operaciones, Indice.Value));
}
doc.TablasAdicionales.Add(TablaFacilidades);
doc.TablasAdicionales.Add(TablaFacilidadesDetalle);
#endregion
#region Sección Tabla de Excepciones Politicas
Tabla TablaExcepcionesPoliticas = new Tabla();
TablaExcepcionesPoliticas.FilasResultado = new List<FilaResultado>();
TablaExcepcionesPoliticas.Puntero = "TablaExcepcionesPoliticas";
#region Sección Tabla de Excepciones Politicas - Actuales
if (modelo.CaratulaCredito.CaratulaCreditoExcepcionesPolitica.Where(x => x.EsPropuesta != true).Any() == true)
{
foreach (CaratulaCreditoExcepcionesPolitica ExpPoli in modelo.CaratulaCredito.CaratulaCreditoExcepcionesPolitica.Where(x => x.EsPropuesta != true))
{
FilaResultado FrExpPoli = new FilaResultado();
FrExpPoli.Columnas = new List<ColumnaResultado>();
FrExpPoli.Columnas.Add(new ColumnaResultado() { Valor = "Actual" });
FrExpPoli.Columnas.Add(new ColumnaResultado() { Valor = ExpPoli.Inciso != null ? ExpPoli.Inciso.Descripcion : null });
FrExpPoli.Columnas.Add(new ColumnaResultado() { Valor = ExpPoli.Excepciones != null ? ExpPoli.Excepciones.Descripcion : null });
FrExpPoli.Columnas.Add(new ColumnaResultado() { Valor = ExpPoli.ExcepcionesClasificacion != null ? ExpPoli.ExcepcionesClasificacion.Descripcion : null });
FrExpPoli.Columnas.Add(new ColumnaResultado() { Valor = ExpPoli.Justificacion });
FrExpPoli.Columnas.Add(new ColumnaResultado() { Valor = ExpPoli.ExcepcionesClasificacionSubsistencia != null ? ExpPoli.ExcepcionesClasificacionSubsistencia.Descripcion : null });
FrExpPoli.Columnas.Add(new ColumnaResultado() { Valor = ExpPoli.Plazo != null ? ExpPoli.Plazo.ToString() : null }); //ExpPoli.FechaNormalizacion.HasValue ? ExpPoli.FechaNormalizacion.Value.ToString("dd/MM/yyyy") : "" });
TablaExcepcionesPoliticas.FilasResultado.Add(FrExpPoli);
}
}
#endregion
#region Sección Tabla de Excepciones Politicas - Propuesta
if (modelo.CaratulaCredito.CaratulaCreditoExcepcionesPolitica.Where(x => x.EsPropuesta == true).Any() == true)
{
foreach (CaratulaCreditoExcepcionesPolitica ExpPoli in modelo.CaratulaCredito.CaratulaCreditoExcepcionesPolitica.Where(x => x.EsPropuesta == true))
{
FilaResultado FrExpPoli = new FilaResultado();
FrExpPoli.Columnas = new List<ColumnaResultado>();
FrExpPoli.Columnas.Add(new ColumnaResultado() { Valor = "Propuesto" });
FrExpPoli.Columnas.Add(new ColumnaResultado() { Valor = ExpPoli.Inciso != null ? ExpPoli.Inciso.Descripcion : null });
FrExpPoli.Columnas.Add(new ColumnaResultado() { Valor = ExpPoli.Excepciones != null ? ExpPoli.Excepciones.Descripcion : null });
FrExpPoli.Columnas.Add(new ColumnaResultado() { Valor = ExpPoli.ExcepcionesClasificacion != null ? ExpPoli.ExcepcionesClasificacion.Descripcion : null });
FrExpPoli.Columnas.Add(new ColumnaResultado() { Valor = ExpPoli.Justificacion });
FrExpPoli.Columnas.Add(new ColumnaResultado() { Valor = ExpPoli.ExcepcionesClasificacionSubsistencia != null ? ExpPoli.ExcepcionesClasificacionSubsistencia.Descripcion : null });
FrExpPoli.Columnas.Add(new ColumnaResultado() { Valor = ExpPoli.Plazo != null ? ExpPoli.Plazo.ToString() : null }); //ExpPoli.FechaNormalizacion.HasValue ? ExpPoli.FechaNormalizacion.Value.ToString("dd/MM/yyyy") : "" });
TablaExcepcionesPoliticas.FilasResultado.Add(FrExpPoli);
}
}
#endregion
doc.TablasAdicionales.Add(TablaExcepcionesPoliticas);
#endregion
#region Sección Tabla de CondicionesEspeciales
Tabla TablaCondicionesEspeciales = new Tabla();
TablaCondicionesEspeciales.FilasResultado = new List<FilaResultado>();
TablaCondicionesEspeciales.Puntero = "TablaCondicionesEspeciales";
FilaResultado FrConEspTitle = new FilaResultado();
#region Sección Tabla de CondicionesEspeciales - Actuales
if (modelo.CaratulaCredito.CaratulaCreditoCondicionesEspeciales.Where(x => x.EsPropuesta != true).Any() == true)
{
//FrConEspTitle = new FilaResultado();
//FrConEspTitle.Columnas = new List<ColumnaResultado>();
//FrConEspTitle.Columnas.Add(new ColumnaResultado() { Valor = "Actual:" });
//TablaCondicionesEspeciales.FilasResultado.Add(FrConEspTitle);
foreach (CaratulaCreditoCondicionesEspeciales ConEsp in modelo.CaratulaCredito.CaratulaCreditoCondicionesEspeciales.Where(x => x.EsPropuesta != true))
{
FilaResultado FrConEsp = new FilaResultado();
FrConEsp.Columnas = new List<ColumnaResultado>();
FrConEsp.Columnas.Add(new ColumnaResultado() { Valor = "Actual" });
FrConEsp.Columnas.Add(new ColumnaResultado() { Valor = ConEsp.CondicionEspecial });
FrConEsp.Columnas.Add(new ColumnaResultado() { Valor = ConEsp.FechaCumplimiento.HasValue ? ConEsp.FechaCumplimiento.Value.ToString("dd/MM/yyyy") : "" });
FrConEsp.Columnas.Add(new ColumnaResultado() { Valor = ConEsp.ResponsableCumplimiento });
TablaCondicionesEspeciales.FilasResultado.Add(FrConEsp);
}
}
#endregion
#region Sección Tabla de CondicionesEspeciales - Propuesta
if (modelo.CaratulaCredito.CaratulaCreditoCondicionesEspeciales.Where(x => x.EsPropuesta == true).Any() == true)
{
foreach (CaratulaCreditoCondicionesEspeciales ConEsp in modelo.CaratulaCredito.CaratulaCreditoCondicionesEspeciales.Where(x => x.EsPropuesta == true))
{
FilaResultado FrConEsp = new FilaResultado();
FrConEsp.Columnas = new List<ColumnaResultado>();
FrConEsp.Columnas.Add(new ColumnaResultado() { Valor = "Propuesto" });//TipoTramite.IdTipoTramite == EnumTipoTramite.CambioCondiciones ? "Propuesto" : null
FrConEsp.Columnas.Add(new ColumnaResultado() { Valor = ConEsp.CondicionEspecial });
FrConEsp.Columnas.Add(new ColumnaResultado() { Valor = ConEsp.FechaCumplimiento.HasValue ? ConEsp.FechaCumplimiento.Value.ToString("dd/MM/yyyy") : "" });
FrConEsp.Columnas.Add(new ColumnaResultado() { Valor = ConEsp.ResponsableCumplimiento });
TablaCondicionesEspeciales.FilasResultado.Add(FrConEsp);
}
}
#endregion
doc.TablasAdicionales.Add(TablaCondicionesEspeciales);
#endregion
#region Sección Tabla de firmas de aprobacione del comite
doc.CamposAdicionales.Add(new Campo() { Nombre = "Recomendaciones", Valor = modelo.CaratulaCredito.Recomendacion });
doc.CamposAdicionales.Add(new Campo() { Nombre = "AprobadoPor", Valor = modelo.CaratulaCredito.ComiteCredito != null ? modelo.CaratulaCredito.ComiteCredito.NombreComite : "" });
FirmasCaratula = ConnCaratulaDal.ObtenerAprobacionesActuales(modelo.IdSolicitud);
if (FirmasCaratula != null && ((Step != EnumEtapas.AP_Enviar_AProbacion && Step != EnumEtapas.AP_Corre_Caratula_Adjuntar_Doc) || (IncidentStatus == 3)))
{
Tabla TablaFirmaAprobaciones = new Tabla();
TablaFirmaAprobaciones.FilasResultado = new List<FilaResultado>();
TablaFirmaAprobaciones.Puntero = "FirmaAprobaciones";
TablaFirmaAprobaciones.NombreEstiloPersonalizadoFilas = "TablaFirmas";
Indice = 0;
ColumnaResultado ColumnaRayas = new ColumnaResultado { Valor = "_________________________________________" };
FilaResultado FilaRayas = new FilaResultado();
FilaRayas.Columnas = new List<ColumnaResultado>();
FilaResultado FilaNombre = new FilaResultado();
FilaNombre.Columnas = new List<ColumnaResultado>();
FilaResultado FilaFuncion = new FilaResultado();
FilaFuncion.Columnas = new List<ColumnaResultado>();
FilaResultado FilaEmpty = new FilaResultado();
FilaEmpty.Columnas = new List<ColumnaResultado>();
FilaResultado FilaEmpty2 = new FilaResultado();
FilaEmpty2.Columnas = new List<ColumnaResultado>();
foreach (AprobacionesComite FirmaComite in FirmasCaratula.Where(e => e.IdDecision == EnumDecision.Aprobacion_Voto_Positivo && e.EsVoto == true))
{
if ((Indice % 4) == 0 && Indice != 0)
{
TablaFirmaAprobaciones.FilasResultado.Add(FilaEmpty);
TablaFirmaAprobaciones.FilasResultado.Add(FilaEmpty2);
TablaFirmaAprobaciones.FilasResultado.Add(FilaRayas);
TablaFirmaAprobaciones.FilasResultado.Add(FilaNombre);
TablaFirmaAprobaciones.FilasResultado.Add(FilaFuncion);
FilaRayas = new FilaResultado();
FilaRayas.Columnas = new List<ColumnaResultado>();
FilaNombre = new FilaResultado();
FilaNombre.Columnas = new List<ColumnaResultado>();
FilaFuncion = new FilaResultado();
FilaFuncion.Columnas = new List<ColumnaResultado>();
FilaEmpty = new FilaResultado();
FilaEmpty.Columnas = new List<ColumnaResultado>();
FilaEmpty2 = new FilaResultado();
FilaEmpty2.Columnas = new List<ColumnaResultado>();
}
FilaEmpty.Columnas.Add(new ColumnaResultado { Valor = string.Empty });
FilaEmpty2.Columnas.Add(new ColumnaResultado { Valor = string.Empty });
FilaRayas.Columnas.Add(ColumnaRayas);
FilaNombre.Columnas.Add(new ColumnaResultado { Valor = FirmaComite.NombreCompleto });
string Instancia = string.Empty;
switch (FirmaComite.NombreIntancia)
{
case "Gerencia General": Instancia = "Gerente General a.i.";
break;
case "Presidencia de la Junta Directiva": Instancia = "Presidente de la Junta Directiva";
break;
case "Sub Gerencia de Operaciones": Instancia = "Sub Gerente de Operaciones";
break;
case "Gerencia de Análisis/Oficial de Procesos de Análisis": Instancia = "Gerente de Análisis/Oficial de Procesos de Análisis";
break;
case " Presidencia": Instancia = "Presidente";
break;
case "Sub Gerencia": Instancia = "Sub Gerente";
break;
default: Instancia = FirmaComite.NombreIntancia;
break;
}
FilaFuncion.Columnas.Add(new ColumnaResultado { Valor = Instancia });
++Indice;
}
if (FilaRayas.Columnas.Count > 0 && FilaRayas.Columnas.Count < 4)
{
for (int p = FilaRayas.Columnas.Count; p < 4; ++p)
{
FilaEmpty.Columnas.Add(new ColumnaResultado { Valor = string.Empty });
FilaEmpty2.Columnas.Add(new ColumnaResultado { Valor = string.Empty });
FilaRayas.Columnas.Add(new ColumnaResultado { Valor = string.Empty });
FilaNombre.Columnas.Add(new ColumnaResultado { Valor = string.Empty });
FilaFuncion.Columnas.Add(new ColumnaResultado { Valor = string.Empty });
}
}
TablaFirmaAprobaciones.FilasResultado.Add(FilaEmpty);
TablaFirmaAprobaciones.FilasResultado.Add(FilaEmpty2);
TablaFirmaAprobaciones.FilasResultado.Add(FilaRayas);
TablaFirmaAprobaciones.FilasResultado.Add(FilaNombre);
TablaFirmaAprobaciones.FilasResultado.Add(FilaFuncion);
doc.TablasAdicionales.Add(TablaFirmaAprobaciones);
}
StringBuilder revisado = new StringBuilder();
if ((Step != EnumEtapas.AP_Enviar_AProbacion && Step != EnumEtapas.AP_Corre_Caratula_Adjuntar_Doc) || ((Step == EnumEtapas.AP_Enviar_AProbacion && IncidentStatus == 3) || (Step == EnumEtapas.AP_Corre_Caratula_Adjuntar_Doc && IncidentStatus==3)))
foreach (AprobacionesComite vistobueno in FirmasCaratula.Where(e => e.EsVoto == false))
{
if (vistobueno.IdDecision != null && vistobueno.IdDecision != EnumDecision.Corregir_Caratula_Analista_Credito &&
vistobueno.IdDecision != EnumDecision.Corregir_Caratula_Area_Negocio &&
vistobueno.IdDecision != EnumDecision.Corregir_Caratula_Gerencia_Analisis_Oficial_Procesos_Analisis &&
vistobueno.IdDecision != EnumDecision.Aprobacion_Cliente_Acepta_Condiciones)
{
revisado.AppendFormat(vistobueno.NombreCompleto);
revisado.AppendFormat(" / ");
doc.CamposAdicionales.Add(new Campo() { Nombre = "RevisadoPor", Valor = revisado.ToString() });
}
}
#endregion
if (UltimusClient.GetUserInformation(modelo.UsuarioCreador, out userCartula, out Error))
doc.CamposAdicionales.Add(new Campo() { Nombre = "HechoPor", Valor = userCartula.strUserFullName });
else
doc.CamposAdicionales.Add(new Campo() { Nombre = "HechoPor", Valor = null });
doc.CamposAdicionales.Add(new Campo() { Nombre = "Ejecutivo", Valor = NombreEjecutivo });
doc.Fuente = null;
doc.Filtro = null;
doc.Firmas = null;
doc.Imagenes = null;
doc.Tablas = null;
obj.Plantillas = new List<DocumentoDB>() { doc };
using (WCFDocumentosClient ws = new WCFDocumentosClient())
respuesta = ws.GenerarDocumento(obj);
}
}
catch (Exception ex)
{
logs.Error(ex);
}
finally
{
ConnCaratula = null;
obj = null;
doc = null;
modelo = null;
ConnCaratulaDal = null;
FirmasCaratula = null;
UltimusIntgration = null;
UltimusClient = null;
}
return respuesta;
}
/// <summary>
///
/// </summary>
/// <param name="Facilidad"></param>
/// <param name="Indice"></param>
/// <returns></returns>
private FilaResultado AgregarFilaFacilidadDetalle(OfertaFacilidades Facilidad, int Indice)
{
FilaResultado FrFacilidadDetalle = new FilaResultado();
FrFacilidadDetalle.Columnas = new List<ColumnaResultado>();
string SubLimite = string.Empty;
string Plazo = string.Empty;
string Recursos = string.Empty;
string FormaPago = string.Empty;
string Tasa = string.Empty;
string ComisionesActual = string.Empty;
string ComisionesPropuesta = string.Empty;
string GarantiaActual = string.Empty;
string GarantiaPropuesta = string.Empty;
#region SubLimite
SubLimite = (Facilidad.MontoActual == null || Facilidad.MontoActual == 0) ? "" : string.Format("Actual:{0}{1} {2} {3:n2}{0}{0}", SaltoLinea, Facilidad.Moneda.Nemonico, Facilidad.Moneda.Simbolo, Facilidad.MontoActual);
SubLimite += (Facilidad.MontoPropuesto == null) ? "" : string.Format("Propuesto:{0}{1} {2} {3:n2}{0}{0}", SaltoLinea, Facilidad.Moneda.Nemonico, Facilidad.Moneda.Simbolo, Facilidad.MontoPropuesto);
SubLimite = (SubLimite.Trim() == "" ? "No Aplica" : SubLimite);
#endregion
#region Plazo
Plazo = string.IsNullOrWhiteSpace(Facilidad.PlazoMaximoActual) || Facilidad.PlazoMaximoActual == "0" ? "" : string.Format("Actual:{0}{1}{0}{0}", SaltoLinea, Facilidad.PlazoMaximoActual);
Plazo += string.IsNullOrWhiteSpace(Facilidad.PlazoMaximoPropuesto) ? "" : string.Format("Propuesto:{0}{1}{0}", SaltoLinea, Facilidad.PlazoMaximoPropuesto);
Plazo = (Plazo.Trim() == "" ? "No Aplica" : Plazo);
#endregion
#region Recursos
Recursos = string.IsNullOrWhiteSpace(Facilidad.Recursos) ? "" : string.Format("{0}Recursos:{0}{1}{0}", SaltoLinea, Facilidad.Recursos);
#endregion
#region FormaPago
FormaPago = string.IsNullOrWhiteSpace(Facilidad.FormaPagoActual) ? "" : string.Format("Actual:{0}{1}{0}{0}", SaltoLinea, Facilidad.FormaPagoActual);
FormaPago += Facilidad.FormasPagos == null ? "" : string.Format("Propuesto:{0}{1}{0}", SaltoLinea, Facilidad.FormasPagos.Descripcion);
FormaPago = (FormaPago.Trim() == "" ? "No Aplica" : FormaPago);
#endregion
#region Tasa
#region Actual
if ((Facilidad.TasaActualMonedaLocal != null && Facilidad.TasaActualMonedaLocal != 0) || (Facilidad.TasaActualDolares != null && Facilidad.TasaActualDolares != 0))
{
Tasa = string.Format("Actual:{0}{0}", SaltoLinea);
Tasa += (Facilidad.TasaActualMonedaLocal == null || Facilidad.TasaActualMonedaLocal == 0) ? string.Format("{0}Colones: No Aplica{0}", SaltoLinea) : string.Format("Colones:{0}{0}TBP + {1:n2}% = {2:n2}%", SaltoLinea, (Facilidad.TasaActualMonedaLocal ?? 0), ((Facilidad.TBPActualMonedaLocal ?? 0) + (Facilidad.TasaActualMonedaLocal ?? 0)));
Tasa += (Facilidad.TasaActualDolares == null || Facilidad.TasaActualDolares == 0) ? string.Format("{0}Dólares: No Aplica{0}", SaltoLinea) : string.Format("{0}{0}Dólares:{0}{0}PR + {1:n2}% = {2:n2}%", SaltoLinea, (Facilidad.TasaActualDolares ?? 0), ((Facilidad.PRActualDolares ?? 0) + (Facilidad.TasaActualDolares ?? 0)));
Tasa += string.Format("{0}{0}", SaltoLinea);
}
#endregion
#region Propuesto
Tasa += "Propuesto:";
Tasa += (Facilidad.TasaPropuestaMonedaLocal == null || Facilidad.TasaPropuestaMonedaLocal == 0) ? string.Format("{0}Colones: No Aplica{0}", SaltoLinea) : string.Format("{0}{0}Colones:{0}{0}TBP + {1:n2}% = {2:n2}%", SaltoLinea, Facilidad.TasaPropuestaMonedaLocal, (Facilidad.TBPPropuestaMonedaLocal ?? 0) + (Facilidad.TasaPropuestaMonedaLocal ?? 0));
Tasa += (Facilidad.TasaPropuestaDolares == null || Facilidad.TasaPropuestaDolares == 0) ? string.Format("{0}Dólares: No Aplica{0}", SaltoLinea) : string.Format("{0}{0}Dólares:{0}{0}PR + {1:n2}% = {2:n2}%{0}", SaltoLinea, Facilidad.TasaPropuestaDolares, (Facilidad.TRPropuestaDolares ?? 0) + (Facilidad.TasaPropuestaDolares ?? 0));
Tasa = Tasa.Trim() == "" ? "No Aplica" : Tasa;
Tasa += string.Format("{0}{0}", SaltoLinea);
#endregion
#region OtrasTasas
if (!string.IsNullOrEmpty(Facilidad.OtrasTasas))
{
Tasa += "Otras Tasas:" + SaltoLinea;
Tasa += Facilidad.OtrasTasas + SaltoLinea;
}
#endregion
#endregion
#region Comision
foreach (OfertaFacilidadesComisiones Comision in Facilidad.OfertaFacilidadesComisiones)
{
if (Comision.EsPropuesta.Value)
ComisionesPropuesta = string.IsNullOrWhiteSpace(ComisionesPropuesta) ? string.Format("Propuesto:{2}{0}{1}{2}", ComisionesPropuesta, Comision.DetalleComision, SaltoLinea) : string.Format("{0}{1}{2}", ComisionesPropuesta, Comision.DetalleComision, SaltoLinea);
else
ComisionesActual = string.IsNullOrWhiteSpace(ComisionesActual) ? string.Format("Actual:{2}{0}{1}{2}", ComisionesActual, Comision.DetalleComision, SaltoLinea) : string.Format("{0}{1}{2}", ComisionesActual, Comision.DetalleComision, SaltoLinea);
}
#endregion
#region Garantia
foreach (OfertaFacilidadesGarantias garantia in Facilidad.OfertaFacilidadesGarantias)
{
if (garantia.EsPropuesta.Value)
GarantiaPropuesta = string.IsNullOrWhiteSpace(GarantiaPropuesta) ? string.Format("Propuesto:{2}{0}{1}{2}", GarantiaPropuesta, garantia.DetalleGarantia, SaltoLinea) : string.Format("{0}{1}{2}", GarantiaPropuesta, garantia.DetalleGarantia, SaltoLinea);
else
GarantiaActual = string.IsNullOrWhiteSpace(GarantiaActual) ? string.Format("Actual:{2}{0}{1}{2}", GarantiaActual, garantia.DetalleGarantia, SaltoLinea) : string.Format("{0}{1}{2}", GarantiaActual, garantia.DetalleGarantia, SaltoLinea);
}
#endregion
FrFacilidadDetalle.Columnas.Add(new ColumnaResultado() { Valor = string.Format("{0}", Indice) });
FrFacilidadDetalle.Columnas.Add(new ColumnaResultado() { Valor = string.Format("{0}-{1}", Facilidad.CodigoNaturalezaGasto, Facilidad.DescNaturalezaGasto) });
FrFacilidadDetalle.Columnas.Add(new ColumnaResultado() { Valor = Facilidad.TipoFacilidad.Descripcion });
FrFacilidadDetalle.Columnas.Add(new ColumnaResultado() { Valor = Facilidad.Detalle });
FrFacilidadDetalle.Columnas.Add(new ColumnaResultado() { Valor = SubLimite });
FrFacilidadDetalle.Columnas.Add(new ColumnaResultado() { Valor = string.Format("{0}{1}", Plazo, Recursos) });
FrFacilidadDetalle.Columnas.Add(new ColumnaResultado() { Valor = FormaPago });
FrFacilidadDetalle.Columnas.Add(new ColumnaResultado() { Valor = Tasa });
FrFacilidadDetalle.Columnas.Add(new ColumnaResultado() { Valor = string.Format("{0}{1}", ComisionesActual, ComisionesPropuesta).Trim() == "" ? "No Aplica" : string.Format("{0}{1}", ComisionesActual, ComisionesPropuesta) });
FrFacilidadDetalle.Columnas.Add(new ColumnaResultado() { Valor = string.Format("{0}{1}", GarantiaActual, GarantiaPropuesta).Trim() == "" ? "No Aplica" : string.Format("{0}{1}", GarantiaActual, GarantiaPropuesta) });
return FrFacilidadDetalle;
}
/// <summary>
///
/// </summary>
/// <param name="Facilidad"></param>
/// <param name="Indice"></param>
/// <returns></returns>
private FilaResultado AgregarFilaFacilidadDetalle(OfertaOperaciones Facilidad, int Indice)
{
FilaResultado FrFacilidadDetalle = new FilaResultado();
FrFacilidadDetalle.Columnas = new List<ColumnaResultado>();
string SubLimite = string.Empty;
string Plazo = string.Empty;
string Recursos = string.Empty;
string FormaPago = string.Empty;
string Tasa = string.Empty;
string ComisionesActual = string.Empty;
string ComisionesPropuesta = string.Empty;
string GarantiaActual = string.Empty;
string GarantiaPropuesta = string.Empty;
#region SubLimite
SubLimite = (Facilidad.MontoActual == null || Facilidad.MontoActual == 0) ? "" : string.Format("Actual:{0}{1} {2} {3:n2}{0}{0}", SaltoLinea, Facilidad.Moneda.Nemonico, Facilidad.Moneda.Simbolo, Facilidad.MontoActual);
SubLimite += (Facilidad.MontoPropuesto == null || Facilidad.MontoPropuesto == 0) ? "" : string.Format("Propuesto:{0}{1} {2} {3:n2}{0}", SaltoLinea, Facilidad.Moneda.Nemonico, Facilidad.Moneda.Simbolo, Facilidad.MontoPropuesto);
SubLimite = (SubLimite.Trim() == "" ? "No Aplica" : SubLimite);
#endregion
#region Plazo
Plazo = string.IsNullOrWhiteSpace(Facilidad.PlazoMaximoActual) || Facilidad.PlazoMaximoActual == "0" ? "" : string.Format("Actual:{0}{1}{0}{0}", SaltoLinea, Facilidad.PlazoMaximoActual);
Plazo += string.IsNullOrWhiteSpace(Facilidad.PlazoMaximoPropuesto) ? "" : string.Format("Propuesto:{0}{1}{0}", SaltoLinea, Facilidad.PlazoMaximoPropuesto);
Plazo = (Plazo.Trim() == "" ? "No Aplica" : Plazo);
#endregion
#region Recursos
Recursos = string.IsNullOrWhiteSpace(Facilidad.Recursos) ? "" : string.Format("{0}Recursos:{0}{1}{0}", SaltoLinea, Facilidad.Recursos);
#endregion
#region FormaPago
FormaPago = string.IsNullOrWhiteSpace(Facilidad.FormaPagoActual) ? "" : string.Format("Actual:{0}{1}{0}{0}", SaltoLinea, Facilidad.FormaPagoActual);
FormaPago += Facilidad.FormasPagos == null ? "" : string.Format("Propuesto:{0}{1}{0}", SaltoLinea, Facilidad.FormasPagos.Descripcion);
FormaPago = (FormaPago.Trim() == "" ? "No Aplica" : FormaPago);
#endregion
#region Tasa
#region Actual
if ((Facilidad.TasaActualMonedaLocal != null && Facilidad.TasaActualMonedaLocal != 0) || (Facilidad.TasaActualDolares != null && Facilidad.TasaActualDolares != 0))
{
Tasa = string.Format("Actual:{0}{0}", SaltoLinea);
Tasa += (Facilidad.TasaActualMonedaLocal == null || Facilidad.TasaActualMonedaLocal == 0) ? string.Format("{0}Colones: No Aplica{0}", SaltoLinea) : string.Format("Colones:{0}{0}TBP + {1:n2}% = {2:n2}%", SaltoLinea, (Facilidad.TasaActualMonedaLocal ?? 0), ((Facilidad.TBPActualMonedaLocal ?? 0) + (Facilidad.TasaActualMonedaLocal ?? 0)));
Tasa += (Facilidad.TasaActualDolares == null || Facilidad.TasaActualDolares == 0) ? string.Format("{0}Dólares: No Aplica{0}", SaltoLinea) : string.Format("{0}{0}Dólares:{0}{0}PR + {1:n2}% = {2:n2}%", SaltoLinea, (Facilidad.TasaActualDolares ?? 0), ((Facilidad.PRActualDolares ?? 0) + (Facilidad.TasaActualDolares ?? 0)));
}
#endregion
#region Propuesta
Tasa += string.Format("{0}{0}Propuesto:", SaltoLinea);
Tasa += (Facilidad.TasaPropuestaMonedaLocal == null || Facilidad.TasaPropuestaMonedaLocal == 0) ? string.Format("{0}Colones: No Aplica{0}", SaltoLinea) : string.Format("{0}{0}Colones:{0}{0}TBP + {1:n2}% = {2:n2}%", SaltoLinea, Facilidad.TasaPropuestaMonedaLocal, (Facilidad.TBPPropuestaMonedaLocal ?? 0) + (Facilidad.TasaPropuestaMonedaLocal ?? 0));
Tasa += (Facilidad.TasaPropuestaDolares == null || Facilidad.TasaPropuestaDolares == 0) ? string.Format("{0}Dólares: No Aplica{0}", SaltoLinea) : string.Format("{0}{0}Dólares:{0}{0}PR + {1:n2}% = {2:n2}%{0}", SaltoLinea, Facilidad.TasaPropuestaDolares, (Facilidad.TRPropuestaDolares ?? 0) + (Facilidad.TasaPropuestaDolares ?? 0));
Tasa = Tasa.Trim() == "" ? "No Aplica" : Tasa;
#endregion
#region OtrasTasas
if (!string.IsNullOrEmpty(Facilidad.OtrasTasas))
{
Tasa += "Otras Tasas:" + SaltoLinea;
Tasa += Facilidad.OtrasTasas + SaltoLinea;
}
#endregion
#endregion
#region Comision
foreach (OfertaOperacionesComisiones Comision in Facilidad.OfertaOperacionesComisiones)
{
if (Comision.EsPropuesta.Value)
ComisionesPropuesta = string.IsNullOrWhiteSpace(ComisionesPropuesta) ? string.Format("Propuesto:{2}{0}{1}{2}", ComisionesPropuesta, Comision.DetalleComision, SaltoLinea) : string.Format("{0}{1}{2}", ComisionesPropuesta, Comision.DetalleComision, SaltoLinea);
else
ComisionesActual = string.IsNullOrWhiteSpace(ComisionesActual) ? string.Format("Actual:{2}{0}{1}{2}", ComisionesActual, Comision.DetalleComision, SaltoLinea) : string.Format("{0}{1}{2}", ComisionesActual, Comision.DetalleComision, SaltoLinea);
}
#endregion
#region Garantia
foreach (OfertaOperacionesGarantias garantia in Facilidad.OfertaOperacionesGarantias)
{
if (garantia.EsPropuesta.Value)
GarantiaPropuesta = string.IsNullOrWhiteSpace(GarantiaPropuesta) ? string.Format("Propuesto:{2}{0}{1}{2}", GarantiaPropuesta, garantia.DetalleGarantia, SaltoLinea) : string.Format("{0}{1}{2}", GarantiaPropuesta, garantia.DetalleGarantia, SaltoLinea);
else
GarantiaActual = string.IsNullOrWhiteSpace(GarantiaActual) ? string.Format("Actual:{2}{0}{1}{2}", GarantiaActual, garantia.DetalleGarantia, SaltoLinea) : string.Format("{0}{1}{2}", GarantiaActual, garantia.DetalleGarantia, SaltoLinea);
}
#endregion
FrFacilidadDetalle.Columnas.Add(new ColumnaResultado() { Valor = string.Format("{0}", Indice) });
FrFacilidadDetalle.Columnas.Add(new ColumnaResultado() { Valor = string.Format("{0}-{1}", Facilidad.CodigoNaturalezaGasto, Facilidad.DescNaturalezaGasto) });
FrFacilidadDetalle.Columnas.Add(new ColumnaResultado() { Valor = Facilidad.Operacion });
FrFacilidadDetalle.Columnas.Add(new ColumnaResultado() { Valor = Facilidad.Detalle });
FrFacilidadDetalle.Columnas.Add(new ColumnaResultado() { Valor = SubLimite }); ///string.Format("{0} {1} {2:n2}", Facilidad.Moneda.Nemonico, Facilidad.Moneda.Simbolo, Facilidad.MontoPropuesto) });
FrFacilidadDetalle.Columnas.Add(new ColumnaResultado() { Valor = string.Format("{0}{1}", Plazo, Recursos) });
FrFacilidadDetalle.Columnas.Add(new ColumnaResultado() { Valor = FormaPago });
FrFacilidadDetalle.Columnas.Add(new ColumnaResultado() { Valor = Tasa });
FrFacilidadDetalle.Columnas.Add(new ColumnaResultado() { Valor = (string.Format("{0}{1}", ComisionesActual, ComisionesPropuesta).Trim() == "") ? "No Aplica" : string.Format("{0}{1}", ComisionesActual, ComisionesPropuesta) });
FrFacilidadDetalle.Columnas.Add(new ColumnaResultado() { Valor = (string.Format("{0}{1}", GarantiaActual, GarantiaPropuesta).Trim() == "") ? "No Aplica" : string.Format("{0}{1}", GarantiaActual, GarantiaPropuesta).Trim() });
return FrFacilidadDetalle;
}
private FilaResultado AgregarFilaFacilidadResumen(OfertaFacilidades Facilidad, int Indice, int IdTipoTramite)
{
FilaResultado FrFacilidadResumen = new FilaResultado();
FrFacilidadResumen.Columnas = new List<ColumnaResultado>();
string Plazo = string.Empty;
string Recursos = string.Empty;
string SubLimite = string.Empty;
string FechaVencimiento = string.Empty;
try
{
if (IdTipoTramite == EnumTipoTramite.CambioCondiciones)
{
#region SubLimite
SubLimite = (Facilidad.MontoActual == null || Facilidad.MontoActual == 0) ? "" : string.Format("Actual:{0}{1} {2} {3:n2}{0}{0}", SaltoLinea, Facilidad.Moneda.Nemonico, Facilidad.Moneda.Simbolo, Facilidad.MontoActual);
SubLimite += (Facilidad.MontoPropuesto == null || Facilidad.MontoPropuesto == 0) ? "" : string.Format("Propuesto:{0}{1} {2} {3:n2}{0}", SaltoLinea, Facilidad.Moneda.Nemonico, Facilidad.Moneda.Simbolo, Facilidad.MontoPropuesto);
SubLimite = (SubLimite.Trim() == "" ? "No Aplica" : SubLimite);
#endregion
#region Plazo
Plazo = string.IsNullOrWhiteSpace(Facilidad.PlazoMaximoActual) || Facilidad.PlazoMaximoActual == "0" ? "" : string.Format("Actual:{0}{1}{0}{0}", SaltoLinea, Facilidad.PlazoMaximoActual);
Plazo += string.IsNullOrWhiteSpace(Facilidad.PlazoMaximoPropuesto) ? "" : string.Format("Propuesto:{0}{1}{0}", SaltoLinea, Facilidad.PlazoMaximoPropuesto);
Plazo = (Plazo.Trim() == "" ? "No Aplica" : Plazo);
#endregion
#region Recursos
Recursos = string.IsNullOrWhiteSpace(Facilidad.Recursos) ? "" : string.Format("{0}Recursos:{0}{1}{0}", SaltoLinea, Facilidad.Recursos);
#endregion
#region FechaVencimiento
FechaVencimiento = (Facilidad.FechaVencimientoActual == null) ? "" : string.Format("Actual:{0}{1}{0}{0}", SaltoLinea, string.Format("{0:dd-MMM-yyyy}", Facilidad.FechaVencimientoActual));
FechaVencimiento += (Facilidad.FechaVencimiento == null) ? "" : string.Format("Propuesto:{0}{1}{0}", SaltoLinea, string.Format("{0:dd-MMM-yyyy}", Facilidad.FechaVencimiento));
FechaVencimiento = (FechaVencimiento.Trim() == "" ? "No Aplica" : FechaVencimiento);
#endregion
}
else
{
#region SubLimite
SubLimite = string.Format("{0:n2}", Facilidad.MontoPropuesto);
#endregion
#region Plazo
Plazo = Facilidad.PlazoMaximoPropuesto;
#endregion
#region Recursos
Recursos = string.IsNullOrWhiteSpace(Facilidad.Recursos) ? "" : string.Format("{0}Recursos:{0}{1}{0}", SaltoLinea, Facilidad.Recursos);
#endregion
#region FechaVencimiento
FechaVencimiento = string.Format("{0:dd-MMM-yyyy}", Facilidad.FechaVencimiento);
#endregion
}
FrFacilidadResumen.Columnas.Add(new ColumnaResultado() { Valor = null });
FrFacilidadResumen.Columnas.Add(new ColumnaResultado() { Valor = string.Format("{0}", Indice) });
FrFacilidadResumen.Columnas.Add(new ColumnaResultado() { Valor = Facilidad.TipoFacilidad.Descripcion });
FrFacilidadResumen.Columnas.Add(new ColumnaResultado() { Valor = Facilidad.Detalle });
FrFacilidadResumen.Columnas.Add(new ColumnaResultado() { Valor = string.Format("{0} {1}", Facilidad.Moneda.Nemonico, Facilidad.Moneda.Simbolo) });
FrFacilidadResumen.Columnas.Add(new ColumnaResultado() { Valor = SubLimite });
FrFacilidadResumen.Columnas.Add(new ColumnaResultado() { Valor = string.Format("o su equivalente en {0}", Facilidad.Moneda.IdMoneda == 0 ? "dólares" : "colones") });
FrFacilidadResumen.Columnas.Add(new ColumnaResultado() { Valor = Plazo });
FrFacilidadResumen.Columnas.Add(new ColumnaResultado() { Valor = FechaVencimiento });
}
catch (Exception ex)
{
logs.Error(ex);
}
return FrFacilidadResumen;
}
private FilaResultado AgregarFilaFacilidadResumen(OfertaOperaciones Facilidad, int Indice, int IdTipoTramite)
{
FilaResultado FrFacilidadResumen = new FilaResultado();
FrFacilidadResumen.Columnas = new List<ColumnaResultado>();
string Plazo = string.Empty;
string Recursos = string.Empty;
string SubLimite = string.Empty;
string FechaVencimiento = string.Empty;
try
{
if (IdTipoTramite == EnumTipoTramite.CambioCondiciones)
{
#region SubLimite
SubLimite = (Facilidad.MontoActual == null || Facilidad.MontoActual == 0) ? "" : string.Format("Actual:{0}{1} {2} {3:n2}{0}{0}", SaltoLinea, Facilidad.Moneda.Nemonico, Facilidad.Moneda.Simbolo, Facilidad.MontoActual);
SubLimite += (Facilidad.MontoPropuesto == null || Facilidad.MontoPropuesto == 0) ? "" : string.Format("Propuesto:{0}{1} {2} {3:n2}{0}", SaltoLinea, Facilidad.Moneda.Nemonico, Facilidad.Moneda.Simbolo, Facilidad.MontoPropuesto);
SubLimite = (SubLimite.Trim() == "" ? "No Aplica" : SubLimite);
#endregion
#region Plazo
Plazo = string.IsNullOrWhiteSpace(Facilidad.PlazoMaximoActual) || Facilidad.PlazoMaximoActual == "0" ? "" : string.Format("Actual:{0}{1}{0}{0}", SaltoLinea, Facilidad.PlazoMaximoActual);
Plazo += string.IsNullOrWhiteSpace(Facilidad.PlazoMaximoPropuesto) ? "" : string.Format("Propuesto:{0}{1}{0}", SaltoLinea, Facilidad.PlazoMaximoPropuesto);
Plazo = (Plazo.Trim() == "" ? "No Aplica" : Plazo);
#endregion
#region Recursos
Recursos = string.IsNullOrWhiteSpace(Facilidad.Recursos) ? "" : string.Format("{0}Recursos:{0}{1}{0}", SaltoLinea, Facilidad.Recursos);
#endregion
#region FechaVencimiento
FechaVencimiento = (Facilidad.FechaVencimientoActual == null) ? "" : string.Format("Actual:{0}{1}{0}{0}", SaltoLinea, string.Format("{0:dd-MMM-yyyy}", Facilidad.FechaVencimientoActual));
//FechaVencimiento = "";
FechaVencimiento += (Facilidad.FechaVencimiento == null) ? "" : string.Format("Propuesto:{0}{1}{0}", SaltoLinea, string.Format("{0:dd-MMM-yyyy}", Facilidad.FechaVencimiento));
FechaVencimiento = (FechaVencimiento.Trim() == "" ? "No Aplica" : FechaVencimiento);
#endregion
}
else
{
#region SubLimite
SubLimite = string.Format("{0:n2}", Facilidad.MontoPropuesto);
#endregion
#region Plazo
Plazo = Facilidad.PlazoMaximoPropuesto;
#endregion
#region Recursos
Recursos = string.IsNullOrWhiteSpace(Facilidad.Recursos) ? "" : string.Format("{0}Recursos:{0}{1}{0}", SaltoLinea, Facilidad.Recursos);
#endregion
#region FechaVencimiento
FechaVencimiento = string.Format("{0:dd-MMM-yyyy}", Facilidad.FechaVencimiento);
#endregion
}
FrFacilidadResumen.Columnas.Add(new ColumnaResultado() { Valor = null });
FrFacilidadResumen.Columnas.Add(new ColumnaResultado() { Valor = string.Format("{0}", Indice) });
FrFacilidadResumen.Columnas.Add(new ColumnaResultado() { Valor = Facilidad.Operacion });
FrFacilidadResumen.Columnas.Add(new ColumnaResultado() { Valor = Facilidad.Detalle });
FrFacilidadResumen.Columnas.Add(new ColumnaResultado() { Valor = string.Format("{0} {1}", Facilidad.Moneda.Nemonico, Facilidad.Moneda.Simbolo) });
FrFacilidadResumen.Columnas.Add(new ColumnaResultado() { Valor = SubLimite });
FrFacilidadResumen.Columnas.Add(new ColumnaResultado() { Valor = string.Format("o su equivalente en {0}", Facilidad.Moneda.IdMoneda == 0 ? "dólares" : "colones") });
FrFacilidadResumen.Columnas.Add(new ColumnaResultado() { Valor = Plazo });
FrFacilidadResumen.Columnas.Add(new ColumnaResultado() { Valor = FechaVencimiento });
}
catch (Exception ex)
{
logs.Error(ex);
}
return FrFacilidadResumen;
}
}
}