Imports ULA.Davivienda.WCFServiciosGenerales.DAL Imports ULA.Davivienda.WCFServiciosGenerales.BL.UtilitarioGenBL Imports ULA.Davivienda.WCFServiciosGenerales.BL.UtilitarioSensibilizacionBL Imports ULA.Davivienda.WCFServiciosGenerales.Entidades Imports System Imports System.Xml Imports System.Configuration Public Class ServiciosBL Public Shared Function GuardarRegistrosDeudasCIC(ByVal Proceso As String, ByVal Incidente As Integer, ByVal Solicitud As Integer, ByVal Identificacion As String, ByVal CadenaXml As String) As String Dim aNombreParametro(19), aValorParametro(19) As String Dim aNombreParametro2(17), aValorParametro2(17) As String Dim aNombreParametro3(2), aValorParametro3(2) As String Dim strFuenteDatos As String = String.Empty Dim strSPSituActual As String = String.Empty Dim strSPSituHistorica As String = String.Empty Dim strRespXML As String = String.Empty Dim strError As String = String.Empty Dim objXMLDocumento As New XmlDocument Dim objXMLNodoHijosA As XmlNode = Nothing Dim objXMLNodoHijosH As XmlNode = Nothing Try 'Obtiene los procedimientos/base de datos a ejecutarse Select Case Proceso Case Enumerador.ProcesoUltimus.PrestamoPrendario.ToString() strFuenteDatos = Enumerador.FuenteDatosUltimus.BPMPRENDARIO.ToString() strSPSituActual = "usp_cp_situacion_actual" strSPSituHistorica = "usp_cp_situacion_historica" End Select If CadenaXml.Trim() <> "" Then objXMLDocumento.LoadXml(CadenaXml) If Not objXMLDocumento.SelectSingleNode("//Registros/SituacionActual") Is Nothing Then objXMLNodoHijosA = objXMLDocumento.SelectSingleNode("//Registros/SituacionActual") If objXMLNodoHijosA.InnerText <> "" Then aNombreParametro3(1) = "@i_opcion" : aValorParametro3(1) = 8 aNombreParametro3(2) = "@i_solicitud" : aValorParametro3(2) = Solicitud Dim strRespActualDel As String = outConector.EjecutarComandoSQLArreglo(Proceso, strFuenteDatos, strSPSituActual, aNombreParametro3, aValorParametro3, 0) If (strRespActualDel <> "") Then Dim xmlRespH As New XmlDocument xmlRespH.LoadXml(strRespActualDel) Dim excH As New Exception(xmlRespH.SelectSingleNode("//NewDataSet/Table/STATUS").InnerText) Throw excH End If For i As Integer = 0 To objXMLNodoHijosA.ChildNodes.Count - 1 Dim xmlElementoSelected As XmlElement xmlElementoSelected = objXMLNodoHijosA.ChildNodes.Item(i) Dim strEntidadA As String = xmlElementoSelected.SelectSingleNode("Entidad").InnerText.Trim() Dim strIdOperacionA As String = xmlElementoSelected.SelectSingleNode("Id.Operacion").InnerText.Trim() Dim strMonedaA As String = xmlElementoSelected.SelectSingleNode("Moneda").InnerText.Trim() Dim strFechaVecimientoA As String = xmlElementoSelected.SelectSingleNode("Fecha_de_Vencimiento").InnerText.Trim() Dim strSaldoA As String = xmlElementoSelected.SelectSingleNode("Saldo").InnerText.Trim() Dim strMontoNoDesembolsadoA As String = xmlElementoSelected.SelectSingleNode("Monto_no_desembolsado_o_fiado_avalado").InnerText.Trim() Dim strTipoOperacionA As String = xmlElementoSelected.SelectSingleNode("Tipo_de_Operacion").InnerText.Trim() Dim strCondicionA As String = xmlElementoSelected.SelectSingleNode("Condicion").InnerText.Trim() Dim strEstadoOperacionA As String = xmlElementoSelected.SelectSingleNode("Estado_de_la_Operacion").InnerText.Trim() Dim strDiasAtrasoA As String = xmlElementoSelected.SelectSingleNode("Dias_de_Atraso").InnerText.Trim() Dim strActualizadoA As String = xmlElementoSelected.SelectSingleNode("Actualizado").InnerText.Trim() Dim strCuotaCalcA As String = xmlElementoSelected.SelectSingleNode("Cuota_calc").InnerText.Trim() Dim strCancelaA As String = xmlElementoSelected.SelectSingleNode("Cancela").InnerText.Trim() 'Validacion de campos If strMonedaA.ToUpper() = "CRC" Then strMonedaA = "N - COLONES O UNIDADES DE DESARROLLO" ElseIf strMonedaA.ToUpper() = "USD" Then strMonedaA = "E - DIVISA EXTRANJERA" End If If strCondicionA.ToUpper() = "DEUDOR" Then strCondicionA = "DEUDOR" ElseIf strCondicionA.ToUpper() = "CODEUDOR" Then strCondicionA = "CO-DEUDOR" ElseIf strCondicionA.ToUpper() = "FIADOR" Then strCondicionA = "FIADOR/AVALISTA" End If 'Llena la matriz de parametros para enviar a base de datos aNombreParametro(1) = "@i_entidad_acreedora" : aValorParametro(1) = strEntidadA aNombreParametro(2) = "@i_id_operacion" : aValorParametro(2) = strIdOperacionA aNombreParametro(3) = "@i_moneda" : aValorParametro(3) = strMonedaA aNombreParametro(4) = "@i_fecha_vencimiento" : aValorParametro(4) = Valida_Fecha(strFechaVecimientoA, 1, "FECHA VENCIMIENTO", "SITUACION ACTUAL", 0) aNombreParametro(5) = "@i_saldo" : aValorParametro(5) = Valida_Numero(strSaldoA, "SALDO", "SITUACION ACTUAL") aNombreParametro(6) = "@i_monto_nodes" : aValorParametro(6) = Valida_Numero(strMontoNoDesembolsadoA, "MONTO NO DESEMBOLSADO", "SITUACION ACTUAL") aNombreParametro(7) = "@i_tipo_operacion" : aValorParametro(7) = EncuentraTipoOperacion(strTipoOperacionA) aNombreParametro(8) = "@i_condicion" : aValorParametro(8) = strCondicionA aNombreParametro(9) = "@i_estado_operacion" : aValorParametro(9) = EncuentraEstadoOperacion(strEstadoOperacionA) aNombreParametro(10) = "@i_dias_atrasos" : aValorParametro(10) = strDiasAtrasoA aNombreParametro(11) = "@i_fe_inicio" : aValorParametro(11) = Valida_Fecha(strActualizadoA, 1, "ACTUALIZADO AL", "SITUACION ACTUAL", 0) aNombreParametro(12) = "@i_opcion" : aValorParametro(12) = "2" aNombreParametro(13) = "@i_incidente" : aValorParametro(13) = Incidente aNombreParametro(14) = "@i_solicitud" : aValorParametro(14) = Solicitud aNombreParametro(15) = "@i_identificacion" : aValorParametro(15) = Identificacion aNombreParametro(16) = "@i_estado" : aValorParametro(16) = "E" aNombreParametro(17) = "@i_esdeudor" : aValorParametro(17) = 1 aNombreParametro(18) = "@i_proceso" : aValorParametro(18) = Proceso aNombreParametro(19) = "@i_cuotas_equivalente" : aValorParametro(19) = Valida_Numero(strCuotaCalcA, "CUOTA_CALC", "SITUACION ACTUAL") Dim strRespActual As String = outConector.EjecutarComandoSQLArreglo(Proceso, strFuenteDatos, strSPSituActual, aNombreParametro, aValorParametro, 0) If (strRespActual <> "") Then Dim xmlRespH As New XmlDocument xmlRespH.LoadXml(strRespActual) Dim excH As New Exception(xmlRespH.SelectSingleNode("//NewDataSet/Table/STATUS").InnerText) Throw excH End If Next End If End If If Not objXMLDocumento.SelectSingleNode("//Registros/SituacionHistorica") Is Nothing Then objXMLNodoHijosH = objXMLDocumento.SelectSingleNode("//Registros/SituacionHistorica") If objXMLNodoHijosH.InnerText <> "" Then aNombreParametro3(1) = "@i_opcion" : aValorParametro3(1) = 6 aNombreParametro3(2) = "@i_solicitud" : aValorParametro3(2) = Solicitud Dim strRespHistoricoDel As String = outConector.EjecutarComandoSQLArreglo(Proceso, strFuenteDatos, strSPSituHistorica, aNombreParametro3, aValorParametro3, 0) If (strRespHistoricoDel <> "") Then Dim xmlRespH As New XmlDocument xmlRespH.LoadXml(strRespHistoricoDel) Dim excH As New Exception(xmlRespH.SelectSingleNode("//NewDataSet/Table/STATUS").InnerText) Throw excH End If For i As Integer = 0 To objXMLNodoHijosH.ChildNodes.Count - 1 Dim xmlElementoSelected As XmlElement Dim puntaje As String xmlElementoSelected = objXMLNodoHijosH.ChildNodes.Item(i) Dim strEntidadH As String = xmlElementoSelected.SelectSingleNode("entidad").InnerText.Trim() Dim strOperacionH As String = xmlElementoSelected.SelectSingleNode("operacion").InnerText.Trim() Dim strFechaVecimientoH As String = xmlElementoSelected.SelectSingleNode("fechavencimiento").InnerText.Trim() Dim strSituacionOperaH As String = xmlElementoSelected.SelectSingleNode("situacionopera").InnerText.Trim() Dim strMotivoNoReporteH As String = xmlElementoSelected.SelectSingleNode("motivonoreporte").InnerText.Trim() Dim strMesesReportadosH As String = xmlElementoSelected.SelectSingleNode("mesesreportados").InnerText.Trim() Dim strUltimoPeriodoH As String = xmlElementoSelected.SelectSingleNode("ultimoperiodo").InnerText.Trim() Dim strAtrasoMaximoH As String = xmlElementoSelected.SelectSingleNode("atrasomaximo").InnerText.Trim() Dim strAtrasoMedioH As String = xmlElementoSelected.SelectSingleNode("atrasomedio").InnerText.Trim() Dim strPuntajeH As String = xmlElementoSelected.SelectSingleNode("puntaje").InnerText.Trim() Dim strPonderadoH As String = xmlElementoSelected.SelectSingleNode("ponderador").InnerText.Trim() 'Validacion de campos If strUltimoPeriodoH.Trim() <> "" Then strUltimoPeriodoH = strUltimoPeriodoH.Replace("-", "/") End If If Integer.Parse(strPuntajeH.Split(",")(1)) <= 0 Then puntaje = Integer.Parse(strPuntajeH.Split(",")(0)) Else puntaje = strPuntajeH.Split(",")(0) & "." & strPuntajeH.Split(",")(1) End If 'Llena la matriz de parametros para enviar a base de datos aNombreParametro2(1) = "@i_opcion" : aValorParametro2(1) = 2 aNombreParametro2(2) = "@i_entidad_acreedora" : aValorParametro2(2) = strEntidadH aNombreParametro2(3) = "@i_fecha_vencimiento" : aValorParametro2(3) = Valida_Fecha(strFechaVecimientoH, 1, "FECHA VENCIMIENTO", "SITUACION HISTORICA", 1) aNombreParametro2(4) = "@i_estado_operacion" : aValorParametro2(4) = strSituacionOperaH aNombreParametro2(5) = "@i_motivo_liquidacion" : aValorParametro2(5) = strMotivoNoReporteH aNombreParametro2(6) = "@i_meses_reportados" : aValorParametro2(6) = strMesesReportadosH aNombreParametro2(7) = "@i_periodo_reportado" : aValorParametro2(7) = Valida_Fecha(Formato_Fecha(strUltimoPeriodoH), 1, "ULTIMO PERIODO REPORTADO", "SITUACION HISTORICA", 0) aNombreParametro2(8) = "@i_atraso_maximo" : aValorParametro2(8) = Valida_Numero(Quita_Formato_Numero("2", strAtrasoMaximoH), "ATRASO MAXIMO", "SITUACION HISTORICA") aNombreParametro2(9) = "@i_atraso_medio" : aValorParametro2(9) = Valida_Numero(Quita_Formato_Numero("2", strAtrasoMedioH), "ATRASO MEDIO", "SITUACION HISTORICA") aNombreParametro2(10) = "@i_ponderador" : aValorParametro2(10) = puntaje aNombreParametro2(11) = "@i_incidente" : aValorParametro2(11) = Incidente aNombreParametro2(12) = "@i_solicitud" : aValorParametro2(12) = Solicitud aNombreParametro2(13) = "@i_identificacion" : aValorParametro2(13) = Identificacion aNombreParametro2(14) = "@i_id_operacion" : aValorParametro2(14) = strOperacionH aNombreParametro2(15) = "@i_estado" : aValorParametro2(15) = "E" aNombreParametro2(16) = "@i_esdeudor" : aValorParametro2(16) = 1 aNombreParametro2(17) = "@i_proceso" : aValorParametro2(17) = Proceso Dim strRespHistorico As String = outConector.EjecutarComandoSQLArreglo(Proceso, strFuenteDatos, strSPSituHistorica, aNombreParametro2, aValorParametro2, 0) If (strRespHistorico <> "") Then Dim xmlRespH As New XmlDocument xmlRespH.LoadXml(strRespHistorico) Dim excH As New Exception(xmlRespH.SelectSingleNode("//NewDataSet/Table/STATUS").InnerText) Throw excH End If Next End If strRespXML = "" strRespXML &= "" strRespXML &= "Operacion Exitosa" strRespXML &= "" End If Else Dim excNoExec As New Exception("Estructura XML no valida.") Throw excNoExec End If Catch ex As Exception Try strError = ex.Message 'objAudit.Credentials = System.Net.CredentialCache.DefaultCredentials 'objAudit.grabarLog(Proceso, "ServiciosGenerales", "GuardarRegistrosDeudasCIC", "E", strError) strRespXML = "" & strError & "" Catch ex2 As Exception 'grabarError(Proceso, "ServiciosGenerales", "GuardarRegistrosDeudasCIC", "E", strError) End Try Finally If strError <> "" Then strRespXML = "" & strError & "" End If End Try Return strRespXML End Function Public Shared Function GuardarOperacionesCIC(req As GuardarOperacionesCICRequest) As GuardarOperacionesCICResponse Dim aNombreParametro(18), aValorParametro(18) As String Dim aNombreParametro2(6), aValorParametro2(5) As String Dim strFuenteDatos As String = String.Empty Dim strSP As String = String.Empty Dim strXML As String = String.Empty Dim strXML2 As String = String.Empty Dim strRespXML As String = String.Empty Dim child As XmlNode = Nothing Dim objXMLNodoHijos As XmlNode = Nothing Dim objXMLDocumento As XmlDocument = New XmlDocument Dim TipoOperacion As String = String.Empty Dim IdOperacion As String = String.Empty Dim CuotaMensual As String = String.Empty Dim SaldoActual As String = String.Empty Dim FechaVencimiento As String = String.Empty Dim MontoOriginal As String = String.Empty Dim Estado As String = String.Empty Dim FechaInicio As String = String.Empty Dim Moneda As String = String.Empty Dim strError As String = String.Empty Dim resp As GuardarOperacionesCICResponse = Nothing Try resp = New GuardarOperacionesCICResponse() strFuenteDatos = Enumerador.FuenteDatosUltimus.BPMPRENDARIO strSP = "usp_cp_situacion_actual" If req.TipoProducto = "Activos" Then objXMLDocumento.LoadXml(req.CadenaXml) objXMLNodoHijos = objXMLDocumento.SelectSingleNode("//Activos/Prestamos") If objXMLNodoHijos.InnerText <> "" Then aNombreParametro2(1) = "@i_opcion" : aValorParametro2(1) = 5 aNombreParametro2(2) = "@i_solicitud" : aValorParametro2(2) = req.Solicitud aNombreParametro2(3) = "@i_esdeudor" : aValorParametro2(3) = req.TipoParticipante aNombreParametro2(4) = "@i_identificacion" : aValorParametro2(4) = req.Identificacion aNombreParametro2(5) = "@i_proceso" : aValorParametro2(5) = req.Proceso.ToString() aNombreParametro2(6) = "@i_idcliente" : aValorParametro2(6) = req.IdCliente strXML2 = outConector.EjecutarComandoSQLArreglo(req.Proceso.ToString(), strFuenteDatos, strSP, aNombreParametro2, aValorParametro2, 0) For i As Integer = 0 To objXMLNodoHijos.ChildNodes.Count - 1 child = objXMLNodoHijos.ChildNodes.Item(i) TipoOperacion = child.SelectSingleNode("TIPOOPERACION").InnerText IdOperacion = child.SelectSingleNode("OPERACION").InnerText CuotaMensual = child.SelectSingleNode("CUOTAMENSUAL").InnerText SaldoActual = child.SelectSingleNode("SALDOACTUAL").InnerText FechaVencimiento = child.SelectSingleNode("FECHAVENCIMIENTO").InnerText MontoOriginal = child.SelectSingleNode("MONTOORIGINAL").InnerText Estado = child.SelectSingleNode("ESTADO").InnerText FechaInicio = child.SelectSingleNode("FECHAINICIO").InnerText Moneda = child.SelectSingleNode("MONEDA").InnerText If Moneda.ToUpper = "COLONES" Then Moneda = "N - COLONES O UNIDADES DE DESARROLLO" ElseIf Moneda.ToUpper = "DOLARES" Then Moneda = "E - DIVISA EXTRANJERA" End If aNombreParametro(1) = "@i_opcion" : aValorParametro(1) = 2 aNombreParametro(2) = "@i_incidente" : aValorParametro(2) = req.Incidente aNombreParametro(3) = "@i_solicitud" : aValorParametro(3) = req.Solicitud aNombreParametro(4) = "@i_identificacion" : aValorParametro(4) = req.Identificacion aNombreParametro(5) = "@i_esdeudor" : aValorParametro(5) = req.TipoParticipante aNombreParametro(6) = "@i_estado" : aValorParametro(6) = "A" aNombreParametro(7) = "@i_id_operacion" : aValorParametro(7) = IdOperacion aNombreParametro(8) = "@i_moneda" : aValorParametro(8) = Moneda aNombreParametro(9) = "@i_fecha_vencimiento" : aValorParametro(9) = FechaVencimiento aNombreParametro(10) = "@i_tipo_operacion" : aValorParametro(10) = TipoOperacion aNombreParametro(11) = "@i_estado_operacion" : aValorParametro(11) = Estado.Trim aNombreParametro(12) = "@i_saldo" : aValorParametro(12) = SaldoActual aNombreParametro(13) = "@i_cuotas_equivalente" : aValorParametro(13) = CuotaMensual aNombreParametro(14) = "@i_monto_original" : aValorParametro(14) = MontoOriginal aNombreParametro(15) = "@i_fe_inicio" : aValorParametro(15) = FechaInicio aNombreParametro(16) = "@i_entidad_acreedora" : aValorParametro(16) = "DAVIVIENDA" aNombreParametro(17) = "@i_proceso" : aValorParametro(17) = req.Proceso.ToString() aNombreParametro(18) = "@i_idcliente" : aValorParametro(18) = req.IdCliente strXML = outConector.EjecutarComandoSQLArreglo(req.Proceso.ToString(), strFuenteDatos, strSP, aNombreParametro, aValorParametro, 0) Next End If strRespXML = "" strRespXML &= "" strRespXML &= "Operacion Exitosa" strRespXML &= "" ElseIf req.TipoProducto = "Tarjetas" Then objXMLDocumento.LoadXml(req.CadenaXml) objXMLNodoHijos = objXMLDocumento.SelectSingleNode("//TarjetasCredito/Tarjetas") If objXMLNodoHijos.InnerText <> "" Then aNombreParametro2(1) = "@i_opcion" : aValorParametro2(1) = 6 aNombreParametro2(2) = "@i_solicitud" : aValorParametro2(2) = req.Solicitud aNombreParametro2(3) = "@i_esdeudor" : aValorParametro2(3) = req.TipoParticipante aNombreParametro2(4) = "@i_identificacion" : aValorParametro2(4) = req.Identificacion aNombreParametro2(5) = "@i_proceso" : aValorParametro2(5) = req.Proceso.ToString() aNombreParametro2(6) = "@i_idcliente" : aValorParametro2(6) = req.IdCliente strXML2 = outConector.EjecutarComandoSQLArreglo(req.Proceso.ToString(), strFuenteDatos, strSP, aNombreParametro2, aValorParametro2, 0) For i = 0 To objXMLNodoHijos.ChildNodes.Count - 1 child = objXMLNodoHijos.ChildNodes.Item(i) IdOperacion = child.SelectSingleNode("NUMERO").InnerText MontoOriginal = child.SelectSingleNode("LIMITE").InnerText FechaInicio = child.SelectSingleNode("FECHAAPERTURA").InnerText Moneda = child.SelectSingleNode("MONEDA").InnerText If Moneda.ToUpper = "COLONES" Then Moneda = "N - COLONES O UNIDADES DE DESARROLLO" ElseIf Moneda.ToUpper = "DOLARES" Then Moneda = "E - DIVISA EXTRANJERA" End If If req.Proceso.ToString() = Enumerador.ProcesoUltimus.PrestamoPrendario.ToString() Then SaldoActual = child.SelectSingleNode("SALDO").InnerText If SaldoActual = "" Then SaldoActual = "0" End If CuotaMensual = child.SelectSingleNode("PAGOMINIMO").InnerText If CuotaMensual = "" Then CuotaMensual = "0" End If End If aNombreParametro(1) = "@i_opcion" : aValorParametro(1) = 2 aNombreParametro(2) = "@i_incidente" : aValorParametro(2) = req.Incidente aNombreParametro(3) = "@i_solicitud" : aValorParametro(3) = req.Solicitud aNombreParametro(4) = "@i_identificacion" : aValorParametro(4) = req.Identificacion aNombreParametro(5) = "@i_esdeudor" : aValorParametro(5) = req.TipoParticipante aNombreParametro(6) = "@i_estado" : aValorParametro(6) = "T" aNombreParametro(7) = "@i_id_operacion" : aValorParametro(7) = IdOperacion aNombreParametro(8) = "@i_moneda" : aValorParametro(8) = Moneda aNombreParametro(9) = "@i_condicion" : aValorParametro(9) = "DEUDOR" aNombreParametro(10) = "@i_tipo_operacion" : aValorParametro(10) = "3 - TARJETAS DE CRÉDITO" aNombreParametro(11) = "@i_estado_operacion" : aValorParametro(11) = "VIGENTE" aNombreParametro(12) = "@i_monto_original" : aValorParametro(12) = MontoOriginal aNombreParametro(13) = "@i_fe_inicio" : aValorParametro(13) = FechaInicio aNombreParametro(14) = "@i_entidad_acreedora" : aValorParametro(14) = "DAVIVIENDA" aNombreParametro(15) = "@i_saldo" : aValorParametro(15) = SaldoActual aNombreParametro(16) = "@i_cuotas_equivalente" : aValorParametro(16) = CuotaMensual aNombreParametro(17) = "@i_proceso" : aValorParametro(17) = req.Proceso.ToString() aNombreParametro(18) = "@i_idcliente" : aValorParametro(18) = req.IdCliente strXML = outConector.EjecutarComandoSQLArreglo(req.Proceso.ToString(), strFuenteDatos, strSP, aNombreParametro, aValorParametro, 0) Next End If strRespXML = "" strRespXML &= "" strRespXML &= "Operacion Exitosa" strRespXML &= "" End If resp.errCode = "00" resp.errMessage = "EXITOSO" resp.resultado = strRespXML Catch excError As Exception Try strError = excError.Message 'objAudit.grabarLog(Proceso, "ServiciosGenerales", "GuardarOperacionesCIC", "E", strError) Catch ex As Exception 'grabarError(Proceso, "ServiciosGenerales", "GuardarOperacionesCIC", "E", strError) End Try resp.errCode = "99" resp.errMessage = strError End Try Return resp End Function Public Shared Function ObtenerDatosCICBD(req As ObtenerDatosCICBDRequest) As ObtenerDatosCICBDResponse Dim resp As ObtenerDatosCICBDResponse = Nothing Dim aNombreParametro(26), aValorParametro(26) As String Dim aNombreParametro2(18), aValorParametro2(18) As String Dim aNombreParametro3(3), aValorParametro3(3) As String Dim Element As Xml.XmlElement = Nothing Dim nElement As Xml.XmlElement = Nothing Dim aElement As Xml.XmlElement = Nothing Dim rootElement As Xml.XmlElement = Nothing Dim EsquemaEnv As Xml.XmlDocument = Nothing Dim objPI As Xml.XmlProcessingInstruction Dim puntaje As String = String.Empty Dim strResultXML As String = String.Empty Dim strFuenteDatos As String = String.Empty Dim strSPSituActual As String = String.Empty Dim strSPSituHistorica As String = String.Empty Dim SumaCuotaCalcColones As Decimal Dim SumaCuotaCalcDolares As Decimal Dim bIsDummie As Boolean = False Try 'Inicializa el objeto de response del metodo resp = New ObtenerDatosCICBDResponse() 'Comienza a armar la trama de salida EsquemaEnv = New Xml.XmlDocument objPI = EsquemaEnv.CreateProcessingInstruction("xml", "version='1.0'") EsquemaEnv.AppendChild(objPI) rootElement = EsquemaEnv.CreateElement("Resultado") EsquemaEnv.AppendChild(rootElement) Dim strSP As String = "" Dim strBD As String = "" Dim aNombreParametroOut(2) As String Dim aValorParametroOut(2) As String aNombreParametroOut(1) = "@i_operacion" : aValorParametroOut(1) = "C" aNombreParametroOut(2) = "@i_cedula" : aValorParametroOut(2) = req.identificacion strSP = "sp_get_datos_ult" strBD = "CONCIC" bIsDummie = System.Configuration.ConfigurationManager.AppSettings("isDummie") If (bIsDummie) Then Dim xmlDoc As XmlDocument = New XmlDocument() Dim sRutaDummie = System.Configuration.ConfigurationManager.AppSettings("rutaDummie").ToString() xmlDoc.Load(sRutaDummie) strResultXML = xmlDoc.OuterXml Else strResultXML = outConector.EjecutarComandoSQLArreglo(req.proceso.ToString(), strBD, strSP, aNombreParametroOut, aValorParametroOut, 0) End If If strResultXML.Trim() <> "" Then Dim xmlResp As XmlDocument Dim xmlError As XmlElement Dim xmlSalario As XmlElement = Nothing Dim xmlRubrosModelo As XmlElement = Nothing Dim xmlListSActual As XmlNodeList Dim xmlListSHistorica As XmlNodeList Dim xmlActual As Xml.XmlDocument = Nothing Dim xmlActualDeudas As XmlNodeList Dim xmlHistorica As Xml.XmlDocument = Nothing Dim xmlRefinanciar As Xml.XmlDocument = Nothing xmlResp = New XmlDocument xmlResp.LoadXml(strResultXML) 'Insicador de errores, si esta vacio no hubo error de lo contrario trae mensaje If Not xmlResp.SelectSingleNode("//NewDataSet/Table") Is Nothing Then xmlError = xmlResp.SelectSingleNode("//NewDataSet/Table") If (xmlError.SelectSingleNode("Error").InnerText.Trim() <> "") Then Dim ex As New Exception(xmlError.SelectSingleNode("Error").InnerText.Trim()) Throw ex End If End If 'Opcion 1: Procesamiento del CIC del Cliente If (req.opcion = "1") Then 'Dataset de la Situacion Actual del CIC If Not xmlResp.SelectSingleNode("//NewDataSet/Table3") Is Nothing Then xmlListSActual = xmlResp.SelectNodes("//NewDataSet/Table3") Dim xmlElementoActual As XmlElement Dim strChildXMLActual As String = "" Dim strChildXMLRefinanciar As String = "" xmlActual = New Xml.XmlDocument xmlRefinanciar = New Xml.XmlDocument strChildXMLActual += "" strChildXMLRefinanciar += "" For Each xmlElementoActual In xmlListSActual strChildXMLActual += xmlElementoActual.OuterXml() 'Agrega el registro al nodo de DeudasRefinanciar si se va a cancelar la deuda If xmlElementoActual.SelectSingleNode("Cancela").InnerText.Trim() = "true" Then strChildXMLRefinanciar += xmlElementoActual.OuterXml() End If Next strChildXMLActual += "" strChildXMLRefinanciar += "" xmlActual.LoadXml(strChildXMLActual) xmlRefinanciar.LoadXml(strChildXMLRefinanciar) End If 'Dataset de la Situacion Historica del CIC If Not xmlResp.SelectSingleNode("//NewDataSet/Table4") Is Nothing Then xmlListSHistorica = xmlResp.SelectNodes("//NewDataSet/Table4") Dim xmlElementoHistorica As XmlElement Dim strChildXMLHistorica As String = "" xmlHistorica = New Xml.XmlDocument strChildXMLHistorica += "" For Each xmlElementoHistorica In xmlListSHistorica strChildXMLHistorica += xmlElementoHistorica.OuterXml() Next strChildXMLHistorica += "" xmlHistorica.LoadXml(strChildXMLHistorica) End If 'Obtiene los procedimientos/base de datos a ejecutarse Select Case req.proceso.ToString() Case Enumerador.ProcesoUltimus.PrestamoPrendario.ToString() strFuenteDatos = Enumerador.FuenteDatosUltimus.BPMPRENDARIO.ToString() strSPSituActual = "usp_cp_situacion_actual" strSPSituHistorica = "usp_cp_situacion_historica" End Select 'Se eliminan los registros de Situacion Actual para que no hayan duplicados aNombreParametro3(1) = "@i_opcion" : aValorParametro3(1) = 7 aNombreParametro3(2) = "@i_solicitud" : aValorParametro3(2) = req.solicitud aNombreParametro3(3) = "@i_idcliente" : aValorParametro3(3) = req.idcliente outConector.EjecutarComandoSQLArreglo(req.proceso.ToString(), strFuenteDatos, strSPSituActual, aNombreParametro3, aValorParametro3, 0) 'Se eliminan los registros de Situacion Historica para que no hayan duplicados aNombreParametro3(1) = "@i_opcion" : aValorParametro3(1) = 5 aNombreParametro3(2) = "@i_solicitud" : aValorParametro3(2) = req.solicitud aNombreParametro3(3) = "@i_idcliente" : aValorParametro3(3) = req.idcliente outConector.EjecutarComandoSQLArreglo(req.proceso.ToString(), strFuenteDatos, strSPSituHistorica, aNombreParametro3, aValorParametro3, 0) 'Arma la trama de salida de Situacion Actual nElement = EsquemaEnv.CreateElement("Respuesta1") rootElement.AppendChild(nElement) 'Se insertan los registros de Situacion Actual en la base de datos Dim iControlCabeceraA As Integer = 0 For x As Integer = 0 To xmlActual.SelectSingleNode("//SituacionActual").ChildNodes.Count - 1 Dim xmlElementoSelected As XmlElement xmlElementoSelected = xmlActual.SelectSingleNode("//SituacionActual").ChildNodes.Item(x) Dim strEntidadA As String = xmlElementoSelected.SelectSingleNode("Entidad").InnerText.Trim() Dim strIdOperacionA As String = xmlElementoSelected.SelectSingleNode("Id.Operacion").InnerText.Trim() Dim strMonedaA As String = xmlElementoSelected.SelectSingleNode("Moneda").InnerText.Trim() 'ALR --Dependiendo de la moneda se suma la cuota Calculada If strMonedaA = "CRC" Then SumaCuotaCalcColones = SumaCuotaCalcColones + Convert.ToDecimal(xmlElementoSelected.SelectSingleNode("Cuota_calc").InnerText.Trim()) ElseIf strMonedaA = "USD" Then SumaCuotaCalcDolares = SumaCuotaCalcDolares + Convert.ToDecimal(xmlElementoSelected.SelectSingleNode("Cuota_calc").InnerText.Trim()) Else SumaCuotaCalcDolares = SumaCuotaCalcDolares + 0 End If Dim strFechaVecimientoA As String = xmlElementoSelected.SelectSingleNode("Fecha_de_Vencimiento").InnerText.Trim() Dim strSaldoA As String = xmlElementoSelected.SelectSingleNode("Saldo").InnerText.Trim() Dim strMontoNoDesembolsadoA As String = xmlElementoSelected.SelectSingleNode("Monto_no_desembolsado_o_fiado_avalado").InnerText.Trim() Dim strTipoOperacionA As String = xmlElementoSelected.SelectSingleNode("Tipo_de_Operacion").InnerText.Trim() Dim strCondicionA As String = xmlElementoSelected.SelectSingleNode("Condicion").InnerText.Trim() Dim strEstadoOperacionA As String = xmlElementoSelected.SelectSingleNode("Estado_de_la_Operacion").InnerText.Trim() Dim strDiasAtrasoA As String = xmlElementoSelected.SelectSingleNode("Dias_de_Atraso").InnerText.Trim() Dim strActualizadoA As String = xmlElementoSelected.SelectSingleNode("Actualizado").InnerText.Trim() Dim strCuotaCalcA As String = xmlElementoSelected.SelectSingleNode("Cuota_calc").InnerText.Trim() Dim strCancelaA As String = xmlElementoSelected.SelectSingleNode("Cancela").InnerText.Trim() If strCancelaA = False Then strCancelaA = 0 Else strCancelaA = 1 End If Dim strCuotaPrincipalA As String = xmlElementoSelected.SelectSingleNode("CuotaPrincipal").InnerText.Trim() Dim strCuotaInteresesA As String = xmlElementoSelected.SelectSingleNode("CuotaIntereses").InnerText.Trim() Dim strTasaNominalA As String = xmlElementoSelected.SelectSingleNode("TasaNominal").InnerText.Trim() Dim strTipoTasaA As String = xmlElementoSelected.SelectSingleNode("TipoTasa").InnerText.Trim() Dim strDTIEndeudamientoA As String = xmlElementoSelected.SelectSingleNode("DTI").InnerText.Trim() 'MiniEndeudamiento para la operación. 'Arma la trama de salida de Situacion Actual 'La primera vez ingresa a crear el nodo de la cabecera requerido siempre en la salida del XML If (iControlCabeceraA = 0) Then aElement = EsquemaEnv.CreateElement("Registro" & (x + 1)) nElement.AppendChild(aElement) 'Se encicla en la creacion de la cebecera For y = 0 To xmlElementoSelected.ChildNodes.Count - 1 Element = EsquemaEnv.CreateElement("Valor" & (y + 1)) Element.InnerText = xmlElementoSelected.ChildNodes(y).Name aElement.AppendChild(Element) Next iControlCabeceraA = 1 End If 'Se valida que el registro venga con datos sino se sale del ciclo If strEntidadA = "" And strIdOperacionA = "" And strFechaVecimientoA = "" Then Exit For End If 'Realiza la creacion de los nodos que traen los registros con datos aElement = EsquemaEnv.CreateElement("Registro" & (x + iControlCabeceraA + 1)) nElement.AppendChild(aElement) For k = 0 To xmlElementoSelected.ChildNodes.Count - 1 Element = EsquemaEnv.CreateElement("Valor" & (k + 1)) 'Formatea el campo 'ACTUALIZADO' para que se muestre dd/mm/yyyy If xmlElementoSelected.ChildNodes(k).Name = "Actualizado" Then Element.InnerText = "01/" & xmlElementoSelected.ChildNodes(k).InnerText.Replace("-", "/") Else Element.InnerText = xmlElementoSelected.ChildNodes(k).InnerText End If aElement.AppendChild(Element) Next 'Validacion de campos If strActualizadoA.Trim() <> "" Then strActualizadoA = strActualizadoA.Replace("-", "/") strActualizadoA = "01/" & strActualizadoA End If If strMonedaA.ToUpper() = "CRC" Then strMonedaA = "N - COLONES O UNIDADES DE DESARROLLO" ElseIf strMonedaA.ToUpper() = "USD" Then strMonedaA = "E - DIVISA EXTRANJERA" End If If strCondicionA.ToUpper() = "DEUDOR" Then strCondicionA = "DEUDOR" ElseIf strCondicionA.ToUpper() = "CODEUDOR" Then strCondicionA = "CO-DEUDOR" ElseIf strCondicionA.ToUpper() = "FIADOR" Then strCondicionA = "FIADOR/AVALISTA" End If 'Llena la matriz de parametros para enviar a base de datos aNombreParametro(1) = "@i_entidad_acreedora" : aValorParametro(1) = strEntidadA aNombreParametro(2) = "@i_id_operacion" : aValorParametro(2) = strIdOperacionA aNombreParametro(3) = "@i_moneda" : aValorParametro(3) = strMonedaA aNombreParametro(4) = "@i_fecha_vencimiento" : aValorParametro(4) = Valida_Fecha(strFechaVecimientoA, 1, "FECHA VENCIMIENTO", "SITUACION ACTUAL", 0) aNombreParametro(5) = "@i_saldo" : aValorParametro(5) = Valida_Numero(strSaldoA, "SALDO", "SITUACION ACTUAL") aNombreParametro(6) = "@i_monto_nodes" : aValorParametro(6) = Valida_Numero(strMontoNoDesembolsadoA, "MONTO NO DESEMBOLSADO", "SITUACION ACTUAL") aNombreParametro(7) = "@i_tipo_operacion" : aValorParametro(7) = EncuentraTipoOperacion(strTipoOperacionA) aNombreParametro(8) = "@i_condicion" : aValorParametro(8) = strCondicionA aNombreParametro(9) = "@i_estado_operacion" : aValorParametro(9) = EncuentraEstadoOperacion(strEstadoOperacionA) aNombreParametro(10) = "@i_dias_atrasos" : aValorParametro(10) = strDiasAtrasoA aNombreParametro(11) = "@i_fe_inicio" : aValorParametro(11) = Valida_Fecha(strActualizadoA, 1, "ACTUALIZADO AL", "SITUACION ACTUAL", 0) aNombreParametro(12) = "@i_opcion" : aValorParametro(12) = "2" aNombreParametro(13) = "@i_incidente" : aValorParametro(13) = req.incidente aNombreParametro(14) = "@i_solicitud" : aValorParametro(14) = req.solicitud aNombreParametro(15) = "@i_identificacion" : aValorParametro(15) = req.identificacion aNombreParametro(16) = "@i_estado" : aValorParametro(16) = "C" aNombreParametro(17) = "@i_esdeudor" : aValorParametro(17) = 1 aNombreParametro(18) = "@i_proceso" : aValorParametro(18) = req.proceso.ToString() aNombreParametro(19) = "@i_cuotas_equivalente" : aValorParametro(19) = Valida_Numero(strCuotaCalcA, "CUOTA_CALC", "SITUACION ACTUAL") aNombreParametro(20) = "@i_idcliente" : aValorParametro(20) = req.idcliente aNombreParametro(21) = "@i_cancela" : aValorParametro(21) = Valida_Numero(strCancelaA, "CANCELA", "SITUACION ACTUAL") aNombreParametro(22) = "@i_cuota_principal" : aValorParametro(22) = Valida_Numero(strCuotaPrincipalA, "CUOTA_PRINCIPAL", "SITUACION ACTUAL") aNombreParametro(23) = "@i_cuota_intereses" : aValorParametro(23) = Valida_Numero(strCuotaInteresesA, "CUOTA_INTERESES", "SITUACION ACTUAL") aNombreParametro(24) = "@i_tipo_tasa" : aValorParametro(24) = strTipoTasaA aNombreParametro(25) = "@i_tasa_nominal" : aValorParametro(25) = Valida_Numero(strTasaNominalA, "TASA_NOMINAL", "SITUACION ACTUAL") aNombreParametro(26) = "@i_dti_mini_endeudamiento" : aValorParametro(26) = Valida_Numero(strDTIEndeudamientoA, "DTI_MINIENDEUDAMIENTO", "SITUACION ACTUAL") Dim strRespActual As String = outConector.EjecutarComandoSQLArreglo(req.proceso.ToString(), strFuenteDatos, strSPSituActual, aNombreParametro, aValorParametro, 0) If (strRespActual <> "") Then Dim xmlRespA As New XmlDocument xmlRespA.LoadXml(strRespActual) Dim excA As New Exception(xmlRespA.SelectSingleNode("//NewDataSet/Table/STATUS").InnerText) Throw excA End If Next 'Arma la trama de salida de Situacion Historica nElement = EsquemaEnv.CreateElement("Respuesta2") rootElement.AppendChild(nElement) 'Se insertan los registros de Situacion Historica en la base de datos Dim iControlCabeceraH As Integer = 0 For x As Integer = 0 To xmlHistorica.SelectSingleNode("//SituacionHistorica").ChildNodes.Count - 1 Dim xmlElementoSelected As XmlElement xmlElementoSelected = xmlHistorica.SelectSingleNode("//SituacionHistorica").ChildNodes.Item(x) Dim strEntidadH As String = xmlElementoSelected.SelectSingleNode("entidad").InnerText.Trim() Dim strOperacionH As String = xmlElementoSelected.SelectSingleNode("operacion").InnerText.Trim() Dim strFechaVecimientoH As String = xmlElementoSelected.SelectSingleNode("fechavencimiento").InnerText.Trim() Dim strSituacionOperaH As String = xmlElementoSelected.SelectSingleNode("situacionopera").InnerText.Trim() Dim strMotivoNoReporteH As String = xmlElementoSelected.SelectSingleNode("motivonoreporte").InnerText.Trim() Dim strMesesReportadosH As String = xmlElementoSelected.SelectSingleNode("mesesreportados").InnerText.Trim() Dim strUltimoPeriodoH As String = xmlElementoSelected.SelectSingleNode("ultimoperiodo").InnerText.Trim() Dim strAtrasoMaximoH As String = xmlElementoSelected.SelectSingleNode("atrasomaximo").InnerText.Trim() Dim strAtrasoMedioH As String = xmlElementoSelected.SelectSingleNode("atrasomedio").InnerText.Trim() Dim strPuntajeH As String = xmlElementoSelected.SelectSingleNode("puntaje").InnerText.Trim() Dim strPonderadoH As String = xmlElementoSelected.SelectSingleNode("ponderador").InnerText.Trim() 'Arma la trama de salida de Situacion Historica 'La primera vez ingresa a crear el nodo de la cabecera requerido siempre en la salida del XML If (iControlCabeceraH = 0) Then aElement = EsquemaEnv.CreateElement("Registro" & (x + 1)) nElement.AppendChild(aElement) 'Se encicla en la creacion de la cebecera For y = 0 To xmlElementoSelected.ChildNodes.Count - 1 Element = EsquemaEnv.CreateElement("Valor" & (y + 1)) Element.InnerText = xmlElementoSelected.ChildNodes(y).Name aElement.AppendChild(Element) Next iControlCabeceraH = 1 End If 'Se valida que el registro venga con datos If strEntidadH = "" And strOperacionH = "" And strFechaVecimientoH = "" Then Exit For End If 'Realiza la creacion de los nodos que traen los registros con datos aElement = EsquemaEnv.CreateElement("Registro" & (x + iControlCabeceraH + 1)) nElement.AppendChild(aElement) For k = 0 To xmlElementoSelected.ChildNodes.Count - 1 Element = EsquemaEnv.CreateElement("Valor" & (k + 1)) Element.InnerText = xmlElementoSelected.ChildNodes(k).InnerText aElement.AppendChild(Element) Next 'Validacion de campos If strUltimoPeriodoH.Trim() <> "" Then strUltimoPeriodoH = strUltimoPeriodoH.Replace("-", "/") strUltimoPeriodoH = "01/" & strUltimoPeriodoH End If If Integer.Parse(strPuntajeH.Split(",")(1)) <= 0 Then puntaje = Integer.Parse(strPuntajeH.Split(",")(0)) Else puntaje = strPuntajeH.Split(",")(0) & "." & strPuntajeH.Split(",")(1) End If 'Llena la matriz de parametros para enviar a base de datos aNombreParametro2(1) = "@i_opcion" : aValorParametro2(1) = 2 aNombreParametro2(2) = "@i_entidad_acreedora" : aValorParametro2(2) = strEntidadH aNombreParametro2(3) = "@i_fecha_vencimiento" : aValorParametro2(3) = Valida_Fecha(strFechaVecimientoH, 1, "FECHA VENCIMIENTO", "SITUACION HISTORICA", 1) aNombreParametro2(4) = "@i_estado_operacion" : aValorParametro2(4) = strSituacionOperaH aNombreParametro2(5) = "@i_motivo_liquidacion" : aValorParametro2(5) = strMotivoNoReporteH aNombreParametro2(6) = "@i_meses_reportados" : aValorParametro2(6) = strMesesReportadosH aNombreParametro2(7) = "@i_periodo_reportado" : aValorParametro2(7) = Valida_Fecha(Formato_Fecha(strUltimoPeriodoH), 1, "ULTIMO PERIODO REPORTADO", "SITUACION HISTORICA", 0) aNombreParametro2(8) = "@i_atraso_maximo" : aValorParametro2(8) = Valida_Numero(Quita_Formato_Numero("2", strAtrasoMaximoH), "ATRASO MAXIMO", "SITUACION HISTORICA") aNombreParametro2(9) = "@i_atraso_medio" : aValorParametro2(9) = Valida_Numero(Quita_Formato_Numero("2", strAtrasoMedioH), "ATRASO MEDIO", "SITUACION HISTORICA") aNombreParametro2(10) = "@i_ponderador" : aValorParametro2(10) = puntaje aNombreParametro2(11) = "@i_incidente" : aValorParametro2(11) = req.incidente aNombreParametro2(12) = "@i_solicitud" : aValorParametro2(12) = req.solicitud aNombreParametro2(13) = "@i_identificacion" : aValorParametro2(13) = req.identificacion aNombreParametro2(14) = "@i_id_operacion" : aValorParametro2(14) = strOperacionH aNombreParametro2(15) = "@i_estado" : aValorParametro2(15) = "C" aNombreParametro2(16) = "@i_esdeudor" : aValorParametro2(16) = 1 aNombreParametro2(17) = "@i_proceso" : aValorParametro2(17) = req.proceso.ToString() aNombreParametro2(18) = "@i_idcliente" : aValorParametro2(18) = req.idcliente Dim strRespHistorico As String = outConector.EjecutarComandoSQLArreglo(req.proceso.ToString(), strFuenteDatos, strSPSituHistorica, aNombreParametro2, aValorParametro2, 0) If (strRespHistorico <> "") Then Dim xmlRespH As New XmlDocument xmlRespH.LoadXml(strRespHistorico) Dim excH As New Exception(xmlRespH.SelectSingleNode("//NewDataSet/Table/STATUS").InnerText) Throw excH End If Next 'Arma la trama de salida para las deudas a refinanciar If xmlRefinanciar.SelectSingleNode("//DeudasRefinanciar").ChildNodes.Count > 0 Then nElement = EsquemaEnv.CreateElement("Respuesta3") rootElement.AppendChild(nElement) nElement.InnerXml = xmlRefinanciar.SelectSingleNode("//DeudasRefinanciar").InnerXml End If ''ALR-ProyectoAuditoria 07102017 'Dataset de los rubros de situacion Actual 'Arma la trama de salida para los rubros Sumas Principales Dim SumaCuotaCalcTotalColones As Decimal = SumaCuotaCalcColones Dim SumaCuotaCalcTotalDolares As Decimal = SumaCuotaCalcDolares If SumaCuotaCalcColones = 0 And SumaCuotaCalcDolares = 0 Then nElement = EsquemaEnv.CreateElement("Respuesta4") rootElement.AppendChild(nElement) aElement = EsquemaEnv.CreateElement("SumaCuotaCalcTotalColones") aElement.InnerXml = 0 nElement.AppendChild(aElement) aElement = EsquemaEnv.CreateElement("SumaCuotaCalcTotalDolares") aElement.InnerXml = 0 nElement.AppendChild(aElement) Else nElement = EsquemaEnv.CreateElement("Respuesta4") rootElement.AppendChild(nElement) aElement = EsquemaEnv.CreateElement("SumaCuotaCalcTotalColones") aElement.InnerXml = SumaCuotaCalcTotalColones nElement.AppendChild(aElement) aElement = EsquemaEnv.CreateElement("SumaCuotaCalcTotalDolares") aElement.InnerXml = SumaCuotaCalcTotalDolares nElement.AppendChild(aElement) End If End If 'Opcion 1: Procesamiento del Modelos Salarial If (req.opcion = "2") Then 'Dataset del modelo de salario del cliente If Not xmlResp.SelectSingleNode("//NewDataSet/Table1") Is Nothing Then xmlSalario = xmlResp.SelectSingleNode("//NewDataSet/Table1") End If 'Dataset de los rubros a partir de los que se obtuvo el modelo de salario del cliente If Not xmlResp.SelectSingleNode("//NewDataSet/Table2") Is Nothing Then xmlRubrosModelo = xmlResp.SelectSingleNode("//NewDataSet/Table2") End If 'Arma la trama de salida para el modelo de salario If xmlSalario.ChildNodes.Count > 0 Then nElement = EsquemaEnv.CreateElement("Respuesta4") rootElement.AppendChild(nElement) nElement.InnerXml = xmlSalario.InnerXml End If 'Arma la trama de salida para los rubros del modelo de salario If xmlRubrosModelo.ChildNodes.Count > 0 Then nElement = EsquemaEnv.CreateElement("Respuesta5") rootElement.AppendChild(nElement) nElement.InnerXml = xmlRubrosModelo.InnerXml End If End If Else Throw New Exception("No se pudo completar la integracion con el Sistema de Contingencia CIC.") End If resp.errCode = "00" resp.errMessage = "OK" resp.resultado = EsquemaEnv.InnerXml Catch ex As Exception Try 'objAudit.Credentials = System.Net.CredentialCache.DefaultCredentials 'objAudit.grabarLog(ProcessBD, "ServiciosGenerales", "Obtener_Datos_Excel", "E", mensaje) resp.errCode = "99" resp.errMessage = ex.Message resp.resultado = "" & ex.Message & "" Catch ex2 As Exception 'grabarError(ProcessBD, "ServiciosGenerales", "Obtener_Datos_Excel", "E", mensaje) End Try Finally System.GC.Collect() System.GC.Collect() End Try Return resp End Function ''' ''' ''' ''' ''' Public Shared Function ObtenerDatosSensibilizacion(req As ObtenerDatosSensibilizacionRequest) As ObtenerDatosSensibilizacionResponse Dim valores As Hashtable = Nothing Dim respuestaXml As String = String.Empty Dim resp As ObtenerDatosSensibilizacionResponse = Nothing Try resp = New ObtenerDatosSensibilizacionResponse() valores = UtilitarioSensibilizacionBL.ObtieneParametrosSensibilizacion(req.Proceso.ToString(), req.TipoTasaReferencia, req.Moneda) If valores Is Nothing Then Throw New Exception("No se encontraron parámetros de sensibilización.") End If If IsNothing(valores("Error")) Then valores.Add("Proceso", req.Proceso.ToString()) valores.Add("Incidente", req.Incidente) valores.Add("Solicitud", req.Solicitud) valores.Add("Identificacion", req.Identificacion) valores.Add("TipoCliente", req.TipoCliente) valores.Add("SoloLectura", req.SoloLectura) valores.Add("Moneda", req.Moneda) valores.Add("IngNetoCol", Double.Parse(req.IngNetoCol).ToString()) valores.Add("IngNetoDol", Double.Parse(req.IngNetoDol).ToString()) valores.Add("TipoCambio", Double.Parse(req.TipoCambio).ToString()) valores.Add("TipoTasa", req.TipoTasaReferencia) valores.Add("MontoPrestamo", Double.Parse(req.MontoPrestamo).ToString()) valores.Add("TasaPrestamo", req.TasaPrestamo) valores.Add("PlazoPrestamo", req.PlazoPrestamo) valores.Add("CuotaPrestamo", Double.Parse(req.CuotaPrestamo).ToString()) valores.Add("TotalCompromiso", Double.Parse(req.TotalCompromiso).ToString()) valores.Add("Seguro", req.Seguro) UtilitarioSensibilizacionBL.CargarValoresSensibilizacion(valores, req.Moneda, req.IngNetoDol, req.IngNetoCol, req.TipoCambio, req.Proceso.ToString(), req.TasaPrestamo, req.PlazoPrestamo, req.MontoPrestamo, req.Seguro, req.TotalCompromiso, req.CuotaPrestamo) If (req.Mode = 1) Then If req.SoloLectura = "0" Then '******************************************************************** 'Calcula los escenarios de sensibilizacion por operacion del cliente '******************************************************************** UtilitarioSensibilizacionBL.CalculoSensibilizacionOperaciones(req.Incidente, req.Solicitud, req.Proceso.ToString(), req.Identificacion, req.IngNetoCol, req.IngNetoDol, req.TipoCambio, req.CuotaPrestamo, req.TasaPrestamo, req.TipoTasa, req.CoMoneda, req.PlazoPrestamo, req.MontoPrestamo, req.Seguro, req.IdCliente) End If '******************************************************************** 'Consulta endeudamiento calculado por operacion del cliente y actualiza '******************************************************************** UtilitarioSensibilizacionBL.CargaEndeudamientoDTICalculado(req.Incidente, req.Solicitud, req.Proceso.ToString(), req.Identificacion, req.IdCliente, valores) End If If req.SoloLectura = "0" Then UtilitarioSensibilizacionBL.GuardaCalculoSensibilizacion(req.Proceso.ToString(), req.Incidente, req.Solicitud, req.Identificacion, req.TipoCliente, req.IdCliente, valores) End If respuestaXml = UtilitarioSensibilizacionBL.ArmarRespuestaSensibilizacion(valores, req.Mode) Else Throw New Exception(valores("Error")) End If resp.errCode = "00" resp.errMessage = "OK" resp.resultado = respuestaXml Catch ex As Exception respuestaXml = "" + ex.Message + "" resp.errCode = "99" resp.errMessage = ex.Message resp.resultado = respuestaXml End Try Return resp End Function Public Shared Function ObtenerCategoriaRiesgo(req As ObtenerCategoriaRiesgoRequest) As ObtenerCategoriaRiesgoResponse Dim resp As ObtenerCategoriaRiesgoResponse = New ObtenerCategoriaRiesgoResponse() Try Dim arrParametrosNombres(3), arrParametrosValores(3) As String arrParametrosNombres(0) = "" arrParametrosValores(0) = "" arrParametrosNombres(1) = "@morosidad" arrParametrosValores(1) = req.Morosidad arrParametrosNombres(2) = "@pagohistorico" arrParametrosValores(2) = req.PagoHistorico arrParametrosNombres(3) = "@capacidadpago" arrParametrosValores(3) = req.CapacidadPago Dim strXML As String = outConector.EjecutarComandoSQLArreglo(req.Proceso.ToString(), Enumerador.FuenteDatosUltimus.BPMPRENDARIO.ToString(), "usp_cp_obtener_categoriariezgo", arrParametrosNombres, arrParametrosValores, 0) If (strXML <> "") Then Dim xmlResp As New XmlDocument xmlResp.LoadXml(strXML) resp.resultado = xmlResp.SelectSingleNode("//NewDataSet/Table/categoria").InnerText End If resp.errCode = "00" resp.errMessage = "OK" Catch ex As Exception resp.errCode = "99" resp.errMessage = ex.Message End Try Return resp End Function Public Shared Function ObtenerDatosPersonaFisica(cedula As String) As DatosPersonaFisica Dim resp As DatosPersonaFisica = New DatosPersonaFisica() Try Dim arrParametrosNombres(2), arrParametrosValores(2) As String arrParametrosNombres(0) = "" arrParametrosValores(0) = "" arrParametrosNombres(1) = "@pcedula" arrParametrosValores(1) = cedula arrParametrosNombres(2) = "@ptipBusqueda" arrParametrosValores(2) = "Fisica" Dim strXML As String = outConector.EjecutarComandoSQLArreglo(Enumerador.ProcesoUltimus.PrestamoPrendario.ToString(), Enumerador.FuenteDatosINTNegocio.INTNEGOCIO.ToString(), "selCLI_Info_General", arrParametrosNombres, arrParametrosValores, 0) If (strXML <> "") Then Dim xmlResp As New XmlDocument xmlResp.LoadXml(strXML) Dim n As XmlNode = xmlResp.SelectSingleNode("//NewDataSet/Table") Dim temp As String = n.SelectSingleNode("Nombre_Cliente").InnerText.Trim() resp.Identificacion = n.SelectSingleNode("NumCedula_Cliente").InnerText If (temp.IndexOf(" ") = -1) Then resp.PrimerNombre = temp resp.SegundoNombre = "" Else resp.PrimerNombre = temp.Substring(0, temp.IndexOf(" ")) resp.SegundoNombre = temp.Substring(temp.IndexOf(" ") + 1) End If If Not n.SelectSingleNode("Apellido1") Is Nothing Then resp.PrimerApellido = n.SelectSingleNode("Apellido1").InnerText End If If Not n.SelectSingleNode("Apellido2") Is Nothing Then resp.SegundoApellido = n.SelectSingleNode("Apellido2").InnerText End If If Not n.SelectSingleNode("LugarNacimiento_Cliente") Is Nothing Then resp.LugarNacimiento = n.SelectSingleNode("LugarNacimiento_Cliente").InnerText End If If Not n.SelectSingleNode("FecNacimiento") Is Nothing Then resp.FechaNacimiento = n.SelectSingleNode("FecNacimiento").InnerText End If If Not n.SelectSingleNode("FecExpCed") Is Nothing Then resp.FechaExpiracionCedula = n.SelectSingleNode("FecExpCed").InnerText End If If Not n.SelectSingleNode("Edad_Cliente") Is Nothing Then resp.Edad = n.SelectSingleNode("Edad_Cliente").InnerText End If If Not n.SelectSingleNode("Genero_Cliente") Is Nothing Then resp.Genero = n.SelectSingleNode("Genero_Cliente").InnerText End If If Not n.SelectSingleNode("Nacionalidad_Cliente") Is Nothing Then resp.Nacionalidad = n.SelectSingleNode("Nacionalidad_Cliente").InnerText End If If Not n.SelectSingleNode("EstadoVida_Cliente") Is Nothing Then resp.EstadoVida = n.SelectSingleNode("EstadoVida_Cliente").InnerText End If If Not n.SelectSingleNode("Fecha_Defuncion") Is Nothing Then resp.FechaDefuncion = n.SelectSingleNode("Fecha_Defuncion").InnerText End If If Not n.SelectSingleNode("Dependientes_Cliente") Is Nothing Then resp.Dependientes = n.SelectSingleNode("Dependientes_Cliente").InnerText End If If Not n.SelectSingleNode("Hijos") Is Nothing Then resp.Hijos = n.SelectSingleNode("Hijos").InnerText End If If Not n.SelectSingleNode("Ingresos_Estimados") Is Nothing Then resp.IngresosEstimados = n.SelectSingleNode("Ingresos Estimados").InnerText End If If Not n.SelectSingleNode("Est_Civil") Is Nothing Then resp.EstadoCivil = n.SelectSingleNode("Est_Civil").InnerText End If If Not n.SelectSingleNode("NumCedula_Conyugue") Is Nothing Then resp.CedulaConyugue = n.SelectSingleNode("NumCedula_Conyugue").InnerText End If If Not n.SelectSingleNode("Nombre_Conyugue") Is Nothing Then resp.NombreConyugue = n.SelectSingleNode("Nombre_Conyugue").InnerText End If If Not n.SelectSingleNode("Fec_Evento") Is Nothing Then resp.FechaEvento = n.SelectSingleNode("Fec_Evento").InnerText End If If Not n.SelectSingleNode("Indicador_PEPS") Is Nothing Then resp.IndicadorPEPS = n.SelectSingleNode("Indicador_PEPS").InnerText End If If Not n.SelectSingleNode("Descripcion_PEPS") Is Nothing Then resp.DescripcionPEPS = n.SelectSingleNode("Descripcion_PEPS").InnerText End If If Not n.SelectSingleNode("Institucion_PEPS") Is Nothing Then resp.InstitucionPEPS = n.SelectSingleNode("Institucion_PEPS").InnerText End If If Not n.SelectSingleNode("Periodo_PEPS") Is Nothing Then resp.PeriodoPEPS = n.SelectSingleNode("Periodo_PEPS").InnerText End If If Not n.SelectSingleNode("GAM") Is Nothing Then resp.GAM = n.SelectSingleNode("GAM").InnerText End If If Not n.SelectSingleNode("Provincia") Is Nothing Then resp.Provincia = n.SelectSingleNode("Provincia").InnerText End If If Not n.SelectSingleNode("Ingreso_Promedio_Estimado_3M") Is Nothing Then resp.IngresosEstimados3M = n.SelectSingleNode("Ingreso_Promedio_Estimado_3M").InnerText End If If Not n.SelectSingleNode("Ingreso_Promedio_Estimado_6M") Is Nothing Then resp.IngresosEstimados6M = n.SelectSingleNode("Ingreso_Promedio_Estimado_6M").InnerText End If If Not n.SelectSingleNode("Ingreso_Promedio_Estimado_12M") Is Nothing Then resp.IngresosEstimados12M = n.SelectSingleNode("Ingreso_Promedio_Estimado_12M").InnerText End If End If Catch ex As Exception Return Nothing End Try Return resp End Function Public Shared Function ObtenerDatosPersonaJuridica(cedula As String) As DatosPersonaJuridica Dim resp As DatosPersonaJuridica = New DatosPersonaJuridica() Try Dim arrParametrosNombres(2), arrParametrosValores(3) As String arrParametrosNombres(0) = "" arrParametrosValores(0) = "" arrParametrosNombres(1) = "@pcedula" arrParametrosValores(1) = cedula arrParametrosNombres(2) = "@ptipBusqueda" arrParametrosValores(2) = "Juridica" Dim strXML As String = outConector.EjecutarComandoSQLArreglo("", Enumerador.FuenteDatosINTNegocio.INTNEGOCIO.ToString(), "selCLI_Info_General", arrParametrosNombres, arrParametrosValores, 0) If (strXML <> "") Then Dim xmlResp As New XmlDocument xmlResp.LoadXml(strXML) Dim n As XmlNode = xmlResp.SelectSingleNode("//NewDataSet/Table") resp.Identificacion = n.SelectSingleNode("IDENTIFICACION_EMPRESA").InnerText resp.Nombre = n.SelectSingleNode("NOMBRE").InnerText resp.Objeto = n.SelectSingleNode("OBJETO").InnerText resp.PlazoSocial = n.SelectSingleNode("PLAZO_SOCIAL").InnerText resp.Estado = n.SelectSingleNode("ESTADO").InnerText resp.TipoSociedad = n.SelectSingleNode("TIPO_SOCIEDAD").InnerText resp.ActividadEconomica = n.SelectSingleNode("ACTIVIDAD_ECONOMICA").InnerText resp.ClaseAccion = n.SelectSingleNode("CLASE_ACCION").InnerText resp.TipoCapital = n.SelectSingleNode("TIPO_CAPITAL").InnerText resp.TipoMoneda = n.SelectSingleNode("TIPO_MONEDA").InnerText resp.MontoAccion = n.SelectSingleNode("MONTO_ACCION").InnerText resp.CantidadAcciones = n.SelectSingleNode("CANTIDAD_ACCIONES").InnerText resp.Observaciones = n.SelectSingleNode("OBSERVACIONES").InnerText resp.Direccion = n.SelectSingleNode("Direccion").InnerText resp.PlazoSocialAnios = n.SelectSingleNode("Plazo_Social_anos").InnerText resp.CapitalSocial = n.SelectSingleNode("Capital_Social").InnerText resp.Acciones = n.SelectSingleNode("Acciones").InnerText 'resp.FechaNacimiento = n.SelectSingleNode("").InnerText 'resp.FechaInicioPlazoSocial = n.SelectSingleNode("").InnerText 'resp.FechaVencimiento = n.SelectSingleNode("").InnerText 'resp.FechaInscripcion = n.SelectSingleNode("").InnerText End If Catch ex As Exception Return Nothing End Try Return resp End Function Public Shared Function ObtenerTelefonos(cedula As String) As List(Of Telefono) Dim resp As List(Of Telefono) = New List(Of Telefono)() Try Dim arrParametrosNombres(2), arrParametrosValores(3) As String arrParametrosNombres(0) = "" arrParametrosValores(0) = "" arrParametrosNombres(1) = "@pcedula" arrParametrosValores(1) = cedula arrParametrosNombres(2) = "@ptipBusqueda" arrParametrosValores(2) = "Telefono" Dim strXML As String = outConector.EjecutarComandoSQLArreglo("", Enumerador.FuenteDatosINTNegocio.INTNEGOCIO.ToString(), "selCLI_Contacto", arrParametrosNombres, arrParametrosValores, 0) If (strXML <> "") Then Dim xmlResp As New XmlDocument xmlResp.LoadXml(strXML) For Each temp As XmlNode In xmlResp.SelectSingleNode("//NewDataSet").ChildNodes Dim t As Telefono = New Telefono() t.numero = temp.SelectSingleNode("NumTelefono").InnerText.Replace("-", "") t.tipo = temp.SelectSingleNode("tipo").InnerText resp.Add(t) Next End If Catch ex As Exception Return Nothing End Try Return resp End Function Public Shared Function ObtenerDirecciones(cedula As String) As List(Of Direccion) Dim resp As List(Of Direccion) = New List(Of Direccion)() Try Dim arrParametrosNombres(2), arrParametrosValores(3) As String arrParametrosNombres(0) = "" arrParametrosValores(0) = "" arrParametrosNombres(1) = "@pcedula" arrParametrosValores(1) = cedula arrParametrosNombres(2) = "@ptipBusqueda" arrParametrosValores(2) = "Ubicacion" Dim strXML As String = outConector.EjecutarComandoSQLArreglo("", Enumerador.FuenteDatosINTNegocio.INTNEGOCIO.ToString(), "selCLI_Contacto", arrParametrosNombres, arrParametrosValores, 0) If (strXML <> "") Then Dim xmlResp As New XmlDocument xmlResp.LoadXml(strXML) For Each temp As XmlNode In xmlResp.SelectSingleNode("//NewDataSet").ChildNodes Dim t As Direccion = New Direccion() t.provincia = temp.SelectSingleNode("Provincia").InnerText t.canton = temp.SelectSingleNode("Canton").InnerText t.distrito = temp.SelectSingleNode("Distrito").InnerText t.direccionSena = temp.SelectSingleNode("Direccion_Sena").InnerText resp.Add(t) Next End If Catch ex As Exception Return Nothing End Try Return resp End Function Public Shared Function ObtenerNumeroBoleta(req As ObtenerNumeroBoletaRequest) As ObtenerNumeroBoletaResponse Dim strFuenteDatos As String = String.Empty Dim strProceso As String = String.Empty Dim strSQL As String = String.Empty Dim strRespXML As String = String.Empty Dim xmlResp As XmlDocument Dim xmlRoot As XmlElement Dim numsolicitud As String Dim arrParametrosNombres(2) As String Dim arrParametrosValores(2) As String Dim resp As ObtenerNumeroBoletaResponse = Nothing Try resp = New ObtenerNumeroBoletaResponse() strProceso = req.Proceso.ToString() strFuenteDatos = Enumerador.FuenteDatosUltimus.MAILNET.ToString() strSQL = ConfigurationManager.AppSettings("BoletaMensajeria.SpConsultaNumeroBoleta") arrParametrosNombres(1) = "@ususolicitud" : arrParametrosValores(1) = req.Usuario arrParametrosNombres(2) = "@numobjeto" : arrParametrosValores(2) = req.NumObjeto strRespXML = outConector.EjecutarComandoSQLArreglo(strProceso, strFuenteDatos, strSQL, arrParametrosNombres, arrParametrosValores, "0") If (Not String.IsNullOrEmpty(strRespXML)) And strRespXML <> "" Then xmlResp = New XmlDocument xmlResp.LoadXml(strRespXML) xmlRoot = xmlResp.DocumentElement.SelectSingleNode("//NewDataSet/Table") numsolicitud = xmlRoot.SelectSingleNode("numsolicitud").InnerText resp.NumeroBoleta = Integer.Parse(numsolicitud) Else Throw New Exception("No fue posible obtener la respuesta de la consulta de base de datos") End If resp.errCode = "00" resp.errMessage = "EXITOSO" Catch ex As Exception resp.errCode = "99" resp.errMessage = ex.Message + "=> " + strProceso + "," + strFuenteDatos + "," + strSQL + "," + req.Usuario + "," + req.NumObjeto Finally xmlRoot = Nothing xmlResp = Nothing End Try Return resp End Function Public Shared Function ObtenerNivelCapacidadPagoDeudor(req As ObtenerNivelCapacidadPagoDeudorRequest) As ObtenerNivelCapacidadPagoDeudorResponse Dim resp As ObtenerNivelCapacidadPagoDeudorResponse = Nothing Dim aNombreParametro(4), aValorParametro(4) As String Dim xmlResp As XmlDocument = Nothing Dim strXML As String = String.Empty Dim strError As String = String.Empty Dim strResult As String = String.Empty Dim strRespXML As String = String.Empty Dim strFuenteDatos As String = String.Empty Dim strSP As String = String.Empty Dim _ingresoNeto As Double = 0 Try resp = New ObtenerNivelCapacidadPagoDeudorResponse() Select Case req.IdMoneda Case 0 'Colones _ingresoNeto = req.IngresoNetoColones + (req.IngresoNetoDolares * req.TasaCambio) Case 1 'Dolares _ingresoNeto = req.IngresoNetoDolares + (req.IngresoNetoColones / req.TasaCambio) End Select strFuenteDatos = Enumerador.FuenteDatosUltimus.BPMPRENDARIO.ToString() strSP = "usp_cp_nivel_capacidad_pago" '************************************************************************* 'Obtiene el porcentaje máximo de endeudamiento para el ingreso del deudor '************************************************************************* aNombreParametro(1) = "@i_opcion" : aValorParametro(1) = "1" aNombreParametro(2) = "@i_porc_endeudamiento" : aValorParametro(2) = req.PorcEndeudamiento.ToString() aNombreParametro(3) = "@i_ingreso_neto" : aValorParametro(3) = _ingresoNeto.ToString() aNombreParametro(4) = "@i_proceso" : aValorParametro(4) = req.Proceso.ToString() strXML = outConector.EjecutarComandoSQLArreglo(req.Proceso.ToString(), strFuenteDatos, strSP, aNombreParametro, aValorParametro, 0) '************************************************************************* 'Valida que se haya recibido una respuesta correcta '************************************************************************* If strXML.Trim() = String.Empty Or strXML.Trim() = "" Then Throw New Exception("No se obtuvo el nivel de capacidad de pago.") End If '************************************************************************* 'Obtiene los parámetros obtenidos '************************************************************************* xmlResp = New XmlDocument xmlResp.LoadXml(strXML) If Not IsNothing(xmlResp.SelectSingleNode("//NewDataSet/Table/ERROR")) Then Throw New Exception(xmlResp.SelectSingleNode("//NewDataSet/Table/ERROR").InnerText) End If strResult = xmlResp.SelectSingleNode("//NewDataSet/Table").OuterXml resp.Configuracion = strResult If (Not IsNothing(xmlResp.SelectSingleNode("//NewDataSet/Table/IdCapacidadPago"))) Then resp.NivelCapacidadPago = xmlResp.SelectSingleNode("//NewDataSet/Table/IdCapacidadPago").InnerText End If resp.errCode = "00" resp.errMessage = "EXITOSO" Catch excError As Exception resp.errCode = "99" resp.errMessage = excError.Message End Try Return resp End Function Public Shared Function ObtenerEstratoSocial(req As ObtenerEstratoSocialRequest) As ObtenerEstratoSocialResponse Dim resp As ObtenerEstratoSocialResponse = Nothing Dim aNombreParametro(1), aValorParametro(1) As String Dim strFuenteDatos, strSP As String Dim xmlResp As XmlDocument Dim xmlRoot As XmlElement Dim strXML As String = String.Empty Dim strEstratoSocial As String = String.Empty Dim dblSalarioBruto As Double = 0 Try resp = New ObtenerEstratoSocialResponse() strFuenteDatos = Enumerador.FuenteDatosUltimus.BPMPRENDARIO.ToString() strSP = "usp_cp_obtener_estrato_social" ' Obtiene el salario bruto total dblSalarioBruto = req.TotalIngresoBrutoDol + (req.TotalIngresoBrutoCol / req.TasaCambio) aNombreParametro(1) = "@i_ingresoDolares" : aValorParametro(1) = dblSalarioBruto.ToString() 'Obtiene los valores de la BD strXML = outConector.EjecutarComandoSQLArreglo(req.Proceso.ToString(), strFuenteDatos, strSP, aNombreParametro, aValorParametro, 0) If strXML <> "" Then xmlResp = New XmlDocument xmlResp.LoadXml(strXML) xmlRoot = xmlResp.DocumentElement.SelectSingleNode("//NewDataSet/Table") strEstratoSocial = xmlRoot.SelectSingleNode("EstratoSocial").InnerText End If resp.EstratoSocial = strEstratoSocial resp.errCode = "00" resp.errMessage = "EXITOSO" Catch excError As Exception resp.errCode = "99" resp.errMessage = excError.Message End Try Return resp End Function Public Shared Function ClasificaGeneradorMoneda(req As ClasificaGeneradorMonedaRequest) As ClasificaGeneradorMonedaResponse Dim Tabla1 As String = String.Empty Dim Tabla2 As String = String.Empty Dim Tabla3 As String = String.Empty Dim cant_oper_dolares_tar As Integer = 0 Dim subtot_pagos_dolares_tar As Decimal = 0 Dim subtot_pagos_colones_tar As Decimal = 0 Dim cant_oper_dolares_act As Integer = 0 Dim subtot_cuotas_dolares_act As Decimal = 0 Dim subtot_cuotas_colones_act As Decimal = 0 Dim Moneda As String = String.Empty Dim PagoMinimo As String = String.Empty Dim CuotaActual As String = String.Empty Dim StrSQL As String = String.Empty Dim strFuenteDatos As String = String.Empty Dim categoriaGenerador As String = String.Empty Dim ds As DataSet = Nothing Dim fila As DataRow = Nothing Dim tabla As DataTable = Nothing Dim objXML As System.Xml.XmlDocument = Nothing Dim resp As ClasificaGeneradorMonedaResponse = Nothing Try resp = New ClasificaGeneradorMonedaResponse() objXML = New System.Xml.XmlDocument Select Case req.Proceso Case Enumerador.ProcesoUltimus.PrestamoPrendario Tabla1 = "[Prendario].[PosicionActivos]" Tabla2 = "[Prendario].[PosicionTarjetas]" Tabla3 = "[Prendario].[SensibilizacionSolicitud]" strFuenteDatos = Enumerador.FuenteDatosUltimus.BPMPRENDARIO.ToString() Case Else Throw New Exception("No se encuentra parametrizado el proceso " + req.Proceso.ToString() + " para completar la ejecución.") End Select If req.TotalIngresoNetoDolares.Length = 0 Or req.TotalIngresoNetoDolares = "" Then req.TotalIngresoNetoDolares = 0 End If If req.TotalIngresoNetoColones.Length = 0 Or req.TotalIngresoNetoColones = "" Then req.TotalIngresoNetoColones = 0 End If If req.TasaCambio.Length = 0 Or req.TasaCambio = "" Then req.TasaCambio = 0 End If If req.IdCliente = "" Then req.IdCliente = 0 End If If req.CuotaPrestamo Is Nothing Then req.CuotaPrestamo = "0" Else If req.CuotaPrestamo.Trim().Length = 0 Then req.CuotaPrestamo = "0" End If End If '+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 'Validación de información de las activos '+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ subtot_cuotas_dolares_act = 0 subtot_cuotas_colones_act = 0 cant_oper_dolares_act = 0 StrSQL = "Select Moneda, CuotaActual From " & Tabla1 & " Where IdSolicitud=" & req.IdSolicitud & " and IdCliente =" & req.IdCliente ds = outConector.EjecutarComandoSQLXMLDataSet(req.Proceso.ToString(), strFuenteDatos, StrSQL) 'Recorriendo los activos del cliente If (ds.Tables.Count > 0) Then For Each tabla In ds.Tables For Each fila In tabla.Rows Moneda = fila.Item("Moneda") CuotaActual = fila.Item("CuotaActual") If CuotaActual.Length = 0 Or CuotaActual = "" Then CuotaActual = 0 End If Select Case Moneda.ToUpper() Case "DOLARES" cant_oper_dolares_act = cant_oper_dolares_act + 1 subtot_cuotas_dolares_act = subtot_cuotas_dolares_act + CDbl(CuotaActual) Case "COLONES" subtot_cuotas_colones_act = subtot_cuotas_colones_act + CDbl(CuotaActual) End Select Next Next End If ds.Reset() '***************************************************************************************** 'EO 30-11-2009 Ajuste para agregar cuota del trámite en el cálculo '***************************************************************************************** If (req.Proceso = Enumerador.ProcesoUltimus.PrestamoPrendario) Or InStr(req.Proceso.ToString(), "PERSONAL") Then If req.Moneda.ToUpper() = "COLONES" Then subtot_cuotas_colones_act = subtot_cuotas_colones_act + CDbl(req.CuotaPrestamo) Else cant_oper_dolares_act = cant_oper_dolares_act + 1 subtot_cuotas_dolares_act = subtot_cuotas_dolares_act + CDbl(req.CuotaPrestamo) End If End If '+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 'Validación de información de las Tarjetas '+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ subtot_pagos_dolares_tar = 0 subtot_pagos_colones_tar = 0 cant_oper_dolares_tar = 0 StrSQL = "Select Moneda, PagoMinimo From " & Tabla2 & " Where IdSolicitud=" & req.IdSolicitud & " and IdCliente=" & req.IdCliente ds = outConector.EjecutarComandoSQLXMLDataSet(req.Proceso.ToString(), strFuenteDatos, StrSQL) 'Recorriendo las Tarjetas del cliente If (ds.Tables.Count > 0) Then For Each tabla In ds.Tables For Each fila In tabla.Rows Moneda = fila.Item("Moneda") PagoMinimo = fila.Item("PagoMinimo") If PagoMinimo.Length = 0 Or PagoMinimo = "" Then PagoMinimo = 0 End If Select Case Moneda.ToUpper() Case "DOLARES" cant_oper_dolares_tar = cant_oper_dolares_tar + 1 subtot_pagos_dolares_tar = subtot_pagos_dolares_tar + CDbl(PagoMinimo) Case "COLONES" subtot_pagos_colones_tar = subtot_pagos_colones_tar + CDbl(PagoMinimo) End Select Next Next End If ds.Reset() '***************************************************************************************** 'EO 30-11-2009 Ajuste para agregar cuota del trámite en el cálculo '***************************************************************************************** If InStr(req.Proceso.ToString(), "TARJETA") Then StrSQL = "select ss_esc1_cuota from " & Tabla3 & " where IdSolicitud =" & req.IdSolicitud & " and IdCliente =" & req.IdCliente ds = outConector.EjecutarComandoSQLXMLDataSet(req.Proceso.ToString(), strFuenteDatos, StrSQL) req.CuotaPrestamo = ds.Tables.Item(0).Rows(0).Item("ss_esc1_cuota") If req.Moneda.ToUpper() = "COLONES" Then subtot_pagos_colones_tar = subtot_pagos_colones_tar + CDbl(req.CuotaPrestamo) Else cant_oper_dolares_tar = cant_oper_dolares_tar + 1 subtot_pagos_dolares_tar = subtot_pagos_dolares_tar + CDbl(req.CuotaPrestamo) End If End If '+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 'Clasificar al cliente en: ' 1- No Aplica ' 2- Generador de Moneda Extranjera ' 3- No generador de Moneda Extranjera de Bajo Riesgo ' 4- No generador de Moneda Extranjera de Alto Riesgo '+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Dim flagCondicionBase As Boolean = False 'Se Valida si aplica a primera clasificacion (1) If cant_oper_dolares_act = 0 And cant_oper_dolares_tar = 0 Then 'No tiene ninguna operacion en dolares categoriaGenerador = ConfigurationManager.AppSettings("categoria1") Else 'Cumple con condición basica de tener al menos una operacion en dolares (activos o tarjetas) flagCondicionBase = True End If 'Se valida si aplica a la segunda categoría (2), sino aplico en la categoria anterior Dim subtot_ing_tar_act As Double = 0 'Se suman los activos y tarjetas en dolares subtot_ing_tar_act = subtot_pagos_dolares_tar + subtot_cuotas_dolares_act If categoriaGenerador = "" And flagCondicionBase = True Then If CDbl(req.TotalIngresoNetoDolares) >= subtot_ing_tar_act And CDbl(req.TotalIngresoNetoDolares) > 0 Then categoriaGenerador = ConfigurationManager.AppSettings("categoria2") End If End If 'Se valida si aplica a la tercer categoría (3), sino aplico en la categoria anterior Dim subtot_dol_tar_act_col As Decimal = 0 Dim tot_deudas_cat3 As Decimal = 0 If categoriaGenerador = "" And flagCondicionBase = True Then '+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 'Se consulta ingreso neto en dolares en el escenario 3 de sensibilizacion '+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ StrSQL = "Select ss_esc3_ingresosnetos, ss_esc3_tipocambio_esp From " & Tabla3 & " where IdSolicitud =" & req.IdSolicitud & " and IdCliente =" & req.IdCliente ds = outConector.EjecutarComandoSQLXMLDataSet(req.Proceso.ToString(), strFuenteDatos, StrSQL) If (ds.Tables.Count > 0) Then If (ds.Tables.Item(0).Rows.Count > 0) Then ' Se calculan los equivalentes en dolares para las operaciones que son en colones subtot_dol_tar_act_col = (subtot_cuotas_colones_act + subtot_pagos_colones_tar) * (1 / CDbl(ds.Tables.Item(0).Rows(0).Item("ss_esc3_tipocambio_esp"))) 'Se suman todos los montos de todos los activos y tarjetas tot_deudas_cat3 = subtot_dol_tar_act_col + subtot_ing_tar_act 'Recorriendo la sensibilizacion Dim ing_neto_es3sensibiliza As String ing_neto_es3sensibiliza = CDbl(req.TotalIngresoNetoDolares) + (CDbl(req.TotalIngresoNetoColones) / CDbl(ds.Tables.Item(0).Rows(0).Item("ss_esc3_tipocambio_esp"))) ds.Reset() If ing_neto_es3sensibiliza >= tot_deudas_cat3 Then categoriaGenerador = ConfigurationManager.AppSettings("categoria3") End If End If End If End If 'Se valida si aplica a la cuarta categoría (4), sino aplico en la categoria anterior If categoriaGenerador = "" And flagCondicionBase = True Then categoriaGenerador = ConfigurationManager.AppSettings("categoria4") End If resp.CategoriaGenerador = categoriaGenerador resp.errCode = "00" resp.errMessage = "EXITOSO" Catch excError As Exception resp.errCode = "99" resp.errMessage = excError.Message End Try Return resp End Function Public Shared Function ClasificaGeneradorMonedaSugef(req As ClasificaGeneradorMonedaRequest) As ClasificaGeneradorMonedaResponse Dim strSQL As String = String.Empty Dim strXML As String = String.Empty Dim NombreSP As String = String.Empty Dim NombreFuenteDatos As String = String.Empty Dim xmlResp As XmlDocument = Nothing Dim xmlRoot As XmlNode = Nothing Dim arrParametrosNombres(10), arrParametrosValores(10) As String Dim resp As ClasificaGeneradorMonedaResponse = Nothing Try resp = New ClasificaGeneradorMonedaResponse() strSQL = "usp_wf_generador_moneda" NombreFuenteDatos = "BPMDATA" arrParametrosNombres(1) = "@i_opcion" : arrParametrosValores(1) = "1" arrParametrosNombres(2) = "@i_incidente" : arrParametrosValores(2) = req.Incidente arrParametrosNombres(3) = "@i_solicitud" : arrParametrosValores(3) = req.IdSolicitud arrParametrosNombres(4) = "@i_proceso" : arrParametrosValores(4) = req.Proceso.ToString() arrParametrosNombres(5) = "@i_identificacion" : arrParametrosValores(5) = req.Identificacion arrParametrosNombres(6) = "@i_ingreso_brut_col" : arrParametrosValores(6) = req.TotalIngresoBrutoColones arrParametrosNombres(7) = "@i_ingreso_brut_dol" : arrParametrosValores(7) = req.TotalIngresoBrutoDolares arrParametrosNombres(8) = "@i_tipo_cambio" : arrParametrosValores(8) = req.TasaCambio arrParametrosNombres(9) = "@i_fecha_solicitud" : arrParametrosValores(9) = req.FechaSolicitud arrParametrosNombres(10) = "@i_idcliente" : arrParametrosValores(10) = req.IdCliente strXML = outConector.EjecutarComandoSQLArreglo(req.Proceso.ToString(), NombreFuenteDatos, strSQL, arrParametrosNombres, arrParametrosValores, 0) If (strXML = "") Then Throw New Exception("No fue posible obtener el resultado del procedimiento de clasificación de generador de moneda extranjera") End If xmlResp = New XmlDocument() xmlResp.LoadXml(strXML) xmlRoot = xmlResp.SelectSingleNode("//NewDataSet/Table") Dim RespCode = xmlRoot.SelectSingleNode("res_code").InnerText If RespCode <> "0" Then Dim RespMessage = xmlRoot.SelectSingleNode("res_message").InnerText Dim RespErrProcedure = xmlRoot.SelectSingleNode("res_err_procedure").InnerText Dim RespErrLine = xmlRoot.SelectSingleNode("res_err_line").InnerText Throw New Exception(String.Format("Ha ocurrido un problema al intentar realizar el cálculo de clasificación de generador de moneda extranjera.\nCode:{0}\nMessage:{1}\nStored Procedure:{2}\nLine{3}", RespCode, RespMessage, RespErrProcedure, RespErrLine)) End If Dim RespCodGenerador = xmlRoot.SelectSingleNode("res_cod_generador").InnerText Dim RespDesGenerador = xmlRoot.SelectSingleNode("res_des_generador").InnerText resp.CategoriaGenerador = RespDesGenerador resp.errCode = "00" resp.errMessage = "EXITOSO" Catch excError As Exception resp.errCode = "99" resp.errMessage = excError.Message End Try Return resp End Function Public Shared Function ClasificaRiesgoCambiario(req As RiesgoCambiarioRequest) As RiesgoCambiarioResponse Dim strSQL As String = String.Empty Dim strXML As String = String.Empty Dim NombreSP As String = String.Empty Dim NombreFuenteDatos As String = String.Empty Dim xmlResp As XmlDocument = Nothing Dim xmlRoot As XmlNode = Nothing Dim arrParametrosNombres(10), arrParametrosValores(10) As String Dim resp As RiesgoCambiarioResponse = Nothing Try resp = New RiesgoCambiarioResponse() strSQL = "usp_wf_riesgocambiario_CSD" NombreFuenteDatos = "BPMDATA" arrParametrosNombres(1) = "@i_opcion" : arrParametrosValores(1) = "1" arrParametrosNombres(2) = "@i_incidente" : arrParametrosValores(2) = req.Incidente arrParametrosNombres(3) = "@i_solicitud" : arrParametrosValores(3) = req.IdSolicitud arrParametrosNombres(4) = "@i_proceso" : arrParametrosValores(4) = req.Proceso.ToString() arrParametrosNombres(5) = "@i_identificacion" : arrParametrosValores(5) = req.Identificacion arrParametrosNombres(6) = "@i_ingreso_neto_col" : arrParametrosValores(6) = req.TotalIngresoNetoColones arrParametrosNombres(7) = "@i_ingreso_neto_dol" : arrParametrosValores(7) = req.TotalIngresoNetoDolares arrParametrosNombres(8) = "@i_tipo_cambio" : arrParametrosValores(8) = req.TasaCambio arrParametrosNombres(9) = "@i_fecha_solicitud" : arrParametrosValores(9) = req.FechaSolicitud arrParametrosNombres(10) = "@i_idcliente" : arrParametrosValores(10) = req.IdCliente strXML = outConector.EjecutarComandoSQLArreglo(req.Proceso.ToString(), NombreFuenteDatos, strSQL, arrParametrosNombres, arrParametrosValores, 0) If (strXML = "") Then Throw New Exception("No fue posible obtener el resultado del procedimiento de clasificación de riesgo cambiario") End If xmlResp = New XmlDocument() xmlResp.LoadXml(strXML) xmlRoot = xmlResp.SelectSingleNode("//NewDataSet/Table") Dim RespCode = xmlRoot.SelectSingleNode("res_code").InnerText If RespCode <> "0" Then Dim RespMessage = xmlRoot.SelectSingleNode("res_message").InnerText Dim RespErrProcedure = xmlRoot.SelectSingleNode("res_err_procedure").InnerText Dim RespErrLine = xmlRoot.SelectSingleNode("res_err_line").InnerText Throw New Exception(String.Format("Ha ocurrido un problema al intentar realizar el cálculo de clasificación de riesgo cambiario.\nCode:{0}\nMessage:{1}\nStored Procedure:{2}\nLine{3}", RespCode, RespMessage, RespErrProcedure, RespErrLine)) End If Dim RespCodRiesgoCambiario = xmlRoot.SelectSingleNode("res_cod_riesgo_cambiario").InnerText Dim RespDesRiesgoCambiario = xmlRoot.SelectSingleNode("res_riesgo_cambiario").InnerText resp.RiesgoCambiario = RespDesRiesgoCambiario resp.errCode = "00" resp.errMessage = "EXITOSO" Catch excError As Exception resp.errCode = "99" resp.errMessage = excError.Message End Try Return resp End Function Public Shared Function ObtenerCSD(req As ObtenerCSDRequest) As ObtenerCSDResponse Dim strSQL As String = String.Empty Dim strXML As String = String.Empty Dim NombreSP As String = String.Empty Dim NombreFuenteDatos As String = String.Empty Dim xmlResp As XmlDocument = Nothing Dim xmlRoot As XmlNode = Nothing Dim arrParametrosNombres(10), arrParametrosValores(10) As String Dim resp As ObtenerCSDResponse = Nothing Try resp = New ObtenerCSDResponse() strSQL = "usp_wf_riesgocambiario_CSD" NombreFuenteDatos = "BPMDATA" arrParametrosNombres(1) = "@i_opcion" : arrParametrosValores(1) = "2" arrParametrosNombres(2) = "@i_incidente" : arrParametrosValores(2) = req.Incidente arrParametrosNombres(3) = "@i_solicitud" : arrParametrosValores(3) = req.IdSolicitud arrParametrosNombres(4) = "@i_proceso" : arrParametrosValores(4) = req.Proceso.ToString() arrParametrosNombres(5) = "@i_identificacion" : arrParametrosValores(5) = req.Identificacion arrParametrosNombres(6) = "@i_ingreso_bruto_col" : arrParametrosValores(6) = req.TotalIngresoBrutoColones arrParametrosNombres(7) = "@i_ingreso_bruto_dol" : arrParametrosValores(7) = req.TotalIngresoBrutoDolares arrParametrosNombres(8) = "@i_tipo_cambio" : arrParametrosValores(8) = req.TasaCambio arrParametrosNombres(9) = "@i_fecha_solicitud" : arrParametrosValores(9) = req.FechaSolicitud arrParametrosNombres(10) = "@i_idcliente" : arrParametrosValores(10) = req.IdCliente strXML = outConector.EjecutarComandoSQLArreglo(req.Proceso.ToString(), NombreFuenteDatos, strSQL, arrParametrosNombres, arrParametrosValores, 0) If (strXML = "") Then Throw New Exception("No fue posible obtener el resultado del procedimiento de clasificación de riesgo cambiario") End If xmlResp = New XmlDocument() xmlResp.LoadXml(strXML) xmlRoot = xmlResp.SelectSingleNode("//NewDataSet/Table") Dim RespCode = xmlRoot.SelectSingleNode("res_code").InnerText If RespCode <> "0" Then Dim RespMessage = xmlRoot.SelectSingleNode("res_message").InnerText Dim RespErrProcedure = xmlRoot.SelectSingleNode("res_err_procedure").InnerText Dim RespErrLine = xmlRoot.SelectSingleNode("res_err_line").InnerText Throw New Exception(String.Format("Ha ocurrido un problema al intentar realizar el cálculo de clasificación de riesgo cambiario.\nCode:{0}\nMessage:{1}\nStored Procedure:{2}\nLine{3}", RespCode, RespMessage, RespErrProcedure, RespErrLine)) End If Dim RespCSD = xmlRoot.SelectSingleNode("CSD").InnerText resp.CSD = RespCSD resp.errCode = "00" resp.errMessage = "EXITOSO" Catch excError As Exception resp.errCode = "99" resp.errMessage = excError.Message End Try Return resp End Function Public Shared Function ObtenerSalarioNeto(req As ObtenerSalarioNetoRequest) As ObtenerSalarioNetoResponse Dim aNombreParametro(0), aValorParametro(0) As String Dim strFuenteDatos As String = String.Empty Dim strSP As String = String.Empty Dim xmlResp As XmlDocument = Nothing Dim xmlRoot As XmlElement = Nothing Dim strXML As String = String.Empty Dim strValorIvmEfMater As Decimal = 0 Dim srtValorPopular As Decimal = 0 Dim strValorRenta As Decimal = 0 Dim strValorSalarioNetoCol As Decimal = 0 Dim strPrcSalarioNetoCol As Decimal = 0 Dim strValorSalarioNetoDol As Decimal = 0 Dim strPrcSalarioNetoDol As Decimal = 0 Dim strPrcRenta As Decimal = 0 Dim strSalarioBruto As Decimal = 0 Dim strIvmEfMater As String = String.Empty Dim strPopular As String = String.Empty Dim strTope1DesdeCol As String = String.Empty Dim strTope1HastaCol As String = String.Empty Dim strTope1Porcentaje As String = String.Empty Dim strTope2DesdeCol As String = String.Empty Dim strTope2HastaCol As String = String.Empty Dim strTope2Porcentaje As String = String.Empty Dim strTope3DesdeCol As String = String.Empty Dim strTope3HastaCol As String = String.Empty Dim strTope3Porcentaje As String = String.Empty Dim strTope1DesdeDol As String = String.Empty Dim strTope1HastaDol As String = String.Empty Dim strTope2DesdeDol As String = String.Empty Dim strTope2HastaDol As String = String.Empty Dim strTope3DesdeDol As String = String.Empty Dim strTope3HastaDol As String = String.Empty Dim resp As ObtenerSalarioNetoResponse = Nothing Try resp = New ObtenerSalarioNetoResponse() strFuenteDatos = Enumerador.FuenteDatosUltimus.BPMPRENDARIO.ToString() strSP = "usp_cp_salario_neto" '******************************************** 'Obtiene los valores de la BD '******************************************** strXML = outConector.EjecutarComandoSQLArreglo(req.Proceso.ToString(), strFuenteDatos, strSP, aNombreParametro, aValorParametro, 0) xmlResp = New XmlDocument xmlResp.LoadXml(strXML) xmlRoot = xmlResp.DocumentElement.SelectSingleNode("//NewDataSet/Table") strIvmEfMater = xmlRoot.SelectSingleNode("IvmEnferMaternidad").InnerText strPopular = xmlRoot.SelectSingleNode("Popular").InnerText strTope1DesdeCol = xmlRoot.SelectSingleNode("MontoTop1Desde").InnerText strTope1HastaCol = xmlRoot.SelectSingleNode("MontoTop1Hasta").InnerText strTope1Porcentaje = xmlRoot.SelectSingleNode("Top1Porcentaje").InnerText strTope2DesdeCol = xmlRoot.SelectSingleNode("MontoTop2Desde").InnerText strTope2HastaCol = xmlRoot.SelectSingleNode("MontoTop2Hasta").InnerText strTope2Porcentaje = xmlRoot.SelectSingleNode("Top2Porcentaje").InnerText strTope3DesdeCol = xmlRoot.SelectSingleNode("MontoTop3Desde").InnerText strTope3HastaCol = xmlRoot.SelectSingleNode("MontoTop3Hasta").InnerText strTope3Porcentaje = xmlRoot.SelectSingleNode("Top3Porcentaje").InnerText If req.IdMoneda = 1 Then 'Dolares strTope1DesdeDol = CDec(strTope1DesdeCol) / CDec(req.TasaCambio) strTope1HastaDol = CDec(strTope1HastaCol) / CDec(req.TasaCambio) strTope2DesdeDol = CDec(strTope2DesdeCol) / CDec(req.TasaCambio) strTope2HastaDol = CDec(strTope2HastaCol) / CDec(req.TasaCambio) strTope3DesdeDol = CDec(strTope3DesdeCol) / CDec(req.TasaCambio) strTope3HastaDol = CDec(strTope3HastaCol) / CDec(req.TasaCambio) End If 'Calcular el Ingreso Neto para el Ingreso Bruto en COLONES If CDec(req.SalarioBrutoCol) > 0 Then 'Calculo del valor IVM, Maternidad, Enfermedad strValorIvmEfMater = CDec(strIvmEfMater) / 100 * CDec(req.SalarioBrutoCol) 'Calculo del valor Popular srtValorPopular = CDec(strPopular) / 100 * CDec(req.SalarioBrutoCol) ' Se evaluan las condiciones para la renta If CDec(req.SalarioBrutoCol) <= strTope1HastaCol Then strValorRenta = 0 ElseIf CDec(req.SalarioBrutoCol) >= CDec(strTope2DesdeCol) And CDec(req.SalarioBrutoCol) <= CDec(strTope2HastaCol) Then strValorRenta = (CDec(req.SalarioBrutoCol) - CDec(strTope1HastaCol)) * (CDec(strTope2Porcentaje) / 100) ElseIf CDec(req.SalarioBrutoCol) >= CDec(strTope3DesdeCol) Then strValorRenta = ((CDec(strTope2HastaCol) - CDec(strTope1HastaCol)) * (CDec(strTope2Porcentaje) / 100)) + ((CDec(req.SalarioBrutoCol) - CDec(strTope2HastaCol)) * (CDec(strTope3Porcentaje) / 100)) End If ' Calcula el porcentaje de la renta strPrcRenta = CDec(strValorRenta) / CDec(req.SalarioBrutoCol) ' Calcula el salario neto strValorSalarioNetoCol = CDec(req.SalarioBrutoCol) - (CDec(strValorIvmEfMater) + CDec(srtValorPopular) + CDec(strValorRenta)) strPrcSalarioNetoCol = CDec(strValorSalarioNetoCol) / CDec(req.SalarioBrutoCol) * 100 Else strValorSalarioNetoCol = "0" strPrcSalarioNetoCol = "0" End If ' Calcular el Ingreso Neto para el Ingreso Bruto en DOLARES If CDec(req.SalarioBrutoDol) > 0 Then ' Calculo del valor IVM, Maternidad, Enfermedad strValorIvmEfMater = CDec(strIvmEfMater) / 100 * CDec(req.SalarioBrutoDol) ' Calculo del valor Popular srtValorPopular = CDec(strPopular) / 100 * CDec(req.SalarioBrutoDol) ' Se evaluan las condiciones para la renta If CDec(req.SalarioBrutoDol) <= strTope1HastaDol Then strValorRenta = 0 ElseIf CDec(req.SalarioBrutoDol) >= CDec(strTope2DesdeDol) And CDec(req.SalarioBrutoDol) <= CDec(strTope2HastaDol) Then strValorRenta = (CDec(req.SalarioBrutoDol) - CDec(strTope1HastaDol)) * (CDec(strTope2Porcentaje) / 100) ElseIf CDec(req.SalarioBrutoDol) >= CDec(strTope3DesdeDol) Then strValorRenta = ((CDec(strTope2HastaDol) - CDec(strTope1HastaDol)) * (CDec(strTope2Porcentaje) / 100)) + ((CDec(req.SalarioBrutoDol) - CDec(strTope2HastaDol)) * (CDec(strTope3Porcentaje) / 100)) End If ' Calcula el porcentaje de la renta strPrcRenta = CDec(strValorRenta) / CDec(req.SalarioBrutoDol) ' Calcula el salario neto strValorSalarioNetoDol = CDec(req.SalarioBrutoDol) - (CDec(strValorIvmEfMater) + CDec(srtValorPopular) + CDec(strValorRenta)) strPrcSalarioNetoDol = CDec(strValorSalarioNetoDol) / CDec(req.SalarioBrutoDol) * 100 Else strValorSalarioNetoDol = "0" strPrcSalarioNetoDol = "0" End If resp.SalarioNetoColones = strValorSalarioNetoCol resp.SalarioNetoDolares = strValorSalarioNetoDol resp.PorcentajeSalarioNetoColones = strPrcSalarioNetoCol resp.PorcentajeSalarioNetoDolares = strPrcSalarioNetoDol resp.errCode = "00" resp.errMessage = "EXITOSO" Catch excError As Exception resp.errCode = "99" resp.errMessage = excError.Message End Try Return resp End Function Public Shared reg_sactual As String = 0 Public Shared reg_shistorica As String = 0 Public Shared G_Valor_Meses_Rep As String = String.Empty Public Shared G_Param_Meses_Rep As String = String.Empty Public Shared G_Opera_Meses_Rep As String = String.Empty Public Shared G_Valor_Dif_Fe_Rep As String = String.Empty Public Shared G_Param_Dif_Fe_Rep As String = String.Empty Public Shared G_Opera_Dif_Fe_Rep As String = String.Empty Public Shared Function EvaluarCIC(req As EvaluarCICRequest) As EvaluarCICResponse Dim resp As EvaluarCICResponse = Nothing Dim strConexion As String = String.Empty Dim strProceso As String = req.proceso.ToString() Dim strXMLReturn As String Dim objXML As New System.Xml.XmlDocument Dim StrXml As String = String.Empty Dim StrSQL As String = String.Empty Dim ds As New DataSet Dim tabla As DataTable Dim fila As DataRow Dim arrParametrosNombres(7) As String Dim arrParametrosValores(7) As String Dim i As Integer Dim node, child As System.Xml.XmlNode Dim campos, valores As String Dim arr_valores() As String Dim arr_campos() As String Dim dias_atrasos, condicion As String Dim estado_operacion, meses_reportados, ponderador, registro_tabla As String Dim nu_seccion As String = String.Empty Dim nu_regla As String = String.Empty Dim cod_variable As String = String.Empty Dim operador As String = String.Empty Dim valor_eval As String = String.Empty Dim tipo_valor As String = String.Empty Dim CadenaNeg As String = String.Empty Dim valor_comp As String = String.Empty Dim dif_fe_repor_fe_sol As String Dim flag As Boolean = True Dim flag2 As Boolean = True Dim flag3 As Boolean = True Dim x As Integer Try resp = New EvaluarCICResponse() Select Case req.proceso Case Enumerador.ProcesoUltimus.PrestamoPrendario strConexion = Enumerador.FuenteDatosUltimus.BPMPRENDARIO.ToString() StrSQL = "usp_ep_politicas" End Select valida_registros(req.solicitud, req.incidente, req.identificacion, req.proceso.ToString(), req.idCliente) arrParametrosNombres(1) = "@i_opcion" : arrParametrosValores(1) = "6" arrParametrosNombres(2) = "@i_incidente" : arrParametrosValores(2) = req.incidente arrParametrosNombres(3) = "@i_solicitud" : arrParametrosValores(3) = req.solicitud arrParametrosNombres(4) = "@i_identificacion" : arrParametrosValores(4) = req.identificacion arrParametrosNombres(5) = "@i_proceso" : arrParametrosValores(5) = strProceso arrParametrosNombres(6) = "@i_seccion" : arrParametrosValores(6) = "" arrParametrosNombres(7) = "@i_idcliente" : arrParametrosValores(7) = req.idCliente.ToString() StrXml = outConector.EjecutarComandoSQLArreglo( _ strProceso, _ strConexion, _ StrSQL, _ arrParametrosNombres, _ arrParametrosValores, _ "0") Dim notienecondificon As Boolean If (StrXml <> "") Then objXML.LoadXml(StrXml) node = objXML.SelectSingleNode("//NewDataSet") For i = 0 To node.ChildNodes.Count - 1 notienecondificon = False child = node.ChildNodes(i) dias_atrasos = valida_nodo(child, "sf_dias_atrasos") condicion = IIf(valida_nodo(child, "sf_condicion") = "", "DEUDOR", valida_nodo(child, "sf_condicion")) estado_operacion = valida_nodo(child, "sf_estado_operacion") meses_reportados = valida_nodo(child, "sf_meses_reportados") ponderador = valida_nodo(child, "sf_ponderador") registro_tabla = valida_nodo(child, "sf_status_tabla") reg_sactual = valida_nodo(child, "reg_sactual") reg_shistorica = valida_nodo(child, "reg_shistorica") dif_fe_repor_fe_sol = valida_nodo(child, "sf_periodo_reportado") G_Valor_Meses_Rep = "" G_Param_Meses_Rep = "" G_Opera_Meses_Rep = "" G_Valor_Dif_Fe_Rep = "" G_Param_Dif_Fe_Rep = "" G_Opera_Dif_Fe_Rep = "" ' Se envian los campos a evaluar campos = "v_ci_sit_actual|v_ci_atraso_sa|v_ci_condicion|v_ci_sit_historica|v_ci_operacion_sh|" campos += "v_ci_meses_reportados_sh|v_ci_puntaje_sh|v_ci_juicios|v_ci_malas_ref|v_ci_dif_fe_repor_fe_sol|" campos += "v_ci_est_tabla|" ' Se envian los valores de los campos a evaluar valores = reg_sactual & "|" & dias_atrasos & "|" & condicion & "|" & reg_shistorica & "|" & estado_operacion & "|" valores += meses_reportados & "|" & ponderador & "|" & req.juicios & "|" & req.malas_ref & "|" & dif_fe_repor_fe_sol & "|" valores += registro_tabla & "|" If (req.modo = 1 And registro_tabla = "C") Then 'Evaluacion de CIC SECCION A StrSQL = "Exec usp_ep_productos 2,'','',0,'',6,3" 'CIC A REFERENCIAS ACTUALES E HISTORICAS ElseIf (req.modo = 1 And registro_tabla = "A") Then 'Evaluacion de CIC SECCION A StrSQL = "Exec usp_ep_productos 2,'','',0,'',6,4" 'CIC A REFERENCIAS ACTUALES ElseIf (req.modo = 1 And registro_tabla = "H") Then 'Evaluacion de CIC SECCION A StrSQL = "Exec usp_ep_productos 2,'','',0,'',6,5" 'CIC A REFERENCIAS HISTORICAS ElseIf (req.modo = 2 And registro_tabla = "C") Then 'Evaluacion de CIC COMPLETO StrSQL = "Exec usp_ep_productos 2,'','',0,'',6,1" 'CIC COMPLETO REFERENCIAS ACTUALES E HISTORICAS" ElseIf (req.modo = 2 And registro_tabla = "A") Then 'Evaluacion de CIC COMPLETO StrSQL = "Exec usp_ep_productos 2,'','',0,'',6,2" 'CIC COMPLETO REFERENCIAS ACTUALES ElseIf (req.modo = 2 And registro_tabla = "H") Then 'Evaluacion de CIC COMPLETO StrSQL = "Exec usp_ep_productos 2,'','',0,'',6,6" 'CIC COMPLETO REFERENCIAS HISTORICAS Else 'Exit For notienecondificon = True End If If notienecondificon = False Then arr_campos = Split(campos, "|") arr_valores = Split(valores, "|") ds = outConector.EjecutarComandoSQLXMLDataSet(strProceso, strConexion, StrSQL) 'Se inicia el ciclo para recorrer cada seccion If (ds.Tables.Count > 0) Then For Each tabla In ds.Tables For Each fila In tabla.Rows nu_seccion = fila.Item("re_codseccion") nu_regla = fila.Item("re_regla") cod_variable = fila.Item("re_codvariable") operador = fila.Item("re_operador") valor_eval = fila.Item("re_valor_eval") tipo_valor = fila.Item("re_tipo_valor") CadenaNeg = fila.Item("re_mensaje") For x = 0 To UBound(arr_campos) - 1 If (Trim(arr_campos(x)) = cod_variable) Then valor_comp = arr_valores(x) Exit For End If Next '****************************************************************************** '19-11-2008 EO: Ajuste para validar meses reportados y tiempo de ultimo reporte '****************************************************************************** If cod_variable = "v_ci_meses_reportados_sh" Then If G_Param_Dif_Fe_Rep <> "" Then If flag3 = True Then If Not (EvalCondiciones(valor_comp, operador, valor_eval, cod_variable, "") = True And EvalCondiciones(G_Valor_Dif_Fe_Rep, G_Opera_Dif_Fe_Rep, G_Param_Dif_Fe_Rep, cod_variable, "") = True) Then flag2 = False Else flag2 = True flag3 = False 'Flag que permite saber que ya se encontro una referencia que cumple End If End If Else G_Valor_Meses_Rep = valor_comp G_Param_Meses_Rep = valor_eval G_Opera_Meses_Rep = operador End If Else If cod_variable = "v_ci_dif_fe_repor_fe_sol" Then If G_Param_Meses_Rep <> "" Then If flag3 = True Then If Not (EvalCondiciones(valor_comp, operador, valor_eval, cod_variable, "") = True And EvalCondiciones(G_Valor_Meses_Rep, G_Opera_Meses_Rep, G_Param_Meses_Rep, cod_variable, "") = True) Then flag2 = False Else flag2 = True flag3 = False 'Flag que permite saber que ya se encontro una referencia que cumple End If End If Else G_Valor_Dif_Fe_Rep = valor_comp G_Param_Dif_Fe_Rep = valor_eval G_Opera_Dif_Fe_Rep = operador End If '****************************************************************************** Else flag = EvalCondiciones(valor_comp, operador, valor_eval, cod_variable, "") End If End If If (flag = False) Then Exit For End If Next If (flag = False) Then Exit For End If Next Else flag = False End If End If If (flag = False) Then Exit For End If Next Else flag = False End If If (flag = True And flag2 = True) Then strXMLReturn = 1 'Cliente con excelente CIC Else strXMLReturn = 0 'Cliente con mal CIC End If resp.errCode = "00" resp.errMessage = "EXITOSO" resp.resultadoCIC = strXMLReturn Catch excError As Exception resp.errCode = "99" resp.errMessage = excError.Message End Try Return resp End Function Private Shared Function EvalCondiciones(ByVal valor_comp As String, _ ByVal operador As String, _ ByVal valor_eval As String, _ ByVal cod_variable As String, _ ByVal monto As String) As String Dim flag As Boolean Dim strError As String = String.Empty Dim strRespXml As String Dim dias_dif As Integer = 0 Try If (cod_variable = "v_ci_condicion") _ Or (cod_variable = "v_condicion") _ Or (cod_variable = "v_ju_calidad") _ Or (cod_variable = "v_rc_calidad") Then valor_comp = valor_comp.ToUpper valor_eval = valor_eval.ToUpper End If 'Evaluando la condicion segun el operador indicado Select Case operador Case "=" If valor_comp = valor_eval Then flag = True Else flag = False End If Case ">" If Decimal.Parse(valor_comp) > Decimal.Parse(valor_eval) Then flag = True Else flag = False End If Case ">=" If Decimal.Parse(valor_comp) >= Decimal.Parse(valor_eval) Then flag = True Else flag = False End If Case "<>" If valor_comp <> valor_eval Then flag = True Else flag = False End If Case "<" If Decimal.Parse(valor_comp) < Decimal.Parse(valor_eval) Then flag = True Else flag = False End If Case "<=" 'Agregado por AES para evaluar el % en el caso de juicios If (cod_variable = "v_ju_ing_bruto" Or cod_variable = "v_rc_ing_bruto") Then If Decimal.Parse(monto) <= (Decimal.Parse(valor_eval) * valor_comp) Then flag = True Else flag = False End If Else If Decimal.Parse(valor_comp) <= Decimal.Parse(valor_eval) Then flag = True Else flag = False End If End If End Select EvalCondiciones = flag Catch excError As Exception strError = excError.Message Finally If strError <> "" Then strRespXml = "Error: " & strError EvalCondiciones = strRespXml Else EvalCondiciones = flag End If End Try End Function Private Shared Function valida_nodo(ByVal child As System.Xml.XmlNode, ByRef nodo As String) Dim Resp As String = String.Empty If Not (child.SelectSingleNode("" & nodo & "")) Is Nothing Then Resp = child.SelectSingleNode("" & nodo & "").InnerXml If (Resp.Length = 0) Then Resp = "0" End If Else Select Case nodo Case "ej_fecha_anotacion_juicio" Case "ref_fecha_registro" Resp = "" Case Else Resp = 0 End Select End If Return Resp End Function Private Shared Function valida_registros(ByVal solicitud As Integer, ByVal incidente As Integer, ByVal identificacion As String, ByVal Proceso As String, ByVal idCliente As Integer) As String Dim strConexion As String = String.Empty Dim strProceso As String = Proceso Dim objXML As New System.Xml.XmlDocument Dim StrSQL As String = String.Empty Dim ds As New DataSet Dim fila_sa, fila_sh As DataRow Dim status As String Dim cont As Integer = 0 Dim registros_sactual, registros_shistorico As String Dim excError As Exception Dim strError As String = String.Empty Dim strRespXml As String 'Variables Situacion Actual Dim sa_llave, sa_identificacion, sa_esdeudor, sa_estado, sa_id_operacion, sa_moneda, sa_fecha_vencimiento, sa_tipo_operacion As String Dim sa_condicion, sa_estado_operacion, sa_dias_atrasos, sa_entidad_acreedora, sa_saldo, sa_cuotas_equivalente As String Dim sa_monto_original, sa_fe_inicio As String 'Variables Situacion Historica Dim sh_llave, sh_identificacion, sh_esdeudor, sh_estado, sh_id_operacion, sh_fecha_vencimiento, sh_estado_operacion, sh_entidad_acreedora As String Dim sh_motivo_liquidacion, sh_atraso_maximo, sh_atraso_medio, sh_categoria_operacion As String Dim sh_periodo_reportado, sh_meses_reportados, sh_ponderador As String Dim sh_flag_ultimo As Integer = 0 Select Case Proceso Case Enumerador.ProcesoUltimus.PrestamoPrendario.ToString() strConexion = Enumerador.FuenteDatosUltimus.BPMPRENDARIO.ToString() StrSQL = "usp_ep_politicas_cic" End Select Try EliminaExcepciones(solicitud, incidente, identificacion, 8, Proceso, idCliente) StrSQL = "Exec " & StrSQL & " 1," & incidente & "," & solicitud.ToString() & ",'" & strProceso & "', '" & identificacion & "', '" & idCliente.ToString() & "'" ds = outConector.EjecutarComandoSQLXMLDataSet(strProceso, strConexion, StrSQL) registros_sactual = ds.Tables(0).Rows.Count registros_shistorico = ds.Tables(1).Rows.Count If (registros_sactual > 0 And registros_shistorico > 0) Then For Each fila_sh In ds.Tables(1).Rows cont = cont + 1 'Informacion de Situacion Historica sh_llave = fila_sh.Item("sh_llave") sh_identificacion = fila_sh.Item("sh_identificacion") sh_esdeudor = fila_sh.Item("sh_esdeudor") sh_estado = fila_sh.Item("sh_estado") sh_id_operacion = fila_sh.Item("sh_id_operacion") sh_fecha_vencimiento = fila_sh.Item("sh_fecha_vencimiento") sh_estado_operacion = fila_sh.Item("sh_estado_operacion") sh_entidad_acreedora = fila_sh.Item("sh_entidad_acreedora") sh_motivo_liquidacion = fila_sh.Item("sh_motivo_liquidacion") sh_atraso_maximo = fila_sh.Item("sh_atraso_maximo") sh_atraso_medio = fila_sh.Item("sh_atraso_medio") sh_categoria_operacion = fila_sh.Item("sh_categoria_operacion") sh_periodo_reportado = fila_sh.Item("sh_periodo_reportado") sh_meses_reportados = fila_sh.Item("sh_meses_reportados") sh_ponderador = fila_sh.Item("sh_ponderador") If sh_id_operacion.Trim() = "TC2733039914" Then status = "" End If 'Se valida si el registro solo aparece en situacion historica If (sh_estado_operacion.Trim() = "1" Or sh_estado_operacion.Trim() = "2") Then status = "H" inserta_regfinal(2, sh_llave, incidente, solicitud, strProceso, sh_identificacion, sh_esdeudor, sh_estado, sh_id_operacion, "", _ sh_fecha_vencimiento, "", "", sh_estado_operacion, "", sh_entidad_acreedora, "", "", "", "", _ sh_motivo_liquidacion, sh_atraso_maximo, sh_atraso_medio, sh_categoria_operacion, sh_periodo_reportado, _ sh_meses_reportados, sh_ponderador, status, idCliente) ElseIf (sh_estado_operacion.Trim() = "3") Then For Each fila_sa In ds.Tables(0).Rows 'Informacion de Situacion Actual sa_llave = fila_sa.Item("sa_llave") sa_identificacion = fila_sa.Item("sa_identificacion") sa_esdeudor = fila_sa.Item("sa_esdeudor") sa_estado = fila_sa.Item("sa_estado") sa_id_operacion = fila_sa.Item("sa_id_operacion") sa_moneda = fila_sa.Item("sa_moneda") sa_fecha_vencimiento = fila_sa.Item("sa_fecha_vencimiento") sa_tipo_operacion = fila_sa.Item("sa_tipo_operacion") sa_condicion = fila_sa.Item("sa_condicion") sa_estado_operacion = fila_sa.Item("sa_estado_operacion") sa_dias_atrasos = fila_sa.Item("sa_dias_atrasos") sa_entidad_acreedora = fila_sa.Item("sa_entidad_acreedora") sa_saldo = fila_sa.Item("sa_saldo") sa_cuotas_equivalente = fila_sa.Item("sa_cuotas_equivalente") sa_monto_original = fila_sa.Item("sa_monto_nodes") sa_fe_inicio = fila_sa.Item("sa_fe_inicio") If (sh_id_operacion.Trim() = sa_id_operacion.Trim() And sh_entidad_acreedora.Trim() = sa_entidad_acreedora.Trim() And sh_id_operacion.Trim().Length > 0 And sh_flag_ultimo = 0) Then status = "C" inserta_regfinal(2, sa_llave, incidente, solicitud, strProceso, sa_identificacion, sa_esdeudor, sa_estado, sa_id_operacion, _ sa_moneda, sa_fecha_vencimiento, sa_tipo_operacion, sa_condicion, sh_estado_operacion, _ sa_dias_atrasos, sa_entidad_acreedora, sa_saldo, sa_cuotas_equivalente, sa_monto_original, _ sa_fe_inicio, sh_motivo_liquidacion, sh_atraso_maximo, sh_atraso_medio, sh_categoria_operacion, _ sh_periodo_reportado, sh_meses_reportados, sh_ponderador, status, idCliente) If cont = registros_shistorico Then sh_flag_ultimo = 1 End If If cont < registros_shistorico Then Exit For End If 'Se valida en el caso que algun id sea nulo. Se verifica con la fecha de vencimiento ElseIf (sh_fecha_vencimiento.Trim() = sa_fecha_vencimiento.Trim() And sh_id_operacion = "" And sh_flag_ultimo = 0) Then status = "C" inserta_regfinal(2, sa_llave, incidente, solicitud, strProceso, sa_identificacion, sa_esdeudor, sa_estado, sa_id_operacion, _ sa_moneda, sa_fecha_vencimiento, sa_tipo_operacion, sa_condicion, sh_estado_operacion, _ sa_dias_atrasos, sa_entidad_acreedora, sa_saldo, sa_cuotas_equivalente, sa_monto_original, _ sa_fe_inicio, sh_motivo_liquidacion, sh_atraso_maximo, sh_atraso_medio, sh_categoria_operacion, _ sh_periodo_reportado, sh_meses_reportados, sh_ponderador, status, idCliente) If cont = registros_shistorico Then sh_flag_ultimo = 1 End If If cont < registros_shistorico Then Exit For End If End If 'Si condicion es fiador solo existe en situacion actual If (sa_condicion.Trim() = "FIADOR/AVALISTA" And cont = registros_shistorico) Then status = "A" inserta_regfinal(2, sa_llave, incidente, solicitud, strProceso, sa_identificacion, sa_esdeudor, sa_estado, sa_id_operacion, sa_moneda, _ sa_fecha_vencimiento, sa_tipo_operacion, sa_condicion, "", sa_dias_atrasos, _ sa_entidad_acreedora, sa_saldo, sa_cuotas_equivalente, sa_monto_original, sa_fe_inicio, _ "", "", "", "", "", "", "", status, idCliente) End If Next End If Next ElseIf (registros_sactual > 0 And registros_shistorico <= 0) Then For Each fila_sa In ds.Tables(0).Rows sa_llave = fila_sa.Item("sa_llave") sa_identificacion = fila_sa.Item("sa_identificacion") sa_esdeudor = fila_sa.Item("sa_esdeudor") sa_estado = fila_sa.Item("sa_estado") sa_id_operacion = fila_sa.Item("sa_id_operacion") sa_moneda = fila_sa.Item("sa_moneda") sa_fecha_vencimiento = fila_sa.Item("sa_fecha_vencimiento") sa_tipo_operacion = fila_sa.Item("sa_tipo_operacion") sa_condicion = fila_sa.Item("sa_condicion") sa_estado_operacion = fila_sa.Item("sa_estado_operacion") sa_dias_atrasos = fila_sa.Item("sa_dias_atrasos") sa_entidad_acreedora = fila_sa.Item("sa_entidad_acreedora") sa_saldo = fila_sa.Item("sa_saldo") sa_cuotas_equivalente = fila_sa.Item("sa_cuotas_equivalente") sa_monto_original = fila_sa.Item("sa_monto_nodes") sa_fe_inicio = fila_sa.Item("sa_fe_inicio") status = "A" inserta_regfinal(2, sa_llave, incidente, solicitud, strProceso, sa_identificacion, sa_esdeudor, sa_estado, sa_id_operacion, sa_moneda, _ sa_fecha_vencimiento, sa_tipo_operacion, sa_condicion, "", sa_dias_atrasos, _ sa_entidad_acreedora, sa_saldo, sa_cuotas_equivalente, sa_monto_original, sa_fe_inicio, _ "", "", "", "", "", "", "", status, idCliente) Next Else For Each fila_sh In ds.Tables(1).Rows sh_llave = fila_sh.Item("sh_llave") sh_identificacion = fila_sh.Item("sh_identificacion") sh_esdeudor = fila_sh.Item("sh_esdeudor") sh_estado = fila_sh.Item("sh_estado") sh_id_operacion = fila_sh.Item("sh_id_operacion") sh_fecha_vencimiento = fila_sh.Item("sh_fecha_vencimiento") sh_estado_operacion = fila_sh.Item("sh_estado_operacion") sh_entidad_acreedora = fila_sh.Item("sh_entidad_acreedora") sh_motivo_liquidacion = fila_sh.Item("sh_motivo_liquidacion") sh_atraso_maximo = fila_sh.Item("sh_atraso_maximo") sh_atraso_medio = fila_sh.Item("sh_atraso_medio") sh_categoria_operacion = fila_sh.Item("sh_categoria_operacion") sh_periodo_reportado = fila_sh.Item("sh_periodo_reportado") sh_meses_reportados = fila_sh.Item("sh_meses_reportados") sh_ponderador = fila_sh.Item("sh_ponderador") status = "H" inserta_regfinal(2, sh_llave, incidente, solicitud, strProceso, sh_identificacion, sh_esdeudor, sh_estado, sh_id_operacion, "", _ sh_fecha_vencimiento, "", "", sh_estado_operacion, "", sh_entidad_acreedora, "", "", "", "", _ sh_motivo_liquidacion, sh_atraso_maximo, sh_atraso_medio, sh_categoria_operacion, sh_periodo_reportado, _ sh_meses_reportados, sh_ponderador, status, idCliente) Next End If strError = "" Catch excError Try strError = excError.Message Catch ex As Exception End Try Finally If strError <> "" Then strRespXml = "Error: " & strError valida_registros = strRespXml Else valida_registros = strError End If End Try End Function Private Shared Sub EliminaExcepciones(ByVal solicitud As String, _ ByVal incidente As String, _ ByVal identificacion As String, _ ByVal modo As String, _ ByVal Proceso As String, ByVal idCliente As Integer) Dim strConexion As String = String.Empty Dim strProceso As String = Proceso Dim strSQL As String = String.Empty Dim ds As New DataSet Dim strXML As String = "" Dim arrParametrosNombres(7) As String Dim arrParametrosValores(7) As String Dim seccion As Integer = 0 Dim RespPolitica As String = "" Dim strError As String Dim excError As Exception Select Case Proceso Case Enumerador.ProcesoUltimus.PrestamoPrendario.ToString() strConexion = Enumerador.FuenteDatosUltimus.BPMPRENDARIO.ToString() strSQL = "usp_ep_politicas" End Select Try ''MODO 7-ELIMINA REGISTROS EN LA TABLA DE EXCEPCIONES ''MODO 8-ELIMINA REGISTROS EN LA TABLA DE SITUACION FINAL ''MODO 10-ELIMINA REGISTROS EN LA TABLA REGLAS NO CUMPLIDAS ''MODO 11-ELIMINA REGISTROS EN LA TABLA RESULTADO_CIC arrParametrosNombres(1) = "@i_opcion" : arrParametrosValores(1) = modo '"7 arrParametrosNombres(2) = "@i_incidente" : arrParametrosValores(2) = incidente arrParametrosNombres(3) = "@i_solicitud" : arrParametrosValores(3) = solicitud arrParametrosNombres(4) = "@i_identificacion" : arrParametrosValores(4) = identificacion arrParametrosNombres(5) = "@i_proceso" : arrParametrosValores(5) = strProceso arrParametrosNombres(6) = "@i_seccion" : arrParametrosValores(6) = "" arrParametrosNombres(7) = "@i_idcliente" : arrParametrosValores(7) = idCliente.ToString() strXML = outConector.EjecutarComandoSQLArreglo( _ strProceso, _ strConexion, _ strSQL, _ arrParametrosNombres, _ arrParametrosValores, _ "0") Catch excError strError = excError.Message Finally End Try End Sub Private Shared Sub inserta_regfinal(ByVal opcion As String, _ ByVal llave As String, _ ByVal incidente As String, _ ByVal solicitud As String, _ ByVal proceso As String, _ ByVal identificacion As String, _ ByVal esdeudor As String, _ ByVal estado As String, _ ByVal id_operacion As String, _ ByVal moneda As String, _ ByVal fecha_vencimiento As String, _ ByVal tipo_operacion As String, _ ByVal condicion As String, _ ByVal estado_operacion As String, _ ByVal dias_atrasos As String, _ ByVal entidad_acreedora As String, _ ByVal saldo As String, _ ByVal cuotas_equivalente As String, _ ByVal monto_original As String, _ ByVal fe_inicio As String, _ ByVal motivo_liquidacion As String, _ ByVal atraso_maximo As String, _ ByVal atraso_medio As String, _ ByVal categoria_operacion As String, _ ByVal periodo_reportado As String, _ ByVal meses_reportados As String, _ ByVal ponderador As String, _ ByVal status_tabla As String, ByVal idCliente As Integer) Dim strConexion As String = String.Empty Dim strProceso As String = proceso Dim objXML As New System.Xml.XmlDocument Dim StrXml As String = String.Empty Dim StrSQL As String = String.Empty Dim arrParametrosNombres(29) As String Dim arrParametrosValores(29) As String Select Case proceso Case Enumerador.ProcesoUltimus.PrestamoPrendario.ToString() strConexion = Enumerador.FuenteDatosUltimus.BPMPRENDARIO.ToString() StrSQL = "usp_ep_politicas_cic" End Select Try If esdeudor = "" Then esdeudor = "" Else esdeudor = IIf(esdeudor = True, 1, 0) End If 'GRABA LAS SITUACIONES EN LA TABLA FINAL arrParametrosNombres(1) = "@i_opcion" : arrParametrosValores(1) = opcion arrParametrosNombres(2) = "@i_incidente" : arrParametrosValores(2) = incidente arrParametrosNombres(3) = "@i_solicitud" : arrParametrosValores(3) = solicitud arrParametrosNombres(4) = "@i_proceso" : arrParametrosValores(4) = proceso arrParametrosNombres(5) = "@i_identificacion" : arrParametrosValores(5) = identificacion arrParametrosNombres(6) = "@i_esdeudor" : arrParametrosValores(6) = esdeudor arrParametrosNombres(7) = "@i_estado" : arrParametrosValores(7) = estado arrParametrosNombres(8) = "@i_id_operacion" : arrParametrosValores(8) = id_operacion arrParametrosNombres(9) = "@i_moneda" : arrParametrosValores(9) = moneda arrParametrosNombres(10) = "@i_fecha_vencimiento" : arrParametrosValores(10) = fecha_vencimiento arrParametrosNombres(11) = "@i_tipo_operacion" : arrParametrosValores(11) = tipo_operacion arrParametrosNombres(12) = "@i_condicion" : arrParametrosValores(12) = condicion arrParametrosNombres(13) = "@i_estado_operacion" : arrParametrosValores(13) = estado_operacion arrParametrosNombres(14) = "@i_dias_atrasos" : arrParametrosValores(14) = dias_atrasos arrParametrosNombres(15) = "@i_entidad_acreedora" : arrParametrosValores(15) = entidad_acreedora arrParametrosNombres(16) = "@i_saldo" : arrParametrosValores(16) = saldo arrParametrosNombres(17) = "@i_cuotas_equivalente" : arrParametrosValores(17) = cuotas_equivalente arrParametrosNombres(18) = "@i_monto_original" : arrParametrosValores(18) = monto_original arrParametrosNombres(19) = "@i_fe_inicio" : arrParametrosValores(19) = fe_inicio arrParametrosNombres(20) = "@i_motivo_liquidacion" : arrParametrosValores(20) = motivo_liquidacion arrParametrosNombres(21) = "@i_atraso_maximo" : arrParametrosValores(21) = atraso_maximo arrParametrosNombres(22) = "@i_atraso_medio" : arrParametrosValores(22) = atraso_medio arrParametrosNombres(23) = "@i_categoria_operacion" : arrParametrosValores(23) = categoria_operacion arrParametrosNombres(24) = "@i_periodo_reportado" : arrParametrosValores(24) = periodo_reportado arrParametrosNombres(25) = "@i_meses_reportados" : arrParametrosValores(25) = meses_reportados arrParametrosNombres(26) = "@i_ponderador" : arrParametrosValores(26) = ponderador arrParametrosNombres(27) = "@i_status_tabla" : arrParametrosValores(27) = status_tabla arrParametrosNombres(28) = "@i_llave" : arrParametrosValores(28) = llave arrParametrosNombres(29) = "@i_idcliente" : arrParametrosValores(29) = idCliente.ToString() StrXml = outConector.EjecutarComandoSQLArreglo( _ strProceso, _ strConexion, _ StrSQL, _ arrParametrosNombres, _ arrParametrosValores, _ "0") Catch excError As Exception End Try End Sub End Class