SAC 9.3.7613

Nuevas modificaciones a SAC y sus utilerías.

  1. Reporta PAP que la consulta de personas bloqueadas no funciona, no se encuentra coincidencia. Se detecta que esto pasa cuando se teclea alguno de los datos del nombre con acento (nombre, apellidos), mientras que en la lista de personas bloqueadas está sin acento. Se incorpora la instrucción QuitarAcentos en TraerListaBloq. TraerListaNegra no tiene ese problema porque usa el sub PalEnc, que ya obvia los acentos. Una limitante es que la lista de personas bloqueadas, en la tabla SOCIOSBLOQ, deberá estar sin acentos.
  2. Desean justificar una coincidencia positiva de una persona con la tabla SOCIOSBLOQ, o mediante consulta a lista de la OFAC o a compañías consultoras como QeQ o Astrid o CI. Estas coincidencias se almacenan en la tabla SOCIOSDOC, entonces agregar una acción "justificar" que la elimine, solo para el oficial de cumplimiento. Se marca con LPB=-7 (buscado por todas partes y no encontrado) y lpbrazon=""
  3. Para las operaciones relevantes, tomar el valor del dólar del día anterior, no del actual. Solo aplica para op. relevantes no fracc. Se hace un primer filtro tomando el valor mínimo del dólar en el rango de fechas (mes, trimestre…) De las op. detectadas, para cada una se obtiene luego el valor del dólar al día inmediato anterior, y se decide si es op. relevante o no.
  4. En la lectura de CFDI de SAC no funcionaba cuando se seleccionaban más de 2 facturas para leerlas en la misma póliza.
  5. Cuando se genera una póliza de SAC leyendo CFDIs, no pasa la información de RFC, UUID, etc., a IC, cuando se generan pólizas desde SAC. Actualmente en IC agrupo todas las entradas y gastos por tipo, entonces tendré que hacerlo ahora a detalle, por cada entrada y gasto en SAC generar un registro en DETALLEPOLIZA.
  6. En SAC, cuando una póliza tiene tanto mov. de efectivo como de bancos (por ejemplo cuando se generan pólizas leyendo CFDIs) no se presentan correctamente en el corte de caja. Las columnas de efvo y bancos presentan repetido el mismo monto. Se modifica el procedimiento Fusion.
  7. Al registrar el email para una persona, en la caja de texto de "repetir email" deshabilitar que se pueda pegar información, para obligar a que el capturista teclee 2 veces y así evitar errores de captura. Se hace deshabilitando la propiedad ShortcutsEnabled. También se hizo en QLAB y LUXURYKEY.
  8. Que en la cuenta de pasivo "cuenta corriente" no se permita que haya menos de 100 pesos. Se requerirá implementar en parámetros/productos de pasivo, un mínimo para las cuentas. Hacer obsoletos los parámetros de partes sociales y partes sociales mínimas. Se agrega el campo PRODPAS.min. Se elimina de PARAMETROS, montops y montopsmin. Se agrega también PRODPAS.max, para que determinada cuenta no exceda un máximo.
  9. Se agrega el parámetro SaldoMB en el formato de Crystal Reports de solicitud de préstamo (reciboprestamo.rpt)
  10. Depósitos en efectivo mayores a 50,000 pesos, deben ser autorizados por el oficial de cumplimiento. Usar el valor vInuMin, que es el mínimo para considerar una op. como inusual. Usar el permiso 41, que ya se usa para op. mayores y para op. de PEPs y LPB. 
  11. Poder hacer autorización remotamente. Se agrega el campo USUARIOS.TipoUsuAviso. Al llamar SAC al formulario de autorización frmPedirConstraseña, se hace con un parámetro que indica los tipos de usuario a avisar. Para todos estos usuarios que estén conectados a SAC, les aparecerá el mismo formulario de autorización. Al proporcionar alguno de ellos su autorización, (y si tienen el permiso correspondiente), todas estas ventanas se cerrarán.
  12. Poder seleccionar entre una lista de causas por las que un socio se dio de baja. 0 no identificado, 1 mal elemento (sic), 2 cambio de residencia, 3 mal servicio, 4 fallecimiento, 5 desempleo/insolvente. Ya existe el campo SOCIOS.MotivoCan, agregar una propiedad en valores del mismo nombre para poder seleccionar entre ellos. Mostrar en los reportes frmReportesSociosSal, frmReportesPersonas y frmReportesSociosVar
  13. Se detectó que el campo MotivoCan en algunos casos tenía retornos de carro. Se incluye en el procedimiento especial que quita estos caracteres.
  14. En el reporte de corte de caja, denominaciones, se agregan columnas con el monto en dinero por cada denominación, además de las ya existentes, con el número de billetes.
  15. Agregar un campo a SOCIOS para comentarios de la verificación domiciliaria, y que se imprima en el formato de CR respectivo, y la fecha y hora de visita. Se agregan los campos en SOCIOS, VerifDomCom y VerifDomFec. 
  16. No aparece el ISR en el recibo de cancelación, ReciboCancela.rpt. Agrego el parámetro.
  17. En frmPolizaEsp, al salir del groupbox de la llave primaria (clavepoliza) traigo todos los movimientos relacionados con la póliza (renglones en un vsflexgrid). Resulta que si rápidamente doy click en dos controles diferentes fuera del groupbox, o si doy tabulador muy rápido, se cargan los movimientos doble vez. Esto comenzó a pasar a raíz de que puse un application.doevents en el ciclo for que trae los movimientos. Por tanto lo retiro. Pero queda la duda.
  18. incrementar el campo SOCIOS.verifdomcom, comentarios sobre la verificación domiciliaria
  19. Incorporar la posibilidad de hacer zoom en las imágenes en el formulario "Captura de imágenes". Se incorpora el botón Exportar, que exporta al programa por default para el tipo de archivo correspondiente; ahí se podra hacer el zoom.
  20. Agregar otros 2 tipos de imágenes, para la visualización de la propiedad habitacional de la persona. Se parametriza en VALORES, para la propiedad DocDesc.
  21. Impresión de cotitulares, para la solicitud de ingreso (solicitudingreso.rpt) aparece en ambos sentidos, solo debe aparecer cuando se imprime el formato de quien tiene un cotitular.
  22. PV reporta que en la póliza PV-329129, de abono a préstamo, se capturó una cantidad de pago y SAC y cobró un centavo de más. Volví a modificar CapturaAutoPre, ahora, inmediatamente después de obtener el total de IVA a cobrar (IVA de int mor + IVA de int nor), redondeo, y después resto faltante menos este IVA para obtener el abono de capital.
  23. En mayo de 2018 se agregó el campo PRESTOTOR.calcEPRC para controlar si para un préstamo se debe considerar la garantía líquida para el calculo de las estimaciones, o no. El problema es que por default se asigna el valor 1, si considerar, al agregar un nuevo préstamo. Para las entidades de nivel básico debería ser 0, no considerar. Lo mejor es agregar un parámetro para establecer el nivel por default para la entidad, PARAMETROS.calcEPRC.
  24. Se corrigieron algunos detalles en el comparativo de SAC-IC en IC, para la estimación preventiva. No traía los valores de las cuentas principales de pasivos, vCtaPrimAh0 y vCtaPrimMb4. No hacía la comparación para estimaciones preventivas adicionales.
  25. Me doy cuenta que al generar los ejecutables (SAC, etc.) tengo la opción de Debug. Voy a Build/Configuration Manager y escojo la configuración Release. Se genera el ejecutable en bin/Release. La única diferencia que he notado es que el archivo es menor.
  26. En SAC hay un error, según la descripción: se está capturando manualmente una póliza, con cierto número x. Otro usuario da de alta un movimiento en caja, con el mismo número de póliza x. Al guardar la póliza del primer usuario, lo toma como una modificación de la póliza que ya existe, y no guarda lo que hay en pantalla. Se agregar el botón Modificar al formulario de captura de pólizas.
  27. En gastos y entradas, no deja SAC capturar al mismo tiempo en 2 equipos. Ahora se hace una transacción, y dentro de ella se obtiene el número de gasto o entrada más reciente.
  28. Poner una alerta cuando el socio hace depósitos en efectivos mayores a cierta cantidad (50,000), en caja, incluso si son operaciones fraccionadas. Considerar autorización remota.
  29. Al leer un CFDI, y traerla después de en pólizas, traerla en modo de edición, tal como cuando se captura manualmente una nueva póliza. Poder modificar cantidades y agregar nuevos renglones. Se agrega la funcionalidad de modificar una póliza, agregando nuevos movimientos, aunque los ya existentes no se puedan afectar. Se controla con el permiso 21, que antes servía para cancelar pólizas de otras fechas, y ahora, para modificar o cancelar pólizas de otras fechas.
  30. Al guardar una póliza, en GuardaPoliza, se restringe a que la fecha de la póliza no puede ser posterior a la fecha de uso del sistema. Por tanto obviar esta verificación en otros lados, como al entregar un préstamo
  31. Se hacen varios cambios en los formularios de préstamo, contratos, pólizas y gastos/entradas, enfocados a optimizar el proceso, como eliminar algunos LimpiaForma innecesarios, evitar código reentrante, etc.
  32. Aumentar SOCIOS.verifdomcom (comentarios sobre la verificación domiciliaria), de 200 a 400 caracteres.
  33. El 3/sep/2019 hay la siguiente modificación: "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., (llamado en PrepararInusuales) 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 respectivo". Sin embargo revizando, veo que no es así, siempre se toman el primer y último día de los meses respectivos, tanto para el reporte mensual, trimestral o anual. En cambio si me daba problemas al calcular el promedio de efectivo de 6 meses (CalcCamposPLD) porque al tomar el primer y último día de los meses, se hacía un rango de 7 meses. Por tanto elimino el cálculo de f1mes y f2mes dentro de CalcPromEfe.
  34. SMC requiere que, para determinado producto de crédito, al seleccionar pago único (numabo=1) se seleccione entre cierto número de días de periodo, al seleccionar pago periódico (otro valor arbitrario de numabo) se seleccione entre otra lista diferente de periodos de pago. Esto para evitar que por error se agreguen préstamos con plazo mayor al estipulado en el manual. Se puede hacer implementando punto y coma (;) para definir "secciones" en la definición de productos de préstamo en Parámetros. Por ejemplo, numabo=1;12,24,36 periodoabo=360,540;30,60,90.
  35. Al dar de alta un gasto o entrada, siempre ponía la póliza como tipo E, esto es incorrecto. Ahora, si es un traspaso entre usuarios, lo pone como tipo D, si es gasto, E, si es entrada, I.
  36. Al hacer búsqueda masiva en PLD/Lista de personas bloqueadas, encontraba las coincidencias y marcaba los socios como encontrados, pero no guardaba el documento de búsqueda. Además de llamar a MarcarLPB, para establecer los campos en SOCIOS, se llama a ActualizaDoc, para guardar la coincidencia en SOCIOSDOC.
  37. Otro problema con el pago de abonos en caja. En préstamos con int. mor. Se calculaba mal el faltante para abono.
  38. Cambia el formato de estado de resultados en IC. Bajo el más reciente Anexo E para SOCAP del sitio oficial.
  39. En el reporte de SAC PLD/Lista de personas bloqueadas, para hacer mas eficientes las búsquedas, se marca con un número negativo a las personas buscadas y no encontradas, para no volverlas a buscar. El problema es cuando se agregan personas bloqueadas nuevas, no se compararía contra estas personas a los socios que ya han sido buscados. Se puede aplicar la sentencia UPDATE SOCIOS SET lpb=0 WHERE lpb<0. Se agrega un proceso especial, Establecer personas como no buscados en LPB.
  40. Cambio en caja de SAC el llamado al sub AlertaRelevanteInusual, que genera mensajes de alerta sobre op. mayores, de pago anticipado de préstamo y pago excesivo de préstamo. Alenta muchísimo el proceso de caja. Ahora  si hay alguna op. relevante o inusual, poner esta bandera en true para llamar a modPLD.AlertaRelevanteInusual, donde ya con la clave de póliza del mov., se genera un mensaje significativo.
  41. Quito de la tabla VALORES de SAC  y paso a CP las propiedades que no cambian con frecuencia, son muy masivas, o son de uso general entre entidades, incluso para otros proyectos de CIO. Tales son: inegiae, inegirs, nompila, apellido, entrecalle, estado, actecocnbv, cargopep, actvul, tipoasent. Quito de Parámetros Guardar valores (guardaval).
  42. Elimino la funcionalidad de cambio de fechas de pólizas, y todo lo que implicaba: cambiar la fecha de todos los movimientos ligados, redistribuir montos de abono e intereses en pagos de préstamo. Esta funcionalidad está llena de inconvenientes peligrosos. Si se requiere, es mejor cancelar la póliza y crear una nueva.
  43. Al abrir o cerrar caja, desactivar el timer TiempoMsg, porque interfiere con el proceso de cierre, en este se accede a USUARIOS, y en VerifUsuAviso también dentro de una transacción.
  44. Hay un combobox en el formulario de captura de personas, Verificar, que determina las personas que deberán aparecer en el reporte de verificación domiciliaria. Lo moví de lugar junto a Coment. Verif. Dom. Y Fecha. Verif. Dom. Arreglé un detalle en el reporte de verificación que no permitía imprimir el formato de CR correspondiente, verificacionvivienda.rpt.
  45. No mostrar ventanas emergentes cuando estoy dentro de una transacción. Por ejemplo al atrapar un error en el catch, poner el call manerror hasta el final, después de haber cerrado la transacción. El problema es que necesito poner el manerror antes que nada, porque de otro modo en ocasiones no se muestra el error (cuando rollbacktrans falla). La posible solución es usarlas en este orden: try : rollbacktrans : catch ex2 : finaly : manerror : end try . Se hicieron más de 70 cambios en SAC. Después de esto no funcionó corectamente, no mostraba el primer error, por tanto se tuvo que agregar a manerror el parámetro ex as exception. Casi 500 cambios en SAC.
  46. Eliminar el parámetro OrdImp (orden de imputación de pagos). Se implementó a partir de dic/2015 por requerimiento de una entidad, pero no tiene uso.
  47. Cambiar la redacción en SAC donde dice "tasa ISR" a "tasa ret. ISR", también en manual.
  48. Agregué botones nuevos en el toolstrip de IC, para cerrar periodo y para generar pólizas automáticamente
  49. Para MPOST, voy usar ADO.NET, por lo que en las propiedades del proyecto, References, agrego el ensamblado System.Data. En el formulario donde lo usaré pongo las instruccicones Imports System.Data y Imports System.Data.SqlClient
  50. Para el CRUD de la tabla VALORES que ahora esta en la base de datos CP, uso un flexgrid. Uso de ADO.NET un DataAdapter, que llena un DataSet. Con la propiedad DataSource del flexgrid lo conecto al DataSet. Obtengo con GetChanges por separado las filas agregadas, modificadas y borradas, las cuales actualizo en la BD. Esto es mucho más eficiente que el método anterior usado en SAC.
  51. Eliminar el proc. de Especiales, reclasificar pólizas de SAC, como diario, ingreso y egreso. Esto era solo transitorio cuando las pólizas no tenían este valor. Dejar el código comentado.
  52. Agregar a la tabla VALORES la propiedad "capital", que es el capital social de la empresa en la fecha indicada. Se edita en la pestaña Parámetros/Capital. Puede capturarse manualmente o tomarse automáticamente de IC, usando la cadena de conexión en IC.TXT, para cada uno de los periodos mensuales, almacenando la fecha como el primer día del mes. Por ejemplo 1/oct/2020 correspondería al saldo final del capital de oct/2020. En el formulario de préstamos se tomaría el valor de aquí para no estar accediendo a la BD de IC. Además por seguridad para que no todas las estaciones de trabajo accedan a IC. Y para obligar a que exista un valor diferente a 0.
  53. Cambiar el funcionamiento de la ventana emergente, frmConsAva, para que no consulte tablas completas o cualquier cantidad grande de datos. Se agrega un combo con la lista de campos y una caja de texto, para que el usuario proporcione sus propios filtros. El software de CIO que use este formulario, necesita agregar en SAC en References, Imported namespaces, el System.Linq y el System.Xml.Linq
  54. Se agrega el campo SOCIOS.FecUltPLD, fecha de última actualización del socio en el sub CalcCamposPLD, que calcula monto de las op. mens., num. de op. mens., frec. de las op., relación con alquien que tiene cargo en la entidad, etc. etc. Mediante esta fecha se lleva el control para no estar llamando muy seguido a ese sub, que es muy lento.
  55. Una entidad no puede otorgar un préstamo porque SAC genera un error de que no hay el ahorro suficiente para tomarlo como garantía líquida, a pesar de que el acreditado si cuenta con el ahorro. Haciéndo el análisis se ve que se trata del aval, que en un crédito distinto requiere de esta garantía líquida. Se modifica el mensaje de error para que sea más claro y muestre la persona de la que se trata.
  56. MCOB marcaba error al intentar cargar la librería de Crystal Reports. En abr/2019 ya había marcado este error y se había corregido. Sin embargo se cambió el modo de compilación de "debug" a "release" recientemente, y hay que aplicar de nuevo la corrección: Hay que cambiar la configuración de 64 bits a 32 bits. Aparentemente las librerías de CR solo funcionan con esta configuración. Entrar a las propiedades del proyecto/compile/target CPU/x86. 
  57. Recientemente se habían agregado 2 columnas al corte de caja, efvo y bancos, para mostrar la procedencia de los recursos recibidos. Para obtener estos montos se usaba una complicada instrucción tSQL con SUM, que era lenta. Se cambia en el proc. Fusion haciendo consultas por separado, que aparecen en renglones por separado en el recordset temporal, pero es mucho más rápida.
  58. Nueva diferencia de un centavo en CapturaAutoPre. El abono de capital queda en -0.01, esto porque se calculan por separado IVAs de intnor e intmor, luego se suman y se redondean. Esto cuando el total a pagar está alrededor de $800. Cuando pasa esto se le resta 1 centavo al 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