Solicitudes de Aprobación
El usuario ingresa a la opción de menú y visualiza todos los registros que debe autorizar, pudiendo filtrar los mismos por los siguientes parámetros:
\\ <font 14.0pt/Arial,sans-serif;;black;;inherit>Filtra sobre campo: ModuloId</font> \\
\\ <font 14.0pt/Arial,sans-serif;;black;;inherit>Al seleccionar un modulo se completa el combo Transacciones asociadas al modulo seleccionado.</font> \\
|
\\ <font 14.0pt/Arial,sans-serif;;inherit;;inherit>Filtra sobre el campo TransaccionId</font> \\
|
|
| Descripcion</font> | <font 14.0pt/Arial,sans-serif;;inherit;;inherit>String | Filtra sobre el campo DescripcionAutorizar en modo like. |
| Modo Supremo</font> | <font 14.0pt/Arial,sans-serif;;black;;inherit>Check | Solo visible si el usuario esta asignado como Aprobador Supremo de al menos algún circuito activo o si el usuario es supervisor Al tildaro se mostrarán todas las solicitudes pendientes que correspondan a un circuito de aprobación donde el usuario sea aprobador supremo independientemente del nivel de autorización actual |
En caso que se sleeccione el estado “Pendiente “; Se filtraran todos los registros de la tabla SolicitudAprobacion que cumplan con los siguientes criterios:
SolicitudAprobacion → CircuitoAprobacion (Solicitud.CircuitoId) → CircuitoAprobacionVigencia (Solicitud.VigenciaId) → CircuitoAprobacionNiveles → (Nivel.Nivel = Solicitud.NivelActual and (( Nivel.RespCC = true and [Evaluar si usuario es responsable de centro de costo] ) ó [Evaluar Circuto Aprobacion Usuario] )
[Evaluar si usuario es responsable de centro de costo]: del listado de centros de costos informados (Tabla SolicitudAprobacionCC) se verifica si el usuario logueado es responsable de algún centro de costo (o es reemplazo del usuario responsable del mismo) y aun no se aprobó el registro para el nivel y centro de costo correspondiente (tabla SolicitudAprobacion_historial)
[Evaluar Circuto Aprobacion Usuario]: se verifica si el usuario logueado existe en el listado de usuarios del nivel (tabla CircuitoAprobacionUsuarios) o es reemplazo de alguno de ellos y en caso de validar importe el importe del registro a aprobar esta dentro de los rangos de Importe mínimo y máximo al que esta asignado, teniendo en cuenta las moneda involucradas (en caso de distintas monedas se deberá realizar la conversión según la cotización existente a la fecha de solicitud)
En caso que se seleccione como Estado la opción de “Historial”, entonces se visualizarán todos las las solicitudes en las cuales el usuario realizó alguna acción sobre la misma, al seleccionarse esta opción el usuario no podrá ni autorizar ni rechazar registros (se deben ocultar los botones)
Se visualizarán los resultados con los siguientes campos:
| Campo</font> | <font 14.0pt/Arial,sans-serif;;white;;inherit>Tipo</font> | <font 14.0pt/Arial,sans-serif;;white;;inherit>Observaciones</font> | | <font 14.0pt/Arial,sans-serif;;black;;inherit>Sel</font> | <font 14.0pt/Arial,sans-serif;;black;;inherit>Check | Se debe incorporar a la pantalla la opción de “Seleccionar Todo”, “Deseleccionar Todo” e “invertir Selección” para modificar los registros filtrados de la grilla |
| Modulo</font> | <font 14.0pt/Arial,sans-serif;;inherit;;inherit>String | Descripción del Modulo asociado al registro |
| Transacccion</font> | <font 14.0pt/Arial,sans-serif;;black;;inherit>String | Descripción de la Transacción asociada al registro. |
| Descripcion</font> | <font 14.0pt/Arial,sans-serif;;inherit;;inherit>String | |
| Nivel Actual</font> | <font 14.0pt/Arial,sans-serif;;black;;inherit>Int | |
| C.C Asociado</font> | <font 14.0pt/Arial,sans-serif;;inherit;;inherit>String | Nombre del Centro de Costo al cual esta realizando la autorización (en caso de que el nivel actual requiera ser autorizado por Responsable de C C) y el usuario este autorizando en nombre de ese centro de costo (podría estar autorizando por tabla CircuitoAprobacionUsuarios) |
| Estado</font> | <font 14.0pt/Arial,sans-serif;;black;;inherit>String | Pendiente / Rechazado / Autorizado |
| Historial</font> | <font 14.0pt/Arial,sans-serif;;inherit;;inherit>Botón | Abre Pantalla de Historial |
| Navegador</font> | <font 14.0pt/Arial,sans-serif;;black;;inherit>Botón | El botón estará visible si se informaron los campos de Comprobante (Modulo, CodCompId y ComprobanteId) del registro. Abre en otra pestaña la url del navegador de comprobantes asociado al comprobante informado. |
Acciones Asociadas a la grilla:
En esta pantalla si el usuario tiene los permisos correspondientes (se debe crear un permiso especial para ello), se tendrá el botón “Deshacer Autorizaciones”; si se presiona, previa confirmación con el usuario (“Esta seguro de volver a nivel cero la autorización del registro seleccionado”), se actualizará el registro modificando el valor de NivelActual a cero, para que deba volver a recorrer todo el circuito de autorización.
En caso de que el estado final del registro sea Autorizado o Rechazado, en caos de que en el circuito de autorización se hayan configurado Notificaciones especiales, se deben enviar correos electrónicos a los emails asignados para dicha acción.
En toda las acciones que se realicen, Autorización, rechazo o Deshacer un autorización, en la pantalla de confirmación se deben solicitar los datos de inicio de sesión del usuario logueado.
ServicioInformacionOrigen</font> <font 14.0pt/Arial,sans-serif;;inherit;;inherit>Cada modulo / sistema que utilice el modulo de autorización deberá implementar un StoreProcedure o Servicio que le permita al modulo de autorización informar la Autorizacion o Rechazo de un registro; para que se efectúen las actualizaciones o procesos propios del negocio de dicho módulo. El nombre del Store / Servicio se debe configurar en la tabla CircuitosAprobacionTransacciones. Según dicha configuración al Aprobarse o Rechazarse un registro dinámicamente se ejecutará el Store o Servicio correspondiente.
Tanto el Store como el Servicio a desarrollar por el modulo de origen deberá cumplir con la siguiente interfaz.
Parámetros:
| Nombre</font> | <font 11.0pt/Arial,sans-serif;;inherit;;inherit>Tipo</font> | <font 11.0pt/Arial,sans-serif;;inherit;;inherit>Obligatorio</font> | <font 11.0pt/Arial,sans-serif;;inherit;;inherit>Observación</font> | | <font 11.0pt/Arial,sans-serif;;black;;inherit>IdRegistro | Int | Si | Id del Registro del que se esta informado en la aprobación. |
| Estado | String | Si | A: Aprobado R: Rechazado |
| MotivoRechazo | String | No | Se informará el motivo de rechazo en caso de que sea ese el estado |
Respuesta:
| Nombre</font> | <font 11.0pt/Arial,sans-serif;;inherit;;inherit>Tipo</font> | <font 11.0pt/Arial,sans-serif;;inherit;;inherit>Obligatorio</font> | <font 11.0pt/Arial,sans-serif;;inherit;;inherit>Observación</font> | | <font 11.0pt/Arial,sans-serif;;black;;inherit>Error | Bit | Si | Si false à la transacción se ejecuto correctamente sin errores Si true à hubo algún tipo de error: se revierte la acción realizada por el usuario para el registro involucrado y se informa del error recibido |
| TipoError | String | Si error = true | Excepción: se generó una excepción no controlada Validación: el proceso de respuesta informó algún tipo de validación que no permite se ejecute la acción realizada |
| DescripcionError | String | Si error = true | Texto del Error / Excepción generada por el origen |