# 07 — Datos Maestros

# Marcas

## **Descripción General**
El módulo de marcas gestionan la creación, edición, visualización y listado de marcas asociadas al sistema. Incluyen creación, edición y carga de logos.

## **Funcionalidades Principales**
1. **Gestión de Marcas**:
   - Crear nuevas marcas con su información básica y logo.
   - Editar detalles de marcas existentes.
   - Eliminar marcas de forma segura.

2. **Relaciones de Datos**:
   - Asociar marcas con sucursales y organizaciones.

3. **Interfaz Amigable**:
   - Tablas dinámicas con búsqueda y ordenamiento.
   - Formularios con validación de entradas y carga de archivos usando el cargador de archivos.

## Cómo usar el módulo

## Crear una marca
Para registrar una nueva marca:
- **Características**:
  - Campos: Nombre de la marca, logo, organización asociada y sucursales.
  - Carga de archivos (logo) mediante el cargador de archivos.
  - Validación dinámica de entradas.
- **Ejemplo de Ruta**:

# Organizaciones

# Organizaciones

## **Descripción General**
El módulo de organizaciones permiten gestionar entidades relacionadas con clientes, proveedores y sus datos asociados como sucursales, precios, y logos.

## **Campos Destacados**
A continuación, se describen los campos clave utilizados en las vistas de organizaciones:

1. **RUT**:
   - **Descripción**: Identificador único de la organización (por ejemplo, número tributario).
   - **Validación**: Debe ser único y seguir el formato correcto.
   - **Ejemplo**: `12345678-9`.

2. **Nombre**:
   - **Descripción**: Nombre oficial de la organización.
   - **Validación**: Campo obligatorio con un máximo de 255 caracteres.
   - **Ejemplo**: `Corporación Ejemplo Ltda.`

3. **Rol**:
   - **Descripción**: Define si la organización es un cliente o proveedor.
   - **Opciones**:
     - `Cliente`
     - `Proveedor`
   - **Ejemplo**: `Cliente`.

4. **Precio por Grabado**:
   - **Descripción**: Costo asociado a un servicio de grabado.
   - **Validación**: Debe ser un número positivo.
   - **Ejemplo**: `1500` (CLP).

5. **Estado**:
   - **Descripción**: Indica si la organización está activa o inactiva.
   - **Opciones**:
     - `Activo`
     - `Inactivo`
   - **Ejemplo**: `Activo`.

6. **Logo**:
   - **Descripción**: Imagen representativa de la organización.
   - **Validación**: Opcional; se aceptan formatos `.jpeg`, `.jpg`, `.png` con un tamaño máximo de 5 MB.
   - **Ejemplo**: Archivo `logo.png`.

7. **Orden de Ventas (Consolidación)**:
   - **Descripción**: Define si las órdenes de venta se consolidan o se separan por tipo de servicio.
   - **Opciones**:
     - `Consolidada`
     - `Por tipo de Servicio`
   - **Ejemplo**: `Consolidada`.

8. **Sucursales**:
   - **Descripción**: Lista de sucursales asociadas a la organización.
   - **Validación**: Selección múltiple en el caso de clientes.
   - **Ejemplo**: `Sucursal Central`, `Sucursal Norte`.

## Cómo usar el módulo

## Crear una organización
- **Descripción**: Vista para crear una nueva organización.
- **Campos destacados**:
  - **RUT**, **Nombre**, **Rol**, **Precio por Grabado**, **Estado**, **Logo**, **Orden de Ventas**.
- **Ejemplo de Ruta**:

# Sucursales

# Sucursales

### **Módulo de Sucursales**

## **Descripción General**

El módulo de sucursales permite gestionar ubicaciones físicas o virtuales asociadas a organizaciones. Este módulo permite funcionalidades para la creación, edición, visualización y listado de sucursales. Se han diseñado con formularios intuitivos, tablas dinámicas y validaciones robustas para garantizar una experiencia de usuario optimizada.

