TFS_ANTIGUO/SInCathay/ULA.Cathay.Credito/ControllersWebApi/Aprobaciones/IncluirClienteSapAPIController.cs

363 lines
No EOL
19 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web.Http;
using ULA.Cathay.Credito.ServicioSAP;
using ULA.Cathay.CreditoModel.Credito;
using ULA.Cathay.CreditoModel.DAL.Credito;
using ULA.Cathay.CreditoModel.Entidades;
using Ultimus.Interfaces;
using Ultimus.Utilitarios;
namespace ULA.Cathay.Credito.ControllersWebApi.Aprobaciones
{
public class IncluirClienteSapAPIController : ApiBaseController
{
UltimusLogs logs = new UltimusLogs("IncluirClienteSapAPIController");
public IncluirClienteSapAPIController()
{
GlobalAPIController.SetRegionalConfig();
}
#region ConsultarDatosCaratula
/// <summary>
///
/// </summary>
/// <param name="Modelo"></param>
/// <returns></returns>
[HttpPost]
public ResultadoComparativoBPMySAP ConsultarDatosCaratula(DatosEntrada Entrada)
{
SAPServicioIntegracionAPIController ConnSap = new SAPServicioIntegracionAPIController();
ClienteDAL ConnCliente = new ClienteDAL();
CaratulaCreditoDAL ConnCaratula = new CaratulaCreditoDAL();
ResultadoComparativoBPMySAP ValorRetorno = new ResultadoComparativoBPMySAP();
BpResponse ResultadosSap = new BpResponse();
Cliente ObjCliente = new Cliente();
CaratulaCredito ObjCaratula = new CaratulaCredito();
List<DiferenciaDatosSAPBPM> ObjDiferenciaDatos = new List<DiferenciaDatosSAPBPM>();
Solicitud ObjSolicitud = new Solicitud();
try
{
ResultadosSap = ConnSap.ConsultaBP(Entrada);
if (string.IsNullOrWhiteSpace(ResultadosSap.Identificacion))
ResultadosSap.Identificacion = "No Existes el Cliente en SAP";
ObjCliente = ConnCliente.ObtenerPrincipal(int.Parse(Entrada.NumeroSolicitud));
ObjCaratula = ConnCaratula.Obtener(int.Parse(Entrada.NumeroSolicitud));
ObjSolicitud = new SolicitudDAL().Obtener(int.Parse(Entrada.NumeroSolicitud));
ValorRetorno.ClienteBP = ResultadosSap.NumCliente;
ValorRetorno.Identificacion = ResultadosSap.Identificacion;
#region Identificacion
string IdentificacionSAP = ResultadosSap.Identificacion ?? "";
string IdentificacionBPM = ObjCliente.NumeroIdentificacion ?? "";
ValorRetorno.ValoresComparativos.Add(new DatosComparativoBPMySAP
{
NombrePropiedad = "Identificación",
ValorSAP = IdentificacionSAP.Trim(),
ValorBPM = IdentificacionBPM.Trim(),
Iguales = IdentificacionSAP.Trim().ToLower().Replace("-", "") == IdentificacionBPM.Trim().ToLower().Replace("-", "")
});
ObjDiferenciaDatos.Add(new DiferenciaDatosSAPBPM
{
IdSolicitud = int.Parse(Entrada.NumeroSolicitud),
IdCliente = ObjCliente.IdCliente,
CodigoBP = ObjCliente.CodigoBP == null || ObjCliente.CodigoBP == "" ? Entrada.NumeroCliente : ObjCliente.CodigoBP,
IdPropiedad = EnumPropiedadDiferenciaDatosSAPBPM.Identificacion,
ValorSAP = IdentificacionSAP.Trim(),
ValorBPM = IdentificacionBPM.Trim(),
Iguales = IdentificacionSAP.Trim().ToLower().Replace("-", "") == IdentificacionBPM.Trim().ToLower().Replace("-", ""),
FechaConsulta = DateTime.Now,
Incidente = ObjSolicitud.Incidente
});
#endregion
#region CategoriaRiesgo
string CategoriaRiesgoSAP = ResultadosSap.CategoriaRiesgo ?? "";
string CategoriaRiesgoBPM = ObjCliente.CategoriaRiesgo ?? "";
ValorRetorno.ValoresComparativos.Add(new DatosComparativoBPMySAP
{
NombrePropiedad = "Código Categoria Riesgo",
ValorSAP = string.Format("{0} - {1}", CategoriaRiesgoSAP.Trim(), ""),
ValorBPM = string.Format("{0} - {1}", CategoriaRiesgoBPM.Trim(), ""),
Iguales = CategoriaRiesgoSAP.Trim().ToLower() == CategoriaRiesgoBPM.Trim().ToLower()
});
ObjDiferenciaDatos.Add(new DiferenciaDatosSAPBPM
{
IdSolicitud = int.Parse(Entrada.NumeroSolicitud),
IdCliente = ObjCliente.IdCliente,
CodigoBP = ObjCliente.CodigoBP == null || ObjCliente.CodigoBP == "" ? Entrada.NumeroCliente : ObjCliente.CodigoBP,
IdPropiedad = EnumPropiedadDiferenciaDatosSAPBPM.CodigoCategoriaRiesgo,
ValorSAP = string.Format("{0} - {1}", CategoriaRiesgoSAP.Trim(), ""),
ValorBPM = string.Format("{0} - {1}", CategoriaRiesgoBPM.Trim(), ""),
Iguales = CategoriaRiesgoSAP.Trim().ToLower() == CategoriaRiesgoBPM.Trim().ToLower(),
FechaConsulta = DateTime.Now,
Incidente = ObjSolicitud.Incidente
});
#endregion
#region CodGeneraMonedaExtrangera
string CodGeneraMonedaExtrangeraSAP = ResultadosSap.CodGeneraMonedaExtrangera ?? "";
string CodGeneraMonedaExtrangeraBPM = ObjCliente.CodGeneraMonedaExtrangera ?? "";
ValorRetorno.ValoresComparativos.Add(new DatosComparativoBPMySAP
{
NombrePropiedad = "Código Genera Moneda Extrangera",
ValorSAP = string.Format("{0} - {1}", CodGeneraMonedaExtrangeraSAP.Trim(), ResultadosSap.DescGeneraMonedaExtrangera),
ValorBPM = string.Format("{0} - {1}", CodGeneraMonedaExtrangeraBPM.Trim(), ObjCliente.DescGeneraMonedaExtrangera),
Iguales = CodGeneraMonedaExtrangeraSAP.Trim().ToLower() == CodGeneraMonedaExtrangeraBPM.Trim().ToLower()
});
ObjDiferenciaDatos.Add(new DiferenciaDatosSAPBPM
{
IdSolicitud = int.Parse(Entrada.NumeroSolicitud),
IdCliente = ObjCliente.IdCliente,
CodigoBP = ObjCliente.CodigoBP == null || ObjCliente.CodigoBP == "" ? Entrada.NumeroCliente : ObjCliente.CodigoBP,
IdPropiedad = EnumPropiedadDiferenciaDatosSAPBPM.CodigoGeneraMonedaExtrangera,
ValorSAP = string.Format("{0} - {1}", CodGeneraMonedaExtrangeraSAP.Trim(), ResultadosSap.DescGeneraMonedaExtrangera),
ValorBPM = string.Format("{0} - {1}", CodGeneraMonedaExtrangeraBPM.Trim(), ObjCliente.DescGeneraMonedaExtrangera),
Iguales = CodGeneraMonedaExtrangeraSAP.Trim().ToLower() == CodGeneraMonedaExtrangeraBPM.Trim().ToLower(),
FechaConsulta = DateTime.Now,
Incidente = ObjSolicitud.Incidente
});
#endregion
#region CodNivelCapacidadPago
string CodNivelCapacidadPagoSAP = ResultadosSap.CodNivelCapacidadPago ?? "";
string CodNivelCapacidadPagoBPM = ObjCliente.CodNivelCapacidadPago ?? "";
ValorRetorno.ValoresComparativos.Add(new DatosComparativoBPMySAP
{
NombrePropiedad = "Código Nivel de Capacidad de Pago",
ValorSAP = string.Format("{0} - {1}", CodNivelCapacidadPagoSAP.Trim(), ResultadosSap.DescNivelCapacidadPago),
ValorBPM = string.Format("{0} - {1}", CodNivelCapacidadPagoBPM.Trim(), ObjCliente.DescNivelCapacidadPago),
Iguales = CodNivelCapacidadPagoSAP.Trim().ToLower() == CodNivelCapacidadPagoBPM.Trim().ToLower()
});
ObjDiferenciaDatos.Add(new DiferenciaDatosSAPBPM
{
IdSolicitud = int.Parse(Entrada.NumeroSolicitud),
IdCliente = ObjCliente.IdCliente,
CodigoBP = ObjCliente.CodigoBP == null || ObjCliente.CodigoBP == "" ? Entrada.NumeroCliente : ObjCliente.CodigoBP,
IdPropiedad = EnumPropiedadDiferenciaDatosSAPBPM.CodigoNivelCapacidadPago,
ValorSAP = string.Format("{0} - {1}", CodNivelCapacidadPagoSAP.Trim(), ResultadosSap.DescNivelCapacidadPago),
ValorBPM = string.Format("{0} - {1}", CodNivelCapacidadPagoBPM.Trim(), ObjCliente.DescNivelCapacidadPago),
Iguales = CodNivelCapacidadPagoSAP.Trim().ToLower() == CodNivelCapacidadPagoBPM.Trim().ToLower(),
FechaConsulta = DateTime.Now,
Incidente = ObjSolicitud.Incidente
});
#endregion
#region CodRiesgoCambiario
int CodRiesgoCambiarioSAP = string.IsNullOrEmpty(ResultadosSap.CodRiesgoCambiario) ? -1 : int.Parse(ResultadosSap.CodRiesgoCambiario.Trim());
int CodRiesgoCambiarioBPM = ObjCliente.CodRiesgoCambiario ?? -1;
ValorRetorno.ValoresComparativos.Add(new DatosComparativoBPMySAP
{
NombrePropiedad = "Código Riesgo Cambiario",
ValorSAP = string.Format("{0} - {1}", CodRiesgoCambiarioSAP, ResultadosSap.DescRiesgoCambiario),
ValorBPM = string.Format("{0} - {1}", CodRiesgoCambiarioBPM, ObjCliente.DescRiesgoCambiario),
Iguales = CodRiesgoCambiarioSAP == CodRiesgoCambiarioBPM
});
ObjDiferenciaDatos.Add(new DiferenciaDatosSAPBPM
{
IdSolicitud = int.Parse(Entrada.NumeroSolicitud),
IdCliente = ObjCliente.IdCliente,
CodigoBP = ObjCliente.CodigoBP == null || ObjCliente.CodigoBP == "" ? Entrada.NumeroCliente : ObjCliente.CodigoBP,
IdPropiedad = EnumPropiedadDiferenciaDatosSAPBPM.CodigoRiesgoCambiario,
ValorSAP = string.Format("{0} - {1}", CodRiesgoCambiarioSAP, ResultadosSap.DescRiesgoCambiario),
ValorBPM = string.Format("{0} - {1}", CodRiesgoCambiarioBPM, ObjCliente.DescRiesgoCambiario),
Iguales = CodRiesgoCambiarioSAP == CodRiesgoCambiarioBPM,
FechaConsulta = DateTime.Now,
Incidente = ObjSolicitud.Incidente
});
#endregion
#region CodSectorEconomico
string CodSectorEconomicoSAP = ResultadosSap.CodSectorEconomico ?? "";
string CodSectorEconomicoBPM = ObjCaratula.CodigoSectorEconomicoSUGEF ?? "";
ValorRetorno.ValoresComparativos.Add(new DatosComparativoBPMySAP
{
NombrePropiedad = "Código Sector Economico",
ValorSAP = string.Format("{0} - {1}", CodSectorEconomicoSAP.Trim(), ResultadosSap.SectorEconomico),
ValorBPM = string.Format("{0} - {1}", CodSectorEconomicoBPM.Trim(), ObjCaratula.DescSectorEconomicoSUGEF),
Iguales = CodSectorEconomicoSAP.Trim().ToLower() == CodSectorEconomicoBPM.Trim().ToLower()
});
ObjDiferenciaDatos.Add(new DiferenciaDatosSAPBPM
{
IdSolicitud = int.Parse(Entrada.NumeroSolicitud),
IdCliente = ObjCliente.IdCliente,
CodigoBP = ObjCliente.CodigoBP == null || ObjCliente.CodigoBP == "" ? Entrada.NumeroCliente : ObjCliente.CodigoBP,
IdPropiedad = EnumPropiedadDiferenciaDatosSAPBPM.CodigoSectorEconomico,
ValorSAP = string.Format("{0} - {1}", CodSectorEconomicoSAP.Trim(), ResultadosSap.SectorEconomico),
ValorBPM = string.Format("{0} - {1}", CodSectorEconomicoBPM.Trim(), ObjCaratula.DescSectorEconomicoSUGEF),
Iguales = CodSectorEconomicoSAP.Trim().ToLower() == CodSectorEconomicoBPM.Trim().ToLower(),
FechaConsulta = DateTime.Now,
Incidente = ObjSolicitud.Incidente
});
#endregion
#region CodTipoGie
string CodTipoGieSAP = ResultadosSap.CodTipoGie ?? "";
string CodTipoGieBPM = ObjCaratula.CodigoTipoGIE ?? "";
ValorRetorno.ValoresComparativos.Add(new DatosComparativoBPMySAP
{
NombrePropiedad = "Código Tipo de Grupo de Interés Económico",
ValorSAP = string.Format("{0} - {1}", CodTipoGieSAP.Trim(), ResultadosSap.DescTipoGie),
ValorBPM = string.Format("{0} - {1}", CodTipoGieBPM.Trim(), ObjCaratula.DescTipoGie),
Iguales = CodTipoGieSAP.Trim().ToLower() == CodTipoGieBPM.Trim().ToLower()
});
ObjDiferenciaDatos.Add(new DiferenciaDatosSAPBPM
{
IdSolicitud = int.Parse(Entrada.NumeroSolicitud),
IdCliente = ObjCliente.IdCliente,
CodigoBP = ObjCliente.CodigoBP == null || ObjCliente.CodigoBP == "" ? Entrada.NumeroCliente : ObjCliente.CodigoBP,
IdPropiedad = EnumPropiedadDiferenciaDatosSAPBPM.CodigoTipoGrupoInteresEconomico,
ValorSAP = string.Format("{0} - {1}", CodTipoGieSAP.Trim(), ResultadosSap.DescTipoGie),
ValorBPM = string.Format("{0} - {1}", CodTipoGieBPM.Trim(), ObjCaratula.DescTipoGie),
Iguales = CodTipoGieSAP.Trim().ToLower() == CodTipoGieBPM.Trim().ToLower(),
FechaConsulta = DateTime.Now,
Incidente = ObjSolicitud.Incidente
});
#endregion
#region CodigoCiiu
string CodigoCiiuSAP = ResultadosSap.CodigoCiiu ?? "";
string CodigoCiiuBPM = ObjCliente.CodigoCiiu ?? "";
ValorRetorno.ValoresComparativos.Add(new DatosComparativoBPMySAP
{
NombrePropiedad = "Código CIIU",
ValorSAP = string.Format("{0} - {1}", CodigoCiiuSAP.Trim(), ""),
ValorBPM = string.Format("{0} - {1}", CodigoCiiuBPM.Trim(), ObjCliente.DesCiiu),
Iguales = CodigoCiiuSAP.Trim().ToLower() == CodigoCiiuBPM.Trim().ToLower()
});
ObjDiferenciaDatos.Add(new DiferenciaDatosSAPBPM
{
IdSolicitud = int.Parse(Entrada.NumeroSolicitud),
IdCliente = ObjCliente.IdCliente,
CodigoBP = ObjCliente.CodigoBP == null || ObjCliente.CodigoBP == "" ? Entrada.NumeroCliente : ObjCliente.CodigoBP,
IdPropiedad = EnumPropiedadDiferenciaDatosSAPBPM.CodigoCIIU,
ValorSAP = string.Format("{0} - {1}", CodigoCiiuSAP.Trim(), ""),
ValorBPM = string.Format("{0} - {1}", CodigoCiiuBPM.Trim(), ObjCliente.DesCiiu),
Iguales = CodigoCiiuSAP.Trim().ToLower() == CodigoCiiuBPM.Trim().ToLower(),
FechaConsulta = DateTime.Now,
Incidente = ObjSolicitud.Incidente
});
#endregion
#region CorreoElectronico
string CorreoElectronicoSAP = ResultadosSap.CorreoElectronico ?? "";
string CorreoElectronicoBPM = ObjCliente.EmailCliente != null && ObjCliente.EmailCliente.Count > 0 ? ObjCliente.EmailCliente.Where(x => x.IdTipoEmail == 1).Select(x => string.IsNullOrEmpty(x.Email) ? "" : x.Email).FirstOrDefault() : "";
ValorRetorno.ValoresComparativos.Add(new DatosComparativoBPMySAP
{
NombrePropiedad = "Correo Electrónico",
ValorSAP = CorreoElectronicoSAP.Trim(),
ValorBPM = CorreoElectronicoBPM.Trim(),
Iguales = CorreoElectronicoSAP.Trim().ToLower() == CorreoElectronicoBPM.Trim().ToLower()
});
ObjDiferenciaDatos.Add(new DiferenciaDatosSAPBPM
{
IdSolicitud = int.Parse(Entrada.NumeroSolicitud),
IdCliente = ObjCliente.IdCliente,
CodigoBP = ObjCliente.CodigoBP == null || ObjCliente.CodigoBP == "" ? Entrada.NumeroCliente : ObjCliente.CodigoBP,
IdPropiedad = EnumPropiedadDiferenciaDatosSAPBPM.CorreoElectrónico,
ValorSAP = CorreoElectronicoSAP.Trim(),
ValorBPM = CorreoElectronicoBPM.Trim(),
Iguales = CorreoElectronicoSAP.Trim().ToLower() == CorreoElectronicoBPM.Trim().ToLower(),
FechaConsulta = DateTime.Now,
Incidente = ObjSolicitud.Incidente
});
#endregion
new DiferenciaDatosSAPBPMDAL().Insertar(ObjDiferenciaDatos);
ValorRetorno.ValoresIguales = ValorRetorno.ValoresComparativos.Where(e => e.Iguales == false).Count() == 0 ? true : false;
if (ObjCliente.IdClasificacionCliente == 2 && string.IsNullOrEmpty(ObjCliente.CodigoBP))
{
ObjCliente.CodigoBP = Entrada.NumeroCliente;
ConnCliente.InsertarActualizar(ObjCliente);
}
}
catch (Exception ex)
{
logs.Error(ex);
}
finally
{
ConnSap = null;
ConnCliente = null;
ResultadosSap = null;
ObjCliente = null;
}
return ValorRetorno;
}
#endregion
[HttpGet]
public Solicitud ObtenerSolicitud(int IdSolicitud)
{
Solicitud respuesta = new Solicitud();
try
{
respuesta = new SolicitudDAL().Obtener(IdSolicitud);
respuesta.CaratulaCredito = new CaratulaCreditoDAL().ObtenerCaratula(IdSolicitud);
Solicitante Principal= new SolicitanteDAL().ObteneCliente(IdSolicitud);
respuesta.Solicitante.Add(Principal);
}
catch (Exception ex)
{
logs.Error(ex);
}
return respuesta;
}
[HttpPost]
public BaseJson GuardarSolicitud(Solicitud model)
{
BaseJson respuesta = new BaseJson();
try
{
new SolicitudDAL().Actualizar(model);
respuesta.CodigoRespuesta = TipoCodigoRespuesta.EXITOSO.ToString();
}
catch (Exception ex)
{
logs.Error(ex);
respuesta.CodigoRespuesta = TipoCodigoRespuesta.ERROR.ToString();
}
return respuesta;
}
}
#region ResultadoComparativoBPMySAP
public class ResultadoComparativoBPMySAP
{
public string Identificacion { get; set; }
public string ClienteBP { get; set; }
public bool ValoresIguales { set; get; }
public List<DatosComparativoBPMySAP> ValoresComparativos { get; set; }
public ResultadoComparativoBPMySAP()
{
ValoresComparativos = new List<DatosComparativoBPMySAP>();
}
}
#endregion
#region DatosComparativoBPMySAP
public class DatosComparativoBPMySAP
{
public string NombrePropiedad { get; set; }
public string ValorBPM { get; set; }
public string ValorSAP { get; set; }
public bool Iguales { set; get; }
}
#endregion
}