__**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: | \\ **Parámetro ** \\ | \\ **Tipo ** \\ | \\ **Observaciones ** \\ | | \\ **Fecha Desde ** \\ | \\ Fecha \\ | \\ Filtra sobre campo FechaSolicitud \\ | | \\ **Fecha Hasta** \\ | \\ Fecha \\ | \\ Filtra sobre campo FechaSolicitud \\ | | \\ **Modulo ** \\ | \\ Combo \\ | \\ Tablas Asociada: CircuitosAprobacionModulos. \\ \\ Filtra sobre campo: ModuloId \\ \\ Al seleccionar un modulo se completa el combo Transacciones asociadas al modulo seleccionado. \\ | | \\ **Transacción** \\ | \\ Combo \\ | \\ Tabla Asociada: CircuitosAprobacionTransacciones \\ \\ Filtra sobre el campo TransaccionId \\ | | \\ **Estado ** \\ | \\ Combo \\ | \\ Opciones: \\ * Pendiente * Historial de Autorizaciones | | \\ **Descripcion** \\ | \\ String \\ | \\ Filtra sobre el campo DescripcionAutorizar en modo like. \\ | | \\ **Modo Supremo ** \\ | \\ 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: * Cumplan con los parámetros de filtro ingresados por el usuario * Estado = “P” Pendiente * Nivel = Nivel donde el usuario logueado este involucrado o el mismo sea reemplazo de algún usuario asignado al nivel. 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 ** \\ | \\ **Tipo ** \\ | \\ **Observaciones ** \\ | | \\ **Sel ** \\ | \\ 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** \\ | \\ String \\ | \\ Descripción del Modulo asociado al registro \\ | | \\ **Transacccion ** \\ | \\ String \\ | \\ Descripción de la Transacción asociada al registro. \\ | | \\ **Descripcion** \\ | \\ String \\ | \\ \\ | | \\ **Nivel Actual ** \\ | \\ Int \\ | \\ \\ | | \\ **C.C Asociado** \\ | \\ 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 ** \\ | \\ String \\ | \\ Pendiente / Rechazado / Autorizado \\ | | \\ **Historial** \\ | \\ Botón \\ | \\ Abre Pantalla de Historial \\ | | \\ **Navegador ** \\ | \\ 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: * Al seleccionar cualquier registro, si esta informado el campo DocumentoId se visualizará en la sección de Previsualizacion el documento asociado. * Historial: abre la pantalla modal de Historial de Autorizaciones, en la misma se visualizará asociado a la tabla (SolicitudAprobacion_Historial) los siguientes campos: * Fecha Hora * Usuario: nombre del usuario que tomo la acción, en caso de autorizaciones automáticas, se debe indicar “Automático” y resaltar con un icono. En caso de que la autorización del usuario se realizo en modo “Supremo”, se debe resaltar con un icono para ello. * Nivel. Nivel que autorizo * Centro de Costo: nombre del centro de costo involucrado en la autorización * Operación: se muestra la acción que se tomó sobre el registro: Autorización, Rechazo, Reversión o Verificación automática (casos en los cuales se evalua la autorización automática de un nivel) * Estado: Estado en el cual queda la solicitud luego de la acción tomada, se debe resaltar en rojo el registro en caso de haber sido rechazado, y en naranja en caso de haber sido revertido. * Motivo: Motivo indicado por el usuario al momento de Rechazar o Revertir un registro 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. * Autorizar: Previa confirmación con el usuario (“Confirma Autorizar los registros seleccionados”), si el usuario acepta por cada registro seleccionado se realizarán las siguientes acciones: 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. * Rechazar: Previa confirmación con el usuario y solicitud de un motivo de rechazo, se realizan las siguientes acciones para cada registro seleccionado. * Actualizar Registro SolicitudAprobacion.Estado = “R” (Rechazado) * Se agrega un registro en la tabla de historial * Se informa al origen del rechazo mediante el servicio ServicioInformacionOrigen 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__ 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 ** \\ | \\ **Tipo ** \\ | \\ **Obligatorio ** \\ | \\ **Observación ** \\ | | \\ 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 ** \\ | \\ **Tipo ** \\ | \\ **Obligatorio ** \\ | \\ **Observación ** \\ | | \\ 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 \\ |