## Consultar sucursales

-   **Descripción**: La vista principal para los usuarios que desean explorar o gestionar sucursales. Presenta un listado de todas las sucursales registradas en el sistema.
    
-   **Características**:
    
    -   Muestra una tabla dinámica con columnas clave como:
        -   Nombre de la sucursal.
        -   Organización asociada.
        -   Servicios ofrecidos.
        -   Marcas relacionadas.
        -   Colaboradores asignados.
    -   Ofrece funcionalidades de búsqueda y ordenamiento mediante tablas interactivas (tablas interactivas).
    -   Proporciona accesos rápidos para:
        -   Crear nuevas sucursales.
        -   Editar sucursales existentes.
        -   Eliminar registros.
    -   Diseñada para ser el punto de inicio del flujo de trabajo con sucursales.

## Crear una sucursal

-   **Descripción**: Permite a los usuarios registrar una nueva sucursal en el sistema, asociándola con una organización y configurando las relaciones necesarias.
    
-   **Características**:
    
    -   Presenta un formulario con los siguientes campos:
        -   Nombre de la sucursal.
        -   Organización a la que pertenece (selección de una lista de organizaciones existentes).
        -   Servicios ofrecidos (selección múltiple).
        -   Marcas asociadas (selección múltiple).
        -   Colaboradores asignados (selección múltiple).
    -   Valida dinámicamente las entradas del usuario, asegurando que los datos sean correctos antes de enviarse.
    -   Diseñada para ser simple e intuitiva, facilitando la creación de registros.

## Editar una sucursal

-   **Descripción**: Esta vista permite modificar la información de una sucursal existente. Es ideal para actualizar datos, corregir errores o agregar nuevas relaciones.
    
-   **Características**:
    
    -   Los campos del formulario están pre-llenados con la información actual de la sucursal.
    -   Permite modificar:
        -   Nombre.
        -   Organización asociada.
        -   Servicios ofrecidos.
        -   Marcas relacionadas.
        -   Colaboradores asignados.
    -   Incluye opciones para eliminar relaciones existentes o agregar nuevas.
    -   Valida las entradas para garantizar que los cambios sean consistentes y válidos.

## Consultar detalles

-   **Descripción**: Diseñada para mostrar detalles específicos de una sucursal. Ofrece una visión completa de su información y relaciones asociadas.
    
-   **Características**:
    
    -   Presenta información básica como:
        -   Nombre de la sucursal.
        -   Organización a la que pertenece.
        -   Lista de servicios ofrecidos.
        -   Marcas relacionadas.
        -   Colaboradores asignados.
    -   Ideal para consultas rápidas sobre la configuración y detalles de una sucursal específica.

## Flujo de trabajo

1.  **Consultar el listado**: El usuario comienza en el listado de sucursales, explorando las existentes.
2.  **Crear un registro**: Si necesita agregar una nueva sucursal, puede hacerlo desde el listado.
3.  **Editar un registro**: Para corregir o actualizar datos, el usuario accede a la edición desde el listado.
4.  **Consultar detalles**: Si desea ver más detalles sobre una sucursal, puede acceder a esta vista desde el listado.

# Roles

# Roles

## Propósito
La vista permite gestionar roles y sus permisos asignados en la aplicación.

## Funcionalidades principales
1. `**Listado de roles**`: Tabla con los roles creados.
2. `**Crear un rol**` Botón para añadir nuevos roles.
3. `**Editar un rol**`: Modificar roles existentes.
4. `**Eliminar un rol**`: Borrar roles innecesarios.

## Permisos
| Permiso               | Descripción                             |
|-----------------------|-----------------------------------------|
| `dashboard.index`     | Acceso al panel de control.             |
| `organizations.show`  | Ver las organizaciones disponibles.     |
| `etchings.index`      | Ver lista de grabados.                  |
| `roles.create`        | Crear nuevos roles.                     |
| `users.assign`        | Asignar usuarios a roles.               |

