345 lines
No EOL
15 KiB
C#
345 lines
No EOL
15 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Web.Http;
|
|
using System.Data.Entity;
|
|
using Ultimus.Utilitarios;
|
|
using ULA.Cathay.CreditoModel.Credito;
|
|
using ULA.Cathay.Credito.Json;
|
|
using Ultimus.Interfaces;
|
|
using ULA.Cathay.CreditoModel.DAL.Credito;
|
|
using ULA.Cathay.CreditoModel.Entidades;
|
|
|
|
namespace ULA.Cathay.Credito.ControllersWebApi
|
|
{
|
|
public class PropuestaAPIController : ApiController
|
|
{
|
|
UltimusLogs logs = new UltimusLogs("PropuestaAPIController");
|
|
|
|
[HttpGet]
|
|
public JsonSolicitud CargarPropuesta_old(int IDSolicitud, int? IDTipoSolicitante = 1, int? IdCliene = null)
|
|
{
|
|
JsonSolicitud model = new JsonSolicitud();
|
|
|
|
try
|
|
{
|
|
using (CreditoContex db = new CreditoContex())
|
|
{
|
|
#region Consulta Modelo
|
|
model.Solicitud = db.Solicitud.Where(c => c.IdSolicitud == IDSolicitud).FirstOrDefault();
|
|
model.Solicitud.ClearVirtualProperties();
|
|
|
|
if (model.Solicitud != null)
|
|
{
|
|
model.Solicitud.Oferta = db.Oferta.Where(c => c.IdSolicitud == IDSolicitud).FirstOrDefault();
|
|
if (model.Solicitud.Oferta != null)
|
|
model.Solicitud.Oferta.ClearVirtualProperties();
|
|
|
|
model.Solicitud.DetalleRequisitos = db.DetalleRequisitos.Where(c => c.IdSolicitud == IDSolicitud).AsNoTracking().FirstOrDefault();
|
|
if (model.Solicitud.DetalleRequisitos != null)
|
|
model.Solicitud.DetalleRequisitos.ClearVirtualProperties();
|
|
|
|
model.Solicitud.Solicitante = db.Solicitante.Where(c => c.IdSolicitud == IDSolicitud).AsNoTracking().ToList();
|
|
|
|
|
|
#region Consulta Modelo Solicitantes
|
|
if (model.Solicitud.Solicitante != null)
|
|
{
|
|
//model.Solicitud.Solicitante.ClearVirtualProperties();
|
|
|
|
List<TipoDocumento> TiposDocumentos = new List<TipoDocumento>();
|
|
TiposDocumentos = db.TipoDocumento.AsNoTracking().ToList();
|
|
ICollection<TipoExpedienteDocumentos> TipoExpedienteDocumentos;
|
|
TipoExpedienteDocumentos = db.TipoExpedienteDocumentos.AsNoTracking().ToList();
|
|
|
|
foreach (Solicitante modelSolicitante in model.Solicitud.Solicitante)
|
|
{
|
|
#region Consulta Modelo Cliente
|
|
|
|
modelSolicitante.Cliente = db.Cliente.Where(c => c.IdCliente == modelSolicitante.IdCliente).AsNoTracking().FirstOrDefault();
|
|
|
|
if (modelSolicitante.Cliente != null)
|
|
{
|
|
modelSolicitante.Cliente.ClearVirtualProperties();
|
|
|
|
#region Consulta Modelo Bitacora Documentos
|
|
modelSolicitante.Cliente.BitacoraDocumentosCliente = db.BitacoraDocumentosCliente.Where(c => c.IdCliente == modelSolicitante.IdCliente).AsNoTracking().ToList();
|
|
|
|
if (modelSolicitante.Cliente.BitacoraDocumentosCliente != null)
|
|
{
|
|
// modelSolicitante.Cliente.BitacoraDocumentosCliente.ClearVirtualProperties();
|
|
|
|
foreach (BitacoraDocumentosCliente modelBitacoraDocumentosCliente in modelSolicitante.Cliente.BitacoraDocumentosCliente)
|
|
{
|
|
//modelBitacoraDocumentosCliente.TipoDocumento = db.TipoDocumento.Where(c => c.IdTipoDocumento == modelBitacoraDocumentosCliente.IdTipoDocumento).FirstOrDefault(); Steven Rojas
|
|
modelBitacoraDocumentosCliente.TipoDocumento = TiposDocumentos.Find(c => c.IdTipoDocumento == modelBitacoraDocumentosCliente.IdTipoDocumento);
|
|
if (modelBitacoraDocumentosCliente.TipoDocumento != null)
|
|
{
|
|
modelBitacoraDocumentosCliente.TipoDocumento.ClearVirtualProperties();
|
|
//modelBitacoraDocumentosCliente.TipoDocumento.TipoExpedienteDocumentos = db.TipoExpedienteDocumentos.Where(c => c.IdTipoDocumento == modelBitacoraDocumentosCliente.IdTipoDocumento).ToList(); Steven Rojas
|
|
modelBitacoraDocumentosCliente.TipoDocumento.TipoExpedienteDocumentos = TipoExpedienteDocumentos.Where(c => c.IdTipoDocumento == modelBitacoraDocumentosCliente.IdTipoDocumento).ToList();
|
|
}
|
|
|
|
}
|
|
}
|
|
#endregion
|
|
}
|
|
#endregion
|
|
}
|
|
}
|
|
#endregion
|
|
}
|
|
#endregion
|
|
|
|
//var solicitante = model.Solicitud.Solicitante.Where(c => c.EsPrincipal == true).FirstOrDefault();
|
|
|
|
model = new EPowerServicioIntegracionAPIController().ObtenerConsultaEpower(model);
|
|
|
|
model.DetalleDocumento = db.TipoDocumento.Where(c => c.IdTipoDocumento == 37).FirstOrDefault();
|
|
|
|
model.CodigoRespuesta = TipoCodigoRespuesta.EXITOSO.ToString();
|
|
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
logs.Error(ex);
|
|
model.CodigoRespuesta = TipoCodigoRespuesta.ERROR.ToString();
|
|
}
|
|
|
|
return model;
|
|
|
|
}
|
|
|
|
[HttpPost]
|
|
public JsonSolicitud GuardarPropuesta(JsonSolicitud model)
|
|
{
|
|
DetalleRequisitosDAL RequisistosDAL = new DetalleRequisitosDAL();
|
|
BitacoraDocumentosClienteDAL mBitacoraDocumentosClienteDAL = new BitacoraDocumentosClienteDAL();
|
|
|
|
try
|
|
{
|
|
using (CreditoContex db = new CreditoContex())
|
|
{
|
|
var user = model.UltimusUserID.Split('/').Length > 1 ? model.UltimusUserID.Split('/')[1] : model.UltimusUserID;
|
|
var ejecutivo = user != null ? db.Ejecutivo.AsNoTracking().Where(c => c.UserId.Trim().ToLower() == user.Trim().ToLower()).FirstOrDefault() : null;
|
|
|
|
#region PROPUESTA
|
|
|
|
var Propuesta = model.Solicitud.DetalleRequisitos;
|
|
Propuesta.IdSolicitud = model.Solicitud.IdSolicitud;
|
|
Propuesta.IdEjecutivo = ejecutivo != null ? (int?)ejecutivo.IdEjecutivo : null;
|
|
|
|
Propuesta = RequisistosDAL.InsertasActualizar(Propuesta);
|
|
|
|
#endregion
|
|
|
|
#region BitacoraDocumentos
|
|
|
|
//var solicitante = model.Solicitud.Solicitante.Where(c => c.EsPrincipal == true).FirstOrDefault();
|
|
foreach (Solicitante solicitante in model.Solicitud.Solicitante)
|
|
{
|
|
if (solicitante != null && solicitante.Cliente != null && solicitante.Cliente.BitacoraDocumentosCliente != null)
|
|
mBitacoraDocumentosClienteDAL.Actualizar(solicitante.Cliente.BitacoraDocumentosCliente.ToList(), null, solicitante.Cliente, model.EliminarPeriodo);
|
|
|
|
}
|
|
#endregion
|
|
|
|
model.CodigoRespuesta = TipoCodigoRespuesta.EXITOSO.ToString();
|
|
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
logs.Error(ex);
|
|
model.CodigoRespuesta = TipoCodigoRespuesta.ERROR.ToString();
|
|
}
|
|
|
|
return model;
|
|
|
|
}
|
|
|
|
[HttpGet]
|
|
public JsonSolicitud CargarPropuesta(int IDSolicitud, int IDTipoSolicitante = 1, string UltimusStep = null)
|
|
{
|
|
JsonSolicitud model = new JsonSolicitud();
|
|
SolicitudDAL SolicitudDal;
|
|
OfertaDAL OfertaDal;
|
|
SolicitanteDAL SolicitanteDal;
|
|
DetalleRequisitosDAL DetalleRequisitosDal;
|
|
TipoDocumentoDAL TipoDocumentoDal;
|
|
ConsultaEpowerDAL ConsultaEpowerDal;
|
|
|
|
try
|
|
{
|
|
SolicitudDal = new SolicitudDAL();
|
|
OfertaDal = new OfertaDAL();
|
|
SolicitanteDal = new SolicitanteDAL();
|
|
DetalleRequisitosDal = new DetalleRequisitosDAL();
|
|
TipoDocumentoDal = new TipoDocumentoDAL();
|
|
ConsultaEpowerDal = new ConsultaEpowerDAL();
|
|
|
|
model.Solicitud = SolicitudDal.Obtener(IDSolicitud);
|
|
model.Solicitud.Oferta = OfertaDal.ObtenerOfertaSolicitud(IDSolicitud);
|
|
model.Solicitud.DetalleRequisitos = DetalleRequisitosDal.Obtener(IDSolicitud);
|
|
|
|
model.Solicitud.Solicitante = model.Solicitud.Solicitante ?? new List<Solicitante>();
|
|
|
|
model.ListaClientes = SolicitanteDal.ObtenerTipoSolicitantes(IDSolicitud, IDTipoSolicitante);
|
|
|
|
model.Solicitud.Solicitante.Add(SolicitanteDal.ObtenerSolicitanteDocumentos(
|
|
new Solicitante
|
|
{
|
|
IdSolicitud = IDSolicitud,
|
|
IdTipoSolicitante = IDTipoSolicitante,
|
|
IdCliente = (model.ListaClientes != null && model.ListaClientes.Count > 0 ? model.ListaClientes.First().IdCliente : 0)
|
|
}));
|
|
|
|
model.DetalleDocumento = TipoDocumentoDal.Obtener(37);
|
|
TipoDocumentoDal.db.Database.Connection.Close();
|
|
|
|
model.Solicitud = ConsultaEpowerDal.ObtenerRutaConsultaDocumentos(model.Solicitud);
|
|
|
|
model.TieneCodeudor = SolicitanteDal.VerificaTipoSolicitantes(IDSolicitud, EnumTipoSolicitante.CoDeudor);
|
|
model.TieneFiador = SolicitanteDal.VerificaTipoSolicitantes(IDSolicitud, EnumTipoSolicitante.Fiador);
|
|
model.TieneAccionistas = SolicitanteDal.VerificaTipoSolicitantes(IDSolicitud, EnumTipoSolicitante.Accionista);
|
|
|
|
model.VBGerenciaAnalisis = false;
|
|
model.VBOficialCumplimiento = false;
|
|
|
|
model.UltimusStep = UltimusStep;
|
|
|
|
if (model.ListaClientes != null && model.ListaClientes.Count() > 0)
|
|
ValidarRequiereVistoBuenoArea(model, model.ListaClientes.First().IdCliente);
|
|
else if (model.Solicitud.Solicitante != null && model.Solicitud.Solicitante.Count() > 0)
|
|
ValidarRequiereVistoBuenoArea(model, model.Solicitud.Solicitante.First().IdCliente);
|
|
|
|
model.CodigoRespuesta = TipoCodigoRespuesta.EXITOSO.ToString();
|
|
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
logs.Error(ex);
|
|
model.CodigoRespuesta = TipoCodigoRespuesta.ERROR.ToString();
|
|
}
|
|
finally
|
|
{
|
|
SolicitudDal = null;
|
|
OfertaDal = null;
|
|
SolicitanteDal = null;
|
|
DetalleRequisitosDal = null;
|
|
TipoDocumentoDal = null;
|
|
ConsultaEpowerDal = null;
|
|
|
|
}
|
|
|
|
|
|
return model;
|
|
|
|
}
|
|
|
|
[HttpPost]
|
|
public JsonSolicitud CargarBitacoraDocumentosSolicitante(JsonSolicitud model)
|
|
{
|
|
SolicitanteDAL SolicitanteDal;
|
|
ConsultaEpowerDAL ConsultaEpowerDal;
|
|
|
|
try
|
|
{
|
|
model = GuardarPropuesta(model);
|
|
|
|
ConsultaEpowerDal = new ConsultaEpowerDAL();
|
|
SolicitanteDal = new SolicitanteDAL();
|
|
|
|
model.Solicitud.Solicitante = new List<Solicitante>();
|
|
|
|
model.ListaClientes = SolicitanteDal.ObtenerTipoSolicitantes(model.SolicitanteDocumento.IdSolicitud, model.SolicitanteDocumento.IdTipoSolicitante);
|
|
|
|
model.Solicitud.Solicitante.Add(SolicitanteDal.ObtenerSolicitanteDocumentos(model.SolicitanteDocumento));
|
|
|
|
model.Solicitud = ConsultaEpowerDal.ObtenerRutaConsultaDocumentos(model.Solicitud);
|
|
|
|
if (model.SolicitanteDocumento.IdCliente == 0 && model.ListaClientes != null && model.ListaClientes.Count() > 0)
|
|
ValidarRequiereVistoBuenoArea(model, model.ListaClientes.First().IdCliente);
|
|
else
|
|
ValidarRequiereVistoBuenoArea(model, model.SolicitanteDocumento.IdCliente);
|
|
|
|
model.CodigoRespuesta = TipoCodigoRespuesta.EXITOSO.ToString();
|
|
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
logs.Error(ex);
|
|
model.CodigoRespuesta = TipoCodigoRespuesta.ERROR.ToString();
|
|
}
|
|
finally
|
|
{
|
|
SolicitanteDal = null;
|
|
ConsultaEpowerDal = null;
|
|
}
|
|
|
|
|
|
return model;
|
|
|
|
}
|
|
|
|
void ValidarRequiereVistoBuenoArea(JsonSolicitud model, int IdClienteActual)
|
|
{
|
|
BitacoraDocumentosClienteDAL BitacoraDocumentosClienteDal = new BitacoraDocumentosClienteDAL();
|
|
|
|
model.VBGerenciaAnalisis = false;
|
|
model.VBOficialCumplimiento = false;
|
|
|
|
if (model.UltimusStep != EnumEtapas.RE_Reco_Dar_Segui) return;
|
|
|
|
List<VistoBuenoAreaJSON> BitacoraDocumentos = BitacoraDocumentosClienteDal.ValidarRequiereVistoBuenoArea(model.Solicitud.IdSolicitud, IdClienteActual);
|
|
|
|
model.VBGerenciaAnalisis = BitacoraDocumentos != null && BitacoraDocumentos.Any(c => c.VBGerenciaAnalisis == true);
|
|
model.VBOficialCumplimiento = BitacoraDocumentos != null && BitacoraDocumentos.Any(c => c.VBOficialCumplimiento == true);
|
|
|
|
BitacoraDocumentosClienteDal = null;
|
|
BitacoraDocumentos = null;
|
|
|
|
}
|
|
|
|
[HttpPost]
|
|
public List<VistoBuenoAreaJSON> ValidarDocumentosPendientes(JsonSolicitud model)
|
|
{
|
|
BitacoraDocumentosClienteDAL BitacoraDocumentosClienteDal;
|
|
List<VistoBuenoAreaJSON> BitacoraDocumentos = null;
|
|
try
|
|
{
|
|
BitacoraDocumentosClienteDal = new BitacoraDocumentosClienteDAL();
|
|
|
|
foreach (Solicitante solicitante in model.Solicitud.Solicitante)
|
|
{
|
|
if (solicitante != null && solicitante.Cliente != null && solicitante.Cliente.BitacoraDocumentosCliente != null)
|
|
BitacoraDocumentosClienteDal.Actualizar(solicitante.Cliente.BitacoraDocumentosCliente.ToList(), null, solicitante.Cliente);
|
|
|
|
}
|
|
|
|
BitacoraDocumentos = BitacoraDocumentosClienteDal.ValidarPendientes(model.Solicitud.IdSolicitud, model.ParametrosDocumentosPendientes);
|
|
|
|
model.CodigoRespuesta = TipoCodigoRespuesta.EXITOSO.ToString();
|
|
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
logs.Error(ex);
|
|
model.CodigoRespuesta = TipoCodigoRespuesta.ERROR.ToString();
|
|
}
|
|
finally
|
|
{
|
|
|
|
}
|
|
|
|
|
|
return BitacoraDocumentos;
|
|
|
|
}
|
|
|
|
}
|
|
} |