SAC 9.6.9374

Lista de cambios en SAC y sus módulos IC, MCOB, MCAL, del 1/ene/2024 al 30/ago/2025:

  1.  Al exportar un reporte desde SAC/MCOB/MCAL u otros software de CIO, con formato de Excel o CSV, ahora se les asigna permiso de solo lectura a los archivos generados. Con la instrucción Dim fInfo As FileInfo = New FileInfo(File) : fInfo.IsReadOnly = True. Esto incrementa la seguridad del sistema al evitar que reportes generados mediante SAC puedan ser manipulados manualmente.
  2. Para operaciones inusuales, SAC proporciona automáticamente la razón de detección, que puede ser por ingresos netos excedidos, número de operaciones mensuales excedidas, o ambos. El usuario también puede proporcionar sus razones añadiendo un nuevo mensaje a la póliza. Anteriormente se concatenaban ambos mensajes, ahora, si el usuario proporciona su mensaje, ya no se muestra el mensaje automático de SAC.
  3. Agregar la funcionalidad de poder eliminar los mensajes (tabla MSG) ligados a una póliza (tabla POLIZA), los cuales se utilizan para redactar la descripción de la operación y las razones de una operación inusual o preocupante. Ya existe el campo MSG.status, se agrega el valor 2-cancelado. En los reportes de op. inusuales o preocupantes no se mostrarán estos mensajes.
  4. En Especiales, se eliminan aquellos registros de MSG con status=2
  5. En SAC, en PLD/ personas PLD / PAP activos mostraba también los socios cancelados. Se agrega una condición IF para mostrar solo los activos a la fecha indicada.
  6. En reportes / bancos / movimientos, formato: PAP, muestra en todos los registros para la columna "instrumento monetario", el valor 00-no identificado. De origen se clasifican mal. Mostrar IM solo cuando sea depósito, no sea mov. de cheque ni transf. bancaria
  7. Los reportes de proveedores de recursos y propietarios reales, deben aparecer en orden inverso, primero cierta persona, y después el proveedor de recursos o propietario real
  8. Un indice "clustered" define el orden en el cual los datos son físicamente almacenados en una tabla. La tabla solo puede ser ordenada en una sola manera, por lo tanto solo puede haber un índice "clustered" por tabla. Los índices "nonclustered" por el contrario son almacenados en tablas aparte, esto permite tener más de uno de estos índices por tabla. Creo índices "nonclustered" para el campo "contra",  que asigna la contracuenta a las pólizas y a las tablas hijas, para hacer más rápida la asignación en AsigCamCalcMov.
  9. Se modificó el mensaje de error cuando un usuario no tiene un permiso para un proceso, para que muestre el proceso (número) para el cual no tiene el permiso, y así pueda agregarse este permiso en Parámetros, o pueda identificarse qué tipo de usuario puede realizar el proceso.
  10. Se añade la fecha de actualización (desde el campo SOCIOSBLOQ.actualizar) en el reporte de PLD / Lista de p. bloqueadas y PEPs / Lista de p. bloqueadas y PEPs de SAC / Lista completa, y en Personas / Personas bloqueadas y PEPs / P. bloqueadas. SITI, para saber la fecha en que se añadió (o modificó) por última vez esa persona.
  11. Se agrega en VALORES la propiedad MostrarRaz, que determina si SAC genera y muestra razones automáticas al generar el reporte de operaciones inusuales. Si es 1, generará y mostrará razones automáticamente, si es 0, no generará razones, y solo mostrará las que el usuario hubiera agregado a la póliza mediante mensajes.
  12. En el formulario de actualización de socios, al limpiar forma, no limpiaba el total de ingresos, total de egresos y diferencia de la persona, en la pestaña de PLD.
  13. Se agrega un nuevo formato de corte de caja, Reportes/Caja/Corte de Caja/Formato del reporte: Estándar Agregado, que "agrega" o integra todos los movimientos de una póliza en un solo renglón, de modo que se despliegan menos renglones. Si en una misma póliza hay 2 o más operaciones del mismo tipo (abono a varios préstamos por ejemplo) se suman y se muestran como una sola cantidad.
  14. En el reporte de operaciones mayores a 500,000 para personas morales (PLD/Operaciones > 500,000 p. mor.), también se deben considerar a otras personas que no sean personas morales, con actividad empresarial (como socios con actividad empresarial). Se toma en cuenta que la persona tenga actividad empresarial en cualquiera de las dos ocupaciones que se pueden registrar.
  15. Agregar en el reporte de PLD un combo de status, para seleccionar a todos los socios, solo a los activos, o solo a los cancelados. Para el reporte de PAP activos, de alto riesgo, PEPs, nacionalidad extranjera y residentes en el extranjero, este combo se establece en activos.
  16. Si una persona fue encontrada como bloqueada, mediante una función interna en SAC, MarcarLPB, se actualizan los campos SOCIOS.lpb (con 1) y SOCIOS.lpbrazon con alguna descripción (En Personas/Actualizaciones/PLD/LPB: y Razón LPB:). Ahora se agrega el campo SOCIOS.pep, que establece si no ha sido buscado, ya ha sido buscado, o ha sido encontrado. Ya existe el campo SOCIOS.cargopep, que establece el cargo PEP de una lista, y se tiene que establecer a mano. (Estos accesibles en Personas/Actualización/PLD/PEP: y Cargo Pep: )
  17. Se pone un candado para que cuando SOCIOS.pep sea 1 (encontrado en alguna lista de PEPs), se tenga que establecer el cargo PEP, por tanto que SOCIOS.cargopep no tenga valor 0.
  18. Se modifica el procedimiento en Sistema / Especiales / Establecer personas como no buscados en LPB, para que establezca también a las personas como no buscados en listas de PEPs.
  19. Se detectó porque en ocasiones se agrega un socio doble en SAC. Se ejecutan las instrucciones de agregar datos a los campos dentro de una transacción. Se hace commit a ésta. Se llama a CalcCamposPLD que calcula, entre otras cosas, el promedio de efectivo del socio; en este apartado en ocasiones tarda mucho y aparece el error de "terminó el tiempo de espera". El usuario, al ver el error, vuelve a oprimir el botón de agregado, sin percatarse de que ya se había agregado el socio. Para solucionar este problema, se sacó el procedimiento que calcula el promedio de efvo. del socio, CalcCamposPLD, fuera del try/catch. Por lo que si hubiera un error al hacer estos cálculos no afecta al agregado del socio.
  20. Se modifica el formato de Crystal Reports, ConsultaExt.rpt, que muestra los resultados de la consulta a web services en listas de personas bloqueadas y PEPs. Se agregan los campos de parámetros vPuesto, vInstitucion y vFuente
  21. Modificar en el formato de CR, ConsultaExt.rpt, el encabezado solo a COINCIDENCIA EN LOS LISTADOS, y en caso de que no tenga coincidencias automaticamente rellene los campos del formato con un texto "sin coincidencias", dependiendo de los campos SOCIOS.pep y SOCIOS.lpb
  22. Al cancelar una póliza donde haya un movimiento de ahorro relacionado con un contrato de pasivo recurrente, no se actualizaba el status, la fecha de pago ni el saldo de este contrato. Ahora se hace dentro de la subrutina CancelacionMov, mediante llamados a CalcSaldoPasRec y CalcFecPagPasRec.
  23. Al liquidar un contrato de pasivos recurrentes, se hacía en la fecha programada del contrato, y no en la fecha actual del sistema
  24. En el corte de caja tipo estándar agregado, algunas pólizas no las muestra. Se dio el caso con una póliza de retiro de ahorro con mov. bancario. Era por un error en la liquidación de las tandas (pas. rec.), que asignaba fechas diferentes a la póliza y a los movimientos.
  25. Por observación de un organismo regulador gubernamental, se agrega el campo PRESTOTOR.DiasVencR: número de días vencido del préstamo anterior en la cadena de reest/renov, al momento de reestructurarse/renovarse un préstamo. Este valor se incrementará a los días vencidos de éste préstamo, hasta que se observe pago sostenido. Esto independientemente de si el nuevo préstamo inicia como cartera vigente o vencida. Por ejemplo si un préstamo tenía 15 dias de vencido, al momento de reestructurarse/renovarse, el nuevo préstamo inicia con los mismos 15 días de vencido.
  26. Se cambian todas las referencias a "interés normal" por "interés ordinario", dentro del programa SAC, otras utilerías, y manuales. Esto porque resulta más claro y menos ambigüo.
  27. Correcciones menores al formato de CR de consulta externa. Se muestra el proveedor de la consulta externa (campo provws), que puede ser Siprelad o SITI AA.
  28. PAP requiere que para la palabra reservada {paisnacnum} regrese un valor específico cuando es jurisdicción de alto riesgo. Se descubrió que MCAL ya lo hacía. Solo se agrega el status de jurisdicción bajo un mayor monitoreo. Queda entonces como 0-MX, 1-extranjero, 2-reg. fis. pref. (paraiso fiscal), 3-jur. de alto riesgo (lista negra) 4-jur. bajo un mayor monitoreo (lista gris). Ya se había pedido y solventado el 3/jun/2020.
  29. Para el reporte de solicitud de ingreso (solicitudingreso.rpt) de SMC se tiene que obtener la descripción del cargo PEP, desde la base de datos de códigos postales y otros valores, llamada CP. Se tienen que modificar todas las solicitudes de ingreso (solicitudingreso.rpt) de todas las entidades para agregar un nuevo parámetro vCargoPEP, el cual recibe esta descripción. También se modifican todos los formatos con nombre solicitudingreso1, solicitudingreso2, solicitudingreso3, certificadoaportacion, perfiltran y perfiltran1, es decir todos los formatos de solicitud de ingreso, certificados de aportación y perfil transaccional de todas las entidades.
  30. Ya existe en la tabla VALORES la propiedad "capital", ahora se agrega la propiedad "capitalneto". Se establece en Parámetros. En la verificación del préstamo al agregar o modificar estos, se toma cada uno de los valores, capital y capital neto, para las comparaciones adecuadas.
  31. En IC, en la interfaz con SAC, no se contemplaba el tipo de maymen 9-fundador
  32. SOCIOSPASREC: en el reporte de saldos de pasivos recurrentes, al dar doble click sobre la clave de contrato, no cargaba correctamente el formulario de alta de contratos de pas. rec.
  33. SOCIOSPASREC: Al liquidar un contrato de pas. rec., contra una cuenta de pasivos, no tomaba en cuenta el interés por lo que la póliza quedaba descuadrada
  34. Según las Disposiciones de Carácter General a que se refiere el artículo 124 de la Ley de Ahorro y Crédito Popular, disposición Vigésima Cuarta, párrafo X, una operación inusual se debe generar cuando las operaciones que los socios o clientes realicen, involucren a países con regímenes fiscales preferentes, o en la lista negra o lista gris. En caja, al detectar la operación de una persona en este supuesto, genero una op. inu. de 24 hr., de forma similar a cuando la persona es LPB. Esta operación se puede mostrar en PLD/Operaciones inusuales 24 hr.
  35. En el reporte de operaciones inusuales, formato SHCP, se muestra en ocasiones la actividad económica en 6 caracteres (100008 AGRICULTURA) en vez de los 7 que requiere el formato oficial. SOCIOS.ActEcoCNBV, que almacena la información, es tipo carácter de 7. Se podría cambiar todos los campos para incorporar el 0 a la izquierda, así como en la base de datos CP, pero es más eficiente poner una instrucción de formato en el reporte, con un format(dato,"0000000")
  36. Se cambian los encabezados de reporte de préstamos de Buró de Crédito tipo CSV. En gran parte se eliminaron subguiones. Por ejemplo DIRECCIÓN_CALLE_NÚMERO por DIRECCIÓN CALLE NÚMERO Algunos cambian nombre, como FECHA_ULT_PAGO_VENCIDO por FECHA_INGRESO_CARTERA_VENCIDA.
  37. Se agrega a MCOB una funcionalidad para captura masiva de eventos, en MCOB/Eventos/Carga masiva. Esto permite agregar con una sola acción del usuario una gran cantidad de eventos de cobranza a la base de datos de SAC. Se agrega en VALORES el uso de una propiedad mcobCampos, que es una relación de los campos, correspondientes a la tabla mcobEventos, para mostrarse en el grid de captura masiva, para que se pueda copiar desde Excel a este grid, y se hagan corresponder los campos que se están capturando, y en el mismo orden.
  38. Se agregan los campos a la tabla SOCIOS, ben1estado, ben1pais, ben2estado, ben2pais, que son el estado (provincia) y el país para los beneficiarios 1 y 2 del socio.
  39. En la solicitudingreso1.rpt de SMC, se incorpora una sentencia SQL para obtener al padre, madre o tutor. Se elimina la condición de sexo=0, que solo traía al padre varón.
  40. El formato ContratoAhorro1.rpt, que se imprime desde Personas / Actualización, imprimía dos tantos en algunas ocasiones. Se debe a que la compleja instrucción tSQL regresaba dos registros, el primero con los datos de la persona mas, si existe, el proveedor de recursos del menor, el segundo, con los datos de la persona y campos nulos. Se agrega un select * top 1.
  41. Al agregar o actualizar una persona, mostrar una alerta si está involucrado con países con regímenes fiscales preferentes, o en la lista negra o lista gris.
  42. Actualmente SAC verifica que al agregar o modificar una persona, se proporcione la ocupación (en la pestaña de referencias laborales), ahora se verifica que, además, el socio cuente con actividad económica (pestaña de PLD).
  43. Al agregar o modificar una persona, se verifica que los valores del monto mensual declarado, operaciones mensuales declaradas y frecuencia declarada no puedan ser cero. Se incorpora la verificación, pero para el perfil transaccional inicial o declarado, no para el calculado.
  44. No otorgar un créditos si no se valida la verificación domiciliaria (en actualización de personas, en la pestaña de generales (cont.) se debe dar una fecha válida en Fecha verif. dom.) Se agrega a la tabla VALORES la propiedad SelVerifDom (seleccionar verificación domiciliaria) a la cual se puede asignar el valor 0 (no se requiere verif. dom. para otorgar un crédito) o 1 (se requiere verif. dom. para otorgar un crédito)
  45. Al reportara al SITI los movimientos relevantes, no admite un nombre de colonia mayor a 30 caracteres. Se limita desde SAC. Si el nombre de la colonia es mayor a 30 caracteres, se recorta a 30 caracteres.
  46. Incrementar la vigencia de la bitácora de 2 a 3 meses. En el formulario para cerrar caja, frmCerrar, al dar click, se cambia la fecha límite a  DateAdd(DateInterval.Month, -3, FechaUso) 
  47. Se modifica la función principal de cálculo de préstamos, CalcPrestamo4, para reflejar correctamente el pago sostenido de un crédito. Esto para créditos reest/renov. Se declara un arreglo Ppcartera, arreglo con el estatus de vencimiento en cada una de las fechas del plan de pagos, 0=vigente, 1=vencida. Se llena con 0s y 1s de acuerdo a los pagos almacenados en base de datos. Luego se compara, si hay 3 ceros consecutivos, hay pago sostenido. Esto independientemente de que después haya algún 1, en cuyo caso después de 90 días el crédito podría caer de nuevo en cartera vencida, y sería reportado así, pero mientras no caiga en cartera vencida, aunque haya valores 1 (atrasos), y habiendo pago sostenido, se reportará como cartera vigente. Se pueden ver que vencimientos fueron vigentes (0) y en cuales hubo atraso (1) en Caja/Movimientos/Consultar movimientos (lupa)/Descripción de pré.
  48. Se detectó un error en el cálculo de la 1er. fecha de incumplimiento (dato requerido por Buró de Crédito). En la mayoría de los casos se calculaba una fecha de 1er. incumplimiento posterior a la real. Se detectó que muchos créditos tienen 1er. fecha de incumplimiento desde los primeros vencimientos del plan de pagos. Esta fecha se muestra en el reporte de Buró de Crédito.
  49. Que solo ciertos perfiles puedan modificar la fecha de verificación domiciliaria en la actualización de personas. Se considera dentro del permiso 19-modificar datos sensibles de personas.
  50. Implementar las consultas al nuevo portal de Quién es Quién. Se hace, como antes, desde Personas/Actualización/Acciones/Consultar QeQ. Internamente se llama a 2 funciones, ConectarQeQ y luego TraerQeQ. ConectaQeQ toma de los valores de parámetros qeqClientId y qeqSecretId. Se tienen que declarar estas 2 propiedades en Parámetros antes de hacer una consulta. En base a estos 2 valores se hace una consulta web (HttpWebRequest) al sitio de QeQ, obteniéndose un token, que se guarda en los valores de parámetros con la propiedad qeqToken. Luego, TraerQeq, hace uso nuevamente de qeqClientId, de un qeqUserName y de qeqToken para hacer la consulta de la persona. Si hay un error en la conexión al web service, o no se encuentra la persona, es indicado. Si se encuentra, se regresa si se encontró como PEP o como p. bloq. Para esto se hace uso de la propiedad de QeQ, categoria_riesgo, que puede tomar los valores "PEP", "Law Enforcement" o "Regulatory Enforcement". También se usa la propiedad limit con el valor 2 en la consulta, para que no regrese una respuesta con demasiados bytes.
  51. Se crea un nuevo reporte de Crystal Reports, para el contrato de garantía líquida, ContratoGarLiq.rpt, basado en el ya existente ContratoAhorro2.rpt, pero se imprime desde el formulario de préstamos y no desde el de personas. De acuerdo al campo PRESTOTOR.TipPre, (tipo de préstamo) se determina el porcentaje de garantía líquida. Por ejemplo si es 5, se puede prestar 5 veces lo que hay en garantía líquida. Por default al entregar el préstamo se retira de la cuenta primaria de ahorro (vCtaPrimAh0) y se deposita en la cuenta primaria de monto bloqueado (vCtaPrimMb4). La cuenta primaria de monto bloqueado será la primera que se defina como “Monto bloq.” en Parámetros. Este monto bloqueado o garantía líquida requerida de acuerdo a los tantos, se envía al formato de CR en el parámetro GarLiqReq (garantía líquida requerida). También se envía la fecha de entrega del préstamo en el parámetro FecEnt.
  52. Un error al calcular el pago sostenido de un crédito, hacía que no se tomaran en cuenta 2 o más movimientos hechos un mismo día.
  53. Al hacer una consulta a QeQ, regresa el error "Error al analizar EntityName". Se sospecha que es un error en el XML que formo en base a la información regresada por QeQ. Agrego una instrucción QuitarCarEsp para quitar posibles caracteres que no acepta XML, como son comilla doble, comilla sencilla, mayor que, menor que y ampersand.
  54. Agregar el nombre completo del usuario en la solicitud de ingreso de SMC (solicitudingreso.rpt) En el comando de Crystal Reports se agrega "left join usuarios s on s.sucursal=u.sucursal and s.usuario=u.usuario"
  55. Se vuelve a agregar la suma de los días vencidos del préstamo anterior en la cadena de reestructurados/renovados, pero con el campo PARAMETROS.SelDiasVencR. Si es 0, no se incrementarán los días vencidos en el nuevo préstamo, si es 1, si se incrementarán.
  56. En actualización de personas de SAC, prohibir que se agregue una persona cuyo país de domicilio, de nacimiento, o de trabajo, sea régimen fiscal preferente, jurisdicción de alto riesgo o jurisdicción bajo mayor monitoreo. Anteriormente solo se mostraba como advertencia. Generar la op. inusual como tentativa.
  57. Al parecer ya es necesario actualizar la base de datos CP.BAK con la relación de códigos postales, etc. Acudo a https://www.correosdemexico.gob.mx/SSLServicios/ConsultaCP/CodigoPostal_Exportar.aspx y descargo como Excel. Hago un DELETE FROM CP en la BD actual, borrándose 145,211 filas. Sobre la BD de CP, doy botón derecho / Tasks / Import Data... con Data Source: Microsoft Excel, Excel version: Microsoft Excel 97-2003, Destination: Microsoft OLE DB Driver for SQL Server. El archivo de Excel viene con una pestaña por cada entidad federativa, se importan dos tablas por cada pestaña, una con un signo de $ al final y la otra sin el signo. Elimino todas las que tienen signo de $, y las demás las copio con  insert into cp select * from aguascalientes, etc. Se usa el catálogo de Correos de México, versión 10/10/2024. Al final doy el comando select * from CP, resultando 155,964 filas.
  58. Agrego a la tabla VALORES de la base de datos CP, también algunos nombres de pila (nompila) tomando los 100 más comúnes. Se eliminan duplicados en apellidos y nombres buscándolos con la instrucción tSQL: SELECT valor, COUNT(valor) FROM valores where propiedad='nompila' GROUP BY valor HAVING COUNT(valor) > 1
  59. En los menores el sistema no está haciendo la validación correcta de que el ahorro de un menor no supere los 1500 UDIS cuando su papa o tutor no es socio de la cooperativa. Se tomaba incorrectamente a cualquier persona (maymen) como válido. Ahora solo se toma 0-socio mayor, 5-persona moral, 7-empleado, 8-cliente, 9-fundador. 
  60. Se detecta un error en al solicitar estados de cuenta, cuando pides un estado de cuenta en con fecha donde se entrego un crédito o anterior a la entrega nos marca un error de clave de préstamo. Faltaba una instrucción para limpiar el diccionario, hSalidas.Clear()
  61. Al cancelar o activar una persona, se guarda en Bitácora la acción, con una acción tipo M
  62. Agregar para la identificación del cliente/socio, el país de nacimiento. Ya existe el de nacionalidad (SOCIOS.paisnac) pero el país de nacimiento puede ser diferente, así que se agrega SOCIOS.paisnacion. Este último pasa a representar la nacionalidad, y el primero, el país de nacimiento. Según las DISPOSICIONES de carácter general a que se refieren los artículos 71 y 72 de la Ley para Regular las Actividades de las Sociedades Cooperativas de Ahorro y Préstamo.
  63. Se requiere el domicilio, ciudad, pais y estado, en caso de que el socio resida fuera del país, de conformidad con lo establecido en la 4ta. De las DCG a que se refieren los artículos 71 y 72 de la LRASCAP. Se agregan los campos en la tabla SOCIOS, extDomicilio, extCiudad, extPais, extEstado.
  64. En ambas pestañas de referencias laborales 1 y 2, se requiere agregar un campo en donde sea requerido, en caso de tener actividad empresarial, el Régimen Fiscal. Se agregan los campos para SOCIOS, RegFis y RegFis2, se crea un catálogo en la base de datos CP.
  65. Crear también una palabra reservada {regfis} que regresa el régimen fiscal de la ocupación principal de la persona, para calificar el riesgo de socios o de préstamos mediante el módulo mCAL.
  66. Al abrir/cerrar caja con una nueva fecha, actualizar automáticamente el dólar, UDIS, etc. Se da la opción con una checkbox "Consulta web service Banxico"
  67. Dentro de la pestaña de PLD, en SAC, en Personas / Actualizaciones, modificar los campos "op. mens. monto" "op. mens num." y "frecuencia de op." de manera que puedan manejarse mediante listas desplegables (combos), en vez de las cajas de texto que se usan actualmente. Se establecen estas listas en Parámetros / Valores mediante las propiedades OpMontoD, OpNumD y OpFrecD, de acuerdo a datos proporcionados por la entidad PV. Como índice se establece el valor mínimo del rango, el cual se comparará con el valor actualmente guardado en la tabla SOCIOS para determinar cuál renglón de la lista se muestra. Por ejemplo, si el socio tiene op. mens. monto por $9000, se buscará en la lista del valor inmediatamente menor, que es 8000, y se mostrará el renglón "$8000 a $24000". Asi mismo se modifican los reportes PLD / Personas PLD (con varios subreportes) y Reportes / Caja / Corte de caja / Ampliado.
  68. Renombrar "ing. del cónyuge" como "ing. prov. de rec.", puesto que la primera es irrelevante, y la segunda si afecta el ingreso del socio/cliente.
  69. Actualmente el reporte / préstamos / movimientos refleja la información que necesita la entidad, pero falta agrupar por producto del crédito. Se agrega la columna "clavetasa", que es la clave y descripción del producto de crédito. Tanto para la pestaña de "Abonos" como para "Dvg. diario".
  70. Cuando un préstamo abona el mismo día que se entregó, el monto de últ. cap. aparece bien, pero la fecha de ult. cap. aparece como 1/1/1900. Se corrige. También se observó que en algunos préstamos no mostraba el monto de últ. capital, y aparecía en 0. Esto pasaba en los préstamos cuyo último movimiento solo contenía un pago de interés. También ahora se considera el interés moroso; anteriormente solo se consideraba el interés ordinario.
  71. Al tratar de aplicar los pagos adelantados guardados en una cuenta de pasivo, cuando se abre caja, marcaba un error. Faltaba un identificador en la sentencia t-SQL.
  72. Que en el formato de aviso de privacidad, cuando sea un ahorrador menor, agreguemos el nombre del tutor. Se modifica SAC para obtener el nombre del tutor mediante una consulta tSQL que encadena las tablas SOCIOS y SOCIOSDEP, envía el dato requerido al formato de CR. Se modifican todos los formatos de CR para recibir el nuevo parámetro NombrePadre.
  73. Es necesario habilitar campos que permitan capturar el domicilio completo y C.P. en caso de que el socio resida fuera del País, de conformidad con lo establecido en la 4ta de las DCG a lo que se refieren los artículos 71 y 72 de la LRASCAP. Se agrega SOCIOS.extCP y SOCIOS.extColonia
  74. En el mismo apartado de PLD, se requiere que también sea agregada una lista de instrumentos monetarios (medio de pago), esto con el motivo de identificar el medio de pago con el cual es de mayor frecuencia para transaccionar operaciones dentro de la cooperativa.
  75. Se mejoró la rutina "QuitarRetTab", ahora además de quitar los retornos de carro y tabuladores, quita los espacios circundantes (al principio y final del texto) de algunos campos de texto. Se aumenta el número de campos de texto involucrados: PRESTOTOR.hipregistro, PRESTOTOR.hiphiporeca, PRESTOTOR.precaracteristicas.
  76. En la función frmReportesSaldoPre.Desplegar, se cambia desplegar = false por return false. Esto hace que se regrese inmediatamente el valor "false" y se haga mucho más eficiente la ejecución de este reporte.
  77. Al generar tablas y campos faltantes, se establece el valor por default "MX", correspondiente a México, para los campos relacionados con un país: pais, conpaisnac, paisnacion, paisnac, ben1pais, ben2pais, paistra, paistra2, extpais.
  78. Existe el parámetro "Monto máximo", que es el monto máximo acumulable por una persona en sus pasivos (ahorros, contratos de inversión, etc.) que se restringe desde caja. Por un error no se restringía al hacer un nuevo contrato de inversión, o al reinvertir. Ya se realiza: se contempla el total de pasivos del socio, más el total de contratos de inversión (y certif. de aport.) más el monto del nuevo contrato. Si supera al monto máximo, se rechaza.
  79. Al tratar de reinvertir un contrato, permitía que la fecha del nuevo contrato fuera anterior a la fecha de vencimiento del primer contrato.
  80. Se modifica el reporte de saldo de préstamos, tipo MCOB, para mostrar una columna con todas las fechas del plan de pagos de cada préstamo, y si cumplió el pago en tal fecha o hubo atraso. Se toma el atributo "ppcartera" que regresa la rutina CalcPrestamo4.
  81. Se elimina el campo PARAMETROS.reca, que no es general, sino a nivel de cada formato de impresión. Se proporciona la instrucción "alter table parametros drop column reca" al generar campos y tablas faltantes.
  82. Se modifica Pólizas/Actualizar, y todos los reportes, para que tome en cuenta el número de decimales establecidos en Parámetros / Configuración / Decimales. Se pueden establecer 0, 2 y 4 decimales. Anteriormente solo se consideraban en algunos reportes, como en el Balance general. Ahora se consideran al capturar/modificar pólizad en Pólizas/Actualizar, y en todos los reportes.
  83. Para menores, al hacer depósitos mayores a 1500 UDIS, checar que la cuenta del tutor esté activa. (Tomaba en cuenta socios cancelados).
  84. En Reportes / Préstamos / Saldos / MCOB, se agrega una columna "Cumplimiento según PP" que muestra, para cada préstamo, si el socio cumplió en cada vencimiento del plan de pagos.
  85. No se debe permitir la operación a menores (maymen=1) cuando ya han cumplido la mayoría de edad.
  86. Se corrige un error en las op. internas preocupantes, es que al generarlas como un nuevo mensaje (Sistema / Nuevo mensaje), se guardan con Revision=0 (sin revisar), y cuando consulto en el reporte (PLD / Operaciones internas preocupantes) solo consultaba los movimientos con Revision=2 (no justificados). Entonces nunca las mostraba. Ya modifiqué el reporte para que consulte todas las op. internas preocupantes, independientemente del valor de Revision.
  87. Se modificó la consulta a SIPRELAD para que consulte nombre y apellidos en mayúsculas, sin fecha de nacimiento, RFC ni CURP. Con esta modificación se logró tener consultas positivas. Con la versión anterior que incluía RFC, CURP y fecha de nacimiento, se obtenía un error de SIPRELAD.
  88. Actualmente, cuando se realiza una actualización de datos de un socio y es necesario reimprimir la solicitud de ingreso, el sistema sigue mostrando el nombre del colaborador que originalmente dio de alta al socio. Se solicita que el sistema arrastre automáticamente el nombre del ejecutivo que está realizando la actualización de datos, asegurando que la información reflejada sea correcta y actualizada. Se agrega el campo SOCIOS.UsuarioM, que guarda el dato del último usuario que modificó al socio (o persona). Para imprimirlo en los reportes de Crystal Reports, se modifica la instrucción t-sql en la unión con la tabla USUARIOS, quedando: left join usuarios u on s.sucursal=u.sucursal and s.usuariom=u.usuario. Se modificaron solicitudingreso, solicitudingreso1, solicitudingreso2 y solicitudingreso3.
  89. Cuando se requiera cancelar una póliza de un crédito con fecha anterior a la actual, además del permiso para cancelar pólizas con otras fechas, validar que el crédito no tenga abonos posteriores a la fecha de la póliza a cancelar.
  90. Se encontró en la página de la CNBV mediante hoja de Excel un nuevo catálogo de instrumentos monetarios. El anterior era 00 no identificado, 01 efectivo, 02 documentos o valores, 03 transferencia, 04 cheque de viajero, 05 oro o platino amonedado, 06 plata amonedada, 07 divisas, se agregan 08 derechos, 10 cheques, 11 bienes, 12 cheques de caja. La entidad había pedido que se incorporara "cheques".
  91. Cuando una persona no cuenta con el segundo apellido, el SAC calculaba mal el RFC (tomaba letras del nombre de pila), debe colocar una X. Ver https://cec.cele.unam.mx/include/howToRFC.php. Ver petición de PAP del 15/oct/2021.
  92. Para el cálculo del RFC, con dos apellidos, si el primer apellido no tiene vocal interna, se le asignará una "X" en la segunda posición. P. ej. ANDRES ICH RODRIGUEZ  será IXRA
  93. En el reporte de buró de crédito, en la etiqueta 14 FECHA DE ULTIMO PAGO, cuando el préstamo no ha hecho pagos, mostrar la fecha de disposición del crédito (fecha de entrega) y  no la fecha nula, 01011900.
  94. “Actualmente el sistema no cuenta con un control adecuado sobre los socios que si cuentan o no cuentan con su Constancia de Situacion Fiscal emitida por el SAT. Solicitamos la incorporación de un campo de selección en la pantalla principal de actualización de personas, generales. Esto nos permitirá generar reportes para dar seguimiento a los socios que aún no han cumplido con este requisito.” Solo hay que agregar "Constancia de Situación Fiscal" en Parámetros/Valores con la propiedad DocDesc. Luego para cada socio hay que establecer en Si, Personas/Actualizaciones/Documentación. Se puede consultar que personas tienen Si en Reportes/Otros/Documentación.
  95. Se requiere que cuando un socio con un crédito vigente solicite y obtenga la aprobación de un segundo crédito, el sistema genere una alerta y/o clave de autorización que deba ser aprobada por personal autorizado antes de proceder al desembolso. Se agrega en la verificación de datos del préstamo (VerifDatos) si ya hay otro(s) préstamo(s). Se agrega el permiso 7.1, "Agregar segundo préstamo o sucesivos".
  96. Se actualiza Hermes para que coincida con la versión más reciente de SAC
  97. En el estado de cuenta de la persona se agrega un combo para seleccionar si se imprimen los estados de cuenta para todas las personas o solo para los activos.
  98. Por lo observado en algunos ejemplos, para el cálculo de RFC con un solo apellido no se debe colocar X, sino poner letras de nombre de pila. Es decir, no es como indica la petición del 24/mar/2025 sino como la del 15/oct/2021. El ejemplo es AMALIA PANUCO, cuyo RFC según su const. de sit. fis. es PAAM761114IN1
  99. En MCAL se requiere tener acceso a la fecha de ingreso y reingreso del socio (se agrega fecing y fecreing). Además se agrega anting y antreing, que es la cantidad de años transcurridos cumplidos desde el ingreso o el reingreso del socio, hasta la fecha actual (fechauso).
  100. Se agrega en la pestaña de PLD de la actualización de personas, el canal de pago, el cual puede tomar los valores: medios electrónicos, cajero automático, comisionistas, ventanilla. Se agrega este campo en MCAL (canalp).
  101. En PLD, de la actualización de personas, ya existe el campo de medios de pago. Se agrega el valor "20 tarjeta de débito/crédito". En MCAL se agrega como la propiedad {IM} (instrumento monetario).
  102. Ya existen las palabras reservadas {PropRel} y {ProvRec} para la calificación de riesgo de las personas, en base a lo capturado en SOCIOSDEP.tiporel, que indican si la persona es propietario real de los recursos o proveedor de recursos, respectivamente. Pero faltan indicar si la persona depende de un propietario real o de un proveedor de recursos. Se agregan los valores respectivos para {PropRel}, 2-TIENE un propietario real y para {ProvRec}, 2-TIENE un proveedor de recursos.
  103. De igual manera solicito agregar el campo lpb (Lista de personas bloqueadas) ya que en esta nueva versión del MCAL no se encuentra incorporado, dicho campo se encuentra dentro del SAC/Personas/Lista de campos/lpb. Se agrega la palabra reservada {LPB}
  104. En el reporte de operaciones inusuales  en la segunda columna "periodo del reporte" el sistema manda la fecha del ultimo día del periodo a reportar y la información correcta es el día del envío. Por ejemplo una operación inusuales del día 7 de abril de 2025, el sistema en periodo de reporte pone 20250430 (30 de abril de 2025) la información correcta es el día de reporte 20250609(09 de junio de 2025). Se cambia esta fecha tanto para operaciones inusuales como para operaciones relevantes.
  105. Las operaciones realizadas a través de la cuenta concentradora no fueron alertadas mediante el sistema. Se agrega el campo en la tabla de cuentas bancarias, CUENTAS.RestDep, para restringir depósito a ésta cuenta en caja. Se crea el permiso 28.1, "Depositar a cuenta concentradora con restricción". Quien tenga este permiso puede autorizar los depósitos a cuenta bancaria concentradora, en caja.
  106. En SAC, en Caja/Movimientos, en el combo de saldos, ahora se muestra la clave del producto de pasivo y su descripción. Antes se mostraba solo la descripción.
  107. Se modifica el reporte de permisos (Reportes/Otros/Permisos) para no mostrar renglones vacíos, correspondientes a permisos que alguna vez se manejaron pero ya no.
  108. Según las Disposiciones, párrafo 77 "en tanto el crédito se mantenga en cartera vencida, el control de los intereses o ingresos financieros devengados se llevará en cuentas de orden". Hace poco se hizo un cambio en SAC para que, de acuerdo a la ley, un préstamo que cae en cartera vencida no regresa a cartera vigente hasta que se ponga al corriente (0 días de vencido). Por tanto hay casos que estan en cartera vencida con días de vencido menores a 90 días. En estos casos calculaba mal los intereses, puesto que la "fecha considerado vencido", FechaConsidVenc, era una fecha futura y el préstamo tenía un tratamiento como vigente. Ya se maneja una variable "cartera transitoria" para considerar en cartera vencida los préstamos que cayeron en este supuesto y no se han puesto totalmente al corriente; se agrega "fecha consid. venc. transitoria" para guardar la fecha de vencimiento correspondiente. Si la cartera sigue siendo vencida, se guarda también la fecha de vencimiento, y así se calculan correctamente los intereses devengados en cuentas de orden.
  109. Se determina el método de calificación de crédito para los distintos tipos de crédito según su finalidad, con la nueva propiedad de VALORES, MetCalifCre, que se edita en Sistema/Parámetros/Valores. El índice puede tomar los valores: 0-consumo, 100-comercio, 200-vivienda, el valor puede ser: 0-tradicional, 1-IFRS 9. Bajo la regulación actual, en SAC por default se asignará el valor 0-tradicional para todas las finalidades. Al entrar en vigencia la nueva ley, en 2026, a los préstamos tipo 100-comercio se asignará manualmente el valor 1-IFRS 9.
  110. “Se va a implementar un crédito cuya garantía líquida se constituya sobre un depósito a plazo fijo (inversión), pero el FOCOOP me indicó que ese crédito necesita un contrato muy específico, quisiera solicitar el agregar a SAC un nuevo formato para contrato de crédito, de los formatos actuales, podríamos replicar el que se llama "contratocredito", únicamente seria necesario agregar en Campos de base de datos/Comando, algún campo que nos permita conocer si el socio tiene un depósito a plazo fijo activo y cuál seria el folio y monto de ese depósito.” Se crea contratocredito6.rpt. Solo se despliega el campo PRESTOTOR.conValor, campo calculado que contiene la suma total de los contratos de inversión que garantizan el préstamo. Para desplegar la clave del contrato, se hace un JOIN de la tabla de PRESTOTOR a la de CONTPRE, y de ésta a la de CONTINV.
  111. Modifiqué la función CalcSaldoParentesco, que regresa el saldo de los préstamos de los parientes en primer grado de una persona, para que trajera toda la lista de las personas con parentesco y toda la lista de los préstamos de éstas personas. Anteriormente solo mostraba la primer persona y el primer préstamo encontrado. Esto afecta a los reportes de Préstamos / Saldos / Con parentesco y Préstamos / Saldos / dep. eco.
  112. Se usa el valor MetCalifCre, que determina que método de EPRC usar, el tradicional o IFRS9, para desplegar la estimación correspondiente. En el reporte de saldo de préstamos tipo SAC, se agrega una columna IFRS para desplegar ahí el valor de estimación de los préstamos que se calculen mediante IFRS9.  Se modifica CalcEstiPrev, que regresa las EPRC por finalidad, para que regrese los valores específicos de EPRC para créditos que se calculen con IFRS9.
  113. En IC se agrega en interfaz tipo 0 (interfaz con SAC), para el rasgo1, la palabra EstiIF, que determinará las cuentas contables donde se irán los saldos de los préstamos que se calculen mediante IFRS9, para consumo, comercio y vivienda. 
  114. En el reporte de saldo de préstamos tipo SAC, se agregan columnas para desagregar varios conceptos según las nuevas disposiciones en cartera vigente (etapa 1), cartera atrasada (etapa 2) y cartera vencida (etapa 3). Los créditos que según su finalidad todavía no se requiera clasificarlos así, se reportaran como cartera vigente o vencida. Por tanto se agregan columnas para el saldo de capital atrasado (SaldoCapCA (E2)), interés devengado en cartera atrasada (IntDvgCA (E2)) e interés moroso cartera atrasada (IntMorCA (E2)). La primer columna, cartera, ahora además de mostrar "vigente", "vencida", para los créditos que se calculen mediante IFRS9 mostrará "etapa 1", "etapa 2", "etapa 3"
  115. Traspaso de carteras: Se modifica el reporte de traspaso de carteras para reflejas tres secciones: cartera vigente, atrasada y vencida. Cada una clasificada en las tres finalidades básicas: consumo, comercio y vivienda, y cada una de estas, clasificada en capital, interés ordinario e interés moroso. Se modifica la función CalcTraspasoPre que es la base de cálculo de ésta información.
  116. Traspaso de carteras: modificar CalcAboInt y el reporte de concentrado de préstamos para reflejar las carteras vigente, atrasada y vencida.
  117. Se modifica CalcIntDvg y por tanto el reporte de concentrado de préstamos, el reporte de préstamos (abonos de préstamo) y el reporte de préstamos (devengado diario) para reflejar los intereses devengados de las carteras vigente, atrasada y vencida.
  118. Modificar TraerParametrosSuc, que trae los parámetros de cada sucursal de una entidad, para traer el diccionario dicMetCalifCre, que determina que método de EPRC usar, tradicional o IFRS9, par cada finalidad de crédito: consumo, comercio y vivienda.}
  119. Se modifica la interfaz de IC para los nuevos requerimientos del IFRS9. Además de los atributos ya existentes crevig, creven, crecto, se agreca creatr, para establecer las cuentas contables de capital e interés ordinario de cartera atrasada. Además de los atributos ya existentes cremor, cremve, cremco, se agrega cremat, para establecer las cuentas contables de interés moratorio de la cartera atrasada.
  120. En SAC, en Reportes/Pasivos/Saldos, cuando el préstamo no era de la misma sucursal que la del socio correspondiente, los saldos de intereses ordinarios, moratorios e IVA podían variar. También en Caja/Movimientos/Consultar movimientos/Plan de pagos pré. Esto era debido a que los parámetros obtenidos de excluir sábados, excluir domingos, excluir días inhábiles, además de la lista de días inhábiles, eran los de la sucursal del socio, no los de la sucursal del préstamo.
  121. Hacer cambios en la lectura de CFDI. En el caso de los salarios, faltan las deducciones. Se implementa el complemento de nómina versión 1.2, que se integra en el CFDI versión 4.0
  122. En MCAL, se modifica la estructura de cuentas estándar y sus ponderaciones, para calificar el riesgo de los créditos, de acuerdo a lo solicitado por la entidad SMC.
  123. Después de hacer un movimiento de pago de préstamo en SAC, en caja, se muestra un renglón con el texto "Int. ord. + int. mor. + IVA = " y el total de estos 3 conceptos.
  124. Bajo circunstancias poco frecuentes se calculaba en ceros el int. moroso, cuando debería ser mayor que cero. Cuando el mismo día se hacía un pago solo de int. moroso, y luego un pago extra (int. Ordinario o capital), se tomaba el pago de int. moroso como un pago fraccionario de int. moroso, por lo que lo restaba del int. moroso devengado actual. Esto afecta tanto al saldo de int. moroso devengado, como al cálculo de estimación preventiva.


Comentarios

Entradas más populares de este blog

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

Base de datos de códigos postales

Cálculo de estimaciones preventivas adicionales