Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
|
sicoferp:compras:activosfijos:novedadesactivos:start [2021/05/13 18:39] brahian.castaneda |
sicoferp:compras:activosfijos:novedadesactivos:start [2026/07/21 16:55] (actual) brahian.castaneda |
||
|---|---|---|---|
| Línea 1: | Línea 1: | ||
| - | ====== Novedades de activos ====== | + | ====== Novedades de activos Aprobación ====== |
| - | Esta funcionalidad nos permite realizar diferentes tipos de ajustes o novedades a una placa | + | Esta funcionalidad nos permite aprobar las novedades enviadas, el sistema verificara que todo este correcto, si esta correcto nos mostrara que se realizó el proceso de aprobación y nos generará el documento de la novedad. |
| - | Para utilizar la funcionalidad debemos ingresar a la ruta Activos fijos/Novedades de activos | + | Para utilizar esta funcionalidad debemos ingresar a la ruta Activos Fijos/Novedades Activos Aprobación |
| {{ :sicoferp:compras:menu_activos_fijos.png?500 |}} | {{ :sicoferp:compras:menu_activos_fijos.png?500 |}} | ||
| - | {{ :sicoferp:compras:activosfijos:novedadesactivos:novedades_activos.png?500 |}} | + | {{ :sicoferp:compras:activosfijos:novedadesactivos:novedades_activos_aprobación.png?500 |}} |
| ===== Pestañas ===== | ===== Pestañas ===== | ||
| - | - **Lista**: Esta pestaña nos mostrara el listado de las novedades creadas según el estado filtrado | + | **Lista**: Esta pestaña nos mostrara el listado de las novedades enviadas para su aprobación. |
| - | - **Encabezado**: | + | |
| - | - **Detalle Novedad**: | + | |
| + | {{ :sicoferp:compras:activosfijos:novedadesactivos:lista_novedades.png?600 |}} | ||
| - | ===== Funcionamiento ===== | + | **Encabezado**: Esta pestaña nos mostrara el encabezado de la novedad seleccionada. Es solo informativa ya que no permite modificaciones. |
| - | * Elegimos un tipo de novedad | + | |
| - | * Seleccionamos las placas a afectar | + | |
| - | * Ingresamos el valor de la novedad | + | |
| - | * Guardamos la novedad | + | |
| - | * Enviamos la novedad | + | |
| - | * Aprobamos la novedad | + | |
| - | ===== Tipos de novedades ===== | + | {{ :sicoferp:compras:activosfijos:novedadesactivos:encabezado_dism_incr_2.png?600 |}} |
| - | * Ajustes Depreciación | + | |
| - | * Deterioro | + | |
| - | * Disminución Valor Adquisición | + | |
| - | * Incremento Valor Adquisición | + | |
| - | * Indicio Deterioro | + | |
| - | * Mayor Vida Útil | + | |
| - | * Menor Vida Útil | + | |
| - | * Mejoras/Repotenciación | + | |
| - | * Valorización | + | |
| - | ==== Disminución/Incremento Valor Adquisición ==== | + | **Detalle Novedad**: Este nos mostrará el detalle de la novedad seleccionada. No se puede realizar ningún cambio aquí. |
| - | Creamos una nueva novedad de tipo Disminución Valor Adquisición o Incremento Valor Disminución | + | {{ :sicoferp:compras:activosfijos:novedadesactivos:detalle_novedad_aprobacion.png?600 |}} |
| - | {{ :sicoferp:compras:boton_nuevo.png?600 |}} | + | ===== Aprobación ===== |
| - | {{ :sicoferp:compras:activosfijos:novedadesactivos:encabezado_dism_incr.png?600 |}} | + | Para aprobar una novedad debemos marcar el campo Aprobar y darle al botón guardar. |
| - | {{ :sicoferp:compras:activosfijos:novedadesactivos:encabezado_dism_incr_2.png?600 |}} | + | {{ :sicoferp:compras:activosfijos:novedadesactivos:lista_novedades_aprobacion_2.png?600 |}} |
| + | |||
| + | {{ :sicoferp:compras:boton_guardar.png?600 |}} | ||
| + | |||
| + | El sistema nos mostrará un mensaje antes de aprobar la novedad avisándonos si estamos de acuerdo con el valor de la novedad, si estamos de acuerdo presionamos aceptar. | ||
| + | |||
| + | {{ :sicoferp:compras:activosfijos:novedadesactivos:mensaje_novedad_aprobacion.png?600 |}} | ||
| + | |||
| + | {{ :sicoferp:compras:activosfijos:novedadesactivos:mensaje_aprobacion_2.png?600 |}} | ||
| + | |||
| + | Después del mensaje de confirmación el sistema nos generará el documento de la novedad. | ||
| + | |||
| + | {{ :sicoferp:compras:activosfijos:novedadesactivos:impresion_novedades_aprobacion.png?600 |}} | ||
| + | |||
| + | **Nota**: Si se aprueban varias el sistema generará el documento de la ultima novedad con la marca de aprobar de la lista. | ||
| + | |||
| + | ===== Rechazar ===== | ||
| + | |||
| + | Si queremos rechazar una novedad debemos marcar el campo rechazar de la novedad y darle a guardar, esto hará que la novedad cambie a esto Rechazado | ||
| + | |||
| + | ===== Documentación de Ajustes: Novedades de Activos (Depreciados e Incrementos) ===== | ||
| + | |||
| + | === 1. Resumen de la Intervención === | ||
| + | Se realizaron ajustes correctivos y preventivos en la ventana w_novedades_activos para mejorar la usabilidad en el registro de novedades tipo ICA (Incremento de Valor) e ICD (Disminución de Valor), asegurando la integridad de los datos al manejar activos totalmente depreciados. | ||
| + | |||
| + | === 2. Mejoras de Interfaz de Usuario (UI) === | ||
| + | |||
| + | Gestión de Selección de Entradas | ||
| + | Problema: La ventana emergente de selección de entradas (dw_lista_entradas) permanecía visible tras la selección, bloqueando otros campos. | ||
| + | Solución: Se implementó una lógica de cierre automático y redirección de foco en la función wf_process_entrada_selection. Ahora, al seleccionar una entrada, la lista desaparece y el cursor se posiciona automáticamente en el DataWindow de detalle. | ||
| + | Control de Errores de Validación | ||
| + | Ajuste: Se sustituyó el valor de retorno 1 por 2 en el evento itemchanged del campo depreciados. | ||
| + | Resultado: Esto permite rechazar cambios inválidos mostrando un mensaje personalizado de la aplicación, evitando que PowerBuilder despliegue el error genérico del sistema "Item does not pass the validation test". | ||
| + | |||
| + | === 3. Lógica de Negocio y Validaciones === | ||
| + | |||
| + | Filtro Dinámico de Activos Depreciados | ||
| + | Al ingresar el número de entrada para tipos ICA/ICD, el sistema ahora valida el estado del checkbox "Placas depreciadas": | ||
| + | |||
| + | Marcado (S): Solo recupera activos cuyo valor en libros sea menor o igual a cero. | ||
| + | Desmarcado (N): Solo recupera activos con valor en libros positivo. | ||
| + | Bloqueo de Integridad en el Detalle | ||
| + | Se añadió una regla de validación estricta para evitar inconsistencias: | ||
| + | |||
| + | Regla: No se permite cambiar el estado del checkbox "Placas depreciadas" si ya existen registros cargados en el detalle de la novedad. | ||
| + | Acción: El sistema obliga al usuario a vaciar el detalle antes de alternar entre activos depreciados y no depreciados. | ||
| + | |||
| + | === 4. Detalles Técnicos (Para Desarrolladores) === | ||
| + | |||
| + | Nuevos Métodos y Eventos Intervenidos | ||
| + | wf_process_entrada_selection (string as_selected_value): Nueva función de usuario que centraliza la carga de placas desde una entrada. Utiliza referencias dinámicas a la ventana (parent.GetParent().GetParent()) para evitar errores de "Null Object Reference". | ||
| + | dw_lista_entradas.clicked: Se optimizó usando el argumento row nativo del evento en lugar de GetRow(), garantizando la captura correcta del dato seleccionado. | ||
| + | dw_detalle.itemchanged: Se agregó la lógica de validación de filas existentes para proteger el campo depreciados. | ||
| + | Dependencias de Base de Datos (SQL) | ||
| + | Para asegurar que solo se muestren placas del Plan Contable Principal (1), se identificaron los siguientes DataWindows que requieren la cláusula WHERE TIPO_PLAN_CONTABLE = 1: | ||
| + | |||
| + | d_placas_factura (DataStore de carga). | ||
| + | dgr_lista_activos_vidautil_cor (Lupas de búsqueda). | ||
| + | dgr_lista_activos_valor_razonable. | ||
| + | dgr_lista_activos_novedades. | ||
| + | |||
| + | === Desarrollado por: [Miguel Muñoz] Fecha: [04/06/2026] Versión de PB: 12.5 === | ||
| + | |||
| + | ===== Ajuste en Aprobación de Novedades de Depreciación para Activos Nuevos o Totalmente Depreciados ===== | ||
| + | |||
| + | === 1. Descripción del Problema === | ||
| + | |||
| + | Se detectó una incidencia en el módulo de aprobación de novedades de activos fijos (w_novedades_activos_apr), específicamente para las novedades de tipo Ajuste de Depreciación (AJUST). | ||
| + | |||
| + | El sistema no permitía aprobar este tipo de novedad para dos casos específicos: | ||
| + | |||
| + | Placas (Activos) Nuevas: Activos que aún no han tenido su primer cálculo de depreciación. | ||
| + | Placas (Activos) Totalmente Depreciadas: Activos que ya han cumplido su vida útil y su valor depreciado en el último período fue cero. | ||
| + | El error ocurría porque el proceso de aprobación intentaba buscar un registro de depreciación del período anterior con un valor depreciado diferente de cero, condición que estos activos no cumplían. | ||
| + | |||
| + | === 2. Causa Raíz === | ||
| + | |||
| + | La causa del problema se encontraba en el evento ue_grabar del objeto w_novedades_activos_apr.srw. Al aprobar una novedad de tipo AJUST, el sistema ejecuta una sentencia INSERT INTO compras01.mov_depreciacion_temp SELECT ... para crear el registro del ajuste basándose en los datos del último período depreciado (ll_periodo_dep). | ||
| - | Nota: Los campos Número, Subtipo y Descripción son obligatorios, sin ellos no podemos ingresar al detalle de la novedad | + | Esta consulta incluía una condición restrictiva en la cláusula WHERE: |
| - | [Imagen de encabezado] | + | powerscript |
| + | ... | ||
| + | FROM compras01.mov_depreciacion_temp | ||
| + | WHERE CODIGO_PLACA = :ll_cod_placa_ajuste | ||
| + | AND VALOR_DEPRECIADO <> 0 -- <-- Esta línea causaba el problema | ||
| + | AND PERIODO = :ll_periodo_dep | ||
| + | ... | ||
| + | La línea AND VALOR_DEPRECIADO <> 0 filtraba y excluía las placas que no tenían un valor de depreciación registrado en el período anterior, impidiendo que el INSERT se ejecutara y, por consiguiente, fallando la aprobación. | ||
| - | Ingresamos el número de entrada de la placa | + | === 3. Solución Implementada === |
| + | Para solucionar la incidencia y permitir que el flujo de aprobación funcione correctamente para todos los activos, se modificó la sentencia INSERT eliminando la condición que validaba el valor depreciado. | ||
| - | [Imagen ingresando el número de la entrada] | + | Detalles Técnicos: |
| - | [Imagen con la información cargada] | + | Objeto Modificado: w_novedades_activos_apr.srw |
| + | Evento: ue_grabar | ||
| + | Cambio Realizado: Se eliminó la línea AND VALOR_DEPRECIADO <> 0 de la consulta INSERT INTO compras01.mov_depreciacion_temp | ||
| - | Agregamos el valor de la novedad en el campo Valor Novedad | + | === Desarrollado por: [Miguel Muñoz] Fecha: [21/07/2026] Versión de PB: 12.5 === |
| - | [Imagen de la novedad] | ||
| - | Guardamos la novedad (Quedará guardada en estado En Borrador) | ||