SAC 9.2.7304

Estos son los 50 cambios realizados desde agosto hasta diciembre 2019, que afectan a los programas SAC, IC, MCOB, MCAL y MBATCH.
  1. De acuerdo a la "Guia para la elaboración, presentación y envío de reportes de operaciones inusuales, clasificados como reportes de 24 horas", emitida por la UIF, se realizan estas modificaciones: agregar un campo para el status de búsqueda en la lista de personas bloqueadas, SOCIOS.lpb, con valores -1, ya se buscó y no aparece en lista, 0, no buscado, 1, en lista de personas bloqueadas, 2, relacionado con persona en LPB.
  2. Agregar campo SOCIOS.lpbRazon, con una descripción que contemple la lista consultada (OFAC, …) y fecha de incorporación a la lista, mas otros datos por contemplar
  3. Mostrar en el reporte de operaciones internas preocupantes, los registros de la tabla MSG que esten clasificados como mensajes de LD (tipomsg=1). Actualmente solo aparecen las pólizas que esten clasificadas como no justificadas (revision=2)
  4. Al querer agregar un préstamo en SAC, no se podía porque superaba el 5% del capital de la entidad, según las disposiciones. Sin embargo la entidad comenta que el capital actual hay que incrementarle el resultado neto (ingresos-egresos). Esto da una cantidad mayor que la anterior, por lo que si es posible otorgar el préstamo.
  5. En modsacbd.calc_bloqueos no estaba considerando el monto extraordinario (montoext) del préstamo
  6. En frmPrestamos considera como garantía líquida base, las dadas según la variable TipPreCta, en la tabla VALORES. Al entregar el préstamo, sin embargo, toma solo la cuenta primaria de ahorro (vCtaPrimAh0). Esto podría ocasionar diferencias, si no está configurada la misma cuenta. Eliminar el uso de TipPreCta, que complica mucho el proceso.
  7. Al entregar un préstamo, tomar en cuenta la garantía de contrato, si no solventa con la garantía líquida, igual que se hace al agregar el préstamo
  8. Para quitar espacios extra en un string (más de 1 espacio) usar txtCoinc = Regex.Replace(txtCoinc, "\s+", " "), por ejemplo al concatenar nombres de pila, apellidos paternos y maternos. Pero no hacerlo en desplegados masivos (con for) de socios, porque alenta mucho el proceso.
  9. Elimino los formularios de reporte de la lista negra (OFAC) y de la lista de la PGR, y dejo solo el formulario de reporte de personas bloqueadas, desde el cual se puede buscar en cualquiera de las 3 listas disponibles (personas bloqueadas, en la tabla SOCIOSBLOQ, lista OFAC, en XML, y lista de la PGR, en CSV)
  10. En CalcCamposPLD, donde se recalculan los campos para PLD de las personas, calcular si alguien está relacionado (en 1er. Grado) con alguien en lista bloqueada (identificados estos con SOCIOS.lpb=1) y marcarlo con el valor 2
  11. Para buscar las operaciones inusuales, en la función que calcula el promedio mensual de depósitos en efectivo, CalcPromEfe, para el reporte de 24 hrs., consideraba mal el número de días para dividir, en 1 en vez de los días del mes. Esto ocasionaba un exceso de mov. inusuales. Se crearon las variables f1mes y f2mes, que son el primer y último dia de los meses respectivos.
  12. Para dar cumplimiento con lo establecido en las Disposiciones de caracter general en materia de Prevención de Operaciones con Recursos de Procedencia Ilícita y Financiamento al Terrorismo, y de acuerdo a la Guía para la elaboración, presentación y envío de reportes  de operaciones inusuales, clasificados como "Reporte de 24 horas", como se deben reportar las operaciones con personas incluidas en la LPB, antes de que la LPB le haya sido notificada, se desprende que una vez identificados, no deberían hacerse operaciones con ellos, y se debería reportar la tentativa (para esto último agregar un MSG tipo LD con la información requerida). Requerir permiso 41 para hacer movs. en caja, pero posiblemente prohibir totalmente. En el reporte de personas bloqueadas, al detectar una nueva PB, también generar un MSG tipo LD, para ser considerado en el reporte de 24 hrs.
  13. Ampliar los campos Op y Msg de la tabla MSG, correspondientes a descripción de la operación y razones, para los reportes de op. Inusuales y preocupantes, de 200 a 600 caracteres. Los datos se guardan encriptados, por lo que corresponderían a información plana de 300 caracteres c/u.
  14. Para el campo MSG.tipomsg, ahora se redefinen los valores como 0-msg de usuario, 1-PLD operación interna preocupante, 2-PLD operación inusual (ROI 24 hrs.)
  15. Agregar campos en la tabla MSG: sucsoc, maymen y clavesocio, para identificar a la persona a la que se hace referencia en una operación de LD, y así poder recuperar posteriormente, en el reporte de op. inusuales o internas preocupantes, sus datos como nombre, domicilio, rfc, curp y actividad económica
  16. D841: sorprendentemente, el formato oficial "instructivo de llenado, serie R08 captación" indica que las cantidades monetarias si se representan con 2 decimales. Tradicionalmente en SAC se representaban en cero decimales ¿por petición de las entidades?
  17. Agregar al proveedor de los recursos en las solicitudes de ingreso (solicitudingreso.rpt, solicitudingreso1.rpt, solicitudingreso2.rpt) además del cootitular y el propietario real
  18. Se modificó frmRelFlex para mostrar los préstamos con código de colores, verde, cartera vigente, amarillo, cartera vigente con dias vencidos, rojo, cartera vencida. También muestra código de colores para líneas de relación, verde, acreditado, verde-amarillo, aval.
  19. Había un error en la búsqueda de personas bloqueadas de la lista interna de SAC (SOCIOSBLOQ) debido a la comparación de valores  nulos. Por ejemplo SOCIOSBLOQ.nompila2 era nulo, que es diferente del string vacío, por eso no encontraba nombres que tuvieran nompila2 vacío en SOCIOS.
  20. Separé los reportes de operaciones inusuales, y de operaciones inusuales de 24 hrs. Por los que estas operaciones no saldrán juntas en el mismo reporte. Se distinguen porque las op. inusuales son las que se relacionan con una póliza, por cumplir con los parámetros conocidos. Las inusuales de 24 hrs. son las creadas en la tabla MSG, ya sea manual o automáticamente.
  21. Que al cancelar un socio, se evite su cancelación si presenta saldo en servicios (se presentó el caso para el saldo de seguro de vida de un socio). Ya se hace, para servicios tipo "gastos de cobranza".
  22. En octubre 2019, Banxico cambió la forma de consulta de dólar y UDIS. Hay que obtener un token para evitar el abuso del sitio web y el código para obtener los valores más actuales (oportuno) de dólar y UDIS. Como se debe establecer el protocolo de seguridad en TLS 1.2, se cambian los proyectos de los programas de .NET Framework 3.5 a 4.5
  23. Se permite la opción de mostrar o no el encabezado en los reportes de operaciones de PLD (relevantes, etc.)
  24. Se requiere que aparezca en el reporte de operaciones PLD, formato SAC, una columna con los días transcurridos entre la fecha de la operación y el día de hoy (fecha de uso del sistema)
  25. Al parecer hace tiempo agregué un campo a la base de datos de Hermes, que lista todos los servidores, se trata del campo SERVIDORES.tipo, que es un número entero, y puede tomar los valores 0-matriz, 1-sucursal. A las BD de Hermes ya en operación, agregarle este campo. Revisar el funcionamiento con respecto a esto. Lo que hace es evitar que se envíen datos de sucursal a matriz, cuando la tabla es solo de matriz (es decir tienen prioridad los datos de matriz). Se identifica que una tabla es de matriz cuando no tiene campos SUCURSAL o SUCOR.
  26. La entidad PV requiere el CAT sin IVA del préstamo, en el contrato de préstamo 4. Lo mando al formato de Crystal Reports mediante un parámetro, el problema es que si lo cambio, afecta a todas las demás entidades. Agregar en todos los formatos de contrato de crédito un parámetro mas, y así se tendría CAT con iva y sin iva. Por lo pronto cambio de CATci a CATsi.
  27. En Hermes pongo la propiedad keypreview del formulario de parámetros en true, para que al dar enter en una celda del flexgrid no lo tome como un enter para el formulario. Necesito también poner el AcceptButton del formulario en none.
  28. El procedimiento agregartablashijas solo será util para BD distintas a SAC, puesto que para SAC se asignará "manualmente" el nivel correspondiente, por toda la problemática que hay de que las BD  son muy heterogéneas en cuanto a las llaves foráneas, en unas si existen todas, en otras faltan algunas
  29. MBATCH: reducir el tiempo de espera antes de aplicar un segundo pago a un préstamo, de 10 minutos a 1 minuto. En el sub Payment.
  30. Para que muestre la versión de SAC y sus utilerías en el explorador de archivos, incluyendo versión principal, versión secundaria y versión de compilación, es decir que muestre p. ej. 9.2.7243.x en vez de 9.2.0.0, acudir al archivo AssemblyInfo.vb y quitar la línea <Assembly: AssemblyFileVersionAttribute("9.2")> , dejar solo <Assembly: AssemblyVersion("9.2.*")>
  31. Ahora el reporte de bitácora hace referencia a un mismo archivo (frmReportesBitacora) en los programas SAC, IC y QLAB. La idea es ir incorporando la programación modular, para no repetir código sino acceder al mismo código y formularios desde diversos programas.
  32. Cambié el interop de la versión 2.7 a la 6.1 en SAC y todas sus utilería. Al parecer la anterior no era muy compatible con .NET Framework 4.5
  33. Se hicieron algunas modificaciones para el funcionamiento del cargado de imágenes en SAC, mediante FILESTREAM. En especiales/habilitar FILESTREAM, se crea un grupo de archivos (filegroup) dentro del cual se crea un archivo. Este debe estar dentro de la carpeta de archivos de programa, en otra carpeta falla, pero esta carpeta la mayoría de las veces tiene protección contra escritura, por lo que también falla. Se opta por usar un diálogo de selección de carpeta (folderbrowserdialog) para seleccionar manualmente la carpeta adecuada (la más conveniente es dentro de archivos de programa / microsoft sql server / data). Por otro lado, falla al crear el campo SOCIOSBLOB.doc, hay que eliminar toda la tabla SOCIOSBLOB y volver a generar tablas y campos faltantes.
  34. En el proc. que crea la BD tanto de QLAB como de SAC, frmInicial, verificar que el lenguaje actual por default de SQL SERVER sea español, si no, pedir que se cambie
  35. Poner un permiso para poder realizar transferencia (o traspaso) entre cuentas en SAC. También se modifica el formato de CR recibo.rpt de PAP para que refleje las claves de cuenta de socio, util para cuando se hacen transferencias entre personas. Se agrega el permiso 42-Autorizar transferencias y traspasos
  36. Se realizan cambios en el reporte de requerimientos de capital por riesgos, en IC (reporte R21) El reporte anterior era más complejo y usaba una gran cantidad de cuentas de la interfaz que ahora se hacen obsoletas. Se agrega también una nueva cuenta a interfaz, garantía líquida, pas 0 1 3, que es requerida en este nuevo reporte. Las cuentas que se hacen obsoletas de la interfaz, de reportes financieros, son act 10, act 11, act 12, act 13, act 14, act 15, act 16, act 17, act 18, act 30, act 31.
  37. El procedimiento de SAC Calc_Bloqueos, que recalcula los bloqueos para una persona de acuerdo a sus préstamos como acreditado y aval, según los tantos de los créditos, no consideraba aquellos créditos que ya se garantizan mediante un contrato de inversión. Por tanto salía mayor el monto a bloquear en estos casos. Ahora se evitan los préstamos ya garantizados por CONTINV mediante la instrucción p.sucursal+' '+cast(p.claveprestamo as nvarchar(10)) not in (select c.sucpre+' '+cast(c.claveprestamo as nvarchar(10)) from continv c where c.status=0 and isnull(c.claveprestamo,0)>0)
  38. Se agrega un parámetro a los formatos de Crystal Reports de SAC, ContratoAhorro, ContratoAhorro1 y ContratoAhorro2. Este nuevo parámetro se llama MontoAp y refleja el monto de apertura, o primer monto de depósito, de la cuenta de pasivos seleccionada por el usuario al momento de imprimir, del socio correspondiente.
  39. Algunos socios no aparecían en el reporte de captación 841. Se hacía un doble filtro, comparando que los saldos no fueran cero, pero solo se debe usar un filtro, considerando el botón "Incluir personas con saldo cero". También se elimina la posibilidad de borrar registros de la tabla SOCIOSPAS cuando estan en ceros y nunca ha habido movimientos. Si se eliminan estos registros el socio no aparecería en los reportes de captación.
  40. En el reporte de operaciones relevantes, se agrega la opción "%" en el combo Revisión, para que aparezcan tanto las operaciones justificadas como las no justificadas y no revisadas.
  41. Validar número de teléfono, que el sistema no permita guardar si le proporcionan 0000000000. Al generar tablas y campos faltantes, se eliminan espacios como prefijos en los campos de teléfono. En los formularios donde se manejan telefonos (parametros, bancos y socios) se cambia el textbox a un maskedtextbox, con un mask (999)-000-0000, y la propiedad TextMaskFormat como ExcludePromptAndLiterals, para que  no guarde mas que los números. Se crea el sub VerifTelefono para verificar que  no tengan espacios ni sean cero.
  42. Que la primera opción a seleccionar para la ocupación del socio sea vacío y no permita guardar si no se selecciona. Esta función ya la hace SAC, solo hay que entrar a parámetros/valores y en la propiedad ocupación, en el índice 1, en vez de no determinado hay que dejar un valor vacío.
  43. En caja que cuando sea un deposito por transferencias pida autorización. En caja cuando sea traspaso entre cuentas también de autorización en cualquier movimiento. Se cambia la nomenclatura de "transferencia a otras personas" a "traspaso a otras personas". Se usa el permiso implementado recientemente, 42-autorizar transferencias y traspasos
  44. Que caja pida autorización en cualquier movimiento mayor o igual a 50,000.00. Esta característica ya la tiene SAC, se establece mediante la propiedad montocaja en parámetros/valores.
  45. Agregar un nuevo perfil de usuario en SAC, 12-auditor
  46. Se arreglaron algunas discordancias en cuanto a permisos entre SAC y el documento de análisis. Se arreglaron permisos para los reportes de caja.
  47. Se deben reportar todos los préstamos que superan los 1600 UMAs. Establecer la propiedad UMA en parámetros/valores y poderla capturar manualmente. Recuperarla de ahí cuando se necesite (es un valor que cambia cada año). En el reporte de saldo de préstamos, se agrega una caja de texto, avanzado/umas mínimo. Si es distinto de cero, se traen todos los préstamos mayores o iguales a ese número de UMAs.
  48. Modifiqué la rutina Utilerias.defConexion, que lee la cadena de conexión de un archivo de texto determinado, para sustituir el obsoleto FileOpen por OpenTextFileReader
  49. Detecto el tiempo de inactividad implementando un IMessageFilter. Es suficiente con poner un sub PreFilterMessage en el formulario principal, frmSAC, con lo que se hace obsoleto estar poniendo la instrucción segundosinactivo=0 en cada formulario, además de que funciona mejor, pues detecta todos los movimientos de ratón y uso del teclado. En el sub New del MDI, agregar la línea Application.AddMessageFilter(Me). Modificar frmIngreso agregando una variable booleana para detectar si fue llamado desde tiempoinactivo.tick. Eliminar la variable global vINTERVAL. Y otras cosas. SAC, SIC, IC, MCOB, MBATCH, MCAL.
  50. Logré que SAC y sus utilerías (MCOB, MCAL, MBATCH) así como QLAB, hagan referencia al mismo formulario frmIngreso.

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