TFS_ANTIGUO/SInCathay/ULA.Cathay.Credito/ControllersWebApi/Global/SAPServicioIntegracionAPIController.cs

571 lines
No EOL
22 KiB
C#

using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web.Http;
using ULA.Cathay.Credito.ServicioSAP;
using ULA.Cathay.CreditoModel.Entidades;
using Ultimus.Utilitarios;
namespace ULA.Cathay.Credito.ControllersWebApi
{
public class SAPServicioIntegracionAPIController : ApiController
{
private UltimusLogs logs = new UltimusLogs("SAPServicioIntegracionAPI");
System.ServiceModel.BasicHttpBinding BindingSAP;
System.ServiceModel.EndpointAddress EndpointSAP;
public SAPServicioIntegracionAPIController()
{
try
{
GlobalAPIController.SetRegionalConfig();
EndpointSAP = new System.ServiceModel.EndpointAddress(new ObtieneParametros().GetValueKeyRegedit("UltimusIntegracionesSAPUrl", false));
BindingSAP = new System.ServiceModel.BasicHttpBinding();
BindingSAP.MaxReceivedMessageSize = int.MaxValue;
BindingSAP.MaxBufferPoolSize = int.MaxValue;
System.ServiceModel.HttpTransportSecurity security = new System.ServiceModel.HttpTransportSecurity();
security.ClientCredentialType = System.ServiceModel.HttpClientCredentialType.None;
BindingSAP.Security.Transport = security;
BindingSAP.OpenTimeout = new TimeSpan(0, 5, 0);
BindingSAP.CloseTimeout = new TimeSpan(0, 5, 0);
BindingSAP.SendTimeout = new TimeSpan(0, 5, 0);
BindingSAP.ReceiveTimeout = new TimeSpan(0, 5, 0);
}
catch (Exception ex)
{
logs.Error(ex);
}
}
#region ConsultaBP
[HttpPost]
public BpResponse ConsultaBP(DatosEntrada Entrada)
{
logs.Trace("Inicia Método: Consulta BP " + Entrada.NumeroCliente + " ID: " + Entrada.Identificacion);
BpResponse Resultados = new BpResponse();
try
{
logs.Trace("Inicia Método: Consulta BP llamada a SAP" + Entrada.NumeroCliente + " ID: " + Entrada.Identificacion);
using (IntegracionesSAPClient Conn = new IntegracionesSAPClient(BindingSAP, EndpointSAP))
Resultados = Conn.ConsultaBP(Entrada.NumeroCliente, Entrada.Identificacion, Entrada.TipoConsulta,Entrada.EsResumen);
logs.Trace("Finaliza ejecución Método: Consulta BP llamada a SAP" + Entrada.NumeroCliente + " ID: " + Entrada.Identificacion);
#region Carga Catalogo Interno
try
{
logs.Trace("Inicia Método: ObtenerMorosidad llamada a BPM");
var ListaMorosidad = new GlobalAPIController().ObtenerMorosidad(Resultados.DiasAtraso);
if (ListaMorosidad != null && ListaMorosidad.Count > 0)
{
Resultados.Morosidad = ListaMorosidad.Select(x => new CatalogoResponse()
{
Codigo = x.codigo,
Descripcion = x.descripcion
}).FirstOrDefault();
}
logs.Trace("Finaliza ejecución Método: ObtenerMorosidad llamada a BPM");
}
catch (Exception ex2)
{
logs.Error(ex2);
}
#endregion
}
catch (Exception ex)
{
logs.Error(ex);
}
finally
{
}
logs.Trace("Finaliza ejecución Método: Consulta BP" + Entrada.NumeroCliente + " ID: " + Entrada.Identificacion);
return Resultados;
}
[HttpPost]
public BpResponse ConsultaNumeroBP(DatosEntrada Entrada)
{
logs.Trace("Inicia Método: ConsultaNumeroBP " + Entrada.NumeroCliente + " ID: " + Entrada.Identificacion);
BpResponse Resultados = new BpResponse();
try
{
logs.Trace("Inicia Método: ConsultaNumeroBP llamada a SAP" + Entrada.NumeroCliente + " ID: " + Entrada.Identificacion);
using (IntegracionesSAPClient Conn = new IntegracionesSAPClient(BindingSAP, EndpointSAP))
Resultados = Conn.ConsultaNumeroBP(Entrada.NumeroCliente, Entrada.Identificacion);
logs.Trace("Finaliza ejecución Método: ConsultaNumeroBP llamada a SAP" + Entrada.NumeroCliente + " ID: " + Entrada.Identificacion);
}
catch (Exception ex)
{
logs.Error(ex);
}
finally
{
}
logs.Trace("Finaliza ejecución Método: ConsultaNumeroBP" + Entrada.NumeroCliente + " ID: " + Entrada.Identificacion);
return Resultados;
}
#endregion
#region ConsultaCapitalAjustado
[HttpPost]
public CapitalAjustadoResponse ConsultaCapitalAjustado()
{
logs.Trace("Inicia Método: ConsultaCapitalAjustado");
CapitalAjustadoResponse Resultados = new CapitalAjustadoResponse();
try
{
logs.Trace("Inicia Método: ConsultaCapitalAjustado llamada a SAP");
using (IntegracionesSAPClient Conn = new IntegracionesSAPClient(BindingSAP, EndpointSAP))
Resultados = Conn.ConsultaCapitalAjustado();
logs.Trace("Finaliza ejecución Método: ConsultaCapitalAjustado llamada a SAP");
logs.Trace("CapitalAjustado " + JsonConvert.SerializeObject(Resultados));
}
catch (Exception ex)
{
logs.Error(ex);
}
finally
{
}
logs.Trace("Finaliza ejecución Método: ConsultaCapitalAjustado");
return Resultados;
}
#endregion
#region ConsultaLinea
[HttpPost]
public LineaResponse ConsultaLinea(DatosEntrada Entrada)
{
logs.Trace("Inicia Método: ConsultaLinea " + Entrada.NumeroLinea);
LineaResponse Resultados = new LineaResponse();
try
{
logs.Trace("Inicia Método: ConsultaLinea llamada a SAP " +Entrada.NumeroLinea);
using (IntegracionesSAPClient Conn = new IntegracionesSAPClient(BindingSAP, EndpointSAP))
Resultados = Conn.ConsultaLinea(Entrada.NumeroLinea);
logs.Trace("Finaliza ejecución Método: ConsultaLinea llamada a SAP " + Entrada.NumeroLinea);
}
catch (Exception ex)
{
logs.Error(ex);
}
finally
{
}
logs.Trace("Finaliza ejecución Método: ConsultaLinea "+ Entrada.NumeroLinea);
return Resultados;
}
#endregion
#region ConsultaLineasCliente
[HttpPost]
public List<Lineas> ConsultaLineasCliente(DatosEntrada Entrada)
{
logs.Trace("Inicia Método: ConsultaLineasCliente " + Entrada.NumeroCliente);
List<Lineas> Resultados = new List<Lineas>();
try
{
logs.Trace("Inicia Método: ConsultaLineasCliente llamada a SAP " + Entrada.NumeroCliente);
using (IntegracionesSAPClient Conn = new IntegracionesSAPClient(BindingSAP, EndpointSAP))
Resultados = Conn.ConsultaLineasCliente(Entrada.NumeroCliente);
logs.Trace("Finaliza ejecución Método: ConsultaLineasCliente llamada a SAP " + Entrada.NumeroCliente);
}
catch (Exception ex)
{
logs.Error(ex);
}
finally
{
}
logs.Trace("Finaliza ejecución Método: ConsultaLineasCliente " + Entrada.NumeroCliente);
return Resultados;
}
#endregion
#region ConsultaMorosidadCCSS
[HttpPost]
public int ConsultaMorosidadCCSS(DatosEntrada Entrada)
{
logs.Trace("Inicia Método: ConsultaMorosidadCCSS " + Entrada.Identificacion);
int Resultados = -1;
try
{
logs.Trace("Inicia Método: ConsultaMorosidadCCSS llamada a SAP " + Entrada.Identificacion);
using (IntegracionesSAPClient Conn = new IntegracionesSAPClient(BindingSAP, EndpointSAP))
Resultados = Conn.ConsultaMorosidadCCSS(Entrada.Identificacion);
logs.Trace("Finaliza ejecución Método: ConsultaMorosidadCCSS llamada a SAP " + Entrada.Identificacion);
}
catch (Exception ex)
{
logs.Error(ex);
}
finally
{
}
logs.Trace("Finaliza ejecución Método: ConsultaMorosidadCCSS " + Entrada.Identificacion);
return Resultados;
}
#endregion
#region ConsultaOperacionesCliente
[HttpPost]
public List<Operaciones> ConsultaOperacionesCliente(DatosEntrada Entrada)
{
logs.Trace("Inicia Método: ConsultaOperacionesCliente " + Entrada.NumeroCliente);
List<Operaciones> Resultados = new List<Operaciones>();
try
{
logs.Trace("Inicia Método: ConsultaOperacionesCliente llamada a SAP " + Entrada.NumeroCliente);
using (IntegracionesSAPClient Conn = new IntegracionesSAPClient(BindingSAP, EndpointSAP))
Resultados = Conn.ConsultaOperacionesCliente(Entrada.NumeroCliente,Entrada.TipoConsulta);
logs.Trace("Finaliza ejecución Método: ConsultaOperacionesCliente llamada a SAP " + Entrada.NumeroCliente);
}
catch (Exception ex)
{
logs.Error(ex);
}
finally
{
}
logs.Trace("Finaliza ejecución Método: ConsultaOperacionesCliente " + Entrada.NumeroCliente);
return Resultados;
}
#endregion
#region ResumenOperacionesCliente
[HttpPost]
public List<Operaciones> ResumenOperacionesCliente(DatosEntrada Entrada)
{
logs.Trace("Inicia Método: ResumenOperacionesCliente " + Entrada.NumeroCliente);
List<Operaciones> Resultados = new List<Operaciones>();
try
{
logs.Trace("Inicia Método: ResumenOperacionesCliente llamada a SAP " + Entrada.NumeroCliente);
using (IntegracionesSAPClient Conn = new IntegracionesSAPClient(BindingSAP, EndpointSAP))
Resultados = Conn.ResumenOperacionesCliente(Entrada.NumeroCliente);
logs.Trace("Finaliza ejecución Método: ResumenOperacionesCliente llamada a SAP " + Entrada.NumeroCliente);
}
catch (Exception ex)
{
logs.Error(ex);
}
finally
{
}
logs.Trace("Finaliza ejecución Método: ResumenOperacionesCliente " + Entrada.NumeroCliente);
return Resultados;
}
#endregion
#region ConsultaRegistroCivil
[HttpPost]
public RegistroCivil ConsultaRegistroCivil(DatosEntrada Entrada)
{
logs.Trace("Inicia Método: ConsultaRegistroCivil " + Entrada.Identificacion);
RegistroCivil Resultados = new RegistroCivil();
try
{
logs.Trace("Inicia Método: ConsultaRegistroCivil llamada a SAP " + Entrada.Identificacion);
using (IntegracionesSAPClient Conn = new IntegracionesSAPClient(BindingSAP, EndpointSAP))
Resultados = Conn.ConsultaRegistroCivil(Entrada.Identificacion);
logs.Trace("Finaliza ejecución Método: ConsultaRegistroCivil llamada a SAP " + Entrada.Identificacion);
}
catch (Exception ex)
{
logs.Error(ex);
}
finally
{
}
logs.Trace("Finaliza ejecución Método: ConsultaRegistroCivil " + Entrada.Identificacion);
return Resultados;
}
#endregion
#region ConsultaRegistroNacional
[HttpPost]
public RegistroNacional ConsultaRegistroNacional(DatosEntrada Entrada)
{
logs.Trace("Inicia Método: ConsultaRegistroNacional " + Entrada.Identificacion);
RegistroNacional Resultados = new RegistroNacional();
try
{
logs.Trace("Inicia Método: ConsultaRegistroNacional llamada a SAP " + Entrada.Identificacion);
using (IntegracionesSAPClient Conn = new IntegracionesSAPClient(BindingSAP, EndpointSAP))
Resultados = Conn.ConsultaRegistroNacional(Entrada.Identificacion);
logs.Trace("Finaliza ejecución Método: ConsultaRegistroNacional llamada a SAP " + Entrada.Identificacion);
}
catch (Exception ex)
{
logs.Error(ex);
}
finally
{
}
logs.Trace("Finaliza ejecución Método: ConsultaRegistroNacional " + Entrada.Identificacion);
return Resultados;
}
#endregion
#region ConsultaSolicitud
[HttpPost]
public SolicitudSAP ConsultaSolicitud(DatosEntrada Entrada)
{
logs.Trace("Inicia Método: ConsultaSolicitud " + Entrada.NumeroSolicitud);
SolicitudSAP Resultados = new SolicitudSAP();
try
{
logs.Trace("Inicia Método: ConsultaSolicitud llamada a SAP " + Entrada.NumeroSolicitud);
using (IntegracionesSAPClient Conn = new IntegracionesSAPClient(BindingSAP, EndpointSAP))
Resultados = Conn.ConsultaSolicitud(Entrada.NumeroSolicitud);
logs.Trace("Finaliza ejecución Método: ConsultaSolicitud llamada a SAP " + Entrada.NumeroSolicitud);
}
catch (Exception ex)
{
logs.Error(ex);
}
finally
{
}
logs.Trace("Finaliza ejecución Método: ConsultaSolicitud " + Entrada.NumeroSolicitud);
return Resultados;
}
#endregion
#region ObtenerCatalogos
[HttpGet]
public List<Catalogo> ObtenerCatalogos(string filtro = null, int id = 0)
{
logs.Trace("Inicia Método: ObtenerCatalogos ");
List<Catalogo> Resultados = new List<Catalogo>();
try
{
logs.Trace("Inicia Método: ObtenerCatalogos llamada a SAP ");
using (IntegracionesSAPClient Conn = new IntegracionesSAPClient(BindingSAP, EndpointSAP))
Resultados = Conn.Catalogos((TiposCatalgo)id);
if (!string.IsNullOrEmpty(filtro))
Resultados = Resultados.Where(x => x.descripcion.ToLower().Contains(filtro.ToLower())).ToList();
logs.Trace("Finaliza ejecución Método: ObtenerCatalogos llamada a SAP ");
}
catch (Exception ex)
{
logs.Error(ex);
}
finally
{
}
logs.Trace("Finaliza ejecución Método: ObtenerCatalogos ");
return Resultados;
}
#endregion
#region ObtenerTipoCambioContable
[HttpPost]
public TipoCambioContable ObtenerTipoCambioContable()
{
logs.Trace("Inicia Método: ObtenerTipoCambioContable ");
TipoCambioContable Resultados = new TipoCambioContable();
try
{
logs.Trace("Inicia Método: ObtenerTipoCambioContable llamada a SAP ");
using (IntegracionesSAPClient Conn = new IntegracionesSAPClient(BindingSAP, EndpointSAP))
Resultados = Conn.ObtenerTipoCambioContable();
logs.Trace("Finaliza ejecución Método: ObtenerTipoCambioContable llamada a SAP ");
logs.Trace(string.Format("El tipo de cambio obtenido es igual a {0}. ", Resultados.TipoCambio));
}
catch (Exception ex)
{
logs.Error(ex);
}
finally
{
}
logs.Trace("Finaliza ejecución Método: ObtenerTipoCambioContable llamada a SAP ");
return Resultados;
}
#endregion
#region ObtenerTasasBase
[HttpPost]
public TasaBase ObtenerTasasBase()
{
logs.Trace("Inicia Método: ObtenerTasasBase ");
TasaBase Resultados = new TasaBase();
try
{
logs.Trace("Inicia Método: ObtenerTasasBase llamada a SAP ");
using (IntegracionesSAPClient Conn = new IntegracionesSAPClient(BindingSAP, EndpointSAP))
Resultados = Conn.ObtenerTasasBase();
logs.Trace("Finaliza ejecución Método: ObtenerTasasBase llamada a SAP ");
logs.Trace(string.Format("La Tasa Base Pasiva obtenida es igual a {0}. La Tasa Base Prime obtenida es igual a {1}.", Resultados.TasaBasePasiva.ToString(), Resultados.TasaBasePrime.ToString()));
}
catch (Exception ex)
{
logs.Error(ex);
}
finally
{
}
logs.Trace("Finaliza ejecución Método: ObtenerTasasBase llamada a SAP ");
return Resultados;
}
#endregion
#region ObtenerCatalogosOperaciones
[HttpGet]
public List<Catalogo> ObtenerCatalogosOperaciones(string filtro = null, string id = null, string id2 = null)
{
logs.Trace("Inicia Método: ObtenerCatalogosOperaciones ");
List<Catalogo> Resultados = new List<Catalogo>();
BpResponse ObjBP = new BpResponse();
DatosEntrada ObjetoEntrada = new DatosEntrada();
try
{
ObjetoEntrada.Identificacion = id;
ObjetoEntrada.NumeroCliente = id2;
ObjetoEntrada.TipoConsulta = EnumOperacionesCliente.Ambas;
ObjBP = ConsultaBP(ObjetoEntrada);
if (ObjBP.Operacion.Count > 0)
Resultados = (from q in ObjBP.Operacion
select new Catalogo()
{
codigo = q.Operacion,
descripcion = q.DescTipoOperacion
}).ToList();
else
{
Catalogo respuesta = new Catalogo();
respuesta.codigo = "00";
respuesta.descripcion = "El servicio de SAP no retorno información ";
Resultados.Add(respuesta);
}
}
catch (Exception ex)
{
Catalogo respuesta = new Catalogo();
respuesta.codigo = "00";
respuesta.descripcion = ex.Message;
Resultados.Add(respuesta);
logs.Error(ex);
return Resultados;
}
finally
{
}
logs.Trace("Finaliza ejecución Método: ObtenerCatalogosOperaciones llamada a SAP ");
return Resultados;
}
#endregion
#region ObtenerUsuariosAprobadores
[HttpGet]
public List<UsuariosAprobadores> ObtenerUsuariosAprobadores()
{
logs.Trace("Inicia Método: ObtenerUsuariosAprobadores ");
List<UsuariosAprobadores> Resultados = new List<UsuariosAprobadores>();
BpResponse ObjBP = new BpResponse();
try
{
logs.Trace("Inicia Método: ObtenerUsuariosAprobadores llamada a SAP ");
using (IntegracionesSAPClient Conn = new IntegracionesSAPClient(BindingSAP, EndpointSAP))
Resultados = Conn.ObtenerUsuariosAprobadores();
logs.Trace("Finaliza ejecución Método: ObtenerUsuariosAprobadores llamada a SAP ");
}
catch (Exception ex)
{
logs.Error(ex);
}
finally
{
}
logs.Trace("Finaliza ejecución Método: ObtenerUsuariosAprobadores llamada a SAP ");
return Resultados;
}
#endregion
#region ObtenerContrato
[HttpGet]
public ConsultaContrato ObtenerContrato(string NumeroOperacion)
{
logs.Trace("Inicia Método: ObtenerContrato " + NumeroOperacion);
ConsultaContrato respuesta = new ConsultaContrato();
BpResponse ObjBP = new BpResponse();
try
{
logs.Trace("Inicia Método: ObtenerContrato llamada a SAP " + NumeroOperacion);
using (IntegracionesSAPClient Conn = new IntegracionesSAPClient(BindingSAP, EndpointSAP))
{
respuesta = Conn.ObtenerContrato(NumeroOperacion);
}
logs.Trace("Finaliza ejecución Método: ObtenerContrato llamada a SAP " + NumeroOperacion);
}
catch (Exception ex)
{
logs.Error(ex);
}
logs.Trace("Finaliza ejecución Método: ObtenerContrato llamada a SAP " + NumeroOperacion);
return respuesta;
}
#endregion
}
public class DatosEntrada
{
public string NumeroCliente { get; set; }
public string Identificacion { get; set; }
public string NumeroLinea { get; set; }
public string NumeroSolicitud { get; set; }
public bool? EsResumen { get; set; }
public int TipoConsulta { get; set; }
}
}