Ejemplo base para la documentación Módulo Procesos 10/12/2025 Versión 1.0 Queda prohibido cualquier tipo de explotación y, en particular, la reproducción, distribución, comunicación pública y/o transformación, total o parcial, por cualquier medio, de este documento sin el previo consentimiento expreso y por escrito a overskull.   INDICE Portada Índice Introducción 3.1 Objetivo 3.2 Alcance Roles y Permisos Reglas del Sistema 5.1 Asignación de Almacén Automático 5.2 Productos con Responsable 5.3 Restricción de Categorías Flujo de Solicitud 6.1 Acceso al Formulario 6.2 Selección de Categoría 6.3 Adición de Ítem 6.4 Asignación de Responsable 6.5 Envío de la Solicitud Validaciones de Script Glosario Anexos 9.1 Tablas de Configuración 9.2 Scripts de Servidor y Cliente 9.3 Manual de Usuario Estilo del Documento Solicitud de Materiales 1. Portada Solicitud de Materiales Versión: 1.0 • Fecha: 2025-02-10 • Autor: Área de TI 2. Índice Introducción Roles y Permisos Reglas de Sistema Flujo de Solicitud Validaciones de Script Glosario Anexos 3. Introducción Objetivo: Definir el proceso de “Solicitud de Materiales” para garantizar que cada rol sólo acceda a sus categorías permitidas, que el almacén adecuado se asigne automáticamente y que los productos que requieran responsable incluyan el campo “Empleado receptor”. Alcance: Módulo ERPNext → Doctype “Solicitud de Materiales” 4. Roles y Permisos Rol Categorías Permitidas Concesionario Tienda, Embalaje Administrador de Agencia Todas las categorías 5. Reglas del Sistema Asignación de almacén automático Al elegir una categoría, el campo Almacén se llena desde la tabla “Agencia-Almacén”. Productos con responsable Si item.requiere_responsable = true, aparece el campo Empleado receptor y es obligatorio. Restricción de categorías Se impide seleccionar categorías fuera del listado permitido para el rol actual. 6. Flujo de Solicitud Acceso al formulario Menú: Logística → Solicitud de Materiales → Nuevo Campos obligatorios: Fecha, Categoría, Ítems Selección de categoría Elegir Embalaje → Almacén = “Lima-Centro_Embalaje” Adición de ítem Clic en Agregar Ítem → seleccionar Caja de cartón grande (requiere responsable) Asignación de responsable Ingresar Juan Pérez en Empleado receptor Envío Clic en Enviar para Aprobación Mensaje: Solicitud SOL-2025-0001 enviada con éxito. 7. Validaciones de Script javascript frappe.ui.form.on('Solicitud de Materiales', { before_save(frm) { if (!frm.doc.category) { frappe.msgprint('Debe seleccionar una Categoría.'); frappe.validated = false; } frm.doc.items.forEach(item => { if (item.producto.requiere_responsable && !item.empleado_receptor) { frappe.msgprint(`El producto ${item.producto} requiere Empleado receptor.`); frappe.validated = false; } }); } }); 8. Glosario Categoría: Grupo de productos para control de acceso. Almacén: Ubicación vinculada a cada agencia y categoría. Empleado receptor: Persona designada para recibir el material. 9. Anexos Tablas de configuración: tabAgencyWarehouse Scripts de servidor y cliente Manual de usuario (link interno) Estilo de documento Títulos: Arial Bold, 18 pt, #333333 Subtítulos: Arial Bold, 14 pt, #333333 Texto: Arial, 12 pt, #000000 Código: Consolas, 10 pt, #333333 Imágenes: /docs/images/ nombradas 01_descripción.png, 800×450 px, alt=“…”