482 lines
No EOL
23 KiB
C#
482 lines
No EOL
23 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Web.Http;
|
|
using Ultimus.Utilitarios;
|
|
using ULA.Cathay.CreditoModel.Credito;
|
|
using ULA.Cathay.CreditoModel.DAL.Credito;
|
|
using ULA.Cathay.Credito.Json;
|
|
using Ultimus.Interfaces;
|
|
using ULA.Cathay.CreditoModel.Entidades;
|
|
using ULA.Cathay.Credito.ServicioSAP;
|
|
using System.Text;
|
|
|
|
namespace ULA.Cathay.Credito.ControllersWebApi.Desembolso
|
|
{
|
|
public class DesembolsoAPIController : ApiController
|
|
{
|
|
UltimusLogs logs = new UltimusLogs("DesembolsoAPIController");
|
|
|
|
public DesembolsoAPIController()
|
|
{
|
|
GlobalAPIController.SetRegionalConfig();
|
|
}
|
|
|
|
|
|
#region Guardar
|
|
[HttpPost]
|
|
public DesembolsoJSON Guardar(DesembolsoJSON model)
|
|
{
|
|
SolicitudDAL SolicitudDal = new SolicitudDAL();
|
|
DesembolsoDatosGeneralesDAL DesembolsoDatosGeneralesDal = new DesembolsoDatosGeneralesDAL();
|
|
ProcesosDAL ProcesosDal = new ProcesosDAL();
|
|
Procesos Desembolso;
|
|
DesembolsoDatosGenerales mDesembolsoDatosGenerales;
|
|
ICollection<Solicitante> Solicitantes;
|
|
SolicitanteDAL SolicitanteDal = new SolicitanteDAL();
|
|
ClienteDAL ClienteDal = new ClienteDAL();
|
|
Solicitante solicitante;
|
|
DesembolsoFacturasDAL DesembolsoFacturasDal = new DesembolsoFacturasDAL();
|
|
ICollection<DesembolsoFacturas> facturas;
|
|
ICollection<DesemboloDetalleOrdenCompra> DetalleOrdenCompra;
|
|
DesemboloDetalleOrdenCompraDAL DesemboloDetalleOrdenCompraDal = new DesemboloDetalleOrdenCompraDAL();
|
|
ICollection<DesembolsoDetalleAdelantosContraContrato> DetalleAdelantosContraContrato;
|
|
DesembolsoDetalleAdelantosContraContratoDAL DesembolsoDetalleAdelantosContraContratoDal = new DesembolsoDetalleAdelantosContraContratoDAL();
|
|
BitacoraDocumentosClienteDAL BitacoraDocumentosClienteDal = new BitacoraDocumentosClienteDAL();
|
|
bool EsCreacionSolicitud = false;
|
|
CaratulaCreditoDAL CaratulaCreditoDal = new CaratulaCreditoDAL();
|
|
CaratulaCredito caratula;
|
|
Oferta ofertaCaratula = new Oferta();
|
|
Solicitante SolicitanteDatosCredito = new Solicitante();
|
|
try
|
|
{
|
|
EsCreacionSolicitud = model.IdSolicitud == 0;
|
|
|
|
if (EsCreacionSolicitud)
|
|
{
|
|
caratula = CaratulaCreditoDal.Obtener(0, model.Solicitud.DesembolsoDatosGenerales.NroCaratulaSublimite);
|
|
|
|
if (caratula == null || caratula.IdSolicitud == 0)
|
|
{
|
|
model.CodigoRespuesta = TipoCodigoRespuesta.ADVERTENCIA.ToString();
|
|
model.DescripcionRespuesta = "No se encontro carátula en el BPM para este sublímite";
|
|
return model;
|
|
}
|
|
|
|
|
|
ofertaCaratula = new OfertaFacilidadesDAL().ObtenerOfertaFacilidades(new Oferta() { IdSolicitud = caratula.IdSolicitud });
|
|
if (ofertaCaratula == null || ofertaCaratula.IdSolicitud == 0 || ofertaCaratula.OfertaFacilidades == null || ofertaCaratula.OfertaFacilidades.Count == 0)
|
|
{
|
|
model.CodigoRespuesta = TipoCodigoRespuesta.ADVERTENCIA.ToString();
|
|
model.DescripcionRespuesta = "La carátula en el BPM no tiene una oferta con sublimites relacionados";
|
|
return model;
|
|
}
|
|
else
|
|
{
|
|
|
|
TipoFacilidad facilidadCodigoSubLimite = ofertaCaratula.OfertaFacilidades.Where(x => x.TipoFacilidad.CodigoSAP == model.Solicitud.DesembolsoDatosGenerales.CodigoSublimite && x.TipoFacilidad.IdTipoFacilidad == model.Solicitud.DesembolsoDatosGenerales.IdTipoFacilidad).Select(x => x.TipoFacilidad).FirstOrDefault();
|
|
|
|
if (facilidadCodigoSubLimite != null)
|
|
model.Solicitud.DesembolsoDatosGenerales.IdTipoFacilidad = facilidadCodigoSubLimite.IdTipoFacilidad;
|
|
|
|
|
|
if (!ofertaCaratula.OfertaFacilidades.Where(x => x.IdTipoFacilidad == model.Solicitud.DesembolsoDatosGenerales.IdTipoFacilidad).Any())
|
|
{
|
|
model.CodigoRespuesta = TipoCodigoRespuesta.ADVERTENCIA.ToString();
|
|
model.DescripcionRespuesta = "La carátula en el BPM no tiene dentro de su oferta una facilidad relacionada al sublimite seleccionado";
|
|
return model;
|
|
}
|
|
}
|
|
SolicitanteDatosCredito = new SolicitanteDAL().ObteneCliente(caratula.IdSolicitud);
|
|
model.Solicitud.DesembolsoDatosGenerales.IdSolicitudCredito = caratula.IdSolicitud;
|
|
}
|
|
|
|
Desembolso = ProcesosDal.Obtener(EnumProcesos.Desembolso);
|
|
model.Solicitud.IdEstadoBandeja = "E";
|
|
model.Solicitud.Proceso = Desembolso.NombreProceso.Trim();
|
|
mDesembolsoDatosGenerales = model.Solicitud.DesembolsoDatosGenerales;
|
|
Solicitantes = model.Solicitud.Solicitante;
|
|
|
|
model.Solicitud.ClearVirtualProperties();
|
|
|
|
model.Solicitud = SolicitudDal.Insertar(model.Solicitud);
|
|
|
|
solicitante = Solicitantes != null ? Solicitantes.Where(c => c.EsPrincipal == true).FirstOrDefault() : null;
|
|
|
|
if (solicitante != null)
|
|
{
|
|
solicitante.IdSolicitud = model.Solicitud.IdSolicitud;
|
|
solicitante.EsPrincipal = true;
|
|
|
|
if (SolicitanteDatosCredito.Cliente != null)
|
|
solicitante.Cliente.IdEjecutivo = SolicitanteDatosCredito.Cliente.IdEjecutivo;
|
|
solicitante.Cliente = ClienteDal.InsertarActualizarCliente(solicitante.Cliente);
|
|
|
|
solicitante.IdCliente = solicitante.Cliente.IdCliente;
|
|
SolicitanteDal.InsertarActualizar(solicitante);
|
|
|
|
model.Solicitud.Solicitante = SolicitanteDal.ObtenerSolicitantes(model.Solicitud.IdSolicitud);
|
|
}
|
|
|
|
if (mDesembolsoDatosGenerales != null)
|
|
{
|
|
mDesembolsoDatosGenerales.IdSolicitud = model.Solicitud.IdSolicitud;
|
|
|
|
if (mDesembolsoDatosGenerales.DesembolsoFacturas != null)
|
|
mDesembolsoDatosGenerales = DesembolsoFacturasDal.InsertarActualizar(mDesembolsoDatosGenerales);
|
|
facturas = mDesembolsoDatosGenerales.DesembolsoFacturas;
|
|
|
|
if (mDesembolsoDatosGenerales.DesemboloDetalleOrdenCompra != null)
|
|
mDesembolsoDatosGenerales = DesemboloDetalleOrdenCompraDal.InsertarActualizar(mDesembolsoDatosGenerales);
|
|
DetalleOrdenCompra = mDesembolsoDatosGenerales.DesemboloDetalleOrdenCompra;
|
|
|
|
if (mDesembolsoDatosGenerales.DesemboloDetalleOrdenCompra != null)
|
|
mDesembolsoDatosGenerales = DesembolsoDetalleAdelantosContraContratoDal.InsertarActualizar(mDesembolsoDatosGenerales);
|
|
DetalleAdelantosContraContrato = mDesembolsoDatosGenerales.DesembolsoDetalleAdelantosContraContrato;
|
|
|
|
mDesembolsoDatosGenerales = DesembolsoDatosGeneralesDal.InsertarActualizar(mDesembolsoDatosGenerales);
|
|
|
|
mDesembolsoDatosGenerales.DesembolsoFacturas = facturas;
|
|
mDesembolsoDatosGenerales.DesembolsoDetalleAdelantosContraContrato = DetalleAdelantosContraContrato;
|
|
mDesembolsoDatosGenerales.DesemboloDetalleOrdenCompra = DetalleOrdenCompra;
|
|
|
|
model.Solicitud.DesembolsoDatosGenerales = mDesembolsoDatosGenerales;
|
|
}
|
|
|
|
//busca y genera la lista de documentos del cliente
|
|
if (EsCreacionSolicitud == true && ofertaCaratula != null && ofertaCaratula.IdSolicitud != 0 && ofertaCaratula.OfertaFacilidades != null && ofertaCaratula.OfertaFacilidades.Count != 0)
|
|
BitacoraDocumentosClienteDal.GenerarListaDocumentos(model.Solicitud.IdSolicitud, model.UltimusStep, ofertaCaratula.IdSolicitud);
|
|
|
|
model.CodigoRespuesta = TipoCodigoRespuesta.EXITOSO.ToString();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
logs.Error(ex);
|
|
model.CodigoRespuesta = TipoCodigoRespuesta.ERROR.ToString();
|
|
}
|
|
return model;
|
|
}
|
|
#endregion
|
|
|
|
#region Cargar
|
|
[HttpGet]
|
|
public DesembolsoJSON Cargar(int IdSolicitud)
|
|
{
|
|
DesembolsoJSON model = new DesembolsoJSON();
|
|
SolicitudDAL SolicitudDal = new SolicitudDAL();
|
|
DesembolsoDatosGeneralesDAL DesembolsoDatosGeneralesDal = new DesembolsoDatosGeneralesDAL();
|
|
SolicitanteDAL SolicitanteDal = new SolicitanteDAL();
|
|
try
|
|
{
|
|
|
|
model.Solicitud = SolicitudDal.Obtener(IdSolicitud);
|
|
|
|
if (model.Solicitud != null)
|
|
{
|
|
model.Solicitud.Solicitante = SolicitanteDal.ObtenerSolicitantes(IdSolicitud);
|
|
|
|
model.Solicitud.DesembolsoDatosGenerales = DesembolsoDatosGeneralesDal.Obtener(IdSolicitud);
|
|
}
|
|
|
|
model.CodigoRespuesta = TipoCodigoRespuesta.EXITOSO.ToString();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
logs.Error(ex);
|
|
model.CodigoRespuesta = TipoCodigoRespuesta.ERROR.ToString();
|
|
}
|
|
return model;
|
|
}
|
|
#endregion
|
|
|
|
#region BuscarLinea
|
|
[HttpPost]
|
|
public DesembolsoJSON BuscarLinea(DesembolsoJSON model)
|
|
{
|
|
SAPServicioIntegracionAPIController SAP = new SAPServicioIntegracionAPIController();
|
|
BpResponse ClienteSAP;
|
|
DatosEntrada DatosSAP = new DatosEntrada();
|
|
EjecutivoDAL EjecutivoDal = new EjecutivoDAL();
|
|
Ejecutivo ejecutivo = null;
|
|
List<Lineas> LineasCliente;
|
|
DesembolsoDatosGenerales mDesembolsoDatosGenerales;
|
|
Cliente cliente;
|
|
bool EstatusCCSS = false;
|
|
BitacoraDocumentosClienteDAL BitacoraDocumentosClienteDal = new BitacoraDocumentosClienteDAL();
|
|
CatalogosDAL CatalogosDal = new CatalogosDAL();
|
|
try
|
|
{
|
|
if (model.Solicitud == null || model.Solicitud.Solicitante == null || model.Solicitud.Solicitante.Count == 0)
|
|
{
|
|
model.CodigoRespuesta = TipoCodigoRespuesta.ADVERTENCIA.ToString();
|
|
model.DescripcionRespuesta = "Debe definir el número BP";
|
|
return model;
|
|
}
|
|
|
|
cliente = model.Solicitud.Solicitante.FirstOrDefault().Cliente;
|
|
|
|
DatosSAP.NumeroCliente = cliente.CodigoBP;
|
|
DatosSAP.TipoConsulta = EnumOperacionesCliente.Ambas;
|
|
ClienteSAP = SAP.ConsultaBP(DatosSAP);
|
|
|
|
if (ClienteSAP == null || string.IsNullOrEmpty(ClienteSAP.NumCliente))
|
|
{
|
|
model.CodigoRespuesta = TipoCodigoRespuesta.ADVERTENCIA.ToString();
|
|
model.DescripcionRespuesta = "No se encontro el cliente en SAP";
|
|
return model;
|
|
}
|
|
|
|
LineasCliente = ClienteSAP.Linea;
|
|
model.LineaCliente = LineasCliente != null ? LineasCliente.Where(c => c.TipoClaseLinea == "6").FirstOrDefault() : null;
|
|
|
|
if (model.LineaCliente == null || string.IsNullOrEmpty(model.LineaCliente.NumeroLinea))
|
|
{
|
|
model.CodigoRespuesta = TipoCodigoRespuesta.ADVERTENCIA.ToString();
|
|
model.DescripcionRespuesta = "No se encontro la línea en SAP";
|
|
return model;
|
|
}
|
|
|
|
model.OperacionesCliente = ClienteSAP.Operacion;
|
|
|
|
EstatusCCSS = SAP.ConsultaMorosidadCCSS(DatosSAP) > 0;
|
|
|
|
//carga lista temporal de documentos
|
|
model.BitacoraDocumentosRecientesCliente = BitacoraDocumentosClienteDal.ObtenerBitacoraDocumentosRecientes(ClienteSAP.Identificacion);
|
|
|
|
#region DATOS GENERALES
|
|
mDesembolsoDatosGenerales = model.Solicitud.DesembolsoDatosGenerales == null ? new DesembolsoDatosGenerales() : model.Solicitud.DesembolsoDatosGenerales;
|
|
|
|
mDesembolsoDatosGenerales.NumeroLinea = model.LineaCliente.NumeroLinea;
|
|
mDesembolsoDatosGenerales.MontoDisponibleLinea = model.LineaCliente.MontoDisponible;
|
|
mDesembolsoDatosGenerales.MontoAprobadoLineaSAP = model.LineaCliente.Monto;
|
|
mDesembolsoDatosGenerales.MonedaLinea = model.LineaCliente.Moneda;
|
|
mDesembolsoDatosGenerales.IdTipoMonedaDesembolso = model.LineaCliente.Moneda == "CRC" ? 0 : 1;
|
|
mDesembolsoDatosGenerales.FechaVencimientoLinea = model.LineaCliente.FechaVencimiento;
|
|
|
|
mDesembolsoDatosGenerales.MontoDisponibleSublimite = null;
|
|
mDesembolsoDatosGenerales.NroCaratulaSublimite = null;
|
|
mDesembolsoDatosGenerales.CodigoSublimite = null;
|
|
mDesembolsoDatosGenerales.Operaciones_Mora = model.OperacionesCliente != null && model.OperacionesCliente.Any(c => c.FechaVencimiento.AddMonths(1) < DateTime.Now);
|
|
mDesembolsoDatosGenerales.CCSS_Atrasado = EstatusCCSS;
|
|
|
|
model.Solicitud.DesembolsoDatosGenerales = mDesembolsoDatosGenerales;
|
|
|
|
#endregion
|
|
|
|
#region CLIENTE
|
|
ejecutivo = EjecutivoDal.ObtenerEjecutivoXUserID(model.UltimusUserID);
|
|
|
|
|
|
List<Cliente> listaCliente = new ClienteDAL().Obtener(null, cliente.CodigoBP);
|
|
Cliente oUltimoRegistroCliente = listaCliente.Where(x => x.IdTipoTramite != EnumTipoTramite.SolicitudDesembolso).OrderByDescending(x => x.IdCliente).FirstOrDefault();
|
|
|
|
cliente.IdCliente = 0;
|
|
cliente.IdTipoTramite = EnumTipoTramite.SolicitudDesembolso;
|
|
cliente.IdClasificacionCliente = oUltimoRegistroCliente.IdClasificacionCliente;
|
|
cliente.IdTipoCliente = oUltimoRegistroCliente.IdTipoCliente;
|
|
cliente.IdTipoIngreso = oUltimoRegistroCliente.IdTipoIngreso;
|
|
cliente.IdTipoIdentificacion = oUltimoRegistroCliente.IdTipoIdentificacion;
|
|
|
|
//cliente.IdTipoCliente = string.IsNullOrEmpty(ClienteSAP.PrimerApellido) ? EnumTipoCliente.Juridico : EnumTipoCliente.Fisico;
|
|
|
|
if (cliente.IdTipoCliente == EnumTipoCliente.Juridico)
|
|
cliente.NumeroIdentificacion = ClienteSAP.Identificacion.Replace("-", "");
|
|
else
|
|
cliente.NumeroIdentificacion = ClienteSAP.Identificacion;
|
|
|
|
|
|
cliente.PrimerNombre = ClienteSAP.Nombre;
|
|
cliente.SegundoNombre = oUltimoRegistroCliente.SegundoNombre;
|
|
cliente.PrimerApellido = ClienteSAP.PrimerApellido;
|
|
cliente.SegundoApellido = ClienteSAP.SegundoApellido;
|
|
cliente.ClienteesCorporativo = oUltimoRegistroCliente.ClienteesCorporativo;
|
|
cliente.SolicitarRequisitosBasicos = false;
|
|
cliente.RazonSocial = ClienteSAP.Nombre;
|
|
|
|
cliente.Contacto = oUltimoRegistroCliente.Contacto;
|
|
cliente.Puesto = oUltimoRegistroCliente.Puesto;
|
|
cliente.IdEjecutivo = ejecutivo != null ? (int?)ejecutivo.IdEjecutivo : null;
|
|
cliente.ReferenciasCIC = null;
|
|
cliente.ReferenciasCIBERISK = null;
|
|
cliente.ReferenciasCCSS = null;
|
|
cliente.ComentariosCIC = null;
|
|
cliente.ComentariosCIBERISK = null;
|
|
cliente.ComentariosCCSS = null;
|
|
cliente.PatronoGobierno = null;
|
|
|
|
cliente.CodigoCiiu = ClienteSAP.CodigoCiiu;
|
|
|
|
var mDivisionCIIU = CatalogosDal.Obtener_DivisionCIIU().Where(c => c.IdDivisionCIIU == ClienteSAP.CodigoCiiu).FirstOrDefault();
|
|
cliente.DesCiiu = mDivisionCIIU == null ? null : mDivisionCIIU.Descripcion;
|
|
|
|
cliente.CodNivelCapacidadPago = ClienteSAP.CodNivelCapacidadPago;
|
|
cliente.DescNivelCapacidadPago = ClienteSAP.DescNivelCapacidadPago;
|
|
|
|
cliente.CodigoCategoriaRiesgo = ClienteSAP.CategoriaRiesgo;
|
|
|
|
int CodRiesgoCambiario;
|
|
if (!string.IsNullOrWhiteSpace(ClienteSAP.CodRiesgoCambiario) && int.TryParse(ClienteSAP.CodRiesgoCambiario, out CodRiesgoCambiario))
|
|
cliente.CodRiesgoCambiario = CodRiesgoCambiario;
|
|
|
|
cliente.DescRiesgoCambiario = ClienteSAP.DescRiesgoCambiario;
|
|
|
|
cliente.CodGeneraMonedaExtrangera = ClienteSAP.CodGeneraMonedaExtrangera;
|
|
cliente.DescGeneraMonedaExtrangera = ClienteSAP.DescGeneraMonedaExtrangera;
|
|
|
|
cliente.CodClasificacionMetodologia = null;
|
|
cliente.DescClasificacionMetodologia = null;
|
|
|
|
cliente.UsuarioCreador = model.UltimusUserID;
|
|
cliente.FechaCreacion = DateTime.Now;
|
|
|
|
model.Solicitud.Solicitante = new List<Solicitante>();
|
|
model.Solicitud.Solicitante.Add(new Solicitante
|
|
{
|
|
EsPrincipal = true,
|
|
IdTipoSolicitante = 1,
|
|
Cliente = cliente
|
|
});
|
|
|
|
#endregion
|
|
|
|
model.CodigoRespuesta = TipoCodigoRespuesta.EXITOSO.ToString();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
logs.Error(ex);
|
|
model.CodigoRespuesta = TipoCodigoRespuesta.ERROR.ToString();
|
|
}
|
|
return model;
|
|
}
|
|
#endregion
|
|
|
|
#region ValidarReglasDecisionInclusionCaratulaUnica
|
|
[HttpPost]
|
|
public BaseJson ValidarReglasDecisionInclusionCaratulaUnica(ControlAprobacionJSON model)
|
|
{
|
|
BaseJson validateResp = new BaseJson() { CodigoRespuesta = TipoCodigoRespuesta.EXITOSO.ToString() };
|
|
DesembolsoJSON modelDesembolso = null;
|
|
StringBuilder sbMessage = new StringBuilder();
|
|
|
|
|
|
try
|
|
{
|
|
if (model.Aprobacion.IdDecision == EnumDecision.Desembolso_AvanzarConCondicionesActuales)
|
|
{
|
|
modelDesembolso = Cargar(model.IdSolicitud);
|
|
|
|
#region Valida Estado de Operaciones
|
|
if (modelDesembolso.Solicitud.DesembolsoDatosGenerales.Operaciones_Mora == true)
|
|
{
|
|
sbMessage.Append(" - Cliente con Operaciones en Estado de Mora<br>");
|
|
}
|
|
#endregion
|
|
|
|
#region Valida Estado con CCSS
|
|
if (modelDesembolso.Solicitud.DesembolsoDatosGenerales.CCSS_Atrasado == true)
|
|
{
|
|
sbMessage.Append(" - Cliente con atrasos con la CCSS<br>");
|
|
}
|
|
#endregion
|
|
|
|
#region Valida SobreGiro en Linea
|
|
decimal MontoDisponibleLinea = modelDesembolso.Solicitud.DesembolsoDatosGenerales.MontoDisponibleLinea ?? 0;
|
|
decimal MontoDesembolso = modelDesembolso.Solicitud.DesembolsoDatosGenerales.MontoDesembolso ?? 0;
|
|
if (MontoDesembolso > MontoDisponibleLinea)
|
|
{
|
|
sbMessage.Append(" - Desembolso con SobreGiro según disponible en SAP para la Línea<br>");
|
|
}
|
|
#endregion
|
|
|
|
#region Valida SobreGiro en Facilidad/SubLimite
|
|
decimal MontoDisponibleFacilidad = modelDesembolso.Solicitud.DesembolsoDatosGenerales.MontoDisponibleSublimite ?? 0;
|
|
decimal MontoDesembolsoFacilidad = modelDesembolso.Solicitud.DesembolsoDatosGenerales.MontoDesembolso ?? 0;
|
|
if (MontoDesembolsoFacilidad > MontoDisponibleFacilidad)
|
|
{
|
|
sbMessage.Append(" - Desembolso con SobreGiro según disponible en SAP para el SubLimite<br>");
|
|
}
|
|
#endregion
|
|
|
|
|
|
#region Fecha Vencimiento Linea
|
|
if (Math.Round((DateTime.Now - modelDesembolso.Solicitud.DesembolsoDatosGenerales.FechaVencimientoLinea.Value).TotalDays) > 0)
|
|
{
|
|
sbMessage.Append(" - La línea de crédito está vencida<br>");
|
|
}
|
|
#endregion
|
|
|
|
|
|
if (sbMessage.Length > 0)
|
|
{
|
|
validateResp.CodigoRespuesta = TipoCodigoRespuesta.ADVERTENCIA.ToString();
|
|
validateResp.DescripcionRespuesta = string.Format("Estimado usuario<br>Las condiciones del cliente y/o el desembolso requieren una revalidación de la aprobación de la línea.<br> Debe seleccionar la opción de <b>Gestionar una carátula de aprobación única.</b><br><br>Los motivo evaluados son:<br><br>{0}", sbMessage.ToString());
|
|
}
|
|
}
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
logs.Error(ex);
|
|
validateResp.CodigoRespuesta = TipoCodigoRespuesta.ERROR.ToString();
|
|
}
|
|
return validateResp;
|
|
}
|
|
#endregion
|
|
|
|
|
|
|
|
#region ValidarCaratulasTemporales
|
|
[HttpGet]
|
|
public BaseJson ValidarCaratulasTemporales(int IdSolicitud)
|
|
{
|
|
BaseJson validateResp = new BaseJson() { CodigoRespuesta = TipoCodigoRespuesta.EXITOSO.ToString() };
|
|
CaratulaCreditoDAL ConnCaratulaCredito = new CaratulaCreditoDAL();
|
|
|
|
try
|
|
{
|
|
CaratulaCredito modelCaratulaCredito = ConnCaratulaCredito.ObtenerUltimaCaratulaAprobada(IdSolicitud, EnumTipoCaratula.Temporal, EnumTipoTramite.CambioCondiciones);
|
|
if (modelCaratulaCredito != null)
|
|
{
|
|
validateResp.CodigoRespuesta = TipoCodigoRespuesta.ADVERTENCIA.ToString();
|
|
validateResp.DescripcionRespuesta = "Existen carátulas de credito temporales para cambio de condiciones formalizadas para el cliente. Por favor verifique las mismas antes de continuar con ek trámite.";
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
logs.Error(ex);
|
|
validateResp.CodigoRespuesta = TipoCodigoRespuesta.ERROR.ToString();
|
|
validateResp.DescripcionRespuesta = ex.Message;
|
|
}
|
|
return validateResp;
|
|
}
|
|
#endregion
|
|
|
|
|
|
[HttpGet]
|
|
public decimal ObtenerMontoDisponibleSublimite(int IdTipoFacilidad, string CodigoBP)
|
|
{
|
|
decimal respuesta = 0;
|
|
SAPServicioIntegracionAPIController SAP = new SAPServicioIntegracionAPIController();
|
|
List<Lineas> Resultados = new List<Lineas>();
|
|
DatosEntrada DatosEntrada= new DatosEntrada();
|
|
try
|
|
{
|
|
TipoFacilidad TipoFacilidad = new TipoFacilidadDAL().Obtener(IdTipoFacilidad);
|
|
DatosEntrada.NumeroCliente= CodigoBP;
|
|
Resultados =SAP.ConsultaLineasCliente(DatosEntrada);
|
|
Lineas linea = Resultados.Where(c => c.TipoClaseLinea == "6").FirstOrDefault();
|
|
if(linea !=null)
|
|
{
|
|
respuesta = linea.Sublimites.Where(x => x.Clasesublimite == TipoFacilidad.CodigoSAP).FirstOrDefault().Disponible;
|
|
}
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
logs.Error(ex);
|
|
}
|
|
return respuesta;
|
|
}
|
|
|
|
}
|
|
} |