SAC 9.5.8228


Modificaciones y correcciones a SAC y sus módulos al 14 de Julio de 2022:

  1. Se agregan las propiedad RiesgoDesc0, RiesgoDesc1 y RiesgoDesc2 en la tabla VALORES. Se usa para especificar los rangos o niveles de riesgo, y el texto descriptivo de cada uno. Estos rangos y textos descriptivos aplican para riesgo de crédito, para riesgo de persona por PLD, y para enfoque basado en riesgos, respectivamente. El índice indica el nivel mínimo del rango, y el valor proporciona el texto descriptivo del riesgo. Por default: 0-Bajo, 1-Medio, 2-Alto.
  2. Modificar el procedimiento de cambio de riesgo, donde se guarda la última fecha de cambio de riesgo, para tomar en cuenta esta propiedad. Cuando se cambie de un rango de riesgo menor a uno mayor (bajo a medio, medio a alto, etc.) establecer esta fecha.
  3. Eliminar el campo PRESTOTOR.riesgo, manejado solo por PV, pero copiar antes su valor a PRESTOTOR.CalifMCAL. Este se mostrará en el formulario de préstamos mediante un combo, que se puede establecer manualmente, pero también, para otras entidades, podrá asignarse mediante la matriz de riesgo. Como la calificación puede ser un número con punto flotante (single) tengo que cambiar el tipo de BuscaCombo a single. Esto para buscar la calificación del crédito (o de la persona) en el combo, y si no existe, agregarla. También se elimina la calificación de riesgo para los avales de un préstamo, se eliminan también las cajas de texto correspondientes. Solo hay una evaluación de riesgo por préstamo, se muestra en el combo cbCalifMCAL y se guarda en el campo PRESTOTOR.CalifMCAL. Se borra también el parámetro {riesgocre} y ya no se podrá usar en la matriz de riesgo.
  4. Personas relacionadas: Según el art. 26, son los miembros del Consejo de Administración,otros consejos y auditores, y relacionados en primer grado, además de funcionarios. Si excede un préstamo de 100,000 UDIS o 2% del capital, requiere de aprobación del Consejo de Administración. No podrán exceder del 10%. Se reestructuran las verificaciones tanto de personas relacionadas (con cargo en la entidad) como las de riesgo común. Se elimina el uso del permisos 33, puesto que existe el permiso 39.
  5. Se amplió VALORES.propiedad a 11, puesto que necesitaba las nuevas propiedades RiesgoDesc0, RiesgoDesc1 y RiesgoDesc2, que son strings con tamaño 11.
  6. Para cumplir con la Ley para la Transparencia y Ordenamiento de los Servicios Financieros, en el estado de cuenta agregar tasa de interés anual ordinario y moratorio, así como algunos datos de identificación
  7. De igual manera para el estado de cuenta, hay que agregar la tasa de interés anual, en el Resumen  de saldos para Liquidar
  8. En frmCancela, en el click (al querer cancelar una persona), se quedaba congelado el SAC. Cambié de orden unas instrucciones, primero coloqué el CommitTrans, y después los mensajes de confirmación de cancelación (o activación en su caso).
  9. Cuando un socio está cancelado, no debe considerarse como tutor de un menor, para cuando se hacen depósitos mayores a 1500 UDIS en caja
  10. En el plan de pago en algunos créditos sumaba dos veces el primer cobro periódico. Tomaba en cuenta el último renglón, de totales, para el cálculo.
  11. En el cobro periódico de servicios para préstamos, se desplegaba una diferencia de 1 centavo después de pagar el primer cobro. Se cambió el orden de las instrucciones, después de calcular el monto del servicio, se redondea, luego se calcula IVA y se redondea, luego se le restan los pagos ya realizados.
  12. Para la lista de acciones de varios formularios de SAC, al dar click inmediatamente hago tal lista invisible, para evitar que se abuse el sistema con varios clicks
  13. En SAC, formulario de préstamos, al traer los contratos que garantizan el préstamo, no tomaba en cuenta el status=0. Ahora al liquidar un préstamo, además de cancelar las relaciones de la tabla CONTPRE, se establece conValor (el valor por garantía de contrato) en cero. También en Especiales/Recalcular saldo de préstamos. 
  14. Eliminar de la tabla de préstamos, PRESTOTOR, los campos cobBanco, cobCuenta y cobCLABE, que son los datos relativos a la cuenta bancaria del acreditado, y pasarlos a la tabla SOCIOS. Para los formatos de CR: carta mandato, confirmación pago y confirmación firma, tomo ahora desde SOCIOS los datos requeridos. En caja, al seleccionar 3-transferencia, es decir transferencia bancaria, toma los datos de SOCIOS correspondientes al banco y CLABE interbancaria para ponerlos como datos por default.
  15. Agregar el campo CSS a PARAMETROS (de nuevo, pues se había retirado hace unos 10 años) para almacenar el archivo correspondiente, para el estilo de las páginas HTML. Con CSS es posible establecer tipos de letra, tamaños, colores y otros, en los formatos generados en HTML, como el estado de cuenta.
  16. Se hicieron varias mejoras en el reporte de imágenes: se alentaba mucho el reporte porque se incluía el campo DOC, que es el BLOB. Se quitó. Se programó el botón de salir del reporte para interrumpir el mismo. Se agrego en Acciones/Imágenes para obtener el reporte fotográfico de la persona correspondiente, en HTML.
  17. A una entidad no le aparecía el CAT en el reporte de productos de préstamo. Faltaba definir en Parámetros el tipo de cobro del préstamo (saldos insolutos, pagos fijos). Se agrega un VAL para evitar nulos.
  18. El formato de CURP para beneficiario debe ser "[A-Z]{4}[0-9]{6}[A-Z]{6}[A-Z0-9]{2}" y no "[A-Z]{4}[0-9]{6}[A-Z]{6}[0-9]{2}" es decir los 2 caracteres del final pueden ser letras o números
  19. SAC en caja tiene una protección para que no se puedan hacer movimientos de pasivos (diferentes a p. soc.) o de servicios, si no están completas las partes sociales. Sin embargo, permitía hacer un depósito de partes sociales (sin completarlas) junto con otro movimiento. Se deja sin modificar, porque en ocasiones se puede retirar de una cuenta de pasivos para depositar a partes sociales.
  20. Se requiere la fecha de vigencia de algunos documentos, como la identificación del socio. Se observa que hay una lista predefinida en código (hard-coded) de los documentos del socio, los cuales aparecen en Personas / Actualizaciones / Documentación, en una CheckedListBox. En vez de usar esta lista fija, se toma de la tabla VALORES, propiedad DocDesc. Esta propiedad ya se usa para determinar los tipos de documentos de los cuales se puede guardar una imagen, en la tabla SOCIOSBLOB. Como ahora se toma esta lista parametrizable y ampliable, se tiene que ampliar también el campo SOCIOS.documentacion, de 17 a 30 caracteres. Con esto se pueden usar hasta 30 documentos diferentes. Las fechas que se requieren son, para la identifición, la fecha de vigencia, para otras, fecha de emisión. Se agregan los campos SOCIOSBLOB.fechaemi y SOCIOSBLOB.fechavig.
  21. Dentro del formulario de socios, se llama al procedimiento mcalCrearSaldos, que verifica si existen todas las entradas en la tabla MCALSALDO para este socio, correspondientes a las entradas en la tabla MCALCUENTA. Esto es muy lento en la entidad SMC, y quizá innecesario, puesto que ya se hace al entrar al formulario de actualización de matriz de riesgo, frmExpedientes. En el formulario de préstamos tampoco se hace uso de este procedimiento.
  22. Existe una carencia en el cálculo de RFC por parte de SAC. En los casos en que la persona física cuente con un solo apellido, se toma primera letra y siguiente primer vocal de este, y dos letras del nombre. También si el apellido paterno tiene solo una letra, y/o no tiene siguiente primer vocal, se toma primer letra del appat, primer letra del apmat y dos letras del nombre.
  23. Que los movimientos mayores a 300,000 pesos también generen un mensaje para el oficial de cumplimiento, de forma remota. También se establece el msg remoto para movs mayores a 500,000, 1,000,000 y para si es persona de alto riesgo o PEP
  24. Recientemente se agregaron la propiedades RiesgoDesc0, RiesgoDesc1 y RiesgoDesc2 para especificar y describir los niveles de riesgo. Ahora, al hacer un movimiento en caja, se considera como de alto riesgo solo aquella persona que tiene el último nivel de riesgo especificado en Parámetros. Si por ejemplo se especificaron los niveles 0-no evaluado, 1-bajo, 2-medio, 3-alto, se pedirá un permiso especial para los que tienen un valor en CalifMCAL igual a 3. Se cambia la instrucción CalifMCAL >=1 por CalifMCAL = hRiesgoDesc1.GetKey(hRiesgoDesc1.Count - 1)
  25. En RelFlex se agrega una propiedad fricc (la fricción) a cada nodo, para ralentar el movimiento de un nodo cuando es atrapado por el mouse
  26. Agrego un botón en el formulario de reporte de contratos, para subtotalizar por producto o no
  27. Se agrega el campo PARAMETROS.reca, que es el Registro de Contratos de Adhesión de la CONDUSEF. En Sistema / Parámetros / Generales / RECA.
  28. Se cambia el algoritmo de encriptación de las contraseñas de DES a AES. Todavía se reconocen las contraseñas encriptadas con DES al ingresar a SAC y sus módulos, pero al cambiar contraseña, se codificará como AES.
  29. Se cambia la redacción de la act. Vul. 18, "Constitucion de derechos personales de uso o goce de bienes inmuebles" por  "Transmisión de derechos sobre bienes inmuebles y desarrollo inmobiliario" y se agrega 19 "monederos y certificados de devoluciones o recompensas" en el CP.BAK estándar
  30. Verificar la fecha de consulta al SIC (PRESOTOR.fecburo) que no sea anterior a un mes antes de la fecha de entrega, ni posterior a un mes después de la fecha de entrega
  31. Al estar realizando el estado de cuenta para CONDUSEF, se detectó una inconsistencia en el cálculo de saldos finales para contratos de inversión. Esto debido a que al liquidar un contrato (en frmMovInversion) nunca se asigna la fecha de liquidación del contrato, CONTINV.fecpag. En varios reportes de captación y contratos se llama al proc. CalcFecPagCont (antes llamado CalcFecLiq), donde se calcula, pero esta ejecución no está garantizada, por eso ahora se hace en frmMovInversion.
  32. Agregar un reporte de lista de campos para préstamos, similar al que ya existe para socios, en Reportes / Préstamos / Lista de campos.
  33. SAC: Requerimos poder agregar la información de un segundo domicilio de trabajo: Descripción de la ocupación2, Empresa2, Jefe inmediato2, Domicilio de trabajo2, Fecha de ingreso2, Comprobante de ingreso2, Ingresos Ordinarios2. No se considera prudente agregar ingresos ordinarios 2, puesto que el campo ya existente, ProIngMes, puede ser ambiguo en cuanto si representa el ingreso total de las ocupaciones de la persona, o solo de la principal. Por eso se sugiere seguir usando los campos que ya existen, ProIngMes y IngOtros. Se agregan en cambio 19 campos de ocupación que duplican a los ya existentes.  En Personas / Actualizaciones / Ref. laborales 2.
  34. Una entidad reporta que, al cambiar a una tasa de ISR más baja, una inversión con pago parcial de interés calcula ISR negativo. Esto se debe a que en CalculaPagarIntInv, calcula primero el total de intereses para los periodos que han transcurrido, y luego resta los ya pagados. Igual para el ISR. Calcular PeriodoUlt, que es el último periodo para el que se ha pagado interés, esto en las inversiones con pago parcial de interés. La resta del periodo actual menos el último periodo pagado da el número de periodos a considerar para el cálculo de ISR. Se cambia el tamaño de aCalcInversion de 8 a 9.
  35. Se hace una nueva modificación al momento de hacer un pago de préstamo, por un problema de redondeos que en ocasiones calculaba un centavo que se iba a pago de capital. A su vez este pago de capital evitaba que posteriormente se cobrara el interés moroso que debía cobrarse.
  36. Al renovar/liquidar un contrato de inversión, indicaba incorrectamente el interés bruto y el neto
  37. Se agregan dos nuevas pestañas a PARAMETROS para capturar dos listas, una de ISR y de parte de exenta de ISR, cada una con una fecha relacionada. Se podrán almacenar entonces tasas y partes exentas de ISR actuales y anteriores. Al liquidar o pagar intereses de un contrato, se tomará la tasa y parte exenta del día de esa operación, o de la fecha anterior más reciente. Quito las cajas de edición de tasa de ret. de ISR y parte exenta de ISR, así como los campos de PARAMETROS, TasaISR y ParteExenta, así como las variable globales vTasaISR y vParteExenta
  38. En vez de las variable globales vTasaISR y vParteExenta, en cada evento en que se requiera calcular un pago de interés de pasivos o contratos, se debe traer la tasa y parte exenta de ISR correspondiente a la fecha en que realmente se pagará, o en la fecha en la que está programado el paso de ese interés. Se declaran dos variables globales TasaISR y ParteExentaISR, y se usa la subrutina TraerValorF para obtener estos 2 valores necesarios.
  39. Había un error al recalcular ISR (Personas/Recalcular ISR) por llamar a un campo inexistente en una tabla de tasas de interés (TASAS)
  40. Al reinvertir/pagar una inversión, de existir algún error, incluida la detección de si un préstamo se garantiza con un contrato, se especifica de qué contrato se trata.
  41. En el reporte de saldo de contratos (Reportes/Contratos/Saldos) no funcionaba el botón para habilitar la lista de productos de contrato. Había desaparecido una instrucción handles.
  42. En el formulario de caja agregué una caja de edición (de solo lectura) para mostrar el periodo en días del pago de interés. Reacomodé algunas cajas para mayor claridad.
  43. En ManError se recibe una variable de error Ex, sin embargo en el desplegado del error, además de Ex se usa la variable global Err en Err.source. Se cambia por Ex.source
  44. Error ocasional en la generación del estado de cuenta tipo CONDUSEF. El archivo de CR no puede recuperar los datos (al parecer de la tabla temporal movstemp). Se cambia de tabla temporal global (identificada con ##) a tabla permanente.
  45. Al verificar la fecha de consulta al SIC (Sistema de Información Crediticia) se cambian las fechas límite inicial y final. Anteriormente era 30 días antes de la fecha de solicitud y 30 días después de la fecha de entrega. Ahora es 30 días antes de la fecha de entrega, y no posterior a ella.
  46. Se corrigió el estado de cuenta tipo SAC, al consultar los movimientos de préstamo de un socio, comparaba equivocadamente la sucursal del préstamo en vez de la sucursal del socio para traer los movimientos. Esto ocasionaba que no se mostrara ningún movimiento cuando el socio pertenecía a una sucursal y sus préstamos (y movimientos de préstamo) a otra.
  47. Requerir autorización en caja para hacer movimientos a personas de riesgo medio o mayor, no solo a las de mayor riesgo. Declarar en valores una propiedad RiesgoLim. Aquella persona que tenga este valor de riesgo, o mayor, se solicitará el permiso 41, "Autorización de op. mayores, op. inusuales, a per. de alto riesgo, bloqueadas (LPB) y PEPs" para poder hacer la operación. Se establece al generar valores con el valor por default 1.
  48. Agrego en CalcPreIntermedio el cálculo del SaldoProg, que es el saldo vencido (de capital) a la fecha próxima posterior a Fecha, según el PP. CalcPrestamo4 lo regresa como salidas(36), se muestra en caja. Útil para detectar un pago adelantado/anticipado.
  49. Declarar en parámetros un valor que representa una cuenta de pasivos, CuentaAde, a la cual se va el pago adelantado, cuando se detecte que hay un pago adelantado. Porque según FAM Value Consultores "Estos recursos deberán resguardarse por parte de la cooperativa en una cuenta acreedora debidamente identificada." CuentaAde corresponderá a cuenta de pasivos, identificada por PRODPAS.Cta
  50. Se crea la sub global TraerValorNI, para traer de la tabla VALORES según las propiedades RiesgoLim o CuentaAde en Caja. Se usa además TraerValor para traer MontoCaja y SaldoCaja. Anteriormente se codificaba sin subrutina.
  51. No permitir la modificación de préstamos entregados. El permiso 18 indica correctamente "modificar préstamos autorizados" y sin embargo con este permiso otorgado se podían modificar préstamos autorizados y vigentes. Seguramente por una antigüa petición de una entidad. Se corrigió.
  52. En el campo PRESTOTOR.StatusR se reconoce el nuevo valor 10-por pago anticipado. Un préstamo tiene este valor cuando es creado en base a otro préstamo, del cual se dio un pago anticipado.
  53. Se corrigió un error al calcular CURP, que lo regresaba con acentos en algunos casos. Por ejemplo con los apellidos Sánchez Gálvez, regresaba la A con acento. Se corrige. También se corrige al calcular RFC, aunque no se presentaron casos.
  54. Al calcular el CURP y RFC (CalcCURP0 y CalcRFC0) tomaban las vocales acentuadas como consonantes, produciendo resultados erróneos
  55. Se clonan los valores de PRESERV (programación de servicios de cobro para un préstamo) al clonar un préstamo (para cobros periódicos).
  56. Al clonar un préstamo, no permitir que se desbloquée el monto bloqueado. Cabe mencionar que no recalcula monto bloqueado para el nuevo préstamo, por complicaciones que se presentarían en el proceso. El acreditado queda con su mismo saldo de monto bloqueado y su contraparte, el ahorro.
  57. Quito los reportes de saldo de préstamos tipo seguros, por pool y DGRV, correspondientes a los índices 9, 10 y 11. Quito la funcionalidad de los fondeos, incluidos los reportes de fondeos (en Reportes/Fondeos y pools), elimino de parámetros los permisos 53 y 79, quito frmPool, elimino la propiedad fondeo, elimino la propiedad pool de frmPolizasEsp
  58. Eliminar campo PRESTOTOR.clavepool, TASAS.clavepool, MOVSERVICIOS.clavepool, eliminar tablas POOL, MOVPOOL y POOLDET
  59. En Hermes, elimino las referencias a POOL, MOVPOOL y POOLDET
  60. Eliminar en frmReportesColecta2 las referencias al pool
  61. Eliminar en IC las referencias al pool
  62. Se detecta un retiro mayor a 7500 dólares (o lo que corresponda según parámetros), hecha en efectivo, como operación relevante. Anteriormente solo se detectaban depósitos.
  63. Se modificó el formulario de cancelación de cheques (frmCancelaCheque) y el reporte de movimientos de banco (frmReportesCheques) para que se seleccione la cuenta bancaria de un combo, en vez de teclearla.
  64. Poder modificar el préstamo. Recientemente se quitó esta opción, reestablecerla. Se permite que solo la entidad PV pueda modificar préstamos vigentes, mediante la condición If tblPrestotor.Fields("Status").Value = 6 Or (tblPrestotor.Fields("Status").Value = 1 And strSucursal = "PV")
  65. Pagos adelantados y anticipados: poner una casilla en parámetros para mostrar la ventana de selección (frmCajaAdeAnt) o no mostrarla, y aplicar el abono en forma tradicional. En parámetros/préstamo se muestra el combo "Seleccionar pago ade/ant", el cual establece la variable global vSelAdeAnt que se guarda en el nuevo campo PARAMETROS.SelAdeAnt
  66. Se corrigió un error al aplicar el pago adelantado (AplicarAdela2), el total a pagar era menor al debido (no se consideraban intnor, intmor, cobroper e iva)


Comentarios

Entradas más populares de este blog

Ciclo de vida de préstamos

Reporte de Buró de Crédito INTF versión 14

Base de datos de códigos postales