363 lines
No EOL
19 KiB
C#
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
|
|
|
|
|
|
} |