SAC 9.3.7506

Nuevas características, modificaciones y correciones de SAC y sus utilerías:

  1. Se hicieron algunas correciones en RecalcISR y RecalcIntAho. Marcaba error al intentar crear la póliza de recálculo de ISR, porque primero intentaba crear los movimientos de ahorro y después la póliza, causando un conflicto de llaves foráneas. Si alguna creación de pólizas marca error, ahora se indica cuál es el último socio que se procesó. En la combo de selección de cuenta de pasivo, en CZM se listaba una cuenta de pasivo cancelada. Ahora se listan solo las cuentas tipo ahorro (con tipo de cuenta igual a cero).
  2. Las operaciones relevantes no se justifican se deben de reportar pasando los 7,500 dll. Se establece una checked list box con los valores 0-sin revisar, 1-justificado, 2-no justificado. Al seleccionar el reporte de operaciones relevantes, se seleccionan todos, pues no aplica la justificación. Para operaciones mayores, tampoco aplica la justificación. Para internas preocupantes, se toman las pólizas sin justificar (2). 
  3. Para la evaluación de riesgo de personas y créditos, se modifica frmExpedientes, de forma que inmediatamente después de guardar el nuevo expediente en la tabla mcalSaldos, se actualiza el campo de base de datos respectivo (SOCIOS.califmcal o PRESTOTOR.califmcal)
  4. Necesitan cobrar un seguro de préstamo en forma anual, que es sobre el saldo insoluto del crédito. Se agregará una variable SaldoPre para la fórmula del servicio. Cambiar el monto en PRESERV por una fórmula, la cual daría lugar a calcular el monto en cada evento de pago, en PlanPagos. Se elimina el desplegado del cobro per. en el plan de pagos, por la dificultad de calcularse y por poder variar en base al saldo del pre. Se modifica CalcCobroPerMulti para que calcule el cobro de servicios a cobrar en la fecha determinada, en base a la info. de PRESERV, incluyendo IVA, y cobro per. ya pagado. Este cobro calculado se guarda en PRESTOTOR.cobroper, para que a su vez CALCPRESTAMO4 lo reciba y lo entregue en salidas(26) como cobro devengado no cobrado. Por tanto se elimina su cálculo de CalcPreIntermedio. No se hacen cálculos del cobro per. a pagar en CALCPRESTAMO4 por no hacerlo mas lento.
  5. Al correr SAC para generar una BD nueva, se observó que no se creaba el campo PARAMETROS.desbloqA. Faltaba crearlo en el sub AgregaCampos.
  6. Que en el reporte de estado de cuenta del socio, indique expresamente "certificado de aportación" o "inversión", en ves del genérico "contrato".
  7. Hacer una nueva consulta de PEPs mediante el servicio de Consultores Independientes (CI) para lo cual se agrega a la tabla de valores las propiedades ciusu y cipwd, respectivamente el usuario y contraseña para contectarse al web service. Ellos regresan un archivo JSON. Como el archivo es muy grande, y contiene todos los PEPs, solo lo traigo cuando no existe o cuando tiene mas de 1 mes de antigüedad. El archivo lo llamo CIconsulta.txt y lo guardo en Mis documentos.
  8. Agregar un nuevo perfil de usuario, además del reciente auditor, que se llame "ej. de captación" (ejecutivo de captación) con el número 13.
  9. En MCOB, al traer un préstamo no de la sucursal actual y hacer la consulta de su plan de pagos, trae el de un préstamo que no corresponde, el de la sucursal actual
  10. Para poder leer el archivo con formato JSON de Consultores Independientes, instalo Json.NET de la siguiente forma: entro dentro de VS a Tools/NuGet Package Manager/Package Manager Console y delante del prompt PM> tecleo Install-Package Newtonsoft.Json -Version 9.0.1 Se instala una versión anterior a la mas nueva, porque esta requiere una dependencia de CSHARP.
  11. Se hace consulta masiva de PEPs dentro de frmConsultaPEP para el servicio Consultores Independientes (CI); anteriormente solo existía para Quién es Quién (QEQ)
  12. Se corrigieron algunos detalles con la lectura de CFDIs en IC, en el formulario frmLeerCFDI: se tiene que crear primero la póliza, y después los detalles de póliza, para que no haya conflicto con la restricción de llaves foráneas. Cuando se entra al formulario de pólizas, a una póliza en particular, y se quiere leer un CFDI con Acciones/Leer CFDIs, si el formulario de CFDIs ya estaba abierto, no se conservaba el número de póliza que llamó al formulario, por lo que se creaba una póliza nueva.
  13. Para el cobro de pagos periódicos, si se hace el mismo día un abono a capital y el cobro periódico, sucesivamente calcula el cobro periódico sobre el saldo después del abono, apareciendo incluso una cantidad negativa. Por tanto, tomar el saldo del día anterior, puesto que cobroper es la primer cantidad que se cobra en la precedencia, asi que no se deben tomar en cuenta los abonos a capital de hoy.
  14. Candado en CURP: no permitir avance hasta que contenga los 18 caracteres.
  15. Candado en RFC: no permitir avance hasta que contenga los 13 caracteres (si el socio no tiene homoclave se deberá colocar “___”).
  16. Candado en identificación: deberá ser llenado la parte de INE (o clave de elector) o en Licencia de conducir, pero nunca deberán estar solos ambos campos. Para todos los tipos de persona excepto menores, junior o p. morales. Sin embargo comenta PV que se permiten otros documentos de identificación, como detalla el capíitulo II, política de identificación del cliente, de las Disposiciones del art. 124:  "Para estos efectos, se considerarán como documentos válidos de identificación personal: la credencial para votar; el pasaporte; la cédula profesional; la cartilla del servicio militar nacional; el certificado de matrícula consular; la tarjeta única de identidad militar; la tarjeta de afiliación al Instituto Nacional de las Personas Adultas Mayores; las credenciales y carnets expedidos por el Instituto Mexicano del Seguro Social; la licencia para conducir; las credenciales emitidas por autoridades federales, estatales y municipales y las demás identificaciones que, en su caso, apruebe la Comisión;". Por tanto agregar los campos en la tabla SOCIOS, OtraId y ClaveOtraId, con el tipo de documento de identificación mostrado, tomado de VALORES, y la clave del mismo.
  17. Candado para señalar obligatoriamente: Actividad CNBV, Origen de los recursos. 
  18. Candado en el llenado de beneficiario obligatoriamente, así como la modificación de su fecha de nacimiento. Se inicializan estas fechas con FromOaDate(2), es decir 1/1/1900, y se obliga a capturar la fecha. Se checa que se proporcione nombre para el beneficiario 1, y que tenga un porcentaje de participación.
  19. Candado para no permitir guardado en el caso de estudiantes, menores de edad y amas de casa que no contengan su proveedor de recursos. 
  20. Tanto en frmSocios, como frmPrestamos y frmContInv, en la subrutina que verifica la validez de los datos, en vez de generar el primer error que encuentra, acumular todos en una variable string y luego presentarlos en un frmTxt
  21. El campo SERVICIOS.periodo y PRESERV.periodo deben existir. Yo las generaba y luego las eliminaba al generar tablas y campos faltantes.
  22. Agregar ahorro voluntario, cobro de apertura y cobro periódico como columnas en el plan de pagos. No se hace ninguna modificación a PlanPagos2, toda esta información extra se maneja en el formulario de plan de pagos, en la subrutina MostrarExtras. Esta repite la funcionalidad de CalcPreCobroPerMulti para calcular cobros periódicos en base a PRESERV.
  23. Que  no se asigne un usuario automáticamente a un préstamo, en MCOB, o que pida confirmación
  24. No imprimía el plan de pagos como HTML en MCOB, puesto que llamaba a un módulo de HTML que no tenía las instrucciones adecuadas. Se tuvo que cambiar el procedimiento ImprimePP al módulo modHTMLpub.
  25. Había un error al agregar una nueva entrada (tabla ENTRADA) en la subrutina GuardaGasEnt
  26. Según el Anexo T de la LRASCAP, para entidades con nivel básico, en las Normas particulares, en la parte 2, Cartera de crédito, inciso d), el saldo insoluto del crédito debe ser considerado como cartera vencida: si los adeudos consisten en créditos con pagos semanales, quincenales o mensuales de principal e intereses y presentan 3 ó más amortizaciones vencidas. Por tanto se agrega un campo PARAMETROS.CalcVencSQM, del cual se carga al hashtable hParametrosSuc mediante TraerParametrosSuc.
  27. Se hizo un análisis en las BD de SMC, PAP, CMZ y PV para ver que valores de OrdImp (orden de imputación) usaban. Todos los préstamos de todas las entidades usan 0. Por tanto, si no se decide quitar su uso, cuando menos se elimina PRESTOTOR.ordimp para dejar solo PARAMETROS.ordimp y para los cálculos se toma el valor de aquí. Lo mismo para calcdiasvenc (método de calculo de dias vencidos). Todos usan el valor cero. Eliminar PRESTOTOR.calcdiasvenc y tomarlo de PARAMETROS.calcdiasvenc, del cual se carga al hashtable hParametrosSuc mediante TraerParametrosSuc.
  28. También se modifica la rutina CalcPrestamo4 para que reciba el hashtable hParametrosSuc, de donde se toman los parámetros de la sucursal para el cálculo de los valores de préstamo.
  29. La entidad SMC desea saber quien agrega permisos dentro de Parámetros. Se puede usar la fecha "actualizar" de la tabla PERMISOS, creando un reporte para este propósito. Se modifica el guardado de permisos dentro de Parámetros, para que solo guarde o modifique aquellos permisos que fueron agregados o modificados (asignados, revocados). También se agrega el campo PERMISOS.UsuarioM, para conocer el último usuario que agrego o modificó estos permisos. Se crea un reporte ad hoc.
  30. En MCOB, al indicarle que no queremos asignar el usuario al crédito no nos permite agregarle el evento, lo ideal que aunque no se asignara el usuario deje agregar el evento.
  31. Que no aparezca país ni estado en la dirección del trabajo, cuando esta dirección esta vacía, para el reporte de Buró de Crédito. Esta característica ya está implementada en el rep. de BC tipo INTF, que es el UNICO reporte válido ahora. Sin embargo, también lo modifico para el reporte CSV, que ya está OBSOLETO.
  32. Como criterio contable especial para el COVID19, se establece que se pueden reestructurar o renovar los créditos, pero sin caer en cartera vencida. El objetivo es que no se genere morosidad y por tanto no se genere estimación para la entidad. Se usa el mismo campo PRESTOTOR.StatusR, con los valores 3-reest. COVID19 y 4-renov. COVID19. Se restringe a que sean créditos en cartera vigente al 31/mar/2020 y otras restricciones.
  33. Generar un tipo de préstamo que los primeros determinados meses solo causen interes devengado y los demás capital mas interes. Usar un campo numérico (short) en vez de una fecha, para indicar el primer abono donde se amortiza capital, que por default sería 1. Evitar que se use al mismo tiempo fecPPI y este campo, en el sub PlanPagos2. Usar campo PRESTOTOR.PrimerAmort.
  34. Manejar datos extra en SAC tal como se maneja en las pólizas de IC. En captura de pólizas, para gastos y entradas seleccionar el tipo de IVA (0 o 16). Se pone la cantidad total con IVA del gasto o entrada y SAC automáticamente desglosa el IVA respectivo. Agregar para la tabla GASTO y ENTRADA los campos RFC y UUID_CFDI (monto del comprobante fiscal no, me parece reiterativo). Agregar la tabla TERCEROS, idéntica a la de IC, para almacenar a los clientes/proveedores. Generar la llave primaria para esta tabla. Agregarla en HERMES. Agregar el formulario de captura de terceros y el reporte de terceros.
  35. Agregar lectura de CFDI-XML dentro de SAC. Al entrar a Caja/Leer CFDI, se llama al formulario frmLeerCFDI, que se comparte con IC. Este muestra una lista con los CFDIs que se encuentran en el folder establecido en Parámetros, CarpetaCFDI. Se hace uso del módulo modCFDI, este si exclusivo para SAC (IC tiene su propio módulo CFDI) para guardar en base de datos la póliza y los detalles de póliza (gastos, entradas, bancos...)
  36. En SMC en IC genera el error de que los datos se truncarían, al generar una póliza automática se produce un string muy grande para el campo DETALLEPOLIZA.referencia. Específicamente es la concatenación de strings  'devengado int. pas. " & Cuenta & "-" & hProdPasDesc(Cuenta) & ". " & i_ & "-" & hMayMenDesc(CShort(Val(i_))). Aqui se puede ver que se usan, entre otras cosas, la descripción de la cuenta de pasivos (100 bytes) y la descripción del tipo de persona (como viene de la tabla VALORES, 200 bytes). Con esto solo son 300 bytes, mas los demás datos. El campo referencia es de solo 50 bytes. Ampliar a 100 bytes y que Dios nos ampare, porque estar poniendo tantos MID(S,1,100) es impráctico. Si vuelve a aparecer el error, que se reduzca el nombre del producto de pasivos y/o la descripción del tipo de persona.
  37. Al agregar, modificar o autorizar en préstamo, se agregan verificaciones extra (sub Verif_Datos), no se puede usar fecha PPI en conjunto con primer amortización mayor a 1, los días preestablecidos sincronizados con PPI están pensandos para préstamos con abono mensual o múltiplo de mensual y si se usa fecha PPI, no se puede usar un día preestablecido definido
  38. La entidad PAP provee el documento "R04 … R04 C0451… INSTRUCTIVO DE LLENADO", con las especificaciones mas recientes para este reporte. Se cambian los encabezados del reporte a mayúsculas. En columna 1, reporte, ahora se muestra completo "R04 C 0451", en columna 2, se muestra municipio en vez del CP, en RFC se pide completar con guiones si no hay homoclave, pero esto ya se hace al capturar, hacerlo en BD; para "sucursal que opera el crédito", usar PARAMETROS.SucNombre; en "modalidad de pago", ya solo hay 3 valores, pago unico de capital, pago unico de capital con pago periodico de interes, y pagos parciales.
  39. Para personas tipo 3-externo o 5-persona moral, al capturar en frmSocios, no exigir un beneficiario.
  40. Al momento de pagar un cobro periódico en caja, aparecía el error "La cantidad a pagar por cobro periódico no coincide con lo programado". Faltaba redondear a 2 decimales en CalcPreCobroPerMulti, la rutina que calcula el cobro periódico de un préstamo a una fecha dada.
  41. Al entregar un préstamo reestructurado, marcaba el error "el monto de la reestructura debe ser igual que el monto a liquidar", es decir detectaba diferencias en los montos de los 2 créditos a pesar de ser iguales. Se debía a que faltaba llamar a TraerParametrosSuc, para traer los parámetros correctos para el préstamo, antes de calcular sus saldos.
  42. La entidad desea evitar pagos anticipados de capital a préstamos reest./renov. Por COVID19. Es un requisito muy específico y no oficial, por tanto solo agrego una advertencia.
  43. Se agrega en VALORES la propiedad covid19m. Para préstamos COVID19, la nueva fecha de vencimiento del préstamo reestructurado/renovado no debe ser mayor a 6 meses a partir de la fecha de vencimiento original, o 18 meses para créditos rurales. Aquí se capturaría el 6, el 18, u otro valor en caso de que las volubles disposiciones cambien. Indice-debe ser cero, valor-número de meses. Al generar tablas y campos faltantes se asigna por default el valor 6.
  44. Se modifica el procedimiento de búsqueda de personas PEPS de CI (consultores independientes). Estos reciben una consulta http en la que se incluye un no. de página y regresan un archivo JSON, yo guardo estas consultas como archivos de texto en Mis documentos, voy consultando página por página hasta encontrar a la persona o marcar que no existe. Además se puede consultar tanto a peps como a personas bloqueadas.
  45. Se cambia la nomenclatura de una persona bloqueada (campo SOCIOS.bloqueado) a bloqueado interno, para no confundirla con las personas que se encuentran en la Lista de Personas Bloqueadas (LPB) según las disposiciones referentes a PLD.
  46. Se cambia el nombre de "consulta PEPs" a "consulta PEPs y bloq.", y se agrega la consulta de CI para personas bloqueadas, pues antes solo se hacía para PEPs. En el formulario de Socios, además de la consulta a CI peps, se agrega la consulta CI blk.
  47. Elimino la funcionalidad de búsqueda en listaPGR.csv, por ser obsoleta
  48. Buró de crédito diseña un nuevo reporte de 8 columnas, a entregar en Excel o separado por "pipes", para reportar los créditos por la contingencia COVID19. Agregan una nueva clave de observación OV - Crédito que recibió un apoyo por pandemia COVID-19. En verif_datos, advertir si un préstamo COVID19 no tiene la clave de observación OV.
  49. Se observó que en los reportes de créditos de BC, no se mostraba la clave de observación excepto para los créditos pagados, en cuyo caso es CC (crédito cerrado) porque SAC lo asigna automáticamente al pagar. Esto me pareció sospechoso y ahora muestro clave de observación para todos los créditos. (Por ejemplo en PAP había muchos créditos con la clave obs. PC, cuenta en cobranza, que corresponde a créditos castigados)
  50. PAP quiere adecuaciones al módulo MCAL para el EBR (estimación basada en riegos). Que se pueda identificar la caja local para las fórmulas de MCAL. Se agrega la palabra reservada {CajaLocal}
  51. Cambiar el formato de fechas del reporte de captación R08-D0841 a yyyy-MM-dd, es decir separado por guiones.
  52. El reporte tiene de más los dos últimos campos que son Fecha de cancelación y Es Cancelado. Una entidad los había pedido. Se quitan.
  53. En caso de no contar con el apellido materno del socio, se deberá reportar en esta columna la leyenda “NO APLICA”. Tratándose de una persona moral, este campo deberá reportarse con dato “0” (cero), al igual que en apellido paterno.
  54. En el campo de País el reporte no muestra la clave del país y la clave tiene que ser como la da el SITI. Si muestra la clave del país correcta, ya vi el catálogo del SITI que tardó una hora en descargarse, y la clave de México es 484.
  55. 1- Operaciones Relevantes: para el envió del informe trimestral en block de notas, el numero de caracteres en este caso ; no coincide, faltando un ; al final del documento, por tal motivo no se puede mandar directamente el que sale del sistema se debe corregir manual. La forma estándar de CSV separa con coma (o punto y coma) excepto en la última columna, en donde da un retorno de carro. Es decir esto es dependiente de los controles usados (component one flexgrid) y no propiamente de SAC. La forma de "engañar" al sistema sería agregar una nueva columna en blanco.
  56. 2- Operaciones Inusuales: Al realizar las pruebas respecto a operaciones inusuales tomando en cuanta el monto y numero de operaciones, no clasifica las operaciones como inusuales si se captura mas de lo que marca el sistema. Si las detecta, pero toma en cuenta los ingresos del socio (sin egresos).
  57. 3- Operaciones 24 horas: el sistema manda en este reporte las operaciones de cambios en el grado de riesgo, lo cual no es correcto, además de que no tiene un apartado para justificar la operación en caso de que sea coincidencia negativa. Se buscó en la ley (guia reporte 24 hrs, DCG art 71 y 72) y en efecto no debe reportarse operación. Solo para una persona bloqueada.
  58. 4- Completar reporte de 24 horas para envió (leyenda que debe contener). Quiza se refiere a que al detectar una persona LBP, se envía un msg de 24 horas con la descripción. Esto ya lo hace en el reporte de socios bloqueados (frmReportesSociosBloq) pero no en el formulario de socios. Se crea una rutina MarcarLPB para establecerlo como buscado y encontrado.
  59. 5- Cambio manual en el grado de riesgo de cada socio. Se cambia en el formulario de socios la caja de texto a un combo. Se puede cambiar con el permiso 19-Modificar datos sensibles de personas. Ya no permitir recalcular calificación con un click, limitarse al doble click para entrar a la calificación del socio.
  60. 6- En el grado de riesgo, mostrar en vez de 0 y 1, Bajo y alto. Tanto en el formulario de socios como en el reporte de PLD
  61. 7- En la reporte de  Personas para PLD, agregar fecha de cambio de grado de riesgo. Se tendrá que agregar en el formulario de socios también. Se agrega el campo SOCIOS.FecUltCC (fecha de último cambio de calificación). Establecerlo en frmSocios, al cambiar manualmente la calif., en frmExpedientes, y en el cambio masivo en MCAL. Solo cuando cambia de riesgo bajo a alto.
  62. 8- En la reporte de  Personas para PLD, agregar fecha de consulta en las listas CI. También se agrega la fecha desde la que ocupa el puesto PEP (feccargopep), así como los 3 campos de SOCIOSDOC: feccons, doc y provws. También agrego SOCIOS.lpb, para ver si ya se consultó a alguna lista de personas bloqueadas y si se encontró o no.
  63. 9- en el modulo de MCAL, agregar en la ventana de información que muestra el sistema al terminar de realizar la calificación global, muestre los nuevos socios que cambiaron su grado de riesgo, el numero de cambios y el total de socios de alto riesgo.
  64. Justificar si se encontró una persona en LPB (falsos positivos), y justificar también cuando hay una operación inusual de 24 hrs. Para tal propósito se agrega un campo Revision en la tabla MSG. Para poder modificar la revisión de un mensaje, se tuvo que cambiar toda la programación del formulario de mensajes para poder agregar, modificar, botón limpiar. etc. Se asignaron permisos para que un MSG solo pueda ser visto por quien lo emitió o recibió. Y para que solo los pueda modificar quien los emitió. Se modifica el reporte de estas operaciones para que solo muestre los mensajes con revision "no justificada".
  65. 13- No se considera el resultado de la metodología EBR, y se debe tomar en cuenta en el perfil transaccional. Agregar un campo en PARAMETROS, CalifMCALEBR, para guardar este valor, y luego tomarlo para cada uno de los socios, para su calificación de riesgo. Se agrega también a la lista de palabras reservadas de MCAL.
  66. Al hacer consulta del socio a la lista de bloqueados (SOCIOSBLOQ), así como a la lista OFAC en XML, no se actualizan los campos de prov, fecha de la consulta y coincidencias. También, cuando se consulte a cualquier lista externa o interna de personas bloquedas (OFAC, SOCIOSBLOQ, ASTRID, QEQ, CI, excepto CI PEPs) actualizar el campo SOCIOS.lpb, que hace eficiente la búsqueda para no volver a buscar alguien ya buscado en consultas masivas.
  67. Al cancelar una póliza en Caja/Pólizas, aparecía un número de póliza incorrecto al pedir confirmación y al avisar del borrado, aunque si cancelaba la póliza correcta
  68. En el proc. CapturaAutoPre, que toma el monto destinado a un préstamo y lo divide en interés, IVA, abono a capital, etc., faltaba redondear a 2 decimales inmediatamente después de calcular el IVA del interés, pues en ocasiones daba una diferencia de 1 centavo. Vuelvo modificarlo, redondeando cuando ya tiene su valor definitivo (intmor, intnor, iva). Parece que funciona razonablemente bien
  69. Doble captura del correo electrónico del socio para verificación, en frmSocios
  70. Para el formato de solicitud de ingreso (solicitudingreso2.rpt), mandar el nombre y la clave del padre y la madre del socio, cuando sean socios, para tomar su clave de socio, es decir tomarlo de personas relacionadas. Para no hacer cambios en SAC, hacer una consulta TSQL en CR que regrese estos valores. Usar Insertar/Subinforme.
  71. Hace algún tiempo pidieron que para entidades nivel básico, se considerara los préstamos vencidos al tercer pago. Esto significaría, para los quincenales, 30 días después del primer vencimiento, para los semanales, 14 días después. Esto en lugar de los 45 y 21 actuales.
  72. Se agrega en MCAL un reporte de desglose de calificación, el cual muestra el saldo de cada una de las cuentas (hasta el nivel de subtitulo) de la estructura solicitada (préstamo, PLD, EBR), para cada una de las personas.
  73. En SAC, al querer obtener los elementos de un array con count, me marcaba error, mientras en MCAL no lo marcaba. Agregué en SAC en References, Imported namespaces, el System.Linq y el System.Xml.Linq
  74. Se desea conocer para la matriz de riesgo a aquellas personas que pertenecen a países considerados como regimenes fiscales preferentes o de alto riesgo. Ya existen las palabras reservadas de MCAL, {paisnum} {paisnacnum} y {paistranum}. Además de 0-nacional y 1-extranjero, agregar 2-reg. fis. pref. y 3-jur. de alto riesgo
  75. Al entrar al sistema SAC, no solicitaba cambio de password para los usuarios que se había vencido su fecha de "cambiar contraseña". Es un problema de secuencia de instrucciones, subo la instrucción TraerGlobales inmediatamente después de miValidaProducto, y por supuesto, antes de checar el cambio de contraseña.
  76. Es necesario especificar el instrumento monetario (oxxo, depósitos bancarios directos en ventanillas), especificar si son en efectivo o en cheque o transferencia bancaria. Agregar el campo IM (Instrumento Monetario) en los movimientos bancarios. Detectar estos movimientos para PLD como si fueran en efectivo. Guardo este IM con la instr. IIf(cbBancario.SelectedIndex = 1, Mid(cbIM.Text, 1, 2), "00"), donde "00" significa "no especificado".
  77. Identificar aquellas operaciones bancarias con IM en efectivo, como si fueran un mov. en efectivo normal, para las operaciones de PLD. Para esto se tienen que modificar varias subrutinas de detección, que toman como base la tabla de efectivo MOVUSUARIOS, para que además tomen la tabla de mov. bancarios, MOVBANCOS. Garantizar que siga siendo eficiente esta detección.
  78. Necesitamos que se adicione un Gasto al cual le hemos denominado costo de Inversión, derivado de que cuando los socios tiene actividad económica es necesario identificar este gasto para que en la solicitud de préstamo se vea reflejada y en la relación Ingreso/egreso se integre este gasto  (cabe mencionar que en este rubro es un dato que nosotros proporcionaremos por lo que no se deben incluir ningún operación sistemática). El campo se llama SOCIOS.GasInv
  79. Dentro de frmCaja, cmdAgregar_Click, accedo a varias tablas (.open) y en vez de aquí, podría asignar los valores necesarios al entrar al formulario
  80. En modPLD.Detalles, que es el sub que muestra todos los movimientos del socio, de los encontrados con efectivo suficiente (mayor a 7500 US DLL u operaciones mayores, según el caso) o para operaciones inusuales, etc., recuperaba todos los ingresos menos todos los gastos. Esto es inapropiado. Para la detección de op. inusuales, solo se toman en cuenta los ingresos, también en DetallesPreocupantes.
  81. Eliminar el tipo de cálculo de "intereses fijos" y de "intereses anticipados" tanto de SAC como del manual. Asegurarse que ninguna entidad lo usa. SMC tiene algunos préstamos con estas modalidades, pero estan cancelados.
  82. En QLAB, había un problema con la clave del paciente a donde se enviaba el correo. Se modificó cioEmail para detectar el error correcto que se produce cuando  no se envía el correo, poniendo dos catch, uno específico para smtpexception, y otro general para las demás excepciones. Se modificó CrystalReports.LoadRpt para que avise correctamente cuando se pudo enviar y cuando no se pudo enviar el correo. De todos modos veo que en algunas ocasiones sigue mandando un error, consistente en que se agotó el tiempo de espera al tratar de enviar, lo curioso es que aveces, aunque marque este error, SI se envía el correo. Por eso creo que ya es un detalle del servidor de correo, en este caso outlook, no de QLAB. También se agregó DISPOSE a los objetos tipo MailMessage y SMTPClient.
  83. Implementar un nuevo formato de CR para "evaluación de capacidad de pago", basándose en reciboprestamo.rpt., y llamarlo evaluacion.rpt. Se usa el procedimiento modImpresion.ImprimirEvaluación. Requieren una tabla que es básicamente el plan de pagos con el añadido de ingresos y egresos. Llamo a PlanPagos2 y voy formando el texto con retornos de carro (vbCrLf) para mandarlo al formato de Crystal Reports. El dato SIC se refiere a un cobro, proporcionar una forma de que ellos lo capturen y SAC lo reciba para imprimirlo.
  84. Se requiere un campo para que el socio indique por qué medio se enteró de la entidad, medio de conocimiento. Por si en el futuro hay mas campos relacionados con esta encuesta de satisfacción, iniciar todos con "enc". Llamar al campo SOCIOS.EncMedio. Agregar en la tabla VALORES los valores por default.
  85. En SAC / Sistema / Mensajes, que un mensaje lo pueda modificar el oficial de cumplimiento. Anteriormente solo el que enviaba el mensaje podía modificarlo.
  86. Agregar una nueva impresión de contrato de pasivos en frmSocios, contratoahorro3.rpt, y en ella mostrar los datos (clave y nombre del tutor, en caso de que la persona sea menor). Hay un problema, en ocasiones la consulta del subinforme no regresa datos. Posiblemente se arregla llendo a Base de datos/Establecer ubicación del origen de datos. Ahi se establece servidor/base de datos tanto para el formato principal como para los subinformes.
  87. Se modifica el formato solicitudingreso2.rpt, agregando dos subinformes, para mostrar respectivamente el padre y la madre de la persona
  88. Se modificó el procedimiento frmInicial, que crea la base de datos de SAC cuando se usa por primera vez, para obtener el lenguaje de Sql Server, mediante una instrucción como SELECT @@LANGUAGE, anteriormente se usaba otra instrucción que regresaba otro lenguaje diferente, no relevante.
  89. En el formulario de lectura, frmLeerCFDI, marcaba error debido a una instrucción T-SQL que usaba un UNION donde los dos SELECT usaban el asterisco.
  90. En esta versión nos agrega nuevamente la clave de observación CC (Cuenta cancelada o cerrada) a créditos que no corresponden, explico el detalle a continuación. Si el reporte se genera el 10 de Julio con fecha del 30 de Julio, a los créditos pagados entre el 1 y el 10 de julio les agrega la clave CC, cuando el 30 de Julio aún estaban vigentes.
  91. Formato de verificación de referencia (verificacionref.rpt) para SMC, requieren datos sobre el préstamo. Uso la sentencia T-SQL SELECT (p.monto+p.montoext) as monto, p.numabo, p.periodoabo, p.destino, s. * FROM  socios s left join p on s.sucursal=p.sucsoc and s.maymen=p.maymen and s.clavesocio=p.clavesocio and p.sucursal= and p.claveprestamo={?ClavePrestamo} where S.Sucursal='{?Sucursal}' and S.ClaveSocio='{?ClaveSocio}' and S.MayMen={?MayMen}. Una limitante es que como parámetro se recibe la sucursal, maymen y clave del socio, y la clave del préstamo, pero no la sucursal del préstamo. Para los casos donde la sucursal del socio y del préstamo sean diferentes, imprimiría datos incorrectos."
  92. Agregué en IC, en los reportes financieros (frmReportesMulti) un nuevo reporte "INT Interfaz de reportes financieros para pruebas" que muestra el saldo de cada cuenta de la interfaz contable, con el fin de poder verificar los montos mostrados para estas cuentas en todos los demás reportes financieros.

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