## Ejemplo
### **Rol Usuario**
- `dashboard.index`
- `etchings.index`
- `etchings.show`
- `etchings.create`
- `etchings.edit`

## Consideraciones
- Los roles eliminados no se podrán recuperar.
- Es importante asignar permisos correctos para evitar accesos no deseados.

## Roles ejecutivos

Los **Roles Ejecutivos** están diseñados para proporcionar un control estructurado dentro de diferentes niveles organizacionales. Este documento detalla los permisos y responsabilidades asignados a cada rol ejecutivo: **Supervisor Group**, **Supervisor Organization** y **Supervisor Branch**.

## **Supervisor Group**
El rol de **Supervisor Group** permite supervisar múltiples sucursales dentro de un grupo de organizaciones asignadas.

### Permisos principales:
- `dashboard.index`: Acceso al panel de control.
- `etchings.index`: Ver la lista de grabados asociados al grupo.
- `etchings.show`: Ver detalles específicos de grabados.
- `reports.index`: Consultar reportes grupales.
- `reports.show`: Ver detalles de reportes grupales.
- `apply`: Realizar solicitudes específicas dentro del grupo.
- `members.edit`: Editar información de miembros del grupo.
- `view.group`: Acceso consolidado a la información grupal.

### Responsabilidades:
- Supervisar las operaciones de las sucursales dentro de su grupo.
- Generar reportes y compartir métricas con niveles superiores.
- Asegurar la correcta gestión de los grabados asignados al grupo.

## **Supervisor Organization**
El rol de **Supervisor Organization** está diseñado para supervisar toda la organización y todas sus sucursales.

### Permisos principales:
- `dashboard.index`: Acceso al panel de control.
- `etchings.index`: Supervisar grabados a nivel organizacional.
- `etchings.show`: Ver detalles de grabados dentro de la organización.
- `reports.index`: Consultar reportes organizacionales.
- `reports.show`: Ver reportes de operaciones.
- `members.index`: Ver la lista completa de miembros de la organización.
- `members.show`: Consultar detalles de los miembros de la organización.
- `view.organization`: Acceso completo a la información organizacional.

### Responsabilidades:
- Supervisar todas las operaciones de la organización.
- Coordinar con supervisores de sucursales y grupos para optimizar las operaciones.
- Asegurar que los grabados en proceso y tareas pendientes se gestionen eficientemente.

## **Supervisor Branch**
El rol de **Supervisor Branch** se centra exclusivamente en supervisar y gestionar una única sucursal.

### Permisos principales:
- `dashboard.index`: Acceso al panel de control.
- `etchings.index`: Ver todos los grabados asociados a la sucursal.
- `export.etchings`: Exportar grabados de la sucursal.
- `reports.index`: Consultar reportes específicos de la sucursal.
- `reports.show`: Ver detalles de reportes relacionados con la sucursal.
- `members.show`: Consultar detalles de los miembros de la sucursal.
- `view.branch`: Supervisar todas las operaciones relacionadas con la sucursal.

### Responsabilidades:
- Gestionar grabados y operaciones específicas de una sucursal.
- Supervisar las tareas y responsabilidades asignadas a los miembros de la sucursal.
- Generar reportes de rendimiento y coordinar con niveles superiores.

## Comparación entre Roles Ejecutivos

| Rol                   | Ámbito de supervisión  | Permisos clave                     | Alcance principal                        |
|-----------------------|------------------------|-------------------------------------|------------------------------------------|
| **Supervisor Group**      | Grupo de sucursales   | `view.group`, `members.edit`       | Supervisar varias sucursales del grupo.  |
| **Supervisor Organization** | Toda la organización | `view.organization`, `members.index` | Supervisión global de la organización.   |
| **Supervisor Branch**     | Una sucursal          | `view.branch`, `export.etchings`   | Supervisión específica de una sucursal. |

