TFS_ANTIGUO/SInCathay/ULA.Cathay.Credito/ControllersWebApi/IngresoCliente/IngresoClienteAPIController.cs

390 lines
No EOL
14 KiB
C#

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<Solicitud> ObtenerSolicitudesNoEnviadas(string UsuarioIngresador)
{
List<Solicitud> listaSolicitudNoEnviada = new List<Solicitud>();
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
}
}