using System; using System.Collections.Generic; using System.Linq; using System.Web.Http; using ULA.Cathay.CreditoModel.Entidades; using ULA.Cathay.Credito.Json; using ULA.Cathay.CreditoModel.DAL.Credito; using ULA.Cathay.CreditoModel.BL.Credito; using ULA.Cathay.CreditoModel.Credito; using Ultimus.Interfaces; using Ultimus.Utilitarios; using ULA.Cathay.CreditoModel.DAL.CorporativoDatosRecientes; using ULA.Cathay.Credito.ControllersWebApi.RecopilacionInformacion; namespace ULA.Cathay.Credito.ControllersWebApi { public partial class IngresoClienteAPIController : ApiController { UltimusLogs log = new UltimusLogs("IngresoClienteAPIController"); #region ETAPA INGRESO AL CLIENTE #region ObtenerDatos [HttpGet] public JsonIngresoCliete ObtenerDatos(int IdSolicitud) { JsonIngresoCliete respuesta = new JsonIngresoCliete(); SolicitanteBL solicitantebl = new SolicitanteBL(); Solicitante solicitante = new Solicitante(); EmailSolicitudBL invitadoBL = new EmailSolicitudBL(); EmailSolicitud invitado = new EmailSolicitud(); try { solicitante = solicitantebl.Obtener(IdSolicitud).Where(s => s.IdTipoSolicitante == 1).FirstOrDefault(); if (solicitante != null && solicitante.Cliente != null) { respuesta.Cliente = solicitante.Cliente ?? null; if (solicitante.Cliente.TipoTramite != null) respuesta.DescripcionTramite = solicitante.Cliente.TipoTramite.Descripcion ?? string.Empty; if (solicitante.Cliente.ClasificacionCliente != null) respuesta.DescripcionClasificacionCliente = solicitante.Cliente.ClasificacionCliente.Descripcion ?? string.Empty; if (solicitante.Cliente.TipoFuenteIngreso != null) respuesta.DescripcionTipoIngreso = solicitante.Cliente.TipoFuenteIngreso.Descripcion ?? string.Empty; if (solicitante.Cliente.TipoIdentificacion != null) respuesta.DescripcionTipoIdentificacion = solicitante.Cliente.TipoIdentificacion.Descripcion ?? string.Empty; if (solicitante.Cliente.Ejecutivo != null) respuesta.DescripcionEjecutivo = solicitante.Cliente.Ejecutivo.Nombre ?? string.Empty; } respuesta.Solicitud = new Solicitud { CaratulaCredito = new CaratulaCreditoDAL().Obtener(IdSolicitud) }; } catch (Exception ex) { respuesta.CodigoRespuesta = TipoCodigoRespuesta.ERROR.ToString(); log.Error(ex); return respuesta; } return respuesta; } #endregion #region ObtenerParticipantesSolicitud [HttpPost] public JsonSolicitud ObtenerParticipantesSolicitud(JsonSolicitud model) { JsonSolicitud respuesta = new JsonSolicitud(); try { respuesta.Solicitud = new SolicitudDAL().Obtener(model.IdSolicitud); respuesta.Solicitud.Solicitante = new SolicitanteDAL().Obtener(model.IdSolicitud); foreach (var p in respuesta.Solicitud.Solicitante) { p.Solicitud = null; if (p.TipoSolicitante != null) p.TipoSolicitante.Solicitante = null; foreach (var e in p.Cliente.EmailCliente) e.Cliente = null; foreach (var t in p.Cliente.TelefonoCliente) t.Cliente = null; if (p.Cliente != null) { p.Cliente.TipoCliente = null; p.Cliente.Solicitante = null; if (p.Cliente.TipoTramite != null) p.Cliente.TipoTramite.Cliente = null; if (p.Cliente.Ejecutivo != null) p.Cliente.Ejecutivo.Oferta = null; if (p.Cliente.Ejecutivo != null) p.Cliente.Ejecutivo.Cliente = null; if (p.Cliente.TipoFuenteIngreso != null) p.Cliente.TipoFuenteIngreso.Cliente = null; if (p.Cliente.TipoIdentificacion != null) p.Cliente.TipoIdentificacion.Cliente = null; if (p.Cliente.ClasificacionCliente != null) p.Cliente.ClasificacionCliente.Cliente = null; } } } catch (Exception ex) { respuesta.CodigoRespuesta = TipoCodigoRespuesta.ERROR.ToString(); log.Error(ex); return respuesta; } return respuesta; } #endregion #region Guardar [HttpPost] public JsonSolicitud Guardar([FromBody] JsonIngresoCliete model) { ClienteDAL ConnCliente = new ClienteDAL(); SolicitudBL solicitudBL = new SolicitudBL(); SolicitanteBL solicitanteBL = new SolicitanteBL(); EmailClienteBL emailBL = new EmailClienteBL(); TelefonoClienteBL teledonoBL = new TelefonoClienteBL(); Solicitante solicitante = new Solicitante(); JsonSolicitud respuesta = new JsonSolicitud(); BaseJson Respuesta = new BaseJson(); int IdCliente = 0; try { CaratulaCredito Caratula = model.Solicitud.CaratulaCredito != null ? model.Solicitud.CaratulaCredito : null; Solicitud solicitud = solicitudBL.Insertar(model.Solicitud); respuesta.Solicitud = solicitud; IdCliente = solicitanteBL.ObtenerIdCliente(solicitud.IdSolicitud); Cliente nuevo = model.Cliente; nuevo.IdCliente = IdCliente; Respuesta = ConnCliente.InsertarActualizar(nuevo); if (Respuesta.CodigoRespuesta == TipoCodigoRespuesta.EXITOSO.ToString()) { TelefonoCliente tel = model.TelefonoCliente; EmailCliente email = model.EmailCliente; tel.IdCliente = nuevo.IdCliente; email.IdCliente = nuevo.IdCliente; emailBL.Insertar(email); teledonoBL.Insertar(tel); solicitante.IdCliente = nuevo.IdCliente; solicitante.IdSolicitud = solicitud.IdSolicitud; solicitante.IdTipoSolicitante = 1; solicitante.EsPrincipal = true; solicitanteBL.Insertar(solicitante); respuesta.CodigoRespuesta = TipoCodigoRespuesta.EXITOSO.ToString(); } else respuesta.CodigoRespuesta = Respuesta.CodigoRespuesta; if (Caratula != null && model.Cliente.IdTipoTramite == EnumTipoTramite.CambioCondiciones && Respuesta.CodigoRespuesta == TipoCodigoRespuesta.EXITOSO.ToString()) { JsonSolicitud respJSON = new CaratulaCreditoAPIController().ConsultarDatosSolicitusCaratula(solicitud); respJSON.Solicitud.CaratulaCredito.IdTipoCambioCondiciones = Caratula.IdTipoCambioCondiciones; respJSON.Solicitud.CaratulaCredito.IdSolicitud = solicitud.IdSolicitud; new CaratulaCreditoDAL().InsertarActualizar(respJSON.Solicitud.CaratulaCredito); } } catch (Exception ex) { respuesta.CodigoRespuesta = TipoCodigoRespuesta.ERROR.ToString(); respuesta.DescripcionRespuesta = ex.Message; log.Error(ex); } finally { ConnCliente = null; solicitudBL = null; solicitanteBL = null; solicitante = null; } return respuesta; } #endregion #region ObtenerSolicitudActivaUltimus //[HttpGet] //public BaseJsonMetadata ObtenerSolicitudActivaUltimus(string Identificacion, string UserID, int IdTipoIdentificacion) //{ // ClienteBL clienteBl = new ClienteBL(); // BaseJsonMetadata respuesta = new BaseJsonMetadata(); // EjecutivoDAL EjecutivoDAl = new EjecutivoDAL(); // IncidentesActivosClienteDAL mIncidentesActivosCliente = new IncidentesActivosClienteDAL(); // try // { // string[] usuario = UserID.Split('/'); // respuesta.SolicitudActicaUltimus = false; // Ejecutivo Ejecutivo = EjecutivoDAl.ObtenerEjecutivoXUserID(usuario[1]); // if (Ejecutivo == null) // { // respuesta.CodigoRespuesta = TipoCodigoRespuesta.ADVERTENCIA.ToString(); // respuesta.DescripcionRespuesta = "El ejecutivo no se encuentra registrado en el BPM"; // return respuesta; // } // var TieneIncidentesActivos = mIncidentesActivosCliente.Obtener(Identificacion); // if (TieneIncidentesActivos != null && TieneIncidentesActivos.Count() > 0) // respuesta.SolicitudActicaUltimus = !(TieneIncidentesActivos.Where(c => c.UsuarioCreador.Contains(Ejecutivo.UserId)).Any()); // } // catch (Exception ex) // { // respuesta.CodigoRespuesta = TipoCodigoRespuesta.ERROR.ToString(); // respuesta.DescripcionRespuesta = ex.Message; // log.Error(ex); // return respuesta; // } // return respuesta; //} [HttpGet] public BaseJsonMetadata ObtenerSolicitudActivaUltimus(string Identificacion, int IdEjecutivo, int IdTipoIdentificacion) { ClienteBL clienteBl = new ClienteBL(); BaseJsonMetadata respuesta = new BaseJsonMetadata(); EjecutivoDAL EjecutivoDAl = new EjecutivoDAL(); IncidentesActivosClienteDAL mIncidentesActivosCliente = new IncidentesActivosClienteDAL(); try { respuesta.SolicitudActicaUltimus = false; Ejecutivo Ejecutivo = EjecutivoDAl.ObtenerEjecutivoID(IdEjecutivo); if (Ejecutivo == null) { respuesta.CodigoRespuesta = TipoCodigoRespuesta.ADVERTENCIA.ToString(); respuesta.DescripcionRespuesta = "El ejecutivo no se encuentra registrado en el BPM"; return respuesta; } var TieneIncidentesActivos = mIncidentesActivosCliente.Obtener(Identificacion); if (TieneIncidentesActivos != null && TieneIncidentesActivos.Count() > 0) respuesta.SolicitudActicaUltimus = !(TieneIncidentesActivos.Where(c => c.UsuarioCreador.Contains(Ejecutivo.UserId)).Any()); } catch (Exception ex) { respuesta.CodigoRespuesta = TipoCodigoRespuesta.ERROR.ToString(); respuesta.DescripcionRespuesta = ex.Message; log.Error(ex); return respuesta; } return respuesta; } #endregion #region ObtenerEjecutivoXUserID [HttpGet] public Ejecutivo ObtenerEjecutivoXUserID(string UserID) { EjecutivoBL ejecutivoBl = new EjecutivoBL(); Ejecutivo respuesta = new Ejecutivo(); try { string[] usuario = UserID.Split('/'); respuesta = ejecutivoBl.ObtenerEjecutivoXUserID(usuario[1]); } catch (Exception ex) { log.Error(ex); return respuesta = null; } return respuesta; } #endregion [HttpGet] public Ejecutivo ObtenerEjecutivoID(int IdEjecutivo) { EjecutivoDAL ejecutivoDAL = new EjecutivoDAL(); Ejecutivo respuesta = new Ejecutivo(); try { respuesta = ejecutivoDAL.ObtenerEjecutivoID(IdEjecutivo); } catch (Exception ex) { log.Error(ex); return respuesta = null; } return respuesta; } #region ObtenerEjecutivoXCodigo [HttpGet] public Ejecutivo ObtenerEjecutivoXCodigo(string Codigo) { EjecutivoBL ejecutivoBl = new EjecutivoBL(); Ejecutivo respuesta = new Ejecutivo(); try { respuesta = ejecutivoBl.ObtenerEjecutivoXCodigo(Codigo); } catch (Exception ex) { log.Error(ex); return respuesta = null; } return respuesta; } #endregion #region ObtenerSolicitudesNoEnviadas [HttpGet] public List ObtenerSolicitudesNoEnviadas(string UsuarioIngresador) { List listaSolicitudNoEnviada = new List(); try { listaSolicitudNoEnviada = new SolicitudDAL().ObtenerSolicitudesNoEnviadas(UsuarioIngresador); } catch (Exception ex) { log.Error(ex); } return listaSolicitudNoEnviada; } #endregion #region EliminarSolicitudNoEnviada [HttpPost] public BaseJson EliminarSolicitudNoEnviada(JsonSolicitud model) { BaseJson resp = new BaseJson(); SolicitudDAL CurrentSolicitudDAL = null; try { CurrentSolicitudDAL = new SolicitudDAL(); Solicitud CurrentSolicitud = CurrentSolicitudDAL.Obtener(model.Solicitud.IdSolicitud); CurrentSolicitud.IdEstadoBandeja = EnumEstadoSolicitud.BORRADA; CurrentSolicitudDAL.Insertar(CurrentSolicitud); resp.CodigoRespuesta = TipoCodigoRespuesta.EXITOSO.ToString(); } catch (Exception ex) { resp.CodigoRespuesta = TipoCodigoRespuesta.ERROR.ToString(); resp.DescripcionRespuesta = ex.Message; log.Error(ex); } finally { CurrentSolicitudDAL = null; } return resp; } #endregion #endregion } }