## Consideraciones
- **Limitación de permisos**: Los permisos están diseñados para que cada rol acceda solo al ámbito que supervisa.
- **Escalabilidad**: Los permisos son lo suficientemente flexibles para adaptarse a cambios en responsabilidades.
- **Independencia operativa**: Los roles ejecutivos tienen control suficiente para operar de forma autónoma en su ámbito, reduciendo la dependencia de niveles superiores.

# Permisos

# Permisos

### Módulo de Permisos

#### **Descripción General**

El módulo de permisos permite gestionar los accesos y las autorizaciones en el sistema. Los permisos están asociados a roles y definen qué acciones pueden realizar los usuarios. Este módulo incluye vistas para la creación, edición y listado de permisos, proporcionando una interfaz amigable y funciones avanzadas como validación de datos y manejo de errores.

## Consultar permisos

-   **Descripción**: Es la vista principal del módulo de permisos. Muestra una lista de todos los permisos registrados en el sistema.
-   **Características**:
    -   **Tabla dinámica**:
        -   Columnas principales:
            -   ID.
            -   Definición (nombre del permiso).
            -   Descripción.
        -   Funciones de búsqueda y ordenamiento mediante tablas interactivas.
    -   **Acciones disponibles**:
        -   Crear un nuevo permiso.
        -   Editar permisos existentes.
        -   Eliminar permisos.
    -   **Diseño interactivo**:
        -   Uso de mensajes de confirmación para confirmaciones de eliminación.
        -   Notificaciones de éxito o error para operaciones realizadas.
-   **Uso principal**: Punto de inicio para la gestión de permisos.

## Crear un permiso

-   **Descripción**: Esta vista permite agregar un nuevo permiso al sistema.
-   **Características**:
    -   Formulario sencillo con los siguientes campos:
        -   **Definición**: Nombre único del permiso.
        -   **Descripción**: Explicación breve del propósito del permiso.
    -   Validaciones dinámicas para garantizar que el nombre del permiso sea único y los campos sean válidos.
    -   Botón para guardar el nuevo permiso y redirigir al listado.

## Editar un permiso

-   **Descripción**: Diseñada para modificar los datos de un permiso existente.
-   **Características**:
    -   Formulario pre-llenado con los valores actuales del permiso.
    -   Campos disponibles para edición:
        -   **Definición**: Nombre único del permiso.
        -   **Descripción**: Descripción del propósito del permiso.
    -   Validaciones para evitar duplicados y mantener la integridad de los datos.
    -   Botón para guardar los cambios y redirigir al listado.

## Flujo de trabajo

1.  **Consultar el listado**:
    -   Inicio del módulo. Permite explorar, buscar y gestionar permisos.
2.  **Crear un registro**:
    -   Agrega un nuevo permiso desde el listado.
3.  **Editar un registro**:
    -   Modifica un permiso existente para mantener la información actualizada.

### Funciones disponibles

-   **Búsqueda y Filtrado**:
    -   La tabla en la pantalla correspondiente incluye herramientas de búsqueda y ordenamiento para facilitar la localización de permisos.
-   **Validación y Seguridad**:
    -   Los formularios en la pantalla correspondiente y la pantalla correspondiente garantizan que los datos ingresados sean únicos y válidos.
-   **Interacción Visual**:
    -   Notificaciones y confirmaciones mediante mensajes de confirmación mejoran la experiencia del usuario.

# Usuarios

# Usuarios

## **Descripción General**
El módulo de usuarios permite gestionar el acceso y las autorizaciones dentro del sistema. Proporciona herramientas para listar, crear y editar usuarios, así como para asignar roles, organizaciones y sucursales, garantizando un control granular sobre los permisos.

## Cómo usar el módulo

## Consultar usuarios
- **Descripción**: 
  Muestra un listado de todos los usuarios registrados en el sistema.
