2780 lines
145 KiB
C#
2780 lines
145 KiB
C#
|
|
using System;
|
|||
|
|
using System.Collections.Generic;
|
|||
|
|
using System.Data.Entity.Validation;
|
|||
|
|
using System.Linq;
|
|||
|
|
using System.Web;
|
|||
|
|
using System.Web.Services;
|
|||
|
|
using ULA.Cathay.CreditoModel.Credito;
|
|||
|
|
using ULA.Cathay.CreditoModel.DAL.CorporativoDatosRecientes;
|
|||
|
|
using ULA.Cathay.CreditoModel.DAL.Credito;
|
|||
|
|
using ULA.Cathay.CreditoModel.Entidades;
|
|||
|
|
using Ultimus.Interfaces;
|
|||
|
|
using Ultimus.Interfaces.UltimusIntegration;
|
|||
|
|
using Ultimus.Utilitarios;
|
|||
|
|
using System.Data.Entity;
|
|||
|
|
using Ultimus.Interfaces.UltimusForm;
|
|||
|
|
using ULA.Cathay.WCFMetodosCathay.Library;
|
|||
|
|
using ULA.Cathay.WCFMetodosCathay.App_Code;
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
namespace ULA.Cathay.WCFMetodosCathay
|
|||
|
|
{
|
|||
|
|
/// <summary>
|
|||
|
|
/// Summary description for MetodosCathay
|
|||
|
|
/// </summary>
|
|||
|
|
[WebService(Namespace = "http://tempuri.org/")]
|
|||
|
|
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
|
|||
|
|
[System.ComponentModel.ToolboxItem(false)]
|
|||
|
|
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
|
|||
|
|
// [System.Web.Script.Services.ScriptService]
|
|||
|
|
public class MetodosCathay : System.Web.Services.WebService
|
|||
|
|
{
|
|||
|
|
UltimusLogs log = new UltimusLogs("MetodosCathay");
|
|||
|
|
|
|||
|
|
[WebMethod]
|
|||
|
|
public BaseJson Remueve_IncidentesActivos(string NumeroIndentificacion, int Incidente)
|
|||
|
|
{
|
|||
|
|
IncidentesActivosClienteDAL mIncidentesActivosClienteDAL = new IncidentesActivosClienteDAL();
|
|||
|
|
|
|||
|
|
return mIncidentesActivosClienteDAL.Remover(NumeroIndentificacion, Incidente);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
[WebMethod]
|
|||
|
|
public BaseJson GeneraIncidentes_Formalizacion(int IncidenteCredito)
|
|||
|
|
{
|
|||
|
|
UltimusIntegrationAPIController UltimusIntgration = new UltimusIntegrationAPIController();
|
|||
|
|
BaseJson resp = new BaseJson();
|
|||
|
|
string TaskID = null;
|
|||
|
|
int NumIncidente = 0;
|
|||
|
|
ProcesosDAL ProcesoDal = new ProcesosDAL();
|
|||
|
|
SolicitudDAL SolicitudDal = new SolicitudDAL();
|
|||
|
|
OfertaDAL OfertaDal = new OfertaDAL();
|
|||
|
|
DatosGeneralesFormalizacionDAL DatosGeneralesFormalizacionDal = new DatosGeneralesFormalizacionDAL();
|
|||
|
|
List<NodeVariables> Variables = new List<NodeVariables>();
|
|||
|
|
EtapasDAL EtapasDal = new EtapasDAL();
|
|||
|
|
DatosEntradaCondiciones DatosEntradaRecipientes = new DatosEntradaCondiciones();
|
|||
|
|
EstructuraOrgChartDAL EstructuraOrgChartDal = new EstructuraOrgChartDAL();
|
|||
|
|
EjecutivoDAL EjecutivoDal = new EjecutivoDAL();
|
|||
|
|
DatosAsignacionRecipientes RepAsignacion = new DatosAsignacionRecipientes();
|
|||
|
|
|
|||
|
|
|
|||
|
|
Oferta oferta;
|
|||
|
|
ObtieneParametros ultParametros = new ObtieneParametros();
|
|||
|
|
|
|||
|
|
string UsuarioIniciador = "";
|
|||
|
|
string NombreProcesoCredito = "Credito";
|
|||
|
|
string NombreProcesoFormalizacion = "Formalizacion";
|
|||
|
|
string EtapaInicio = EnumEtapas.FR_Inicio_Formalizacion;
|
|||
|
|
string Etapa_Devuelto_Formalizacion = EnumEtapas.AP_Proceso_Credito;
|
|||
|
|
|
|||
|
|
string summary = "";
|
|||
|
|
string UsuarioAsignado = "";
|
|||
|
|
int CodigoSolicitud = 0;
|
|||
|
|
|
|||
|
|
List<Procesos> ListaProcesos;
|
|||
|
|
List<Etapas> EtapasFormalizacion;
|
|||
|
|
Solicitud solicitud;
|
|||
|
|
ClienteDAL ClienteDal = new ClienteDAL();
|
|||
|
|
Cliente ClientePrincipal;
|
|||
|
|
Ejecutivo FormalizadorUEN;
|
|||
|
|
CaratulaCredito Caratula;
|
|||
|
|
List<OfertaFacilidades> FacilidadesLinea;
|
|||
|
|
List<OfertaFacilidades> FacilidadesEspecifico;
|
|||
|
|
List<DatosGeneralesFormalizacion> TramitesFormalizacionActuales;
|
|||
|
|
DatosGeneralesFormalizacion TramiteActualDevolver;
|
|||
|
|
FormalizacionDocumentosLegalesDAL FormalizacionDocumentosLegalesDal = new FormalizacionDocumentosLegalesDAL();
|
|||
|
|
int? IdCategoria = 0;
|
|||
|
|
List<object> EjecutivoAsistenteServicioRegulatorio = new List<object>();
|
|||
|
|
|
|||
|
|
var modeloGetNodeValueEsquema = new UltimusValoresEsquema();
|
|||
|
|
var nombreVariableEsquema = string.Empty;
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
UsuarioIniciador = ultParametros.GetValueKeyRegedit("UsuarioProcesoUltimus", false);
|
|||
|
|
|
|||
|
|
ListaProcesos = ProcesoDal.Obtener();
|
|||
|
|
|
|||
|
|
NombreProcesoCredito = ListaProcesos.Where(c => c.IdProceso == EnumProcesos.Credito).FirstOrDefault().NombreProceso;
|
|||
|
|
NombreProcesoFormalizacion = ListaProcesos.Where(c => c.IdProceso == EnumProcesos.Formalizacion).FirstOrDefault().NombreProceso;
|
|||
|
|
|
|||
|
|
EtapasFormalizacion = EtapasDal.Obtener(null, EnumProcesos.Formalizacion);
|
|||
|
|
|
|||
|
|
DatosEntradaRecipientes.CodigoProceso = EnumProcesos.Formalizacion;
|
|||
|
|
DatosEntradaRecipientes.CodEvaluacion = 1;
|
|||
|
|
|
|||
|
|
#region OBTIENE TASKID ETAPA INICIO
|
|||
|
|
using (UltimusIntegrationClient UltimusClient = new UltimusIntegrationClient(UltimusIntgration.wSHttpBinding, UltimusIntgration.endpointAddress))
|
|||
|
|
{
|
|||
|
|
string error= string.Empty;
|
|||
|
|
UltimusIncident DataTask = new UltimusIncident();
|
|||
|
|
|
|||
|
|
if (!UltimusClient.GetTaskByFilters(UsuarioIniciador, NombreProcesoFormalizacion, EtapaInicio, 0, out DataTask, out error) || !string.IsNullOrWhiteSpace(error))
|
|||
|
|
throw new Exception("GetTaskByFilters: no se pudo obtener el taskid para generar los incidentes de formalizacion. " + error);
|
|||
|
|
|
|||
|
|
TaskID = DataTask.TaskId;
|
|||
|
|
}
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
solicitud = SolicitudDal.Obtener(IncidenteCredito, NombreProcesoCredito);
|
|||
|
|
|
|||
|
|
if (solicitud == null)
|
|||
|
|
{
|
|||
|
|
resp.CodigoRespuesta = TipoCodigoRespuesta.ADVERTENCIA.ToString();
|
|||
|
|
resp.DescripcionRespuesta = "No se encontró la solicitud";
|
|||
|
|
return resp;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
CodigoSolicitud = solicitud.IdSolicitud;
|
|||
|
|
|
|||
|
|
ClientePrincipal = ClienteDal.ObtenerPrincipal(CodigoSolicitud);
|
|||
|
|
|
|||
|
|
FormalizadorUEN = ClientePrincipal == null ? null : EjecutivoDal.ObtenerEjecutivo(ClientePrincipal.IdEjecutivo);
|
|||
|
|
|
|||
|
|
oferta = OfertaDal.ObtenerOfertaSolicitud(new Oferta { IdSolicitud = CodigoSolicitud });
|
|||
|
|
|
|||
|
|
if (oferta == null || oferta.OfertaFacilidades == null || oferta.OfertaFacilidades.Count == 0)
|
|||
|
|
{
|
|||
|
|
resp.CodigoRespuesta = TipoCodigoRespuesta.ADVERTENCIA.ToString();
|
|||
|
|
resp.DescripcionRespuesta = "No se encontró la oferta y sus facilidades para esta solicitud: " + CodigoSolicitud;
|
|||
|
|
return resp;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
FacilidadesLinea = oferta.OfertaFacilidades.Where(c => c.Eslinea == true && c.Secuencia != 0).ToList();
|
|||
|
|
FacilidadesEspecifico = oferta.OfertaFacilidades.Where(c => c.EsEspecifico == true && c.Secuencia != 0).ToList();
|
|||
|
|
TramitesFormalizacionActuales = DatosGeneralesFormalizacionDal.Obtener_TramitesFormalizacion(CodigoSolicitud);
|
|||
|
|
IdCategoria = oferta.IdTipoCategoria;
|
|||
|
|
Caratula = new CaratulaCreditoDAL().ObtenerCaratula(CodigoSolicitud);
|
|||
|
|
|
|||
|
|
#region SUMMARY Y VARIABLES
|
|||
|
|
|
|||
|
|
Variables.Add(new NodeVariables
|
|||
|
|
{
|
|||
|
|
NodeName = EnumVariblesUltimus.TaskDataGlobalIdSolicitud,
|
|||
|
|
NodeValue = solicitud.IdSolicitud
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
Variables.Add(new NodeVariables
|
|||
|
|
{
|
|||
|
|
NodeName = EnumVariblesUltimus.TaskDataGlobalFormalizacionIncidenteCredito,
|
|||
|
|
NodeValue = IncidenteCredito
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
Variables.Add(new NodeVariables()
|
|||
|
|
{
|
|||
|
|
NodeName = EnumVariblesUltimus.TaskDataGlobalCodigoTipoTramite,
|
|||
|
|
NodeValue = ClientePrincipal.IdTipoTramite
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
Variables.Add(new NodeVariables()
|
|||
|
|
{
|
|||
|
|
NodeName = EnumVariblesUltimus.TaskDataGlobalCodigoCategoria,
|
|||
|
|
NodeValue = oferta.IdTipoCategoria
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
Variables.Add(new NodeVariables
|
|||
|
|
{
|
|||
|
|
NodeName = EnumVariblesUltimus.TaskDataGlobalFormalizacionEsFacilidadEnLinea,
|
|||
|
|
NodeValue = false
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
Variables.Add(new NodeVariables
|
|||
|
|
{
|
|||
|
|
NodeName = EnumVariblesUltimus.TaskDataGlobalFormalizacionEsFacilidadEnEspecifico,
|
|||
|
|
NodeValue = false
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
Variables.Add(new NodeVariables()
|
|||
|
|
{
|
|||
|
|
NodeName = EnumVariblesUltimus.TaskDataGlobalFormalizacionRevCasoRecipienteAsignado,
|
|||
|
|
NodeValue = null
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
Variables.Add(new NodeVariables()
|
|||
|
|
{
|
|||
|
|
NodeName = EnumVariblesUltimus.TaskDataGlobalFormalizacionAsigCasoFormalizadorAsignadoUEN,
|
|||
|
|
NodeValue = false
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
Variables.Add(new NodeVariables()
|
|||
|
|
{
|
|||
|
|
NodeName = EnumVariblesUltimus.TaskDataGlobalFormalizacionAsigCasoRecipienteAsignado,
|
|||
|
|
NodeValue = null
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
Variables.Add(new NodeVariables()
|
|||
|
|
{
|
|||
|
|
NodeName = EnumVariblesUltimus.TaskDataGlobalFormalizacionEsGarantiaReal,
|
|||
|
|
NodeValue = false
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
Variables.Add(new NodeVariables()
|
|||
|
|
{
|
|||
|
|
NodeName = EnumVariblesUltimus.TaskDataGlobalFormalizacionIdFacilidad,
|
|||
|
|
NodeValue = null
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
Variables.Add(new NodeVariables()
|
|||
|
|
{
|
|||
|
|
NodeName = EnumVariblesUltimus.TaskDataGlobalFormalizacionAsigCasoFormalizadorAsignado,
|
|||
|
|
NodeValue = null
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
Variables.Add(new NodeVariables()
|
|||
|
|
{
|
|||
|
|
NodeName = EnumVariblesUltimus.TaskDataGlobalFormalizacionRevDocRecipienteAsignado,
|
|||
|
|
NodeValue = null
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
Variables.Add(new NodeVariables()
|
|||
|
|
{
|
|||
|
|
NodeName = EnumVariblesUltimus.TaskDataGlobalFormalizacionAsigCasoDesembolso,
|
|||
|
|
NodeValue = null
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
Variables.Add(new NodeVariables()
|
|||
|
|
{
|
|||
|
|
NodeName = EnumVariblesUltimus.TaskDataGlobalFormalizacionRevCasoRequiereEvaluacionCoordinador,
|
|||
|
|
NodeValue = false
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
|
|||
|
|
EjecutivoAsistenteServicioRegulatorio.Add(string.Format(EnumOC.UsuarioActiveDirectory, FormalizadorUEN.UserId));
|
|||
|
|
EjecutivoAsistenteServicioRegulatorio.Add(EnumOC.AsistenteServicios);
|
|||
|
|
EjecutivoAsistenteServicioRegulatorio.Add(EnumOC.AsistenteRegulatorio);
|
|||
|
|
|
|||
|
|
Variables.Add(new NodeVariables()
|
|||
|
|
{
|
|||
|
|
NodeName = EnumVariblesUltimus.TaskDataGlobalEjecutivoAsistenteServicioRegulatorio,
|
|||
|
|
NodeValues = EjecutivoAsistenteServicioRegulatorio
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
#region Registra ParametrosReglas
|
|||
|
|
DatosEntradaRecipientes.ListaParametros.Clear();
|
|||
|
|
|
|||
|
|
DatosEntradaRecipientes.ListaParametros.Add(new ParametrosCondiciones
|
|||
|
|
{
|
|||
|
|
NombreParametro = "IdEtapa",
|
|||
|
|
Valor = null
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
DatosEntradaRecipientes.ListaParametros.Add(new ParametrosCondiciones
|
|||
|
|
{
|
|||
|
|
NombreParametro = "EsLinea",
|
|||
|
|
Valor = null
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
DatosEntradaRecipientes.ListaParametros.Add(new ParametrosCondiciones
|
|||
|
|
{
|
|||
|
|
NombreParametro = "TipoCategoria",
|
|||
|
|
Valor = oferta.IdTipoCategoria.ToString()
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
DatosEntradaRecipientes.ListaParametros.Add(new ParametrosCondiciones
|
|||
|
|
{
|
|||
|
|
NombreParametro = "TipoFacilidad",
|
|||
|
|
Valor = null
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
DatosEntradaRecipientes.ListaParametros.Add(new ParametrosCondiciones
|
|||
|
|
{
|
|||
|
|
NombreParametro = "EsGarantiaReal",
|
|||
|
|
Valor = null
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
#region VALIDA TRAMITES EXISTENTES EN DEVOLUCION
|
|||
|
|
|
|||
|
|
var TramiteActual = TramitesFormalizacionActuales != null && TramitesFormalizacionActuales.Count > 0 ?
|
|||
|
|
TramitesFormalizacionActuales.Where(c => c.ActivoDevolucionAprobacion == true && c.IncidenteCompletado != true).FirstOrDefault() : null;
|
|||
|
|
|
|||
|
|
if (TramiteActual != null)
|
|||
|
|
{
|
|||
|
|
bool? EsGarantiaReal = false;
|
|||
|
|
var FacilidadFormalizacion = TramiteActual.FormalizacionTipoFacilidades.Where(x => x.Incident == TramiteActual.Incident).FirstOrDefault();
|
|||
|
|
|
|||
|
|
|
|||
|
|
using (UltimusIntegrationClient UltimusClient = new UltimusIntegrationClient(UltimusIntgration.wSHttpBinding, UltimusIntgration.endpointAddress))
|
|||
|
|
{
|
|||
|
|
UltimusIncident DataTask = new UltimusIncident();
|
|||
|
|
|
|||
|
|
//------------------------------------------------------------------------------------------------------------
|
|||
|
|
|
|||
|
|
#region FACILIDADES EN LINEA
|
|||
|
|
if (FacilidadesLinea != null && FacilidadesLinea.Count > 0)
|
|||
|
|
{
|
|||
|
|
EsGarantiaReal = FacilidadesLinea.Any(c => c.OfertaFacilidadesGarantias.Any(g => g.TipoGarantia == 2) == true);
|
|||
|
|
bool? EsFactoreo = FacilidadesLinea.Any(c => c.IdTipoFacilidad.In(5, 6, 7, 8, 9, 10));
|
|||
|
|
|
|||
|
|
Variables.Where(c => c.NodeName == EnumVariblesUltimus.TaskDataGlobalFormalizacionEsFacilidadEnLinea).First().NodeValue = true;
|
|||
|
|
Variables.Where(c => c.NodeName == EnumVariblesUltimus.TaskDataGlobalFormalizacionEsFacilidadEnEspecifico).First().NodeValue = false;
|
|||
|
|
Variables.Where(c => c.NodeName == EnumVariblesUltimus.TaskDataGlobalFormalizacionEsGarantiaReal).First().NodeValue = EsGarantiaReal;
|
|||
|
|
Variables.Where(c => c.NodeName == EnumVariblesUltimus.TaskDataGlobalFormalizacionIdFacilidad).First().NodeValue = null;
|
|||
|
|
|
|||
|
|
DatosEntradaRecipientes.ListaParametros.Where(c => c.NombreParametro == "EsLinea").First().Valor = "1";
|
|||
|
|
DatosEntradaRecipientes.ListaParametros.Where(c => c.NombreParametro == "TipoFacilidad").First().Valor = null;
|
|||
|
|
DatosEntradaRecipientes.ListaParametros.Where(c => c.NombreParametro == "EsGarantiaReal").First().Valor = EsGarantiaReal.Value ? "1" : "0";
|
|||
|
|
|
|||
|
|
RepAsignacion = AsignarRecipientesFormalizacion(solicitud.IdSolicitud, ClientePrincipal, Variables, DatosEntradaRecipientes);
|
|||
|
|
|
|||
|
|
log.Trace("Metodo: AsignarRecipientes Idsolicitud: " + solicitud.IdSolicitud != null ? solicitud.IdSolicitud.ToString() : "" + " IdCategoria: " + IdCategoria != null ? IdCategoria.ToString() : "" + " IdFacilidad: null EsLinea: true EsGaratiaReal: " + EsGarantiaReal != null ? EsGarantiaReal.ToString() : "" + " Formalizador: " + FormalizadorUEN.FormalizadorAsignado_UserID != null ? FormalizadorUEN.FormalizadorAsignado_UserID : "");
|
|||
|
|
bool FormalizadorOperacionesCredito=false;
|
|||
|
|
AsignarRecipientes(Variables, IdCategoria, null, true, EsGarantiaReal.Value, FormalizadorUEN.FormalizadorAsignado_UserID, EtapasFormalizacion, ClientePrincipal,out FormalizadorOperacionesCredito, solicitud.IdSolicitud, Caratula.IdTipoCambioCondiciones, EsFactoreo);
|
|||
|
|
|
|||
|
|
Variables = RepAsignacion.Variables;
|
|||
|
|
|
|||
|
|
DatosGeneralesFormalizacion Formalizacion = new DatosGeneralesFormalizacion
|
|||
|
|
{
|
|||
|
|
IdSolicitud = CodigoSolicitud,
|
|||
|
|
Incident = TramiteActual.Incident,
|
|||
|
|
IdProceso = EnumProcesos.Formalizacion,
|
|||
|
|
FechaCreacionIncidente = DateTime.Now,
|
|||
|
|
Process = NombreProcesoFormalizacion,
|
|||
|
|
EsEspecifico = false,
|
|||
|
|
EsGarantiaReal = EsGarantiaReal,
|
|||
|
|
IncidenteCompletado = false,
|
|||
|
|
AsigCaso_JobFunctionAsignado = RepAsignacion.AsigCaso_JobFunctionAsignado,
|
|||
|
|
FormalizadorOperacionesCredito= FormalizadorOperacionesCredito
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
DatosGeneralesFormalizacionDal.InsertarActualizar(Formalizacion);
|
|||
|
|
|
|||
|
|
foreach (var facilidad in FacilidadesLinea)
|
|||
|
|
{
|
|||
|
|
UsuarioAsignado = UsuarioIniciador;
|
|||
|
|
DatosGeneralesFormalizacionDal.InsertarActualizar_Facilidad(new FormalizacionTipoFacilidades
|
|||
|
|
{
|
|||
|
|
IdSolicitud = CodigoSolicitud,
|
|||
|
|
IdTipoFacilidad = facilidad.IdTipoFacilidad,
|
|||
|
|
IdSecuenciaFacilidad = facilidad.Secuencia,
|
|||
|
|
IdProceso = EnumProcesos.Formalizacion,
|
|||
|
|
Incident = TramiteActual.Incident,
|
|||
|
|
UsuarioAsignado = UsuarioAsignado
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
#region FACILIDADES EN ESPECIFICO
|
|||
|
|
if (FacilidadesEspecifico != null && FacilidadesEspecifico.Count > 0)
|
|||
|
|
{
|
|||
|
|
var IinfoFacilidadOfertaCredito = FacilidadesEspecifico.Where(x => x.IdSolicitud == TramiteActual.IdSolicitud && x.IdTipoFacilidad == FacilidadFormalizacion.IdTipoFacilidad && x.Secuencia == FacilidadFormalizacion.IdSecuenciaFacilidad).FirstOrDefault();
|
|||
|
|
|
|||
|
|
if (IinfoFacilidadOfertaCredito != null)
|
|||
|
|
{
|
|||
|
|
Variables.Where(c => c.NodeName == EnumVariblesUltimus.TaskDataGlobalFormalizacionEsFacilidadEnLinea).First().NodeValue = false;
|
|||
|
|
Variables.Where(c => c.NodeName == EnumVariblesUltimus.TaskDataGlobalFormalizacionEsFacilidadEnEspecifico).First().NodeValue = true;
|
|||
|
|
|
|||
|
|
DatosEntradaRecipientes.ListaParametros.Where(c => c.NombreParametro == "EsLinea").First().Valor = "0";
|
|||
|
|
EsGarantiaReal = IinfoFacilidadOfertaCredito.OfertaFacilidadesGarantias.Any(g => g.TipoGarantia == 2);
|
|||
|
|
|
|||
|
|
Variables.Where(c => c.NodeName == EnumVariblesUltimus.TaskDataGlobalFormalizacionEsGarantiaReal).First().NodeValue = EsGarantiaReal;
|
|||
|
|
Variables.Where(c => c.NodeName == EnumVariblesUltimus.TaskDataGlobalFormalizacionIdFacilidad).First().NodeValue = IinfoFacilidadOfertaCredito.IdTipoFacilidad;
|
|||
|
|
|
|||
|
|
DatosEntradaRecipientes.ListaParametros.Where(c => c.NombreParametro == "TipoFacilidad").First().Valor = IinfoFacilidadOfertaCredito.IdTipoFacilidad.ToString();
|
|||
|
|
DatosEntradaRecipientes.ListaParametros.Where(c => c.NombreParametro == "EsGarantiaReal").First().Valor = EsGarantiaReal.Value ? "1" : "0";
|
|||
|
|
|
|||
|
|
|
|||
|
|
RepAsignacion = AsignarRecipientesFormalizacion(solicitud.IdSolicitud, ClientePrincipal, Variables, DatosEntradaRecipientes);
|
|||
|
|
log.Trace("Metodo: AsignarRecipientes Idsolicitud: " + solicitud.IdSolicitud != null ? solicitud.IdSolicitud.ToString() : "" + " IdCategoria: " + IdCategoria != null ? IdCategoria.ToString() : "" + " IdFacilidad: " + IinfoFacilidadOfertaCredito.IdTipoFacilidad != null ? IinfoFacilidadOfertaCredito.IdTipoFacilidad.ToString() : "" + " EsLinea: False EsGaratiaReal: " + EsGarantiaReal != null ? EsGarantiaReal.ToString() : "" + " Formalizador: " + FormalizadorUEN.FormalizadorAsignado_UserID != null ? FormalizadorUEN.FormalizadorAsignado_UserID : "");
|
|||
|
|
bool FormalizadorOperacionesCredito = false;
|
|||
|
|
AsignarRecipientes(Variables, IdCategoria, IinfoFacilidadOfertaCredito.IdTipoFacilidad, false, EsGarantiaReal.Value, FormalizadorUEN.FormalizadorAsignado_UserID, EtapasFormalizacion, ClientePrincipal, out FormalizadorOperacionesCredito, solicitud.IdSolicitud);
|
|||
|
|
|
|||
|
|
Variables = RepAsignacion.Variables;
|
|||
|
|
|
|||
|
|
|
|||
|
|
DatosGeneralesFormalizacion Formalizacion = new DatosGeneralesFormalizacion
|
|||
|
|
{
|
|||
|
|
IdSolicitud = CodigoSolicitud,
|
|||
|
|
Incident = TramiteActual.Incident,
|
|||
|
|
IdProceso = EnumProcesos.Formalizacion,
|
|||
|
|
FechaCreacionIncidente = DateTime.Now,
|
|||
|
|
Process = NombreProcesoFormalizacion,
|
|||
|
|
IncidenteCompletado = false,
|
|||
|
|
EsEspecifico = true,
|
|||
|
|
EsGarantiaReal = EsGarantiaReal,
|
|||
|
|
AsigCaso_JobFunctionAsignado = RepAsignacion.AsigCaso_JobFunctionAsignado,
|
|||
|
|
FormalizadorOperacionesCredito =FormalizadorOperacionesCredito
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
DatosGeneralesFormalizacionDal.InsertarActualizar(Formalizacion);
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
UsuarioAsignado = UsuarioIniciador;
|
|||
|
|
DatosGeneralesFormalizacionDal.InsertarActualizar_Facilidad(new FormalizacionTipoFacilidades
|
|||
|
|
{
|
|||
|
|
IdSolicitud = CodigoSolicitud,
|
|||
|
|
IdTipoFacilidad = IinfoFacilidadOfertaCredito.IdTipoFacilidad,
|
|||
|
|
IdSecuenciaFacilidad = IinfoFacilidadOfertaCredito.Secuencia,
|
|||
|
|
IdProceso = EnumProcesos.Formalizacion,
|
|||
|
|
Incident = TramiteActual.Incident,
|
|||
|
|
UsuarioAsignado = UsuarioAsignado
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
//------------------------------------------------------------------------------------------------------------
|
|||
|
|
|
|||
|
|
|
|||
|
|
string error = string.Empty;
|
|||
|
|
|
|||
|
|
if (!UltimusClient.GetTaskByFilters(null, NombreProcesoFormalizacion, Etapa_Devuelto_Formalizacion, TramiteActual.Incident, out DataTask, out error) || !string.IsNullOrEmpty(error))
|
|||
|
|
throw new Exception("GetTaskByFilters: no se pudo obtener el taskid para activar el incidente de Formalizacion. " + error);
|
|||
|
|
|
|||
|
|
//activa el inciente de formalizacion
|
|||
|
|
UltimusIntgration.CompleteTask(DataTask.User, DataTask.TaskId, null, DataTask.Summary, Variables);
|
|||
|
|
|
|||
|
|
|
|||
|
|
DatosGeneralesFormalizacion Formalizaciondatos = new DatosGeneralesFormalizacion();
|
|||
|
|
Formalizaciondatos = DatosGeneralesFormalizacionDal.Obtener(TramiteActual.IdSolicitud, TramiteActual.Incident);
|
|||
|
|
|
|||
|
|
//genera los documentos legales
|
|||
|
|
FormalizacionDocumentosLegalesDal.EliminarDoclegales(TramiteActual.IdSolicitud, TramiteActual.Incident);
|
|||
|
|
FormalizacionDocumentosLegalesDal.GenerarDocumentos(Formalizaciondatos, EnumEtapas.FR_Gen_Doc_Legales);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
TramiteActual.ActivoDevolucionAprobacion = false;
|
|||
|
|
TramiteActual.EnColaDevolucion = false;
|
|||
|
|
DatosGeneralesFormalizacionDal.InsertarActualizar(TramiteActual);
|
|||
|
|
|
|||
|
|
#region VERIFICA SI HAY EN COLA UN TRAMITE
|
|||
|
|
TramitesFormalizacionActuales = DatosGeneralesFormalizacionDal.Obtener_TramitesFormalizacion(CodigoSolicitud);
|
|||
|
|
|
|||
|
|
TramiteActualDevolver = TramitesFormalizacionActuales != null && TramitesFormalizacionActuales.Count > 0 ?
|
|||
|
|
TramitesFormalizacionActuales.Where(c => c.EnColaDevolucion == true).OrderByDescending(c => c.FechaDevolucion).FirstOrDefault() : null;
|
|||
|
|
|
|||
|
|
if (TramiteActualDevolver != null)
|
|||
|
|
DevuelveIncidente_Formalizacion(IncidenteCredito, TramiteActualDevolver.Incident);
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
resp.CodigoRespuesta = TipoCodigoRespuesta.EXITOSO.ToString();
|
|||
|
|
return resp;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (TramitesFormalizacionActuales != null && TramitesFormalizacionActuales.Count > 0)
|
|||
|
|
{
|
|||
|
|
resp.CodigoRespuesta = TipoCodigoRespuesta.ADVERTENCIA.ToString();
|
|||
|
|
resp.DescripcionRespuesta = "Ya existen incidentes creados en el proceso de formalización";
|
|||
|
|
return resp;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
#region SUMMARY
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
#region ARMA SUMMARY
|
|||
|
|
|
|||
|
|
string sNombreCliente = string.Empty;
|
|||
|
|
if (ClientePrincipal != null)
|
|||
|
|
switch (ClientePrincipal.IdTipoCliente)
|
|||
|
|
{
|
|||
|
|
case EnumTipoCliente.Fisico:
|
|||
|
|
sNombreCliente = string.Format("{0} {1}", ClientePrincipal.PrimerNombre.Trim(), ClientePrincipal.PrimerApellido.Trim());
|
|||
|
|
break;
|
|||
|
|
case EnumTipoCliente.Juridico:
|
|||
|
|
sNombreCliente = ClientePrincipal.RazonSocial.Trim();
|
|||
|
|
break;
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
summary = string.Format("{0} | {1} | Sol. #{2} | Ejecutivo: {3} | Categoría: {4}",
|
|||
|
|
ClientePrincipal.NumeroIdentificacion.Trim(),
|
|||
|
|
sNombreCliente,
|
|||
|
|
solicitud.IdSolicitud,
|
|||
|
|
FormalizadorUEN == null ? string.Empty : FormalizadorUEN.Nombre,
|
|||
|
|
oferta.TipoCategoria == null ? string.Empty : oferta.TipoCategoria.Descripcion);
|
|||
|
|
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
#region FACILIDADES EN LINEA
|
|||
|
|
if (FacilidadesLinea != null && FacilidadesLinea.Count > 0)
|
|||
|
|
{
|
|||
|
|
var EsGarantiaReal = FacilidadesLinea.Any(c => c.OfertaFacilidadesGarantias.Any(g => g.TipoGarantia == 2) == true);
|
|||
|
|
bool? EsFactoreo = FacilidadesLinea.Any(c => c.IdTipoFacilidad.In(5, 6, 7, 8, 9, 10));
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
Variables.Where(c => c.NodeName == EnumVariblesUltimus.TaskDataGlobalFormalizacionEsFacilidadEnLinea).First().NodeValue = true;
|
|||
|
|
Variables.Where(c => c.NodeName == EnumVariblesUltimus.TaskDataGlobalFormalizacionEsFacilidadEnEspecifico).First().NodeValue = false;
|
|||
|
|
Variables.Where(c => c.NodeName == EnumVariblesUltimus.TaskDataGlobalFormalizacionEsGarantiaReal).First().NodeValue = EsGarantiaReal;
|
|||
|
|
Variables.Where(c => c.NodeName == EnumVariblesUltimus.TaskDataGlobalFormalizacionIdFacilidad).First().NodeValue = null;
|
|||
|
|
|
|||
|
|
DatosEntradaRecipientes.ListaParametros.Where(c => c.NombreParametro == "EsLinea").First().Valor = "1";
|
|||
|
|
DatosEntradaRecipientes.ListaParametros.Where(c => c.NombreParametro == "TipoFacilidad").First().Valor = null;
|
|||
|
|
DatosEntradaRecipientes.ListaParametros.Where(c => c.NombreParametro == "EsGarantiaReal").First().Valor = EsGarantiaReal ? "1" : "0";
|
|||
|
|
|
|||
|
|
RepAsignacion = AsignarRecipientesFormalizacion(solicitud.IdSolicitud, ClientePrincipal, Variables, DatosEntradaRecipientes);
|
|||
|
|
|
|||
|
|
|
|||
|
|
log.Trace("Metodo: AsignarRecipientes Idsolicitud: " + solicitud.IdSolicitud != null ? solicitud.IdSolicitud.ToString() : "" + " IdCategoria: " + IdCategoria != null ? IdCategoria.ToString() : "" + " IdFacilidad: null EsLinea: true EsGaratiaReal: " + EsGarantiaReal != null ? EsGarantiaReal.ToString() : "" + " Formalizador: " + FormalizadorUEN.FormalizadorAsignado_UserID != null ? FormalizadorUEN.FormalizadorAsignado_UserID : "");
|
|||
|
|
bool FormalizadorOperacionesCredito= false;
|
|||
|
|
AsignarRecipientes(Variables, IdCategoria, null, true, EsGarantiaReal, FormalizadorUEN.FormalizadorAsignado_UserID, EtapasFormalizacion, ClientePrincipal, out FormalizadorOperacionesCredito, solicitud.IdSolicitud, Caratula.IdTipoCambioCondiciones, EsFactoreo);
|
|||
|
|
|
|||
|
|
Variables = RepAsignacion.Variables;
|
|||
|
|
|
|||
|
|
NumIncidente = UltimusIntgration.CompleteTask(UsuarioIniciador, TaskID, null,
|
|||
|
|
string.Format("{0} | {1} ", summary, "Línea"), Variables);
|
|||
|
|
|
|||
|
|
DatosGeneralesFormalizacion Formalizacion = new DatosGeneralesFormalizacion
|
|||
|
|
{
|
|||
|
|
IdSolicitud = CodigoSolicitud,
|
|||
|
|
Incident = NumIncidente,
|
|||
|
|
IdProceso = EnumProcesos.Formalizacion,
|
|||
|
|
FechaCreacionIncidente = DateTime.Now,
|
|||
|
|
Process = NombreProcesoFormalizacion,
|
|||
|
|
EsEspecifico = false,
|
|||
|
|
EsGarantiaReal = EsGarantiaReal,
|
|||
|
|
IncidenteCompletado = false,
|
|||
|
|
AsigCaso_JobFunctionAsignado = RepAsignacion.AsigCaso_JobFunctionAsignado,
|
|||
|
|
FormalizadorOperacionesCredito=FormalizadorOperacionesCredito
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
DatosGeneralesFormalizacionDal.InsertarActualizar(Formalizacion);
|
|||
|
|
|
|||
|
|
foreach (var facilidad in FacilidadesLinea)
|
|||
|
|
{
|
|||
|
|
UsuarioAsignado = UsuarioIniciador;
|
|||
|
|
DatosGeneralesFormalizacionDal.InsertarActualizar_Facilidad(new FormalizacionTipoFacilidades
|
|||
|
|
{
|
|||
|
|
IdSolicitud = CodigoSolicitud,
|
|||
|
|
IdTipoFacilidad = facilidad.IdTipoFacilidad,
|
|||
|
|
IdSecuenciaFacilidad = facilidad.Secuencia,
|
|||
|
|
IdProceso = EnumProcesos.Formalizacion,
|
|||
|
|
Incident = NumIncidente,
|
|||
|
|
UsuarioAsignado = UsuarioAsignado
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
Formalizacion = DatosGeneralesFormalizacionDal.Obtener(Formalizacion.IdSolicitud, Formalizacion.Incident);
|
|||
|
|
|
|||
|
|
//genera los documentos legales
|
|||
|
|
FormalizacionDocumentosLegalesDal.GenerarDocumentos(Formalizacion, EnumEtapas.FR_Gen_Doc_Legales);
|
|||
|
|
|
|||
|
|
#region Correo
|
|||
|
|
|
|||
|
|
|
|||
|
|
#region RECIPIENTE FORMALIZACION SEGUN REGLAS ETAPA: FR_Rev_Info_Caso
|
|||
|
|
if (EsGarantiaReal == true && IdCategoria.In(EnumCategoria.EstudioInicial, EnumCategoria.EstudioSeguimiento))
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
NotificarCorreo(CodigoSolicitud, EtapasFormalizacion, "", null, true, null, true, Formalizacion.Incident);
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
else if (IdCategoria == EnumCategoria.FastTrack && EsGarantiaReal == false)
|
|||
|
|
{
|
|||
|
|
NotificarCorreo(CodigoSolicitud, EtapasFormalizacion, "", null, false, null, true, Formalizacion.Incident);
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
else if (EsGarantiaReal == true)
|
|||
|
|
{
|
|||
|
|
NotificarCorreo(CodigoSolicitud, EtapasFormalizacion, "", null, true, null, true, Formalizacion.Incident);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
#region FACILIDADES EN ESPECIFICO
|
|||
|
|
if (FacilidadesEspecifico != null && FacilidadesEspecifico.Count > 0)
|
|||
|
|
{
|
|||
|
|
Variables.Where(c => c.NodeName == EnumVariblesUltimus.TaskDataGlobalFormalizacionEsFacilidadEnLinea).First().NodeValue = false;
|
|||
|
|
Variables.Where(c => c.NodeName == EnumVariblesUltimus.TaskDataGlobalFormalizacionEsFacilidadEnEspecifico).First().NodeValue = true;
|
|||
|
|
|
|||
|
|
DatosEntradaRecipientes.ListaParametros.Where(c => c.NombreParametro == "EsLinea").First().Valor = "0";
|
|||
|
|
|
|||
|
|
foreach (var facilidad in FacilidadesEspecifico)
|
|||
|
|
{
|
|||
|
|
var EsGarantiaReal = facilidad.OfertaFacilidadesGarantias.Any(g => g.TipoGarantia == 2);
|
|||
|
|
|
|||
|
|
Variables.Where(c => c.NodeName == EnumVariblesUltimus.TaskDataGlobalFormalizacionEsGarantiaReal).First().NodeValue = EsGarantiaReal;
|
|||
|
|
Variables.Where(c => c.NodeName == EnumVariblesUltimus.TaskDataGlobalFormalizacionIdFacilidad).First().NodeValue = facilidad.IdTipoFacilidad;
|
|||
|
|
|
|||
|
|
DatosEntradaRecipientes.ListaParametros.Where(c => c.NombreParametro == "TipoFacilidad").First().Valor = facilidad.IdTipoFacilidad.ToString();
|
|||
|
|
DatosEntradaRecipientes.ListaParametros.Where(c => c.NombreParametro == "EsGarantiaReal").First().Valor = EsGarantiaReal ? "1" : "0";
|
|||
|
|
|
|||
|
|
|
|||
|
|
RepAsignacion = AsignarRecipientesFormalizacion(solicitud.IdSolicitud, ClientePrincipal, Variables, DatosEntradaRecipientes);
|
|||
|
|
log.Trace("Metodo: AsignarRecipientes Idsolicitud: " + solicitud.IdSolicitud != null ? solicitud.IdSolicitud.ToString() : "" + " IdCategoria: " + IdCategoria != null ? IdCategoria.ToString() : "" + " IdFacilidad: " + facilidad.IdTipoFacilidad != null ? facilidad.IdTipoFacilidad.ToString() : "" + " EsLinea: False EsGaratiaReal: " + EsGarantiaReal != null ? EsGarantiaReal.ToString() : "" + " Formalizador: " + FormalizadorUEN.FormalizadorAsignado_UserID != null ? FormalizadorUEN.FormalizadorAsignado_UserID : "");
|
|||
|
|
bool FormalizadorOperacionesCredito= false;
|
|||
|
|
AsignarRecipientes(Variables, IdCategoria, facilidad.IdTipoFacilidad, false, EsGarantiaReal, FormalizadorUEN.FormalizadorAsignado_UserID, EtapasFormalizacion, ClientePrincipal, out FormalizadorOperacionesCredito, solicitud.IdSolicitud);
|
|||
|
|
|
|||
|
|
Variables = RepAsignacion.Variables;
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
NumIncidente = UltimusIntgration.CompleteTask(UsuarioIniciador, TaskID, null,
|
|||
|
|
string.Format("{0} | {1} ", summary, facilidad.TipoFacilidad.Descripcion.Trim()), Variables);
|
|||
|
|
|
|||
|
|
DatosGeneralesFormalizacion Formalizacion = new DatosGeneralesFormalizacion
|
|||
|
|
{
|
|||
|
|
IdSolicitud = CodigoSolicitud,
|
|||
|
|
Incident = NumIncidente,
|
|||
|
|
IdProceso = EnumProcesos.Formalizacion,
|
|||
|
|
FechaCreacionIncidente = DateTime.Now,
|
|||
|
|
Process = NombreProcesoFormalizacion,
|
|||
|
|
IncidenteCompletado = false,
|
|||
|
|
EsEspecifico = true,
|
|||
|
|
EsGarantiaReal = EsGarantiaReal,
|
|||
|
|
AsigCaso_JobFunctionAsignado = RepAsignacion.AsigCaso_JobFunctionAsignado,
|
|||
|
|
FormalizadorOperacionesCredito=FormalizadorOperacionesCredito
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
DatosGeneralesFormalizacionDal.InsertarActualizar(Formalizacion);
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
UsuarioAsignado = UsuarioIniciador;
|
|||
|
|
DatosGeneralesFormalizacionDal.InsertarActualizar_Facilidad(new FormalizacionTipoFacilidades
|
|||
|
|
{
|
|||
|
|
IdSolicitud = CodigoSolicitud,
|
|||
|
|
IdTipoFacilidad = facilidad.IdTipoFacilidad,
|
|||
|
|
IdSecuenciaFacilidad = facilidad.Secuencia,
|
|||
|
|
IdProceso = EnumProcesos.Formalizacion,
|
|||
|
|
Incident = NumIncidente,
|
|||
|
|
UsuarioAsignado = UsuarioAsignado
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
Formalizacion = DatosGeneralesFormalizacionDal.Obtener(Formalizacion.IdSolicitud, Formalizacion.Incident);
|
|||
|
|
//genera los documentos legales
|
|||
|
|
|
|||
|
|
FormalizacionDocumentosLegalesDal.GenerarDocumentos(Formalizacion, EnumEtapas.FR_Gen_Doc_Legales);
|
|||
|
|
|
|||
|
|
#region Correo
|
|||
|
|
|
|||
|
|
|
|||
|
|
#region RECIPIENTE FORMALIZACION SEGUN REGLAS ETAPA: FR_Rev_Info_Caso
|
|||
|
|
if (IdCategoria == EnumCategoria.FastTrack && EsGarantiaReal == false)
|
|||
|
|
{
|
|||
|
|
NotificarCorreo(CodigoSolicitud, EtapasFormalizacion, "", null, false, null, true, Formalizacion.Incident);
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
else if (facilidad.IdTipoFacilidad.In(12, 13, 11))
|
|||
|
|
{
|
|||
|
|
NotificarCorreo(CodigoSolicitud, EtapasFormalizacion, "", null, true, null, true, Formalizacion.Incident);
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
else if (facilidad.IdTipoFacilidad.In(9, 10) && EsGarantiaReal == false)
|
|||
|
|
{
|
|||
|
|
NotificarCorreo(CodigoSolicitud, EtapasFormalizacion, "", null, false, null, true, Formalizacion.Incident);
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
else if (facilidad.IdTipoFacilidad.In(9, 10) && EsGarantiaReal == true)
|
|||
|
|
{
|
|||
|
|
NotificarCorreo(CodigoSolicitud, EtapasFormalizacion, "", null, true, null, true, Formalizacion.Incident);
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
else if (EsGarantiaReal == true)
|
|||
|
|
{
|
|||
|
|
NotificarCorreo(CodigoSolicitud, EtapasFormalizacion, "", null, true, null, true, Formalizacion.Incident);
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
resp.CodigoRespuesta = TipoCodigoRespuesta.EXITOSO.ToString();
|
|||
|
|
}
|
|||
|
|
catch (DbEntityValidationException ex)
|
|||
|
|
{
|
|||
|
|
resp.CodigoRespuesta = TipoCodigoRespuesta.ERROR.ToString();
|
|||
|
|
resp.DescripcionRespuesta = "Error al Generar los incidentes por favor verificar los logs del servicio";
|
|||
|
|
log.Error(ex);
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
resp.CodigoRespuesta = TipoCodigoRespuesta.ERROR.ToString();
|
|||
|
|
resp.DescripcionRespuesta = "Error al Generar los incidentes por favor verificar los logs del servicio";
|
|||
|
|
log.Error(ex);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return resp;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
[WebMethod]
|
|||
|
|
public BaseJson GeneraIncidentes_Seguimiento(int IncidenteCredito)
|
|||
|
|
{
|
|||
|
|
UltimusIntegrationAPIController UltimusIntgration = new UltimusIntegrationAPIController();
|
|||
|
|
BaseJson resp = new BaseJson();
|
|||
|
|
string TaskID = null;
|
|||
|
|
int NumIncidente = 0;
|
|||
|
|
ProcesosDAL ProcesoDal = new ProcesosDAL();
|
|||
|
|
SolicitudDAL SolicitudDal = new SolicitudDAL();
|
|||
|
|
OfertaDAL OfertaDal = new OfertaDAL();
|
|||
|
|
DatosGeneralesFormalizacionDAL DatosGeneralesFormalizacionDal = new DatosGeneralesFormalizacionDAL();
|
|||
|
|
List<NodeVariables> Variables = new List<NodeVariables>();
|
|||
|
|
EtapasDAL EtapasDal = new EtapasDAL();
|
|||
|
|
DatosEntradaCondiciones DatosEntradaRecipientes = new DatosEntradaCondiciones();
|
|||
|
|
EstructuraOrgChartDAL EstructuraOrgChartDal = new EstructuraOrgChartDAL();
|
|||
|
|
EjecutivoDAL EjecutivoDal = new EjecutivoDAL();
|
|||
|
|
ObtieneParametros ultParametros = new ObtieneParametros();
|
|||
|
|
string UsuarioIniciador = "";
|
|||
|
|
string NombreProcesoCredito = "Credito";
|
|||
|
|
string NombreProcesoSeguimiento = "Seguimiento";
|
|||
|
|
string EtapaInicio = EnumEtapas.RE_Seg_Inicio;
|
|||
|
|
string EtapaInicioSeguimientoCondicionesEspeciales = EnumEtapas.RE_Seg_Condiciones_Especiales;
|
|||
|
|
string summary = "";
|
|||
|
|
int CodigoSolicitud = 0;
|
|||
|
|
List<Procesos> ListaProcesos;
|
|||
|
|
List<Etapas> EtapasSeguimiento;
|
|||
|
|
Solicitud solicitud;
|
|||
|
|
ClienteDAL ClienteDal = new ClienteDAL();
|
|||
|
|
CaratulaCreditoDAL CaratulaDal = new CaratulaCreditoDAL();
|
|||
|
|
Cliente ClientePrincipal;
|
|||
|
|
FormalizacionDocumentosLegalesDAL FormalizacionDocumentosLegalesDal = new FormalizacionDocumentosLegalesDAL();
|
|||
|
|
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
UsuarioIniciador = ultParametros.GetValueKeyRegedit("UsuarioProcesoUltimus", false);
|
|||
|
|
ListaProcesos = ProcesoDal.Obtener();
|
|||
|
|
|
|||
|
|
NombreProcesoCredito = ListaProcesos.Where(c => c.IdProceso == EnumProcesos.Credito).FirstOrDefault().NombreProceso;
|
|||
|
|
NombreProcesoSeguimiento = ListaProcesos.Where(c => c.IdProceso == EnumProcesos.Seguimiento).FirstOrDefault().NombreProceso;
|
|||
|
|
|
|||
|
|
EtapasSeguimiento = EtapasDal.Obtener(null, EnumProcesos.Seguimiento);
|
|||
|
|
|
|||
|
|
|
|||
|
|
#region OBTIENE TASKID ETAPA INICIO
|
|||
|
|
using (UltimusIntegrationClient UltimusClient = new UltimusIntegrationClient(UltimusIntgration.wSHttpBinding, UltimusIntgration.endpointAddress))
|
|||
|
|
{
|
|||
|
|
string error = string.Empty;
|
|||
|
|
UltimusIncident DataTask = new UltimusIncident();
|
|||
|
|
if (!UltimusClient.GetTaskByFilters(UsuarioIniciador, NombreProcesoSeguimiento, EtapaInicio, 0, out DataTask, out error) || !string.IsNullOrWhiteSpace(error))
|
|||
|
|
throw new Exception("GetTaskByFilters: no se pudo obtener el taskid para generar los incidentes de seguimiento. " + error);
|
|||
|
|
|
|||
|
|
TaskID = DataTask.TaskId;
|
|||
|
|
}
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
solicitud = SolicitudDal.Obtener(IncidenteCredito, NombreProcesoCredito);
|
|||
|
|
|
|||
|
|
if (solicitud == null)
|
|||
|
|
{
|
|||
|
|
resp.CodigoRespuesta = TipoCodigoRespuesta.ADVERTENCIA.ToString();
|
|||
|
|
resp.DescripcionRespuesta = "No se encontró la solicitud";
|
|||
|
|
return resp;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
CodigoSolicitud = solicitud.IdSolicitud;
|
|||
|
|
|
|||
|
|
ClientePrincipal = ClienteDal.ObtenerPrincipal(CodigoSolicitud);
|
|||
|
|
|
|||
|
|
#region SUMMARY Y VARIABLES
|
|||
|
|
|
|||
|
|
#region ARMA SUMMARY
|
|||
|
|
string sNombreCliente = ClientePrincipal != null ? ClientePrincipal.IdTipoCliente == EnumTipoCliente.Fisico ? string.Format("{0} {1}", ClientePrincipal.PrimerNombre.Trim(), ClientePrincipal.PrimerApellido.Trim()) : ClientePrincipal.RazonSocial.Trim() : string.Empty;
|
|||
|
|
summary = ClientePrincipal != null ? string.Format("{0} | {1} | Sol. #{2}", ClientePrincipal.NumeroIdentificacion.Trim(), sNombreCliente, solicitud.IdSolicitud.ToString()) : string.Empty;
|
|||
|
|
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
ICollection<CaratulaCreditoCondicionesEspeciales> ListaCaratulaCreditoCondicionesEspeciales = CaratulaDal.ObtenerCondicionesEspeciales(solicitud.IdSolicitud);
|
|||
|
|
//ICollection<CaratulaCreditoExcepcionesPolitica> ListaCaratulaCreditoExcepcionesPolitica = CaratulaDal.ObtenerExcepcionesPolitica(solicitud.IdSolicitud);
|
|||
|
|
|
|||
|
|
foreach (CaratulaCreditoCondicionesEspeciales ItemCaratulaCreditoCondicionesEspeciales in ListaCaratulaCreditoCondicionesEspeciales)
|
|||
|
|
{
|
|||
|
|
if (ItemCaratulaCreditoCondicionesEspeciales.IdClasificacion.In(1, 2))
|
|||
|
|
{
|
|||
|
|
DatosGeneralesSeguimientoDAL objConDatosGeneralesSeguimiento = new DatosGeneralesSeguimientoDAL();
|
|||
|
|
CaratulaCreditoCondicionesEspecialesBitacoraDAL objConCCCondicionesEspecialesBitacora = new CaratulaCreditoCondicionesEspecialesBitacoraDAL();
|
|||
|
|
CaratulaCreditoCondicionesEspecialesBitacora objActualCCCondicionesEspecialesBitacora = objConCCCondicionesEspecialesBitacora.ObtenerUltimoRegistro(ItemCaratulaCreditoCondicionesEspeciales.IdSolicitud, ItemCaratulaCreditoCondicionesEspeciales.Secuencia);
|
|||
|
|
|
|||
|
|
if (objActualCCCondicionesEspecialesBitacora == null)
|
|||
|
|
{
|
|||
|
|
List<object> ListaRecipienteSegCondicionesEspeciales = new List<object>
|
|||
|
|
{
|
|||
|
|
string.Format(EnumOC.User, ItemCaratulaCreditoCondicionesEspeciales.ResponsableCumplimiento_UserId)
|
|||
|
|
};
|
|||
|
|
Variables = new List<NodeVariables>
|
|||
|
|
{
|
|||
|
|
new NodeVariables { NodeName = EnumVariblesUltimus.TaskDataGlobalIdSolicitud, NodeValue = solicitud.IdSolicitud },
|
|||
|
|
new NodeVariables { NodeName = EnumVariblesUltimus.TaskDataGlobalIncidenteProcesoPadre, NodeValue = IncidenteCredito },
|
|||
|
|
new NodeVariables { NodeName = EnumVariblesUltimus.TaskDataGlobalIdTipoSeguimiento, NodeValue = 1 },
|
|||
|
|
new NodeVariables { NodeName = EnumVariblesUltimus.TaskDataGlobalCondicionesEspecialesSecuencia, NodeValue = ItemCaratulaCreditoCondicionesEspeciales.Secuencia },
|
|||
|
|
new NodeVariables { NodeName = EnumVariblesUltimus.TaskDataGlobalCondicionesEspecialesRecipienteSegCondicionesEspeciales, NodeValues = ListaRecipienteSegCondicionesEspeciales }
|
|||
|
|
};
|
|||
|
|
NumIncidente = UltimusIntgration.CompleteTask(UsuarioIniciador, TaskID, null, summary, Variables);
|
|||
|
|
|
|||
|
|
#region RegistroDatosGeneralesSeguimiento
|
|||
|
|
BaseJson respRegistroDatosGeneralesSeguimiento = objConDatosGeneralesSeguimiento.InsertarActualizar(new DatosGeneralesSeguimiento()
|
|||
|
|
{
|
|||
|
|
IdSolicitud = ItemCaratulaCreditoCondicionesEspeciales.IdSolicitud,
|
|||
|
|
IdProceso = EnumProcesos.Seguimiento,
|
|||
|
|
Incident = NumIncidente,
|
|||
|
|
Secuencia = ItemCaratulaCreditoCondicionesEspeciales.Secuencia,
|
|||
|
|
IdTipoSeguimiento = EnumTipoSeguimiento.CondicionesEspeciales,
|
|||
|
|
UsuarioCreador = UsuarioIniciador
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
if (respRegistroDatosGeneralesSeguimiento.CodigoRespuesta != TipoCodigoRespuesta.EXITOSO.ToString())
|
|||
|
|
{
|
|||
|
|
throw new Exception(string.Format("Ha ocurrio un problema al intentar registrar el Incidente de Seguimiento para Excepciones Politica(DatosGeneralesSeguimiento) => Solicitud:{0}, Incident:{1}, Secuencia:{2}", ItemCaratulaCreditoCondicionesEspeciales.IdSolicitud, NumIncidente, ItemCaratulaCreditoCondicionesEspeciales.Secuencia));
|
|||
|
|
}
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
#region RegistroCaratulaCreditoCondicionesEspecialesBitacora
|
|||
|
|
BaseJson respRegistroCCCondicionesEspecialesBitacora = objConCCCondicionesEspecialesBitacora.InsertarActualizar(new CaratulaCreditoCondicionesEspecialesBitacora()
|
|||
|
|
{
|
|||
|
|
IdSolicitud = ItemCaratulaCreditoCondicionesEspeciales.IdSolicitud,
|
|||
|
|
IdProceso = EnumProcesos.Seguimiento,
|
|||
|
|
Incident = NumIncidente,
|
|||
|
|
Secuencia = ItemCaratulaCreditoCondicionesEspeciales.Secuencia,
|
|||
|
|
IdTipoSeguimiento = EnumTipoSeguimiento.CondicionesEspeciales,
|
|||
|
|
IdSeguimiento = 0,
|
|||
|
|
IdDecision = null,
|
|||
|
|
Observaciones = null,
|
|||
|
|
Responsable_UserId = null,
|
|||
|
|
Responsable_UserName = null,
|
|||
|
|
FechaCreacion = DateTime.Now,
|
|||
|
|
UsuarioCreador = UsuarioIniciador,
|
|||
|
|
IdEtapa = EtapasSeguimiento.Where(x => x.DescripcionEtapa.Contains(EtapaInicioSeguimientoCondicionesEspeciales)).FirstOrDefault().IdEtapa,
|
|||
|
|
Send = false
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
if (respRegistroCCCondicionesEspecialesBitacora.CodigoRespuesta != TipoCodigoRespuesta.EXITOSO.ToString())
|
|||
|
|
{
|
|||
|
|
throw new Exception(string.Format("Ha ocurrio un problema al intentar registrar el Incidente de Seguimiento para Excepciones Politica => Solicitud:{0}, Incident:{1}, Secuencia:{2}", ItemCaratulaCreditoCondicionesEspeciales.IdSolicitud, NumIncidente, ItemCaratulaCreditoCondicionesEspeciales.Secuencia));
|
|||
|
|
}
|
|||
|
|
#endregion
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
//foreach (CaratulaCreditoExcepcionesPolitica ItemCaratulaCreditoExcepcionesPolitica in ListaCaratulaCreditoExcepcionesPolitica)
|
|||
|
|
//{
|
|||
|
|
// DatosGeneralesSeguimientoDAL objConDatosGeneralesSeguimiento = new DatosGeneralesSeguimientoDAL();
|
|||
|
|
// CaratulaCreditoExcepcionesPoliticaBitacoraDAL objConCCExcepcionesPoliticaBitacora = new CaratulaCreditoExcepcionesPoliticaBitacoraDAL();
|
|||
|
|
|
|||
|
|
// CaratulaCreditoExcepcionesPoliticaBitacora objActualCCExcepcionesPoliticaBitacora = objConCCExcepcionesPoliticaBitacora.ObtenerUltimoRegistro(ItemCaratulaCreditoExcepcionesPolitica.IdSolicitud, ItemCaratulaCreditoExcepcionesPolitica.Secuencia);
|
|||
|
|
|
|||
|
|
// if (objActualCCExcepcionesPoliticaBitacora == null)
|
|||
|
|
// {
|
|||
|
|
// List<object> ListaRecipienteSegExcepcionesPolitica = new List<object>();
|
|||
|
|
// ListaRecipienteSegExcepcionesPolitica.Add(string.Format("USER:org=Business Organization, user={0}", ItemCaratulaCreditoExcepcionesPolitica.ResponsableCumplimiento_UserId));
|
|||
|
|
|
|||
|
|
// Variables = new List<NodeVariables>();
|
|||
|
|
// Variables.Add(new NodeVariables { NodeName = "TaskData.Global.IdSolicitud", NodeValue = solicitud.IdSolicitud });
|
|||
|
|
// Variables.Add(new NodeVariables { NodeName = "TaskData.Global.IncidenteProcesoPadre", NodeValue = IncidenteCredito });
|
|||
|
|
// Variables.Add(new NodeVariables { NodeName = "TaskData.Global.IdTipoSeguimiento", NodeValue = 2 });
|
|||
|
|
// Variables.Add(new NodeVariables { NodeName = "TaskData.Global.ExcepcionesPolitica.Secuencia", NodeValue = ItemCaratulaCreditoExcepcionesPolitica.Secuencia });
|
|||
|
|
// Variables.Add(new NodeVariables { NodeName = "TaskData.Global.ExcepcionesPolitica.RecipienteSegExcepcionesPolitica", NodeValues = ListaRecipienteSegExcepcionesPolitica });
|
|||
|
|
// NumIncidente = UltimusIntgration.CompleteTask(UsuarioIniciador, TaskID, null, summary, Variables);
|
|||
|
|
|
|||
|
|
// #region RegistroDatosGeneralesSeguimiento
|
|||
|
|
// BaseJson respRegistroDatosGeneralesSeguimiento = objConDatosGeneralesSeguimiento.InsertarActualizar(new DatosGeneralesSeguimiento()
|
|||
|
|
// {
|
|||
|
|
// IdSolicitud = ItemCaratulaCreditoExcepcionesPolitica.IdSolicitud,
|
|||
|
|
// IdProceso = (int)EnumProcesos.Seguimiento,
|
|||
|
|
// Incident = NumIncidente,
|
|||
|
|
// Secuencia = ItemCaratulaCreditoExcepcionesPolitica.Secuencia,
|
|||
|
|
// IdTipoSeguimiento = (int)EnumTipoSeguimiento.ExcepcionesPolitica,
|
|||
|
|
// UsuarioCreador = UsuarioIniciador
|
|||
|
|
// });
|
|||
|
|
|
|||
|
|
// if (respRegistroDatosGeneralesSeguimiento.CodigoRespuesta != TipoCodigoRespuesta.EXITOSO.ToString())
|
|||
|
|
// {
|
|||
|
|
// throw new Exception(string.Format("Ha ocurrio un problema al intentar registrar el Incidente de Seguimiento para Excepciones Politica(DatosGeneralesSeguimiento) => Solicitud:{0}, Incident:{1}, Secuencia:{2}", ItemCaratulaCreditoExcepcionesPolitica.IdSolicitud, NumIncidente, ItemCaratulaCreditoExcepcionesPolitica.Secuencia));
|
|||
|
|
// }
|
|||
|
|
// #endregion
|
|||
|
|
|
|||
|
|
// #region RegistroCaratulaCreditoExcepcionesPoliticaBitacora
|
|||
|
|
// BaseJson respRegistroCCExcepcionesPoliticaBitacora = objConCCExcepcionesPoliticaBitacora.InsertarActualizar(new CaratulaCreditoExcepcionesPoliticaBitacora()
|
|||
|
|
// {
|
|||
|
|
// IdSolicitud = ItemCaratulaCreditoExcepcionesPolitica.IdSolicitud,
|
|||
|
|
// IdProceso = (int)EnumProcesos.Seguimiento,
|
|||
|
|
// Incident = NumIncidente,
|
|||
|
|
// Secuencia = ItemCaratulaCreditoExcepcionesPolitica.Secuencia,
|
|||
|
|
// IdTipoSeguimiento = (int)EnumTipoSeguimiento.ExcepcionesPolitica,
|
|||
|
|
// IdSeguimiento = 0,
|
|||
|
|
// IdDecision = null,
|
|||
|
|
// Observaciones = null,
|
|||
|
|
// Responsable_UserId = null,
|
|||
|
|
// Responsable_UserName = null,
|
|||
|
|
// FechaCreacion = DateTime.Now,
|
|||
|
|
// UsuarioCreador = UsuarioIniciador,
|
|||
|
|
// IdEtapa = EtapasSeguimiento.Where(x => x.DescripcionEtapa.Contains(EtapaInicioSeguimientoExcepcionesPolitica)).FirstOrDefault().IdEtapa,
|
|||
|
|
// Send = false
|
|||
|
|
|
|||
|
|
// });
|
|||
|
|
|
|||
|
|
// if (respRegistroCCExcepcionesPoliticaBitacora.CodigoRespuesta != TipoCodigoRespuesta.EXITOSO.ToString())
|
|||
|
|
// {
|
|||
|
|
// throw new Exception(string.Format("Ha ocurrio un problema al intentar registrar el Incidente de Seguimiento para Excepciones Politica(CaratulaCreditoExcepcionesPoliticaBitacora) => Solicitud:{0}, Incident:{1}, Secuencia:{2}", ItemCaratulaCreditoExcepcionesPolitica.IdSolicitud, NumIncidente, ItemCaratulaCreditoExcepcionesPolitica.Secuencia));
|
|||
|
|
// }
|
|||
|
|
// #endregion
|
|||
|
|
// }
|
|||
|
|
//}
|
|||
|
|
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
|
|||
|
|
resp.CodigoRespuesta = TipoCodigoRespuesta.EXITOSO.ToString();
|
|||
|
|
}
|
|||
|
|
catch (DbEntityValidationException ex)
|
|||
|
|
{
|
|||
|
|
resp.CodigoRespuesta = TipoCodigoRespuesta.ERROR.ToString();
|
|||
|
|
resp.DescripcionRespuesta = "Error al Generar los incidentes por favor verificar los logs del servicio";
|
|||
|
|
log.Error(ex);
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
resp.CodigoRespuesta = TipoCodigoRespuesta.ERROR.ToString();
|
|||
|
|
resp.DescripcionRespuesta = "Error al Generar los incidentes por favor verificar los logs del servicio";
|
|||
|
|
log.Error(ex);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return resp;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
[WebMethod]
|
|||
|
|
public BaseJson DevuelveIncidente_Formalizacion(int IncidenteCredito, int IncidenteFormalizacion)
|
|||
|
|
{
|
|||
|
|
UltimusIntegrationAPIController UltimusIntgration = new UltimusIntegrationAPIController();
|
|||
|
|
BaseJson resp = new BaseJson();
|
|||
|
|
|
|||
|
|
SolicitudDAL SolicitudDal = new SolicitudDAL();
|
|||
|
|
DatosGeneralesFormalizacionDAL DatosGeneralesFormalizacionDal = new DatosGeneralesFormalizacionDAL();
|
|||
|
|
ProcesosDAL ProcesoDal = new ProcesosDAL();
|
|||
|
|
|
|||
|
|
|
|||
|
|
string NombreProcesoFormalizacion = "Formalizacion";
|
|||
|
|
string NombreProcesoCredito = "Credito";
|
|||
|
|
string EtapaInicio = "FR_Inicio";
|
|||
|
|
string EtapaFormalizacionCredito = "FR_Proceso_Formalizacion";
|
|||
|
|
int CodigoSolicitud = 0;
|
|||
|
|
List<NodeVariables> Variables = new List<NodeVariables>();
|
|||
|
|
List<Procesos> ListaProcesos;
|
|||
|
|
DatosGeneralesFormalizacion TramiteActual;
|
|||
|
|
List<DatosGeneralesFormalizacion> TramitesFormalizacionActuales;
|
|||
|
|
CaratulaCreditoDAL ConnCaratula = new CaratulaCreditoDAL();
|
|||
|
|
AprobacionesComite AprobacionesComite = new AprobacionesComite();
|
|||
|
|
List<AprobacionesComite> Aprobaciones = new List<AprobacionesComite>();
|
|||
|
|
string User = string.Empty;
|
|||
|
|
string UserFullName = string.Empty;
|
|||
|
|
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
ListaProcesos = ProcesoDal.Obtener();
|
|||
|
|
|
|||
|
|
NombreProcesoCredito = ListaProcesos.Where(c => c.IdProceso == EnumProcesos.Credito).FirstOrDefault().NombreProceso;
|
|||
|
|
NombreProcesoFormalizacion = ListaProcesos.Where(c => c.IdProceso == EnumProcesos.Formalizacion).FirstOrDefault().NombreProceso;
|
|||
|
|
|
|||
|
|
TramiteActual = DatosGeneralesFormalizacionDal.Obtener(null, IncidenteFormalizacion);
|
|||
|
|
TramitesFormalizacionActuales = DatosGeneralesFormalizacionDal.Obtener_TramitesFormalizacion(CodigoSolicitud);
|
|||
|
|
|
|||
|
|
var solicitud = SolicitudDal.Obtener(IncidenteCredito, NombreProcesoCredito);
|
|||
|
|
CodigoSolicitud = solicitud.IdSolicitud;
|
|||
|
|
|
|||
|
|
Variables.Add(new NodeVariables
|
|||
|
|
{
|
|||
|
|
NodeName = "TaskData.Global.Aprobaciones.ProvieneFormalizacion",
|
|||
|
|
NodeValue = true
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
|
|||
|
|
if (TramiteActual != null && solicitud != null)
|
|||
|
|
{
|
|||
|
|
if (!TramitesFormalizacionActuales.Any(c => c.ActivoDevolucionAprobacion == true))
|
|||
|
|
{
|
|||
|
|
//reactiva etapa aprobacion en proceso de credito
|
|||
|
|
using (UltimusIntegrationClient UltimusClient = new UltimusIntegrationClient(UltimusIntgration.wSHttpBinding, UltimusIntgration.endpointAddress))
|
|||
|
|
{
|
|||
|
|
UltimusIncident DataTask = new UltimusIncident();
|
|||
|
|
string error = "";
|
|||
|
|
|
|||
|
|
if (!UltimusClient.GetTaskByFilters(null, NombreProcesoCredito, EtapaFormalizacionCredito, solicitud.Incidente.Value, out DataTask, out error) || !string.IsNullOrEmpty(error))
|
|||
|
|
throw new Exception("GetTaskByFilters: no se pudo obtener el taskid para activar el incidente de Credito. " + error);
|
|||
|
|
|
|||
|
|
//activa el inciente de credito
|
|||
|
|
UltimusIntgration.CompleteTask(DataTask.User, DataTask.TaskId, null, DataTask.Summary, Variables);
|
|||
|
|
User = DataTask.User;
|
|||
|
|
UserFullName = DataTask.UserFullName;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
TramiteActual.ActivoDevolucionAprobacion = true;
|
|||
|
|
TramiteActual.EnColaDevolucion = false;
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
TramiteActual.ActivoDevolucionAprobacion = false;
|
|||
|
|
TramiteActual.EnColaDevolucion = true;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
TramiteActual.FechaDevolucion = DateTime.Now;
|
|||
|
|
|
|||
|
|
DatosGeneralesFormalizacionDal.InsertarActualizar(TramiteActual);
|
|||
|
|
|
|||
|
|
Aprobaciones = ConnCaratula.ObtenerAprobacionesActuales(solicitud.IdSolicitud);
|
|||
|
|
AprobacionesComite.IdSolicitud = solicitud.IdSolicitud;
|
|||
|
|
AprobacionesComite.Orden = Aprobaciones.Max(x => x.Orden) + 1;
|
|||
|
|
AprobacionesComite.Reconsideraciones = Aprobaciones.FirstOrDefault().Reconsideraciones;
|
|||
|
|
AprobacionesComite.Step = "FR_Rev_Info_Caso";
|
|||
|
|
AprobacionesComite.Process = "Formalizacion";
|
|||
|
|
AprobacionesComite.UserName = User;
|
|||
|
|
AprobacionesComite.NombreCompleto = UserFullName;
|
|||
|
|
AprobacionesComite.Incident = IncidenteFormalizacion;
|
|||
|
|
AprobacionesComite.NombreIntancia = "Devolución de Caratula";
|
|||
|
|
AprobacionesComite.Fecha = DateTime.Now;
|
|||
|
|
AprobacionesComite.FechaCreacion = DateTime.Now;
|
|||
|
|
|
|||
|
|
ConnCaratula.ActualizarAprobacionComite(AprobacionesComite);
|
|||
|
|
|
|||
|
|
CaratulaCredito Caratula = ConnCaratula.ObtenerCaratula(solicitud.IdSolicitud);
|
|||
|
|
|
|||
|
|
Caratula.IdEstadoCaratula = null;
|
|||
|
|
Caratula.FechaAprobacion = null;
|
|||
|
|
|
|||
|
|
ConnCaratula.InsertarActualizar(Caratula);
|
|||
|
|
|
|||
|
|
resp.CodigoRespuesta = TipoCodigoRespuesta.EXITOSO.ToString();
|
|||
|
|
return resp;
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
resp.CodigoRespuesta = TipoCodigoRespuesta.ERROR.ToString();
|
|||
|
|
resp.DescripcionRespuesta = "No se encontro la solicitud de credito o el incidente de formalización";
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
catch (DbEntityValidationException ex)
|
|||
|
|
{
|
|||
|
|
resp.CodigoRespuesta = TipoCodigoRespuesta.ERROR.ToString();
|
|||
|
|
resp.DescripcionRespuesta = "Error al Generar los incidentes por favor verificar los logs del servicio";
|
|||
|
|
log.Error(ex);
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
resp.CodigoRespuesta = TipoCodigoRespuesta.ERROR.ToString();
|
|||
|
|
resp.DescripcionRespuesta = "Error al Generar los incidentes por favor verificar los logs del servicio";
|
|||
|
|
log.Error(ex);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return resp;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
[WebMethod]
|
|||
|
|
public BaseJson CompletaIncidente_Formalizacion(int IncidenteCredito, int IncidenteFormalizacion)
|
|||
|
|
{
|
|||
|
|
UltimusIntegrationAPIController UltimusIntgration = new UltimusIntegrationAPIController();
|
|||
|
|
BaseJson resp = new BaseJson();
|
|||
|
|
|
|||
|
|
SolicitudDAL SolicitudDal = new SolicitudDAL();
|
|||
|
|
DatosGeneralesFormalizacionDAL DatosGeneralesFormalizacionDal = new DatosGeneralesFormalizacionDAL();
|
|||
|
|
ProcesosDAL ProcesoDal = new ProcesosDAL();
|
|||
|
|
List<NodeVariables> Variables = new List<NodeVariables>();
|
|||
|
|
|
|||
|
|
|
|||
|
|
string NombreProcesoFormalizacion = "Formalizacion";
|
|||
|
|
string NombreProcesoCredito = "Credito";
|
|||
|
|
string EtapaCredito_Formalizacion = "FR_Proceso_Formalizacion";
|
|||
|
|
int CodigoSolicitud = 0;
|
|||
|
|
|
|||
|
|
List<Procesos> ListaProcesos;
|
|||
|
|
DatosGeneralesFormalizacion TramiteActual;
|
|||
|
|
List<DatosGeneralesFormalizacion> TramitesFormalizacionActuales;
|
|||
|
|
Solicitud solicitud;
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
ListaProcesos = ProcesoDal.Obtener();
|
|||
|
|
NombreProcesoCredito = ListaProcesos.Where(c => c.IdProceso == EnumProcesos.Credito).FirstOrDefault().NombreProceso;
|
|||
|
|
NombreProcesoFormalizacion = ListaProcesos.Where(c => c.IdProceso == EnumProcesos.Formalizacion).FirstOrDefault().NombreProceso;
|
|||
|
|
|
|||
|
|
solicitud = SolicitudDal.Obtener(IncidenteCredito, NombreProcesoCredito);
|
|||
|
|
CodigoSolicitud = solicitud.IdSolicitud;
|
|||
|
|
|
|||
|
|
TramiteActual = DatosGeneralesFormalizacionDal.Obtener(null, IncidenteFormalizacion);
|
|||
|
|
|
|||
|
|
Variables.Add(new NodeVariables
|
|||
|
|
{
|
|||
|
|
NodeName = "TaskData.Global.Finalizar",
|
|||
|
|
NodeValue = true
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
//registra que el inciente fue completado
|
|||
|
|
if (TramiteActual != null && solicitud != null)
|
|||
|
|
{
|
|||
|
|
TramiteActual.IncidenteCompletado = true;
|
|||
|
|
DatosGeneralesFormalizacionDal.InsertarActualizar(TramiteActual);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//carga data actualizada nuevamente
|
|||
|
|
TramitesFormalizacionActuales = DatosGeneralesFormalizacionDal.Obtener_TramitesFormalizacion(CodigoSolicitud);
|
|||
|
|
|
|||
|
|
//valida si todos los incidentes de formalizacion fueron completados, para asi completar incidente de credito
|
|||
|
|
if (TramitesFormalizacionActuales != null && TramitesFormalizacionActuales.Count > 0
|
|||
|
|
&& !TramitesFormalizacionActuales.Where(c => c.IncidenteCompletado != true).Any())
|
|||
|
|
{
|
|||
|
|
using (UltimusIntegrationClient UltimusClient = new UltimusIntegrationClient(UltimusIntgration.wSHttpBinding, UltimusIntgration.endpointAddress))
|
|||
|
|
{
|
|||
|
|
UltimusIncident DataTask = new UltimusIncident();
|
|||
|
|
string error = "";
|
|||
|
|
|
|||
|
|
if (!UltimusClient.GetTaskByFilters(null, NombreProcesoCredito, EtapaCredito_Formalizacion, solicitud.Incidente.Value, out DataTask, out error) || !string.IsNullOrWhiteSpace(error))
|
|||
|
|
throw new Exception("GetTaskByFilters: no se pudo obtener el taskid para completar el incidente de credito. " + error);
|
|||
|
|
|
|||
|
|
//completa el inciente de credito
|
|||
|
|
UltimusIntgration.CompleteTask(DataTask.User, DataTask.TaskId, null, DataTask.Summary, Variables);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
resp.CodigoRespuesta = TipoCodigoRespuesta.EXITOSO.ToString();
|
|||
|
|
}
|
|||
|
|
catch (DbEntityValidationException ex)
|
|||
|
|
{
|
|||
|
|
resp.CodigoRespuesta = TipoCodigoRespuesta.ERROR.ToString();
|
|||
|
|
resp.DescripcionRespuesta = "Error al Generar los incidentes por favor verificar los logs del servicio";
|
|||
|
|
log.Error(ex);
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
resp.CodigoRespuesta = TipoCodigoRespuesta.ERROR.ToString();
|
|||
|
|
resp.DescripcionRespuesta = "Error al Generar los incidentes por favor verificar los logs del servicio";
|
|||
|
|
log.Error(ex);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return resp;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
[WebMethod]
|
|||
|
|
public DatosEntradaCondiciones EvaluarCondiciones(DatosEntradaCondiciones DatosEntrada)
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
MaestroCondicionesProceso MaestroCondiciones;
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
DatosEntrada.EvaluacionCondiciones.Clear();
|
|||
|
|
using (CreditoContex db = new CreditoContex())
|
|||
|
|
{
|
|||
|
|
if (DatosEntrada.ListaParametros == null || DatosEntrada.ListaParametros.Count == 0)
|
|||
|
|
{
|
|||
|
|
DatosEntrada.CodigoRespuesta = TipoCodigoRespuesta.ADVERTENCIA.ToString();
|
|||
|
|
DatosEntrada.DescripcionRespuesta = "Se requiere la lista de párametros";
|
|||
|
|
return DatosEntrada;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
#region BUSCA MAESTRO SEGUN LOS FILTROS
|
|||
|
|
|
|||
|
|
var TipoParametros = db.TipoParametrosCondiciones.AsNoTracking().ToList();
|
|||
|
|
|
|||
|
|
DatosEntrada.ListaParametros = (from l in DatosEntrada.ListaParametros
|
|||
|
|
join tp in TipoParametros on l.NombreParametro equals tp.NombreParametro
|
|||
|
|
select l.UpdateProperties(c => { c.CodTipoDato = tp.CodTipoDato; return c; })
|
|||
|
|
).ToList();
|
|||
|
|
|
|||
|
|
var ParametrosProceso = db.ParametrosGlobalesProceso.AsNoTracking().Include(c => c.TipoParametrosCondiciones)
|
|||
|
|
.Include(c => c.FiltroParametrosGlobalesMaestro).Where(c => c.CodProceso == DatosEntrada.CodigoProceso && c.CodEvaluacion == DatosEntrada.CodEvaluacion).ToList();
|
|||
|
|
|
|||
|
|
var PrimerParametroProceso = ParametrosProceso != null ? ParametrosProceso.FirstOrDefault() : null;
|
|||
|
|
var ParametroActual = PrimerParametroProceso == null ? null : DatosEntrada.ListaParametros.Where(c => c.NombreParametro == PrimerParametroProceso.TipoParametrosCondiciones.NombreParametro).FirstOrDefault();
|
|||
|
|
|
|||
|
|
var ListaMaestros = PrimerParametroProceso == null ? null : PrimerParametroProceso.FiltroParametrosGlobalesMaestro.Where(c => c.Valor == ParametroActual.Valor).Select(c => c.CodMaestro).ToList();
|
|||
|
|
|
|||
|
|
if (ParametrosProceso != null && ParametrosProceso.Count > 1 && ListaMaestros != null && ListaMaestros.Count > 0)
|
|||
|
|
{
|
|||
|
|
var ListaMaestrosExcluidos = new List<int>();
|
|||
|
|
|
|||
|
|
foreach (var item in ParametrosProceso.Where(c => c.CodParametro != PrimerParametroProceso.CodParametro).ToList())
|
|||
|
|
{
|
|||
|
|
ParametroActual = DatosEntrada.ListaParametros.Where(c => c.NombreParametro == item.TipoParametrosCondiciones.NombreParametro).FirstOrDefault();
|
|||
|
|
|
|||
|
|
if (ListaMaestros != null && ListaMaestros.Count > 0)
|
|||
|
|
foreach (var CodMaestro in ListaMaestros)
|
|||
|
|
{
|
|||
|
|
if (!item.FiltroParametrosGlobalesMaestro.Any(c => c.Valor == ParametroActual.Valor && c.CodMaestro == CodMaestro))
|
|||
|
|
ListaMaestrosExcluidos.Add(CodMaestro);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
ListaMaestros = ListaMaestros.Where(c => ListaMaestrosExcluidos.Contains(c) == false).ToList();
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//busca maestro por defecto
|
|||
|
|
if (ListaMaestros == null || ListaMaestros.Count == 0)
|
|||
|
|
{
|
|||
|
|
MaestroCondiciones = db.MaestroCondicionesProceso.AsNoTracking()
|
|||
|
|
.Include("FiltroCondicionesMaestro.TipoCondiciones")
|
|||
|
|
.Include("FiltroCondicionesMaestro.ReglasCondiciones.TipoParametrosCondiciones")
|
|||
|
|
.Where(c => c.Habilitado == true && c.MaestroPorDefecto == true && c.CodProceso == DatosEntrada.CodigoProceso
|
|||
|
|
&& (!c.FechaInicio.HasValue || c.FechaInicio < DateTime.Now)
|
|||
|
|
&& (!c.FechaVencimiento.HasValue || c.FechaVencimiento > DateTime.Now)
|
|||
|
|
).FirstOrDefault();
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
MaestroCondiciones = db.MaestroCondicionesProceso.AsNoTracking()
|
|||
|
|
.Include("FiltroCondicionesMaestro.TipoCondiciones")
|
|||
|
|
.Include("FiltroCondicionesMaestro.ReglasCondiciones.TipoParametrosCondiciones.TipoDatoParametros")
|
|||
|
|
.Where(c => c.Habilitado == true && c.CodMaestro == ListaMaestros.FirstOrDefault() && c.CodProceso == DatosEntrada.CodigoProceso
|
|||
|
|
&& (!c.FechaInicio.HasValue || c.FechaInicio < DateTime.Now)
|
|||
|
|
&& (!c.FechaVencimiento.HasValue || c.FechaVencimiento > DateTime.Now)
|
|||
|
|
).FirstOrDefault();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (MaestroCondiciones == null)
|
|||
|
|
{
|
|||
|
|
DatosEntrada.CodigoRespuesta = TipoCodigoRespuesta.ADVERTENCIA.ToString();
|
|||
|
|
DatosEntrada.DescripcionRespuesta = "No se encontró configuración para la conbinación de párametros";
|
|||
|
|
return DatosEntrada;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
foreach (var condicion in MaestroCondiciones.FiltroCondicionesMaestro)
|
|||
|
|
{
|
|||
|
|
List<string> FormulaRegla = new List<string>();
|
|||
|
|
bool? ResultadoEvaluacion = null;
|
|||
|
|
|
|||
|
|
if (condicion.ReglasCondiciones == null || condicion.ReglasCondiciones.Count == 0)
|
|||
|
|
continue;
|
|||
|
|
|
|||
|
|
foreach (var regla in condicion.ReglasCondiciones)
|
|||
|
|
{
|
|||
|
|
bool EsAprobado = false;
|
|||
|
|
|
|||
|
|
var campo = DatosEntrada.ListaParametros.Where(c => c.NombreParametro == regla.TipoParametrosCondiciones.NombreParametro).FirstOrDefault();
|
|||
|
|
|
|||
|
|
if (campo == null) continue;
|
|||
|
|
|
|||
|
|
#region EVALUA REGLA ACTUAL
|
|||
|
|
switch (regla.OperadorAritmetico.Trim())
|
|||
|
|
{
|
|||
|
|
case "=":
|
|||
|
|
if (campo.CodTipoDato == TiposDatos.Bit && !string.IsNullOrEmpty(campo.Valor))
|
|||
|
|
EsAprobado = campo.Valor == regla.ValorDefecto;
|
|||
|
|
else if (campo.CodTipoDato == TiposDatos.Cadena)
|
|||
|
|
EsAprobado = campo.Valor == regla.ValorDefecto;
|
|||
|
|
else if (campo.CodTipoDato == TiposDatos.Decimal && !string.IsNullOrEmpty(campo.Valor))
|
|||
|
|
EsAprobado = decimal.Parse(campo.Valor) == decimal.Parse(regla.ValorDefecto);
|
|||
|
|
else if (campo.CodTipoDato == TiposDatos.Entero && !string.IsNullOrEmpty(campo.Valor))
|
|||
|
|
EsAprobado = int.Parse(campo.Valor) == int.Parse(regla.ValorDefecto);
|
|||
|
|
break;
|
|||
|
|
case "<":
|
|||
|
|
if (campo.CodTipoDato == TiposDatos.Decimal && !string.IsNullOrEmpty(campo.Valor))
|
|||
|
|
EsAprobado = decimal.Parse(campo.Valor) < decimal.Parse(regla.ValorDefecto);
|
|||
|
|
else if (campo.CodTipoDato == TiposDatos.Entero && !string.IsNullOrEmpty(campo.Valor))
|
|||
|
|
EsAprobado = int.Parse(campo.Valor) < int.Parse(regla.ValorDefecto);
|
|||
|
|
break;
|
|||
|
|
case ">":
|
|||
|
|
if (campo.CodTipoDato == TiposDatos.Decimal && !string.IsNullOrEmpty(campo.Valor))
|
|||
|
|
EsAprobado = decimal.Parse(campo.Valor) > decimal.Parse(regla.ValorDefecto);
|
|||
|
|
else if (campo.CodTipoDato == TiposDatos.Entero && !string.IsNullOrEmpty(campo.Valor))
|
|||
|
|
EsAprobado = int.Parse(campo.Valor) > int.Parse(regla.ValorDefecto);
|
|||
|
|
break;
|
|||
|
|
case "<=":
|
|||
|
|
if (campo.CodTipoDato == TiposDatos.Decimal && !string.IsNullOrEmpty(campo.Valor))
|
|||
|
|
EsAprobado = decimal.Parse(campo.Valor) <= decimal.Parse(regla.ValorDefecto);
|
|||
|
|
else if (campo.CodTipoDato == TiposDatos.Entero && !string.IsNullOrEmpty(campo.Valor))
|
|||
|
|
EsAprobado = int.Parse(campo.Valor) <= int.Parse(regla.ValorDefecto);
|
|||
|
|
break;
|
|||
|
|
case ">=":
|
|||
|
|
if (campo.CodTipoDato == TiposDatos.Decimal && !string.IsNullOrEmpty(campo.Valor))
|
|||
|
|
EsAprobado = decimal.Parse(campo.Valor) >= decimal.Parse(regla.ValorDefecto);
|
|||
|
|
else if (campo.CodTipoDato == TiposDatos.Entero && !string.IsNullOrEmpty(campo.Valor))
|
|||
|
|
EsAprobado = int.Parse(campo.Valor) >= int.Parse(regla.ValorDefecto);
|
|||
|
|
break;
|
|||
|
|
case "!=":
|
|||
|
|
case "<>":
|
|||
|
|
if (campo.CodTipoDato == TiposDatos.Bit && !string.IsNullOrEmpty(campo.Valor))
|
|||
|
|
EsAprobado = bool.Parse(campo.Valor) != bool.Parse(regla.ValorDefecto);
|
|||
|
|
else if (campo.CodTipoDato == TiposDatos.Cadena)
|
|||
|
|
EsAprobado = campo.Valor != regla.ValorDefecto;
|
|||
|
|
else if (campo.CodTipoDato == TiposDatos.Decimal && !string.IsNullOrEmpty(campo.Valor))
|
|||
|
|
EsAprobado = decimal.Parse(campo.Valor) != decimal.Parse(regla.ValorDefecto);
|
|||
|
|
else if (campo.CodTipoDato == TiposDatos.Entero && !string.IsNullOrEmpty(campo.Valor))
|
|||
|
|
EsAprobado = int.Parse(campo.Valor) != int.Parse(regla.ValorDefecto);
|
|||
|
|
break;
|
|||
|
|
default:
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
#region ARMA FORMULA DE LA CONDICION POR CADA REGLA
|
|||
|
|
if (string.IsNullOrWhiteSpace(regla.NombreSubConjunto))//agrega la evaluacion de la regla
|
|||
|
|
{
|
|||
|
|
if (FormulaRegla.Count > 0)
|
|||
|
|
FormulaRegla.Add(string.IsNullOrWhiteSpace(regla.OperadorLogicaParametro) ? "AND" : regla.OperadorLogicaParametro.ToUpper());
|
|||
|
|
|
|||
|
|
FormulaRegla.Add(EsAprobado ? "true" : "false");
|
|||
|
|
}
|
|||
|
|
else//agrega la evaluacion a un grupo nuevo o existente
|
|||
|
|
{
|
|||
|
|
if (FormulaRegla.Contains("GRUPO_" + regla.NombreSubConjunto.ToUpper() + "("))//agrega la evaluacion de la regla a un grupo registrado
|
|||
|
|
{
|
|||
|
|
int IdInicio = FormulaRegla.IndexOf("GRUPO_" + regla.NombreSubConjunto.ToUpper() + "(");
|
|||
|
|
int IdCierre = FormulaRegla.IndexOf(")", IdInicio);
|
|||
|
|
|
|||
|
|
FormulaRegla.Insert(IdCierre, string.IsNullOrWhiteSpace(regla.OperadorLogicaParametro) ? "AND" : regla.OperadorLogicaParametro.ToUpper());
|
|||
|
|
FormulaRegla.Insert(IdCierre + 1, EsAprobado ? "true" : "false");
|
|||
|
|
}
|
|||
|
|
else//registra un nuevo grupo y agrega la evaluacion de la regla
|
|||
|
|
{
|
|||
|
|
if (FormulaRegla.Count > 0)
|
|||
|
|
FormulaRegla.Add(string.IsNullOrWhiteSpace(regla.OperadorLogicoSubConjunto) ? "AND" : regla.OperadorLogicoSubConjunto.ToUpper());
|
|||
|
|
|
|||
|
|
FormulaRegla.Add("GRUPO_" + regla.NombreSubConjunto.ToUpper() + "(");
|
|||
|
|
FormulaRegla.Add(EsAprobado ? "true" : "false");
|
|||
|
|
FormulaRegla.Add(")");
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
}//fin evalua reglas
|
|||
|
|
|
|||
|
|
#region EJECUTA FORMULA DE LA CONDICION
|
|||
|
|
/*EJEMPLOS:
|
|||
|
|
true AND false
|
|||
|
|
true OR false AND false
|
|||
|
|
true AND GRUPO_A(true AND false)
|
|||
|
|
GRUPO_A(true OR false) OR true
|
|||
|
|
GRUPO_A(true OR false) OR GRUPO_B(true AND true)
|
|||
|
|
*/
|
|||
|
|
string grupoActual = null;
|
|||
|
|
string operandoActual = null;
|
|||
|
|
string operandoGrupo = null;
|
|||
|
|
bool? resultadoGrupo = null;
|
|||
|
|
|
|||
|
|
foreach (var item in FormulaRegla)
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
if (item.Trim().ToLower() == "or" || item.Trim().ToLower() == "and")
|
|||
|
|
{
|
|||
|
|
operandoActual = item.Trim().ToLower() == "or" ? "OR" : "AND"; continue;
|
|||
|
|
}
|
|||
|
|
else if (item.Contains("GRUPO_") && string.IsNullOrEmpty(grupoActual))
|
|||
|
|
{
|
|||
|
|
grupoActual = item;
|
|||
|
|
operandoGrupo = operandoActual;
|
|||
|
|
operandoActual = null;
|
|||
|
|
continue;
|
|||
|
|
}
|
|||
|
|
else if (item == ")" && !string.IsNullOrEmpty(grupoActual))
|
|||
|
|
{
|
|||
|
|
if (ResultadoEvaluacion == null)
|
|||
|
|
ResultadoEvaluacion = resultadoGrupo;
|
|||
|
|
else if (operandoGrupo == "OR")
|
|||
|
|
ResultadoEvaluacion = ResultadoEvaluacion.Value || resultadoGrupo.Value;
|
|||
|
|
else//AND
|
|||
|
|
ResultadoEvaluacion = ResultadoEvaluacion.Value && resultadoGrupo.Value;
|
|||
|
|
|
|||
|
|
grupoActual = null;
|
|||
|
|
operandoGrupo = null;
|
|||
|
|
operandoActual = null;
|
|||
|
|
resultadoGrupo = null;
|
|||
|
|
continue;
|
|||
|
|
}
|
|||
|
|
else if (!string.IsNullOrEmpty(grupoActual) && (item == "true" || item == "false"))
|
|||
|
|
{
|
|||
|
|
if (resultadoGrupo == null)
|
|||
|
|
resultadoGrupo = bool.Parse(item);
|
|||
|
|
else if (operandoActual == "OR")
|
|||
|
|
resultadoGrupo = resultadoGrupo.Value || bool.Parse(item);
|
|||
|
|
else//AND
|
|||
|
|
resultadoGrupo = resultadoGrupo.Value && bool.Parse(item);
|
|||
|
|
|
|||
|
|
operandoActual = null;
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
else if (string.IsNullOrEmpty(grupoActual) && (item == "true" || item == "false"))
|
|||
|
|
{
|
|||
|
|
if (ResultadoEvaluacion == null)
|
|||
|
|
ResultadoEvaluacion = bool.Parse(item);
|
|||
|
|
else if (operandoActual == "OR")
|
|||
|
|
ResultadoEvaluacion = ResultadoEvaluacion.Value || bool.Parse(item);
|
|||
|
|
else//AND
|
|||
|
|
ResultadoEvaluacion = ResultadoEvaluacion.Value && bool.Parse(item);
|
|||
|
|
|
|||
|
|
operandoActual = null;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
DatosEntrada.EvaluacionCondiciones.Add(new EvaluacionCondicion
|
|||
|
|
{
|
|||
|
|
Nombre = condicion.TipoCondiciones.NombreCondicion,
|
|||
|
|
Aprobado = ResultadoEvaluacion == true
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
DatosEntrada.CodigoRespuesta = TipoCodigoRespuesta.ERROR.ToString();
|
|||
|
|
DatosEntrada.DescripcionRespuesta = "Error al evaluar condiciones";
|
|||
|
|
log.Error(ex);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return DatosEntrada;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
BaseJson EnviarCorreoAutomatico(CorreosAutomaticosPendientes correo, bool? CordinadorOperacionesCrediticias = null, List<BookmarkCorreoJSON> BookmarkExtra = null, bool? UEN = null, int? IncidenteFormalizacion = null)
|
|||
|
|
{
|
|||
|
|
BaseJson model = new BaseJson();
|
|||
|
|
FiltroCorreoProcesoJSON filtro = new FiltroCorreoProcesoJSON();
|
|||
|
|
EtapasDAL EtapasDal = new EtapasDAL();
|
|||
|
|
SolicitudDAL SolicitudDal = new SolicitudDAL();
|
|||
|
|
UltimusUser UserEmail = null;
|
|||
|
|
ClienteDAL ClienteDal = new ClienteDAL();
|
|||
|
|
string NombreCliente = string.Empty;
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
var solicitud = SolicitudDal.Obtener(correo.IdSolicitud);
|
|||
|
|
var etapa = correo.Etapas;
|
|||
|
|
var ClientePrincipal = ClienteDal.ObtenerPrincipal(correo.IdSolicitud);
|
|||
|
|
ClientePrincipal.BitacoraDocumentosCliente = new BitacoraDocumentosClienteDAL().Obtener(null, ClientePrincipal.IdCliente);
|
|||
|
|
filtro.Proceso = "Credito";
|
|||
|
|
filtro.NombreFiltro = correo.NombreFiltroCorreo;
|
|||
|
|
filtro.CodSolicitud = (long)correo.IdSolicitud;
|
|||
|
|
filtro.Etapa = etapa.DescripcionEtapa;
|
|||
|
|
filtro.Incidente = solicitud.Incident ?? 0;
|
|||
|
|
filtro.UserID = correo.UserID;
|
|||
|
|
filtro.CC = new List<string>();
|
|||
|
|
filtro.Destinatario = new List<string>();
|
|||
|
|
filtro.ListaParametros = new List<ParametrosCorreoJSON>();
|
|||
|
|
filtro.ListaBookmarks = new List<BookmarkCorreoJSON>();
|
|||
|
|
filtro.DocumentosAdjuntos = new List<string>();
|
|||
|
|
|
|||
|
|
|
|||
|
|
UltimusIntegrationAPIController Binding = new UltimusIntegrationAPIController();
|
|||
|
|
using (UltimusIntegrationClient IntegrationClient = new UltimusIntegrationClient(Binding.wSHttpBinding, Binding.endpointAddress))
|
|||
|
|
{
|
|||
|
|
string error = "";
|
|||
|
|
|
|||
|
|
#region FR_Rev_Info_Caso
|
|||
|
|
if (correo.NombreFiltroCorreo == "Formalizacion_Rev_Caso")
|
|||
|
|
{
|
|||
|
|
UserEmail = null;
|
|||
|
|
if (CordinadorOperacionesCrediticias == true)
|
|||
|
|
{
|
|||
|
|
IntegrationClient.GetUserForJobFunction("Business Organization", "Cathay OC", "Coordinador de operaciones crediticias", out UserEmail, out error);
|
|||
|
|
filtro.Destinatario.Add(UserEmail.EmailAddress);
|
|||
|
|
if (UEN == true)
|
|||
|
|
{
|
|||
|
|
UserEmail = null;
|
|||
|
|
IntegrationClient.GetUserForJobFunction("Business Organization", "Cathay OC", "Jefe de Operaciones Crediticias", out UserEmail, out error);
|
|||
|
|
filtro.Destinatario.Add(UserEmail.EmailAddress);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
IntegrationClient.GetUserForJobFunction("Business Organization", "Cathay OC", "Coordinador de descuento de facturas", out UserEmail, out error);
|
|||
|
|
filtro.Destinatario.Add(UserEmail.EmailAddress);
|
|||
|
|
if (UEN == true)
|
|||
|
|
{
|
|||
|
|
UserEmail = null;
|
|||
|
|
IntegrationClient.GetUserForJobFunction("Business Organization", "Cathay OC", "Jefe de Operaciones de Factoreo", out UserEmail, out error);
|
|||
|
|
filtro.Destinatario.Add(UserEmail.EmailAddress);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
if (UserEmail == null)
|
|||
|
|
{
|
|||
|
|
IntegrationClient.GetUserForJobFunction("Business Organization", "Cathay OC", "Coordinador de operaciones crediticias", out UserEmail, out error);
|
|||
|
|
filtro.Destinatario.Add(UserEmail.EmailAddress);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
filtro.ListaBookmarks.Add(new BookmarkCorreoJSON { Nombre = "INCIDENTE", Valor = solicitud.Incidente.HasValue ? solicitud.Incidente.ToString() : "0" });
|
|||
|
|
}
|
|||
|
|
else if (correo.NombreFiltroCorreo == "NotificarCola")
|
|||
|
|
{
|
|||
|
|
if (CordinadorOperacionesCrediticias == true)
|
|||
|
|
{
|
|||
|
|
UserEmail = null;
|
|||
|
|
IntegrationClient.GetUserForJobFunction("Business Organization", "Cathay OC", "Coordinador de operaciones crediticias", out UserEmail, out error);
|
|||
|
|
filtro.Destinatario.Add(UserEmail.EmailAddress);
|
|||
|
|
|
|||
|
|
UserEmail = null;
|
|||
|
|
IntegrationClient.GetUserForJobFunction("Business Organization", "Cathay OC", "Jefe de Operaciones Crediticias", out UserEmail, out error);
|
|||
|
|
filtro.Destinatario.Add(UserEmail.EmailAddress);
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
UserEmail = null;
|
|||
|
|
IntegrationClient.GetUserForJobFunction("Business Organization", "Cathay OC", "Coordinador de descuento de facturas", out UserEmail, out error);
|
|||
|
|
filtro.Destinatario.Add(UserEmail.EmailAddress);
|
|||
|
|
|
|||
|
|
UserEmail = null;
|
|||
|
|
IntegrationClient.GetUserForJobFunction("Business Organization", "Cathay OC", "Jefe de Operaciones de Factoreo", out UserEmail, out error);
|
|||
|
|
filtro.Destinatario.Add(UserEmail.EmailAddress);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
filtro.ListaBookmarks.Add(new BookmarkCorreoJSON { Nombre = "INCIDENTE", Valor = IncidenteFormalizacion.ToString() });
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
switch (ClientePrincipal.IdTipoCliente)
|
|||
|
|
{
|
|||
|
|
case EnumTipoCliente.Fisico:
|
|||
|
|
NombreCliente = string.Format("{0} {1}", ClientePrincipal.PrimerNombre.Trim(), ClientePrincipal.PrimerApellido.Trim());
|
|||
|
|
break;
|
|||
|
|
case EnumTipoCliente.Juridico:
|
|||
|
|
NombreCliente = ClientePrincipal.RazonSocial.Trim();
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
filtro.ListaBookmarks.Add(new BookmarkCorreoJSON { Nombre = "IDSOLICITUD", Valor = solicitud.IdSolicitud.ToString() });
|
|||
|
|
|
|||
|
|
filtro.ListaBookmarks.Add(new BookmarkCorreoJSON { Nombre = "NOMBRECLIENTE", Valor = NombreCliente });
|
|||
|
|
|
|||
|
|
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
if (BookmarkExtra != null && BookmarkExtra.Count > 0)
|
|||
|
|
filtro.ListaBookmarks.AddRange(BookmarkExtra);
|
|||
|
|
|
|||
|
|
#region Adjuntar
|
|||
|
|
|
|||
|
|
if (UEN == true)
|
|||
|
|
{
|
|||
|
|
string rutaCaratula = ClientePrincipal.BitacoraDocumentosCliente.Where(x => x.IdTipoDocumento == 1).FirstOrDefault().RutaFisicaAdjunto;
|
|||
|
|
if (!string.IsNullOrWhiteSpace(rutaCaratula))
|
|||
|
|
filtro.DocumentosAdjuntos.Add(rutaCaratula);
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
using (UltimusFormAPIController InterfaceClient = new UltimusFormAPIController())
|
|||
|
|
filtro = InterfaceClient.EnviarCorreoFiltro(filtro);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
model.CodigoRespuesta = TipoCodigoRespuesta.ERROR.ToString();
|
|||
|
|
log.Error(ex);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return model;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
BaseJson NotificarCorreo(int? IdSolicitud, List<Etapas> EtapasFormalizacion, string UsuarioEmail, bool? JFG = null, bool? CordinadorOperacionesCrediticias = null, bool? UEN = null, bool? cola = null, int? IncidenteFormalizacion = null)
|
|||
|
|
{
|
|||
|
|
BaseJson resp = new BaseJson();
|
|||
|
|
Etapas EtapaActual = new Etapas();
|
|||
|
|
EtapasDAL EtapasDal = new EtapasDAL();
|
|||
|
|
CorreosAutomaticosPendientes DatoCorreo = new CorreosAutomaticosPendientes();
|
|||
|
|
|
|||
|
|
List<BookmarkCorreoJSON> BookmarkExtra = new List<BookmarkCorreoJSON>();
|
|||
|
|
List<RecipienteUltimus> ListaRecipientes = new List<RecipienteUltimus>();
|
|||
|
|
string error = null;
|
|||
|
|
UltimusUser UserEmail = null;
|
|||
|
|
string RecipientesNotificados = string.Empty;
|
|||
|
|
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
string UsuarioIniciador = new ObtieneParametros().GetValueKeyRegedit("UsuarioProcesoUltimus", false);
|
|||
|
|
|
|||
|
|
EtapasFormalizacion = EtapasDal.Obtener(null, EnumProcesos.Formalizacion);
|
|||
|
|
|
|||
|
|
EtapaActual = EtapasFormalizacion.Where(c => c.DescripcionEtapa == EnumEtapas.FR_Rev_Info_Caso).FirstOrDefault();
|
|||
|
|
|
|||
|
|
DatoCorreo.IdSolicitud = Convert.ToInt32(IdSolicitud);
|
|||
|
|
DatoCorreo.UserID = UsuarioIniciador;
|
|||
|
|
DatoCorreo.IdEtapa = EtapaActual.IdEtapa;
|
|||
|
|
DatoCorreo.Etapas = EtapaActual;
|
|||
|
|
DatoCorreo.NombreFiltroCorreo = cola.HasValue ? cola.Value ? "NotificarCola" : "Formalizacion_Rev_Caso" : "Formalizacion_Rev_Caso";
|
|||
|
|
|
|||
|
|
UltimusIntegrationAPIController Binding = new UltimusIntegrationAPIController();
|
|||
|
|
using (UltimusIntegrationClient IntegrationClient = new UltimusIntegrationClient(Binding.wSHttpBinding, Binding.endpointAddress))
|
|||
|
|
{
|
|||
|
|
if (JFG == false)
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
|
|||
|
|
UserEmail = null;
|
|||
|
|
IntegrationClient.GetUserInformation(UsuarioEmail, out UserEmail, out error);
|
|||
|
|
if (UserEmail != null)
|
|||
|
|
RecipientesNotificados = UserEmail.strUserFullName;
|
|||
|
|
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
else if (JFG == true)
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
UserEmail = null;
|
|||
|
|
IntegrationClient.GetUserForJobFunction("Business Organization", "Cathay OC", UsuarioEmail, out UserEmail, out error);
|
|||
|
|
if (UserEmail != null)
|
|||
|
|
RecipientesNotificados = UserEmail.strUserFullName;
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
BookmarkExtra.Add(new BookmarkCorreoJSON
|
|||
|
|
{
|
|||
|
|
Nombre = "FORMALIZADOR",
|
|||
|
|
Valor = RecipientesNotificados
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
|
|||
|
|
if (cola.HasValue && cola.Value)
|
|||
|
|
BookmarkExtra.Add(new BookmarkCorreoJSON
|
|||
|
|
{
|
|||
|
|
Nombre = "ETAPA",
|
|||
|
|
Valor = EtapaActual.DescripcionEtapa
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
EnviarCorreoAutomatico(DatoCorreo, CordinadorOperacionesCrediticias, BookmarkExtra, UEN, IncidenteFormalizacion);
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
resp.CodigoRespuesta = TipoCodigoRespuesta.ERROR.ToString();
|
|||
|
|
log.Error(ex);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return resp;
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
[WebMethod]
|
|||
|
|
public bool EnviarCorreoDocumentacionNoEntregada(int Incidente, string Step)
|
|||
|
|
{
|
|||
|
|
bool respuesta = true;
|
|||
|
|
Solicitud Solicitud = new Solicitud();
|
|||
|
|
Procesos Proceso = new Procesos();
|
|||
|
|
SolicitudDAL SolicitudDAL = new SolicitudDAL();
|
|||
|
|
ProcesosDAL ProcesosDAL = new ProcesosDAL();
|
|||
|
|
Cliente Cliente = new Cliente();
|
|||
|
|
ClienteDAL ClienteDal = new ClienteDAL();
|
|||
|
|
FiltroCorreoProcesoJSON filtro = new FiltroCorreoProcesoJSON();
|
|||
|
|
EtapasDAL EtapasDal = new EtapasDAL();
|
|||
|
|
UltimusUser UserEmail = null;
|
|||
|
|
List<EstructuraOrgChart> ListaEstructuraOC = null;
|
|||
|
|
List<UltimusUser> ListaUserEmail = null;
|
|||
|
|
DetalleRequisitos DetalleRequisitos = new DetalleRequisitos();
|
|||
|
|
DetalleRequisitosDAL DetalleRequisitosDAL = new DetalleRequisitosDAL();
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
Proceso = ProcesosDAL.Obtener(EnumProcesos.Credito);
|
|||
|
|
Solicitud = SolicitudDAL.Obtener(Incidente, Proceso.NombreProceso);
|
|||
|
|
Cliente = ClienteDal.ObtenerPrincipal(Solicitud.IdSolicitud);
|
|||
|
|
DetalleRequisitos = DetalleRequisitosDAL.Obtener(Solicitud.IdSolicitud);
|
|||
|
|
string UsuarioIniciador = new ObtieneParametros().GetValueKeyRegedit("UsuarioProcesoUltimus", false);
|
|||
|
|
if (DetalleRequisitos != null && DetalleRequisitos.DocumentacionEntregada == false)
|
|||
|
|
{
|
|||
|
|
filtro.Proceso = Proceso.NombreProceso;
|
|||
|
|
filtro.NombreFiltro = "TerminarProcesoNotificar";
|
|||
|
|
filtro.CodSolicitud = (long)Solicitud.IdSolicitud;
|
|||
|
|
filtro.Etapa = Step;
|
|||
|
|
filtro.Incidente = Incidente;
|
|||
|
|
|
|||
|
|
filtro.CC = new List<string>();
|
|||
|
|
filtro.Destinatario = new List<string>();
|
|||
|
|
filtro.ListaParametros = new List<ParametrosCorreoJSON>();
|
|||
|
|
filtro.ListaBookmarks = new List<BookmarkCorreoJSON>();
|
|||
|
|
filtro.DocumentosAdjuntos = new List<string>();
|
|||
|
|
filtro.UserID = UsuarioIniciador;
|
|||
|
|
UltimusIntegrationAPIController Binding = new UltimusIntegrationAPIController();
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
using (UltimusIntegrationClient IntegrationClient = new UltimusIntegrationClient(Binding.wSHttpBinding, Binding.endpointAddress))
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
ListaUserEmail = new List<UltimusUser>();
|
|||
|
|
|
|||
|
|
#region Ejecutivo
|
|||
|
|
if (Cliente != null && !string.IsNullOrEmpty(Cliente.Ejecutivo.Correo))
|
|||
|
|
filtro.Destinatario.Add(Cliente.Ejecutivo.Correo);
|
|||
|
|
|
|||
|
|
|
|||
|
|
ListaEstructuraOC = new EstructuraOrgChartDAL().Obtener(EnumRolFuncional.Asistente_Servicios, null);
|
|||
|
|
|
|||
|
|
if (ListaEstructuraOC != null && ListaEstructuraOC.Count > 0)
|
|||
|
|
{
|
|||
|
|
foreach (var lista in ListaEstructuraOC)
|
|||
|
|
{
|
|||
|
|
if (!string.IsNullOrEmpty(lista.Name))
|
|||
|
|
{
|
|||
|
|
ListaUserEmail = ObtenerCorreos(lista.Name, Convert.ToInt32(lista.IdTipoEstructuraOrgChart));
|
|||
|
|
foreach (UltimusUser Email in ListaUserEmail)
|
|||
|
|
{
|
|||
|
|
if (!string.IsNullOrEmpty(Email.EmailAddress))
|
|||
|
|
filtro.Destinatario.Add(Email.EmailAddress);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
if (UserEmail != null)
|
|||
|
|
filtro.Destinatario.Add(UserEmail.EmailAddress);
|
|||
|
|
|
|||
|
|
filtro.ListaBookmarks.Add(new BookmarkCorreoJSON { Nombre = "IDSOLICITUD", Valor = Solicitud.IdSolicitud.ToString() });
|
|||
|
|
filtro.ListaBookmarks.Add(new BookmarkCorreoJSON { Nombre = "INCIDENTE", Valor = Solicitud.Incidente.HasValue ? Solicitud.Incidente.ToString() : "0" });
|
|||
|
|
|
|||
|
|
string NombreCliente = string.Empty;
|
|||
|
|
switch (Cliente.IdTipoCliente)
|
|||
|
|
{
|
|||
|
|
case EnumTipoCliente.Fisico:
|
|||
|
|
NombreCliente = string.Format("{0} {1}", Cliente.PrimerNombre.Trim(), Cliente.PrimerApellido.Trim());
|
|||
|
|
break;
|
|||
|
|
case EnumTipoCliente.Juridico:
|
|||
|
|
NombreCliente = Cliente.RazonSocial.Trim();
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
filtro.ListaBookmarks.Add(new BookmarkCorreoJSON { Nombre = "NOMBRECLIENTE", Valor = NombreCliente });
|
|||
|
|
|
|||
|
|
using (UltimusFormAPIController InterfaceClient = new UltimusFormAPIController())
|
|||
|
|
filtro = InterfaceClient.EnviarCorreoFiltro(filtro);
|
|||
|
|
|
|||
|
|
respuesta = false;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
log.Error(ex);
|
|||
|
|
}
|
|||
|
|
return respuesta;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public List<UltimusUser> ObtenerCorreos(string NameJobFunction, int IdTipoEstructuraOrgChart, string NameGroup = null, string UserName = null)
|
|||
|
|
{
|
|||
|
|
List<UltimusUser> respuesta = new List<UltimusUser>();
|
|||
|
|
UltimusIntegrationAPIController Binding = new UltimusIntegrationAPIController();
|
|||
|
|
UltimusUser UserEmail = null;
|
|||
|
|
|
|||
|
|
string error = null;
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
using (UltimusIntegrationClient IntegrationClient = new UltimusIntegrationClient(Binding.wSHttpBinding, Binding.endpointAddress))
|
|||
|
|
{
|
|||
|
|
switch (IdTipoEstructuraOrgChart)
|
|||
|
|
{
|
|||
|
|
case 1:
|
|||
|
|
IntegrationClient.GetUserForJobFunction("Business Organization", "Cathay OC", NameJobFunction.Trim(), out UserEmail, out error);
|
|||
|
|
if (UserEmail != null)
|
|||
|
|
respuesta.Add(UserEmail);
|
|||
|
|
break;
|
|||
|
|
case 2:
|
|||
|
|
IntegrationClient.GetJobFunctionGroupMembers("Cathay OC", NameJobFunction.Trim(), out respuesta, out error);
|
|||
|
|
break;
|
|||
|
|
case 3:
|
|||
|
|
IntegrationClient.GetGroupUserMembers(NameGroup, out respuesta, out error);
|
|||
|
|
break;
|
|||
|
|
default:
|
|||
|
|
IntegrationClient.GetUserInformation(UserName, out UserEmail, out error);
|
|||
|
|
if (UserEmail != null)
|
|||
|
|
respuesta.Add(UserEmail);
|
|||
|
|
break;
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
log.Error(ex);
|
|||
|
|
throw ex;
|
|||
|
|
}
|
|||
|
|
return respuesta;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
DatosAsignacionRecipientes AsignarRecipientesFormalizacion(int IdSolicitud, Cliente ClientePrincipal, List<NodeVariables> Variables, DatosEntradaCondiciones DatosEntradaRecipientes)
|
|||
|
|
{
|
|||
|
|
DatosAsignacionRecipientes Resp = new DatosAsignacionRecipientes();
|
|||
|
|
Etapas EtapaActual;
|
|||
|
|
EtapasDAL EtapasDal = new EtapasDAL();
|
|||
|
|
EstructuraOrgChartDAL EstructuraOrgChartDal = new EstructuraOrgChartDAL();
|
|||
|
|
EjecutivoDAL EjecutivoDal = new EjecutivoDAL();
|
|||
|
|
List<BookmarkCorreoJSON> BookmarkExtra = new List<BookmarkCorreoJSON>();
|
|||
|
|
List<Etapas> EtapasFormalizacion = null;
|
|||
|
|
Ejecutivo FormalizadorUEN = null;
|
|||
|
|
string UsuarioIniciador = new ObtieneParametros().GetValueKeyRegedit("UsuarioProcesoUltimus", false);
|
|||
|
|
CorreosAutomaticosPendientes DatoCorreo = new CorreosAutomaticosPendientes();
|
|||
|
|
List<RecipienteUltimus> ListaRecipientes = new List<RecipienteUltimus>();
|
|||
|
|
string recipiente_asignado = null;
|
|||
|
|
FormalizadorUEN = EjecutivoDal.ObtenerEjecutivo(ClientePrincipal.IdEjecutivo);
|
|||
|
|
EtapasFormalizacion = EtapasDal.Obtener(null, EnumProcesos.Formalizacion);
|
|||
|
|
|
|||
|
|
|
|||
|
|
//DATOS DE CORREO CONSTANTES
|
|||
|
|
DatoCorreo.IdSolicitud = IdSolicitud;
|
|||
|
|
DatoCorreo.UserID = UsuarioIniciador;
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
#region RECIPIENTE FORMALIZACION SEGUN OFERTA Y FACILIDAD ETAPA: FR_Asig_Caso
|
|||
|
|
ListaRecipientes.Clear();
|
|||
|
|
EtapaActual = EtapasFormalizacion.Where(c => c.DescripcionEtapa == EnumEtapas.FR_Asig_Caso).FirstOrDefault();
|
|||
|
|
DatosEntradaRecipientes.ListaParametros.Where(c => c.NombreParametro == "IdEtapa").First().Valor = EtapaActual == null ? "0" : EtapaActual.IdEtapa.ToString();
|
|||
|
|
|
|||
|
|
recipiente_asignado = string.Empty;
|
|||
|
|
|
|||
|
|
DatosEntradaRecipientes = EvaluarCondiciones(DatosEntradaRecipientes);
|
|||
|
|
|
|||
|
|
Variables.Where(c => c.NodeName == EnumVariblesUltimus.TaskDataGlobalFormalizacionAsigCasoFormalizadorAsignadoUEN).First().NodeValue = false;
|
|||
|
|
|
|||
|
|
if (DatosEntradaRecipientes.EvaluacionCondiciones != null && DatosEntradaRecipientes.EvaluacionCondiciones.Count > 0
|
|||
|
|
&& DatosEntradaRecipientes.EvaluacionCondiciones.Any(c => c.Aprobado == true))
|
|||
|
|
{
|
|||
|
|
foreach (var item in DatosEntradaRecipientes.EvaluacionCondiciones.Where(c => c.Aprobado == true).ToList())
|
|||
|
|
{
|
|||
|
|
ListaRecipientes.Add(new RecipienteUltimus
|
|||
|
|
{
|
|||
|
|
Nombre = item.Nombre,
|
|||
|
|
SintaxisRecipiente = EstructuraOrgChartDal.ObtenerSintaxisUltimus(item.Nombre)
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
recipiente_asignado = string.Join(";", ListaRecipientes.Select(c => c.SintaxisRecipiente).ToArray());
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//si ninguna regla se cumplio asigna el formalizador UEN
|
|||
|
|
if (string.IsNullOrEmpty(recipiente_asignado) && FormalizadorUEN != null)
|
|||
|
|
{
|
|||
|
|
recipiente_asignado = "USER:org=Business Organization,user=" + FormalizadorUEN.FormalizadorAsignado_UserID;
|
|||
|
|
Variables.Where(c => c.NodeName == EnumVariblesUltimus.TaskDataGlobalFormalizacionAsigCasoFormalizadorAsignadoUEN).First().NodeValue = true;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
Variables.Where(c => c.NodeName == EnumVariblesUltimus.TaskDataGlobalFormalizacionAsigCasoRecipienteAsignado).First().NodeValue = recipiente_asignado;
|
|||
|
|
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
#region RECIPIENTE FORMALIZACION SEGUN OFERTA Y FACILIDAD ETAPA: FR_Inclu_Sol_Sistem_Transac
|
|||
|
|
EtapaActual = EtapasFormalizacion.Where(c => c.DescripcionEtapa == EnumEtapas.FR_Inclu_Sol_Sistem_Transac).FirstOrDefault();
|
|||
|
|
DatosEntradaRecipientes.ListaParametros.Where(c => c.NombreParametro == "IdEtapa").First().Valor = EtapaActual == null ? "0" : EtapaActual.IdEtapa.ToString();
|
|||
|
|
|
|||
|
|
recipiente_asignado = string.Empty;
|
|||
|
|
|
|||
|
|
ListaRecipientes.Clear();
|
|||
|
|
DatosEntradaRecipientes = EvaluarCondiciones(DatosEntradaRecipientes);
|
|||
|
|
|
|||
|
|
if (DatosEntradaRecipientes.EvaluacionCondiciones != null && DatosEntradaRecipientes.EvaluacionCondiciones.Count > 0
|
|||
|
|
&& DatosEntradaRecipientes.EvaluacionCondiciones.Any(c => c.Aprobado == true))
|
|||
|
|
{
|
|||
|
|
foreach (var item in DatosEntradaRecipientes.EvaluacionCondiciones.Where(c => c.Aprobado == true).ToList())
|
|||
|
|
{
|
|||
|
|
ListaRecipientes.Add(new RecipienteUltimus
|
|||
|
|
{
|
|||
|
|
Nombre = item.Nombre,
|
|||
|
|
SintaxisRecipiente = EstructuraOrgChartDal.ObtenerSintaxisUltimus(item.Nombre)
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
recipiente_asignado = string.Join(";", ListaRecipientes.Select(c => c.SintaxisRecipiente).ToArray());
|
|||
|
|
|
|||
|
|
Resp.AsigCaso_JobFunctionAsignado = ListaRecipientes.FirstOrDefault().Nombre;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//si ninguna regla se cumplio asigna el Formalizador de operaciones crediticias
|
|||
|
|
if (string.IsNullOrEmpty(recipiente_asignado))
|
|||
|
|
{
|
|||
|
|
recipiente_asignado = EstructuraOrgChartDal.ObtenerSintaxisUltimus("Formalizador de operaciones crediticias");
|
|||
|
|
Resp.AsigCaso_JobFunctionAsignado = "Formalizador de operaciones crediticias";
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
Variables.Where(c => c.NodeName == EnumVariblesUltimus.TaskDataGlobalFormalizacionAsigCasoFormalizadorAsignado).First().NodeValue = recipiente_asignado;
|
|||
|
|
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
Resp.Variables = Variables;
|
|||
|
|
|
|||
|
|
return Resp;
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public void AsignarRecipientes(List<NodeVariables> Variables, int? IdCategoria, int? IdFacilidad, bool EsLinea, bool EsGaratiaReal, string Formalizador, List<Etapas> EtapasFormalizacion, Cliente ClientePrincipal, out bool FormalizadorOperacionesCredito, int? IdSolicitud = null, int? IdTipoCambioCondiciones = null, bool? EsFactoreo = null)
|
|||
|
|
{
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
bool UEN = false;
|
|||
|
|
FormalizadorOperacionesCredito = false;
|
|||
|
|
#region RECIPIENTE FORMALIZACION SEGUN REGLAS ETAPA: FR_Rev_Info_Caso
|
|||
|
|
|
|||
|
|
if (ClientePrincipal.IdTipoTramite != EnumTipoTramite.CambioCondiciones)
|
|||
|
|
{
|
|||
|
|
if (EsGaratiaReal == true && EsLinea == true && IdCategoria.In(EnumCategoria.EstudioInicial, EnumCategoria.EstudioSeguimiento))
|
|||
|
|
{
|
|||
|
|
Variables.Add(new NodeVariables()
|
|||
|
|
{
|
|||
|
|
NodeName = EnumVariblesUltimus.TaskDataGlobalFormalizacionRevCasoRecipienteAsignado,
|
|||
|
|
NodeValue = EnumOC.AsigJefeCoordinadorOperacionesCrediticiasQUEUE
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
else if (EsGaratiaReal == false && EsLinea == true && IdCategoria.In(EnumCategoria.EstudioInicial, EnumCategoria.EstudioSeguimiento))
|
|||
|
|
{
|
|||
|
|
UEN = true;
|
|||
|
|
Variables.Add(new NodeVariables()
|
|||
|
|
{
|
|||
|
|
NodeName = EnumVariblesUltimus.TaskDataGlobalFormalizacionRevCasoRecipienteAsignado,
|
|||
|
|
NodeValue = string.Format(EnumOC.User , Formalizador)
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
|
|||
|
|
Variables.Add(new NodeVariables()
|
|||
|
|
{
|
|||
|
|
NodeName = EnumVariblesUltimus.TaskDataGlobalFormalizacionAsigCasoFormalizadorAsignado,
|
|||
|
|
NodeValue = string.Format(EnumOC.User, Formalizador)
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
Variables.Add(new NodeVariables()
|
|||
|
|
{
|
|||
|
|
NodeName = EnumVariblesUltimus.TaskDataGlobalFormalizacionAsigCasoTransOfertaContrato,
|
|||
|
|
NodeValue = string.Format(EnumOC.User, Formalizador)
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
Variables.Add(new NodeVariables()
|
|||
|
|
{
|
|||
|
|
NodeName = EnumVariblesUltimus.TaskDataGlobalFormalizacionAsigCasoCrearLineaTransac,
|
|||
|
|
NodeValue = string.Format(EnumOC.User, Formalizador)
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
|
|||
|
|
NotificarCorreo(IdSolicitud, EtapasFormalizacion, Formalizador, false, true, true);
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
else if (IdCategoria == EnumCategoria.FastTrack && EsGaratiaReal == false)
|
|||
|
|
{
|
|||
|
|
//Coordinador de Descuento de Facturas
|
|||
|
|
Variables.Add(new NodeVariables()
|
|||
|
|
{
|
|||
|
|
NodeName = EnumVariblesUltimus.TaskDataGlobalFormalizacionRevCasoRecipienteAsignado,
|
|||
|
|
NodeValue = EnumOC.AsigJefeCoordinadorDescuentoFacturasQUEUE
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
else if (IdFacilidad.In(12, 13, 11))
|
|||
|
|
{
|
|||
|
|
//Coordinador de Operaciones Crediticias
|
|||
|
|
Variables.Add(new NodeVariables()
|
|||
|
|
{
|
|||
|
|
NodeName = EnumVariblesUltimus.TaskDataGlobalFormalizacionRevCasoRecipienteAsignado,
|
|||
|
|
NodeValue = EnumOC.AsigJefeCoordinadorOperacionesCrediticiasQUEUE
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
else if (EsLinea == false && IdFacilidad.In(5, 6, 7, 8) && EsGaratiaReal == false)
|
|||
|
|
{
|
|||
|
|
// Administrador de contratos
|
|||
|
|
Variables.Add(new NodeVariables()
|
|||
|
|
{
|
|||
|
|
NodeName = EnumVariblesUltimus.TaskDataGlobalFormalizacionRevCasoRecipienteAsignado,
|
|||
|
|
NodeValue = EnumOC.AdministradorContratos
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
NotificarCorreo(IdSolicitud, EtapasFormalizacion, "Administrador de contratos", true, false);
|
|||
|
|
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
else if (EsLinea == false && IdFacilidad.In(9, 10) && EsGaratiaReal == false)
|
|||
|
|
{
|
|||
|
|
// Coordinador de Descuento de Facturas
|
|||
|
|
Variables.Add(new NodeVariables()
|
|||
|
|
{
|
|||
|
|
NodeName = EnumVariblesUltimus.TaskDataGlobalFormalizacionRevCasoRecipienteAsignado,
|
|||
|
|
NodeValue = EnumOC.AsigJefeCoordinadorDescuentoFacturasQUEUE
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
else if (EsLinea == false && IdFacilidad.In(5, 6, 7, 8) && EsGaratiaReal == true)
|
|||
|
|
{
|
|||
|
|
// Activar rol Administrador de contratos y Activar rol Coordinador de Operaciones Crediticias
|
|||
|
|
Variables.Add(new NodeVariables()
|
|||
|
|
{
|
|||
|
|
NodeName = EnumVariblesUltimus.TaskDataGlobalFormalizacionRevCasoRecipienteAsignado,
|
|||
|
|
NodeValue = EnumOC.AdministradorContratos
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
NotificarCorreo(IdSolicitud, EtapasFormalizacion, "Administrador de contratos", true, false);
|
|||
|
|
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
else if (EsLinea == false && IdFacilidad.In(9, 10) && EsGaratiaReal == true)
|
|||
|
|
{
|
|||
|
|
// Coordinador de Descuento de Facturas y Activar rol Coordinador de Operaciones
|
|||
|
|
Variables.Add(new NodeVariables()
|
|||
|
|
{
|
|||
|
|
NodeName = EnumVariblesUltimus.TaskDataGlobalFormalizacionRevCasoRecipienteAsignado,
|
|||
|
|
NodeValue = EnumOC.AsigJefeCoordinadorDescuentoFacturasQUEUE
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
else if (EsGaratiaReal == false)
|
|||
|
|
{
|
|||
|
|
UEN = true;
|
|||
|
|
//Formalizador de Operaciones Crediticias (UEN)
|
|||
|
|
Variables.Add(new NodeVariables()
|
|||
|
|
{
|
|||
|
|
NodeName = EnumVariblesUltimus.TaskDataGlobalFormalizacionRevCasoRecipienteAsignado,
|
|||
|
|
NodeValue = string.Format(EnumOC.User , Formalizador)
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
Variables.Add(new NodeVariables()
|
|||
|
|
{
|
|||
|
|
NodeName = EnumVariblesUltimus.TaskDataGlobalFormalizacionAsigCasoFormalizadorAsignado,
|
|||
|
|
NodeValue = string.Format(EnumOC.User, Formalizador)
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
Variables.Add(new NodeVariables()
|
|||
|
|
{
|
|||
|
|
NodeName = EnumVariblesUltimus.TaskDataGlobalFormalizacionAsigCasoTransOfertaContrato,
|
|||
|
|
NodeValue = string.Format(EnumOC.User, Formalizador)
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
Variables.Add(new NodeVariables()
|
|||
|
|
{
|
|||
|
|
NodeName = EnumVariblesUltimus.TaskDataGlobalFormalizacionAsigCasoCrearLineaTransac,
|
|||
|
|
NodeValue = string.Format(EnumOC.User, Formalizador)
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
NotificarCorreo(IdSolicitud, EtapasFormalizacion, Formalizador, false, true, true);
|
|||
|
|
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
else if (EsGaratiaReal == true)
|
|||
|
|
{
|
|||
|
|
//Activar rol Coordinador de Operaciones Crediticias
|
|||
|
|
Variables.Add(new NodeVariables()
|
|||
|
|
{
|
|||
|
|
NodeName = EnumVariblesUltimus.TaskDataGlobalFormalizacionRevCasoRecipienteAsignado,
|
|||
|
|
NodeValue = EnumOC.AsigJefeCoordinadorOperacionesCrediticiasQUEUE
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
if (EsLinea == true)
|
|||
|
|
{
|
|||
|
|
if (EsFactoreo == true && IdTipoCambioCondiciones.In(EnumTipoCambioCondiciones.SobregiroSublimite, EnumTipoCambioCondiciones.ProrrogaOperacion))
|
|||
|
|
{
|
|||
|
|
Variables.Add(new NodeVariables()
|
|||
|
|
{
|
|||
|
|
NodeName = EnumVariblesUltimus.TaskDataGlobalFormalizacionRevCasoRecipienteAsignado,
|
|||
|
|
NodeValue = EnumOC.AsigJefeCoordinadorDescuentoFacturasQUEUE
|
|||
|
|
});
|
|||
|
|
FormalizadorOperacionesCredito = false;
|
|||
|
|
}
|
|||
|
|
else if (EsGaratiaReal == true)
|
|||
|
|
{
|
|||
|
|
Variables.Add(new NodeVariables()
|
|||
|
|
{
|
|||
|
|
NodeName = EnumVariblesUltimus.TaskDataGlobalFormalizacionRevCasoRecipienteAsignado,
|
|||
|
|
NodeValue = EnumOC.AsigJefeCoordinadorOperacionesCrediticiasQUEUE
|
|||
|
|
});
|
|||
|
|
FormalizadorOperacionesCredito = false;
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
Variables.Add(new NodeVariables()
|
|||
|
|
{
|
|||
|
|
NodeName = EnumVariblesUltimus.TaskDataGlobalFormalizacionRevCasoRecipienteAsignado,
|
|||
|
|
NodeValue = EnumOC.FormalizadorOperacionesCrediticias
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
FormalizadorOperacionesCredito = true;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
if (IdFacilidad.In(5, 6, 7, 8, 9, 10))
|
|||
|
|
{
|
|||
|
|
Variables.Add(new NodeVariables()
|
|||
|
|
{
|
|||
|
|
NodeName = EnumVariblesUltimus.TaskDataGlobalFormalizacionRevCasoRecipienteAsignado,
|
|||
|
|
NodeValue = EnumOC.AsigJefeCoordinadorDescuentoFacturasQUEUE
|
|||
|
|
});
|
|||
|
|
FormalizadorOperacionesCredito = false;
|
|||
|
|
}
|
|||
|
|
else if (EsGaratiaReal == true)
|
|||
|
|
{
|
|||
|
|
Variables.Add(new NodeVariables()
|
|||
|
|
{
|
|||
|
|
NodeName = EnumVariblesUltimus.TaskDataGlobalFormalizacionRevCasoRecipienteAsignado,
|
|||
|
|
NodeValue = EnumOC.AsigJefeCoordinadorOperacionesCrediticiasQUEUE
|
|||
|
|
});
|
|||
|
|
FormalizadorOperacionesCredito = false;
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
Variables.Add(new NodeVariables()
|
|||
|
|
{
|
|||
|
|
NodeName = EnumVariblesUltimus.TaskDataGlobalFormalizacionRevCasoRecipienteAsignado,
|
|||
|
|
NodeValue = EnumOC.FormalizadorOperacionesCrediticias
|
|||
|
|
});
|
|||
|
|
FormalizadorOperacionesCredito = true;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
#endregion
|
|||
|
|
#region RECIPIENTE FORMALIZACION SEGUN REGLAS ETAPA: FR_Crear_Expediente
|
|||
|
|
if (ClientePrincipal.IdTipoTramite == EnumTipoTramite.CambioCondiciones)
|
|||
|
|
{
|
|||
|
|
if (EsLinea == true)
|
|||
|
|
{
|
|||
|
|
if (EsFactoreo == true && IdTipoCambioCondiciones.In(EnumTipoCambioCondiciones.SobregiroSublimite, EnumTipoCambioCondiciones.ProrrogaOperacion))
|
|||
|
|
{
|
|||
|
|
Variables.Add(new NodeVariables()
|
|||
|
|
{
|
|||
|
|
NodeName = EnumVariblesUltimus.TaskDataGlobalFormalizacionAsigCasoFormalizadorAsignado,
|
|||
|
|
NodeValue = EnumOC.FormalizadorDescuentoFacturas
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
Variables.Add(new NodeVariables()
|
|||
|
|
{
|
|||
|
|
NodeName = EnumVariblesUltimus.TaskDataGlobalFormalizacionAsigCasoFormalizadorAsignado,
|
|||
|
|
NodeValue = EnumOC.FormalizadorOperacionesCrediticias
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
else if (IdFacilidad.In(5, 6, 7, 8, 9, 10) && EsLinea == false)
|
|||
|
|
{
|
|||
|
|
Variables.Add(new NodeVariables()
|
|||
|
|
{
|
|||
|
|
NodeName = EnumVariblesUltimus.TaskDataGlobalFormalizacionAsigCasoFormalizadorAsignado,
|
|||
|
|
NodeValue = EnumOC.FormalizadorDescuentoFacturas
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
else if (!IdFacilidad.In(5, 6, 7, 8, 9, 10) && EsLinea == false)
|
|||
|
|
{
|
|||
|
|
Variables.Add(new NodeVariables()
|
|||
|
|
{
|
|||
|
|
NodeName = EnumVariblesUltimus.TaskDataGlobalFormalizacionAsigCasoFormalizadorAsignado,
|
|||
|
|
NodeValue = EnumOC.FormalizadorOperacionesCrediticias
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
#region RECIPIENTE FORMALIZACION SEGUN OFERTA Y FACILIDAD ETAPA: FR_Trans_Oferta_Contrato
|
|||
|
|
if (IdFacilidad.In(5, 6, 7, 8, 9, 10) && EsLinea == false)
|
|||
|
|
{
|
|||
|
|
Variables.Add(new NodeVariables()
|
|||
|
|
{
|
|||
|
|
NodeName = EnumVariblesUltimus.TaskDataGlobalFormalizacionAsigCasoTransOfertaContrato,
|
|||
|
|
NodeValue = EnumOC.CoordinadorDescuentoFacturas
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
Variables.Add(new NodeVariables()
|
|||
|
|
{
|
|||
|
|
NodeName = EnumVariblesUltimus.TaskDataGlobalFormalizacionAsigCasoTransOfertaContrato,
|
|||
|
|
NodeValue = string.Format(EnumOC.User, Formalizador)
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
#region RECIPIENTE FORMALIZACION SEGUN REGLAS ETAPA: FR_Revisar_Doc
|
|||
|
|
|
|||
|
|
List<object> Asig_Revisar_Doc = new List<object>();
|
|||
|
|
UltimusIntegrationAPIController Binding = new UltimusIntegrationAPIController();
|
|||
|
|
string error = string.Empty;
|
|||
|
|
|
|||
|
|
using (UltimusIntegrationClient IntegrationClient = new UltimusIntegrationClient(Binding.wSHttpBinding, Binding.endpointAddress))
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
if (IdFacilidad.In(5, 6, 7, 8, 9, 10) && EsLinea == false)
|
|||
|
|
{
|
|||
|
|
Variables.Add(new NodeVariables()
|
|||
|
|
{
|
|||
|
|
NodeName = EnumVariblesUltimus.TaskDataGlobalFormalizacionAsigRevisarDoc,
|
|||
|
|
NodeValue = EnumOC.AsigJefeCoordinadorDescuentoFacturasQUEUE
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
Variables.Add(new NodeVariables()
|
|||
|
|
{
|
|||
|
|
NodeName = EnumVariblesUltimus.TaskDataGlobalFormalizacionAsigRevisarDoc,
|
|||
|
|
NodeValue = EnumOC.AsigJefeCoordinadorOperacionesCrediticiasQUEUE
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
// IncidentData.Global.Formalizacion.Asig_Revisar_Doc
|
|||
|
|
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
#region RECIPIENTE FORMALIZACION SEGUN REGLAS ETAPA: FR_Revisar_Doc
|
|||
|
|
if (UEN == false)
|
|||
|
|
{
|
|||
|
|
Variables.Add(new NodeVariables()
|
|||
|
|
{
|
|||
|
|
NodeName = EnumVariblesUltimus.TaskDataGlobalFormalizacionAsigCasoCrearLineaTransac,
|
|||
|
|
NodeValue = EnumOC.FormalizadorOperacionesCrediticias
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
#region RECIPIENTE FORMALIZACION SEGUN REGLAS ETAPA: FR_Pagar_Operacion
|
|||
|
|
|
|||
|
|
//Si es un caso Específico para Descuento de Facturas, Fast Track, Adelanto de contrato u Orden de compra Activar rol Coordinador de Descuento de Facturas
|
|||
|
|
if (EsLinea == false && IdFacilidad.In(5, 6, 7, 8, 9, 10))
|
|||
|
|
{
|
|||
|
|
Variables.Add(new NodeVariables()
|
|||
|
|
{
|
|||
|
|
NodeName = EnumVariblesUltimus.TaskDataGlobalFormalizacionAsigCasoPagarOperacion,
|
|||
|
|
NodeValue = EnumOC.AsigJefeCoordinadorDescuentoFacturasQUEUE
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
Variables.Add(new NodeVariables()
|
|||
|
|
{
|
|||
|
|
NodeName = EnumVariblesUltimus.TaskDataGlobalFormalizacionAsigCasoPagarOperacion,
|
|||
|
|
NodeValue = EnumOC.AsigJefeCoordinadorOperacionesCrediticiasQUEUE
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
#region RECIPIENTE FORMALIZACION SEGUN REGLAS ETAPA: FR_Control_Calidad
|
|||
|
|
if (ClientePrincipal.IdTipoTramite != EnumTipoTramite.CambioCondiciones)
|
|||
|
|
{
|
|||
|
|
//Si es un caso para Estudio inicial, Estudio de seguimiento, Específicos o Descuento de arrendamiento Activar rol Coordinador de Operaciones Crediticias
|
|||
|
|
if ((EsLinea == false && IdCategoria.In(EnumCategoria.EstudioInicial, EnumCategoria.EstudioSeguimiento)) || IdFacilidad.In(15))
|
|||
|
|
{
|
|||
|
|
Variables.Add(new NodeVariables()
|
|||
|
|
{
|
|||
|
|
NodeName = EnumVariblesUltimus.TaskDataGlobalFormalizacionAsigCasoControlCalidad,
|
|||
|
|
NodeValue = EnumOC.AsigJefeCoordinadorOperacionesCrediticiasQUEUE
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
else if (EsLinea == false && IdFacilidad.In(5, 6, 7, 8, 9, 10))
|
|||
|
|
//Si es un caso Específico para Descuento de Facturas, Fast Track, Adelanto de contrato u Orden de compra Activar rol Coordinador de Descuento de Facturas
|
|||
|
|
{
|
|||
|
|
Variables.Add(new NodeVariables()
|
|||
|
|
{
|
|||
|
|
NodeName = EnumVariblesUltimus.TaskDataGlobalFormalizacionAsigCasoControlCalidad,
|
|||
|
|
NodeValue = EnumOC.AsigJefeCoordinadorDescuentoFacturasQUEUE
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
Variables.Add(new NodeVariables()
|
|||
|
|
{
|
|||
|
|
NodeName = EnumVariblesUltimus.TaskDataGlobalFormalizacionAsigCasoControlCalidad,
|
|||
|
|
NodeValue = EnumOC.AsigJefeCoordinadorOperacionesCrediticiasQUEUE
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
if (EsLinea == true)
|
|||
|
|
{
|
|||
|
|
if (EsFactoreo == true && IdTipoCambioCondiciones.In(EnumTipoCambioCondiciones.SobregiroSublimite, EnumTipoCambioCondiciones.ProrrogaOperacion))
|
|||
|
|
{
|
|||
|
|
Variables.Add(new NodeVariables()
|
|||
|
|
{
|
|||
|
|
NodeName = EnumVariblesUltimus.TaskDataGlobalFormalizacionAsigCasoControlCalidad,
|
|||
|
|
NodeValue = EnumOC.AsigJefeCoordinadorDescuentoFacturasQUEUE
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
Variables.Add(new NodeVariables()
|
|||
|
|
{
|
|||
|
|
NodeName = EnumVariblesUltimus.TaskDataGlobalFormalizacionAsigCasoControlCalidad,
|
|||
|
|
NodeValue = EnumOC.AsigJefeCoordinadorOperacionesCrediticiasQUEUE
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
else if (IdFacilidad.In(5, 6, 7, 8, 9, 10) && EsLinea == false)
|
|||
|
|
{
|
|||
|
|
Variables.Add(new NodeVariables()
|
|||
|
|
{
|
|||
|
|
NodeName = EnumVariblesUltimus.TaskDataGlobalFormalizacionAsigCasoControlCalidad,
|
|||
|
|
NodeValue = EnumOC.AsigJefeCoordinadorDescuentoFacturasQUEUE
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
else if (!IdFacilidad.In(5, 6, 7, 8, 9, 10) && EsLinea == false)
|
|||
|
|
{
|
|||
|
|
Variables.Add(new NodeVariables()
|
|||
|
|
{
|
|||
|
|
NodeName = EnumVariblesUltimus.TaskDataGlobalFormalizacionAsigCasoControlCalidad,
|
|||
|
|
NodeValue = EnumOC.AsigJefeCoordinadorOperacionesCrediticiasQUEUE
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
#region RECIPIENTE FORMALIZACION SEGUN OFERTA Y FACILIDAD ETAPA: FR_Ejecutar_Desembolso
|
|||
|
|
if (IdFacilidad.In(5, 6, 7, 8, 9, 10))
|
|||
|
|
{
|
|||
|
|
Variables.Add(new NodeVariables()
|
|||
|
|
{
|
|||
|
|
NodeName = EnumVariblesUltimus.TaskDataGlobalFormalizacionAsigCasoDesembolso,
|
|||
|
|
NodeValue = EnumOC.CajeroSecoDescuentoFacturas
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
Variables.Add(new NodeVariables()
|
|||
|
|
{
|
|||
|
|
NodeName = EnumVariblesUltimus.TaskDataGlobalFormalizacionAsigCasoDesembolso,
|
|||
|
|
NodeValue = EnumOC.CajeroSecoOperacionesCrediticias
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
#region RECIPIENTE FORMALIZACION SEGUN OFERTA Y FACILIDAD ETAPA: FR_Notificar_Desembolso
|
|||
|
|
if (IdFacilidad.In(5, 6, 7, 8, 9, 10))
|
|||
|
|
{
|
|||
|
|
Variables.Add(new NodeVariables()
|
|||
|
|
{
|
|||
|
|
NodeName = EnumVariblesUltimus.TaskDataGlobalFormalizacionAsigCasoNotificarDesembolso,
|
|||
|
|
NodeValue = EnumOC.FormalizadorDescuentoFacturas
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
Variables.Add(new NodeVariables()
|
|||
|
|
{
|
|||
|
|
NodeName = EnumVariblesUltimus.TaskDataGlobalFormalizacionAsigCasoNotificarDesembolso,
|
|||
|
|
NodeValue = EnumOC.FormalizadorOperacionesCrediticias
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
throw ex;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
[WebMethod]
|
|||
|
|
public UExcelJson ExtraerValoresExcel(UExcelJson ExcelJson)
|
|||
|
|
{
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
if (ExcelJson == null) ExcelJson = new UExcelJson();
|
|||
|
|
|
|||
|
|
UExcel oExcelLibrary = new UExcel();
|
|||
|
|
ExcelJson.ListaSpreadSheet = oExcelLibrary.ExtraccionExcel(ExcelJson.RutaDocumento, ExcelJson.ListaSpreadSheet);
|
|||
|
|
|
|||
|
|
ExcelJson.CodigoRespuesta = TipoCodigoRespuesta.EXITOSO.ToString();
|
|||
|
|
ExcelJson.DescripcionRespuesta = "";
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
ExcelJson.CodigoRespuesta = TipoCodigoRespuesta.ERROR.ToString();
|
|||
|
|
ExcelJson.DescripcionRespuesta = ex.Message;
|
|||
|
|
log.Error(ex);
|
|||
|
|
}
|
|||
|
|
return ExcelJson;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
[WebMethod]
|
|||
|
|
public UExcelJson CargarValoresExcel(UExcelJson ExcelJson)
|
|||
|
|
{
|
|||
|
|
string RutaFisicaConf = string.Empty;
|
|||
|
|
string RutaVirtualConfig = string.Empty;
|
|||
|
|
UExcel oExcelLibrary = new UExcel();
|
|||
|
|
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
RutaFisicaConf = System.Configuration.ConfigurationManager.AppSettings["RutaFisica"];
|
|||
|
|
RutaVirtualConfig = System.Configuration.ConfigurationManager.AppSettings["RutaVirtual"];
|
|||
|
|
|
|||
|
|
#region Validaciones
|
|||
|
|
if (ExcelJson == null)
|
|||
|
|
throw new Exception("Parametro Nulo.Es requerido el parametro de entrada cargado");
|
|||
|
|
|
|||
|
|
if (!System.IO.File.Exists(ExcelJson.RutaDocumento))
|
|||
|
|
throw new Exception(string.Format("No se pudo encontrar el documento {0}", ExcelJson.RutaDocumento));
|
|||
|
|
|
|||
|
|
if (string.IsNullOrEmpty(ExcelJson.NombreDocumentoGenerado))
|
|||
|
|
throw new Exception(string.Format("El nombre para el documento a generar no es valido {0}", ExcelJson.NombreDocumentoGenerado));
|
|||
|
|
|
|||
|
|
|
|||
|
|
if (string.IsNullOrEmpty(RutaFisicaConf))
|
|||
|
|
throw new Exception("La ruta físca interna configurada para crear el documento no es correcta");
|
|||
|
|
|
|||
|
|
if (string.IsNullOrEmpty(RutaVirtualConfig))
|
|||
|
|
throw new Exception("La ruta virtual interna configurada para acceder al documento generado no es correcta");
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
string RutaDocumentoGenerado = string.Format("{0}\\{1}", RutaFisicaConf, ExcelJson.NombreDocumentoGenerado);
|
|||
|
|
System.IO.File.Copy(ExcelJson.RutaDocumento, RutaDocumentoGenerado);
|
|||
|
|
|
|||
|
|
ExcelJson.ListaSpreadSheet = oExcelLibrary.CargaExcel(RutaDocumentoGenerado, ExcelJson.ListaSpreadSheet);
|
|||
|
|
|
|||
|
|
ExcelJson.RutaFisica = string.Format("{0}\\{1}", RutaFisicaConf, ExcelJson.NombreDocumentoGenerado);
|
|||
|
|
ExcelJson.RutaVirtual = string.Format("{0}{1}", RutaVirtualConfig, ExcelJson.NombreDocumentoGenerado);
|
|||
|
|
|
|||
|
|
ExcelJson.CodigoRespuesta = TipoCodigoRespuesta.EXITOSO.ToString();
|
|||
|
|
ExcelJson.DescripcionRespuesta = string.Empty;
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
ExcelJson.CodigoRespuesta = TipoCodigoRespuesta.ERROR.ToString();
|
|||
|
|
ExcelJson.DescripcionRespuesta = ex.Message;
|
|||
|
|
log.Error(ex);
|
|||
|
|
}
|
|||
|
|
return ExcelJson;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
[WebMethod]
|
|||
|
|
public bool EnviarCorreoTresDiasDocNoEntregada(int Incidente)
|
|||
|
|
{
|
|||
|
|
bool respuesta = false;
|
|||
|
|
Solicitud Solicitud = new Solicitud();
|
|||
|
|
Procesos Proceso = new Procesos();
|
|||
|
|
SolicitudDAL SolicitudDAL = new SolicitudDAL();
|
|||
|
|
ProcesosDAL ProcesosDAL = new ProcesosDAL();
|
|||
|
|
FiltroCorreoProcesoJSON filtro = new FiltroCorreoProcesoJSON();
|
|||
|
|
EtapasDAL EtapasDal = new EtapasDAL();
|
|||
|
|
DatosGeneralesAnalisis DatosActuales = new DatosGeneralesAnalisis();
|
|||
|
|
|
|||
|
|
List<UltimusUser> ListaUserEmail = null;
|
|||
|
|
List<BitacoraControlAprobacion> BitacoraControlAprobacion = new List<BitacoraControlAprobacion>();
|
|||
|
|
BitacoraControlAprobacionDAL ContAprobacionDal = new BitacoraControlAprobacionDAL();
|
|||
|
|
Cliente Cliente = new Cliente();
|
|||
|
|
ClienteDAL ClienteDal = new ClienteDAL();
|
|||
|
|
string UserFullName = string.Empty;
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
Proceso = ProcesosDAL.Obtener(EnumProcesos.Credito);
|
|||
|
|
Solicitud = SolicitudDAL.Obtener(Incidente, Proceso.NombreProceso);
|
|||
|
|
Cliente = ClienteDal.ObtenerPrincipal(Solicitud.IdSolicitud);
|
|||
|
|
DatosActuales = new DatosGeneralesAnalisisDAL().Obtener(Solicitud.IdSolicitud);
|
|||
|
|
|
|||
|
|
string UsuarioIniciador = new ObtieneParametros().GetValueKeyRegedit("UsuarioProcesoUltimus", false);
|
|||
|
|
|
|||
|
|
filtro.Proceso = Proceso.NombreProceso;
|
|||
|
|
filtro.NombreFiltro = "NotificacionTresdiasDocAdicionales";
|
|||
|
|
filtro.CodSolicitud = (long)Solicitud.IdSolicitud;
|
|||
|
|
filtro.Etapa = EnumEtapas.AN_Preanalisis; ;
|
|||
|
|
filtro.Incidente = Incidente;
|
|||
|
|
|
|||
|
|
filtro.CC = new List<string>();
|
|||
|
|
filtro.Destinatario = new List<string>();
|
|||
|
|
filtro.ListaParametros = new List<ParametrosCorreoJSON>();
|
|||
|
|
filtro.ListaBookmarks = new List<BookmarkCorreoJSON>();
|
|||
|
|
filtro.DocumentosAdjuntos = new List<string>();
|
|||
|
|
filtro.UserID = UsuarioIniciador;
|
|||
|
|
UltimusIntegrationAPIController Binding = new UltimusIntegrationAPIController();
|
|||
|
|
|
|||
|
|
using (UltimusIntegrationClient IntegrationClient = new UltimusIntegrationClient(Binding.wSHttpBinding, Binding.endpointAddress))
|
|||
|
|
{
|
|||
|
|
BitacoraControlAprobacion = ContAprobacionDal.Obtener(Solicitud.IdSolicitud, EnumEtapas.AN_Rev_Doc_Clasificar);
|
|||
|
|
|
|||
|
|
ListaUserEmail = new List<UltimusUser>();
|
|||
|
|
|
|||
|
|
#region Analista
|
|||
|
|
if (BitacoraControlAprobacion != null && BitacoraControlAprobacion.Count > 0)
|
|||
|
|
{
|
|||
|
|
if (!string.IsNullOrEmpty(BitacoraControlAprobacion.FirstOrDefault().UsuarioAsignado))
|
|||
|
|
{
|
|||
|
|
ListaUserEmail = ObtenerCorreos("", 0, null, BitacoraControlAprobacion.FirstOrDefault().UsuarioAsignado);
|
|||
|
|
foreach (UltimusUser Email in ListaUserEmail)
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
if (!string.IsNullOrEmpty(Email.EmailAddress))
|
|||
|
|
{
|
|||
|
|
filtro.Destinatario.Add(Email.EmailAddress);
|
|||
|
|
UserFullName = Email.strUserFullName;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
#endregion
|
|||
|
|
//filtro.Destinatario.Add("jzuniga@atesacr.com");
|
|||
|
|
|
|||
|
|
|
|||
|
|
filtro.ListaBookmarks.Add(new BookmarkCorreoJSON { Nombre = "IDSOLICITUD", Valor = Solicitud.IdSolicitud.ToString() });
|
|||
|
|
filtro.ListaBookmarks.Add(new BookmarkCorreoJSON { Nombre = "INCIDENTE", Valor = Solicitud.Incidente.HasValue ? Solicitud.Incidente.ToString() : "0" });
|
|||
|
|
filtro.ListaBookmarks.Add(new BookmarkCorreoJSON { Nombre = "IDENTIFICACION", Valor = Cliente.NumeroIdentificacion });
|
|||
|
|
filtro.ListaBookmarks.Add(new BookmarkCorreoJSON { Nombre = "ANALISTA", Valor = UserFullName });
|
|||
|
|
filtro.ListaBookmarks.Add(new BookmarkCorreoJSON { Nombre = "COMENTARIO", Valor = DatosActuales.ComentariosDocumentosAdicionales });
|
|||
|
|
|
|||
|
|
string NombreCliente = string.Empty;
|
|||
|
|
switch (Cliente.IdTipoCliente)
|
|||
|
|
{
|
|||
|
|
case EnumTipoCliente.Fisico:
|
|||
|
|
NombreCliente = string.Format("{0} {1}", Cliente.PrimerNombre.Trim(), Cliente.PrimerApellido.Trim());
|
|||
|
|
break;
|
|||
|
|
case EnumTipoCliente.Juridico:
|
|||
|
|
NombreCliente = Cliente.RazonSocial.Trim();
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
filtro.ListaBookmarks.Add(new BookmarkCorreoJSON { Nombre = "NOMBRECLIENTE", Valor = NombreCliente });
|
|||
|
|
|
|||
|
|
using (UltimusFormAPIController InterfaceClient = new UltimusFormAPIController())
|
|||
|
|
filtro = InterfaceClient.EnviarCorreoFiltro(filtro);
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
DatosActuales.NotificacionTresDias = true;
|
|||
|
|
new DatosGeneralesAnalisisDAL().GuardarActualizarAnalisis(DatosActuales);
|
|||
|
|
|
|||
|
|
respuesta = true;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
log.Error(ex);
|
|||
|
|
}
|
|||
|
|
return respuesta;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
[WebMethod]
|
|||
|
|
public bool EnviarCorreoCincoDiasDocNoEntregada(int Incidente)
|
|||
|
|
{
|
|||
|
|
bool respuesta = false;
|
|||
|
|
Solicitud Solicitud = new Solicitud();
|
|||
|
|
Procesos Proceso = new Procesos();
|
|||
|
|
SolicitudDAL SolicitudDAL = new SolicitudDAL();
|
|||
|
|
ProcesosDAL ProcesosDAL = new ProcesosDAL();
|
|||
|
|
FiltroCorreoProcesoJSON filtro = new FiltroCorreoProcesoJSON();
|
|||
|
|
EtapasDAL EtapasDal = new EtapasDAL();
|
|||
|
|
UltimusUser UserEmail = null;
|
|||
|
|
List<EstructuraOrgChart> ListaEstructuraOC = null;
|
|||
|
|
List<UltimusUser> ListaUserEmail = null;
|
|||
|
|
Cliente Cliente = new Cliente();
|
|||
|
|
ClienteDAL ClienteDal = new ClienteDAL();
|
|||
|
|
List<BitacoraControlAprobacion> BitacoraControlAprobacion = new List<BitacoraControlAprobacion>();
|
|||
|
|
BitacoraControlAprobacionDAL ContAprobacionDal = new BitacoraControlAprobacionDAL();
|
|||
|
|
BitacoraComentariosInternos Comentarios = new BitacoraComentariosInternos();
|
|||
|
|
DatosGeneralesAnalisis DatosAnalisis = new DatosGeneralesAnalisis();
|
|||
|
|
Ejecutivo Ejecutivo = new Ejecutivo();
|
|||
|
|
string UserFullName = string.Empty;
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
Proceso = ProcesosDAL.Obtener(EnumProcesos.Credito);
|
|||
|
|
Solicitud = SolicitudDAL.Obtener(Incidente, Proceso.NombreProceso);
|
|||
|
|
Cliente = ClienteDal.ObtenerPrincipal(Solicitud.IdSolicitud);
|
|||
|
|
Ejecutivo = new EjecutivoDAL().ObtenerEjecutivoID(Convert.ToInt32(Cliente.IdEjecutivo));
|
|||
|
|
DatosAnalisis = new DatosGeneralesAnalisisDAL().Obtener(Solicitud.IdSolicitud);
|
|||
|
|
string UsuarioIniciador = new ObtieneParametros().GetValueKeyRegedit("UsuarioProcesoUltimus", false);
|
|||
|
|
|
|||
|
|
filtro.Proceso = Proceso.NombreProceso;
|
|||
|
|
filtro.NombreFiltro = "NotificacionCincoDiasDocAdicionales";
|
|||
|
|
filtro.CodSolicitud = (long)Solicitud.IdSolicitud;
|
|||
|
|
filtro.Etapa = EnumEtapas.AN_Preanalisis;
|
|||
|
|
filtro.Incidente = Incidente;
|
|||
|
|
|
|||
|
|
filtro.CC = new List<string>();
|
|||
|
|
filtro.Destinatario = new List<string>();
|
|||
|
|
filtro.ListaParametros = new List<ParametrosCorreoJSON>();
|
|||
|
|
filtro.ListaBookmarks = new List<BookmarkCorreoJSON>();
|
|||
|
|
filtro.DocumentosAdjuntos = new List<string>();
|
|||
|
|
filtro.UserID = UsuarioIniciador;
|
|||
|
|
UltimusIntegrationAPIController Binding = new UltimusIntegrationAPIController();
|
|||
|
|
|
|||
|
|
using (UltimusIntegrationClient IntegrationClient = new UltimusIntegrationClient(Binding.wSHttpBinding, Binding.endpointAddress))
|
|||
|
|
{
|
|||
|
|
BitacoraControlAprobacion = ContAprobacionDal.Obtener(Solicitud.IdSolicitud, EnumEtapas.AN_Rev_Doc_Clasificar);
|
|||
|
|
ListaUserEmail = new List<UltimusUser>();
|
|||
|
|
|
|||
|
|
#region Analista
|
|||
|
|
if (BitacoraControlAprobacion != null && BitacoraControlAprobacion.Count > 0)
|
|||
|
|
{
|
|||
|
|
if (!string.IsNullOrEmpty(BitacoraControlAprobacion.FirstOrDefault().UsuarioAsignado))
|
|||
|
|
{
|
|||
|
|
ListaUserEmail = ObtenerCorreos("", 0, null, BitacoraControlAprobacion.FirstOrDefault().UsuarioAsignado);
|
|||
|
|
foreach (UltimusUser Email in ListaUserEmail)
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
if (!string.IsNullOrEmpty(Email.EmailAddress))
|
|||
|
|
{
|
|||
|
|
filtro.Destinatario.Add(Email.EmailAddress);
|
|||
|
|
UserFullName = Email.strUserFullName;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
#region Ejecutivo
|
|||
|
|
if (Cliente != null && !string.IsNullOrEmpty(Cliente.Ejecutivo.Correo))
|
|||
|
|
filtro.Destinatario.Add(Cliente.Ejecutivo.Correo);
|
|||
|
|
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
#region Asistente_Negocio
|
|||
|
|
ListaEstructuraOC = new EstructuraOrgChartDAL().Obtener(EnumRolFuncional.Asistente_Negocio, null);
|
|||
|
|
|
|||
|
|
if (ListaEstructuraOC != null && ListaEstructuraOC.Count > 0)
|
|||
|
|
{
|
|||
|
|
foreach (var lista in ListaEstructuraOC)
|
|||
|
|
{
|
|||
|
|
if (!string.IsNullOrEmpty(lista.Name))
|
|||
|
|
{
|
|||
|
|
ListaUserEmail = ObtenerCorreos(lista.Name, Convert.ToInt32(lista.IdTipoEstructuraOrgChart));
|
|||
|
|
foreach (UltimusUser Email in ListaUserEmail)
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
if (!string.IsNullOrEmpty(Email.EmailAddress))
|
|||
|
|
filtro.Destinatario.Add(Email.EmailAddress);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
if (UserEmail != null)
|
|||
|
|
filtro.Destinatario.Add(UserEmail.EmailAddress);
|
|||
|
|
|
|||
|
|
filtro.ListaBookmarks.Add(new BookmarkCorreoJSON { Nombre = "IDSOLICITUD", Valor = Solicitud.IdSolicitud.ToString() });
|
|||
|
|
filtro.ListaBookmarks.Add(new BookmarkCorreoJSON { Nombre = "INCIDENTE", Valor = Solicitud.Incidente.HasValue ? Solicitud.Incidente.ToString() : "0" });
|
|||
|
|
filtro.ListaBookmarks.Add(new BookmarkCorreoJSON { Nombre = "IDENTIFICACION", Valor = Cliente.NumeroIdentificacion });
|
|||
|
|
filtro.ListaBookmarks.Add(new BookmarkCorreoJSON { Nombre = "EJECUTIVO", Valor = Ejecutivo.Nombre });
|
|||
|
|
|
|||
|
|
|
|||
|
|
string NombreCliente = string.Empty;
|
|||
|
|
switch (Cliente.IdTipoCliente)
|
|||
|
|
{
|
|||
|
|
case EnumTipoCliente.Fisico:
|
|||
|
|
NombreCliente = string.Format("{0} {1}", Cliente.PrimerNombre.Trim(), Cliente.PrimerApellido.Trim());
|
|||
|
|
break;
|
|||
|
|
case EnumTipoCliente.Juridico:
|
|||
|
|
NombreCliente = Cliente.RazonSocial.Trim();
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
filtro.ListaBookmarks.Add(new BookmarkCorreoJSON { Nombre = "NOMBRECLIENTE", Valor = NombreCliente });
|
|||
|
|
filtro.ListaBookmarks.Add(new BookmarkCorreoJSON { Nombre = "COMENTARIO", Valor = DatosAnalisis.ComentariosDocumentosAdicionales });
|
|||
|
|
|
|||
|
|
using (UltimusFormAPIController InterfaceClient = new UltimusFormAPIController())
|
|||
|
|
filtro = InterfaceClient.EnviarCorreoFiltro(filtro);
|
|||
|
|
|
|||
|
|
|
|||
|
|
Comentarios.Procesos = Proceso;
|
|||
|
|
Comentarios.IdSolicitud = Solicitud.IdSolicitud;
|
|||
|
|
Comentarios.Incidente = Incidente;
|
|||
|
|
Comentarios.UserID = UserFullName;
|
|||
|
|
Comentarios.Comentario = DatosAnalisis.ComentariosDocumentosAdicionales;
|
|||
|
|
Comentarios.Etapa = EnumEtapas.AN_Preanalisis;
|
|||
|
|
Comentarios.Finalizar = false;
|
|||
|
|
Comentarios.IdTipoComentario = EnumTipoComentario.ComentarioDevolucionTramite;
|
|||
|
|
Comentarios.Sent = false;
|
|||
|
|
new BitacoraComentariosInternosDAL().Insertar(Comentarios);
|
|||
|
|
|
|||
|
|
respuesta = true;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
log.Error(ex);
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
return respuesta;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public UltimusValoresEsquema ObtenerVariableEsquemaUltimus(UltimusValoresEsquema model)
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
UltimusIntegrationAPIController UltimusIntegration = new UltimusIntegrationAPIController();
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
foreach (UltimusVariable Variable in model.ListaVariables)
|
|||
|
|
{
|
|||
|
|
string ValorRetorno = string.Empty;
|
|||
|
|
UltimusIntegration.GetNodeValue(model.UltimusUserID, model.UltimusTaskId, Variable.Nombre, out ValorRetorno);
|
|||
|
|
Variable.Valor = ValorRetorno;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
model.CodigoRespuesta = TipoCodigoRespuesta.EXITOSO.ToString();
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
log.Error(ex);
|
|||
|
|
|
|||
|
|
model.CodigoRespuesta = TipoCodigoRespuesta.ERROR.ToString();
|
|||
|
|
model.DescripcionRespuesta = ex.Message;
|
|||
|
|
}
|
|||
|
|
return model;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|