- **Características**:
  - **Tabla dinámica**:
    - Columnas clave: Nombre, Email, Organización, Sucursal, Roles, Estado.
    - Funcionalidades de búsqueda y ordenamiento mediante tablas interactivas.
  - **Acciones disponibles**:
    - Crear nuevos usuarios.
    - Editar usuarios existentes.
    - Eliminar usuarios (si el usuario tiene permisos).
  - **Diseño responsivo**: 
    - Optimizado para dispositivos móviles y escritorio.
- **Uso principal**:
  - Gestionar y visualizar usuarios del sistema con sus roles y permisos asociados.

## Crear un usuario
- **Descripción**: 
  Permite registrar un nuevo usuario en el sistema.
- **Características**:
  - Formulario con los siguientes campos:
    - Nombre.
    - Email.
    - Contraseña.
    - Organización (selección múltiple).
    - Sucursal (selección múltiple).
    - Roles (selección de uno o más roles).
  - Validaciones dinámicas para garantizar que los datos ingresados sean únicos y correctos.
  - Botón para guardar el usuario y redirigir al listado.
- **Uso principal**:
  - Agregar nuevos usuarios al sistema y asignarles roles y permisos.

## Editar un usuario
- **Descripción**: 
  Diseñada para modificar la información de un usuario existente.
- **Características**:
  - Formulario pre-llenado con los datos actuales del usuario.
  - Campos disponibles para edición:
    - Nombre.
    - Email.
    - Contraseña (opcional, deja la existente si está vacío).
    - Organización (selección múltiple).
    - Sucursal (selección múltiple).
    - Roles (roles actualmente asignados).
  - Validaciones dinámicas para garantizar la integridad de los datos actualizados.
  - Botón para guardar los cambios y redirigir al listado.
- **Uso principal**:
  - Actualizar información y permisos de usuarios existentes.

## Flujo de trabajo
1. **Consultar el listado**: 
   - Muestra un listado de usuarios y permite gestionarlos mediante acciones rápidas.
2. **Crear un registro**: 
   - Facilita la creación de nuevos usuarios con sus roles y permisos asociados.
3. **Editar un registro**: 
   - Permite modificar la información y los permisos de usuarios existentes.

## Funciones disponibles
- **Tablas Dinámicas**:
  - El listado incluye búsqueda, filtrado y exportación.
- **Roles y Permisos**:
  - Las pantallas de creación y edición incluyen un sistema de selección de roles y permisos basado en casillas de selección.
- **Interacción Visual**:
  - Mensajes de confirmación para acciones como eliminación.
- **Validaciones Dinámicas**:
  - Garantizan que el email sea único y que los datos ingresados sean válidos.
- **Diseño Responsivo**:
  - Todas las vistas están adaptadas para dispositivos móviles y de escritorio.
- **Seguridad**:
  - Control de acceso basado en roles para acciones como creación, edición y eliminación de usuarios.

# Importaciones

# Importaciones

## **Descripción General**
El módulo de importaciones permiten subir archivos CSV/Excel para cargar datos de forma masiva en el sistema. Incluye un formulario para subir archivos, selección del tipo de información a importar y una tabla para visualizar los resultados.

## **Funcionalidades Principales**
1. **Cargar Archivos**:
   - Soporte para archivos `.csv` y `.xls`.
   - Validación de formato y contenido.

2. **Tipos de datos soportados**:
   - Permite importar datos para:
     - Sucursales
     - Marcas
     - Modelos de Marca
     - Permisos
     - Usuarios
     - Colaboradores
     - Inscripciones

3. **Visualización de Resultados**:
   - Muestra los datos importados en una tabla interactiva con búsqueda y paginación.

## Cómo usar el módulo

## Realizar una importación
- Utiliza esta sección para cargar información masivamente.
### Pasos generales
  - Selección del modelo de datos a importar mediante opciones de radio.
  - Formulario para cargar archivos `.csv` o `.xls`.
  - Validación y retroalimentación del proceso de importación.
- **Ejemplo de Ruta**: