Proyectos PR-001 · PR-002

Gestión de proyectos con consumo de inventario y control de presupuesto

Menú Ayuda

¿Qué es un proyecto?

Un proyecto es una carpeta de trabajo que agrupa los artículos consumidos para una obra, instalación o trabajo a un cliente. Permite:

  • Registrar el costo real de los materiales utilizados.
  • Comparar contra un presupuesto y ver el saldo disponible.
  • Rebajar inventario automáticamente cuando se asignan artículos.
  • Reversar inventario al eliminar artículos o el proyecto completo.
Caso típico: una empresa de construcción que necesita saber cuánto material consumió en una obra específica, sin necesidad de facturarlo individualmente al cliente hasta que termine el proyecto.

Lista de proyectos PR-001

Listado principal accesible desde el menú Proyectos → Lista de proyectos. Muestra todos los proyectos con sus filtros, estado y valor.

Filtros disponibles

  • Desde / Hasta: rango de fecha de creación (Flatpickr d/m/Y).
  • Estado: Todos / Activo / Terminado / Nulo.
  • Proyecto: nombre LIKE.
  • Tipo: tipo de proyecto LIKE.
  • Cliente Id / Nombre: por código o nombre del cliente.
  • Ubicación: LIKE sobre la dirección.
  • Usuario: código del usuario que creó.
  • Agente: agente de ventas asignado.

El filtro Estado hace auto-submit al cambiar; los inputs de texto requieren Enter.

Columnas

Punto de color por estado, ID, Fecha, Proyecto, Tipo, Cliente, Ubicación, Modificado, Usuario, Agente, Valor (alineado a la derecha).

Acciones

  • Doble click en una fila → abre el editor del proyecto en nueva pestaña.
  • Nuevo → crea proyecto con valores por defecto y abre editor.
  • Eliminar → elimina los proyectos seleccionados con checkbox (reversa inventario de cada artículo).
  • Excel / Imprimir (Paged.js) → exportan los datos filtrados.

La paginación es backend (no carga todo en memoria); el input numérico permite ajustar las filas por página (10-500).

Crear nuevo proyecto

Al pulsar Nuevo el sistema crea un proyecto con estos valores por defecto y redirige al editor:

CampoValor inicial
EstadoActivo (1)
NombreNombre de proyecto (editar)
TipoCasa (editar)
ClienteSN (sin nombre, asignar luego)
UbicaciónDefinir ubicación
AgenteUsuario actual
Presupuesto / Costo / Venta0.00

Editor de proyecto PR-002

El editor tiene cuatro zonas, todas en una sola pantalla:

1Cabecera: 3 bloques (Proyecto / Cliente / Montos) — toggle "Datos" muestra Auditoría.
2Agregar artículo: barra superior con código, nombre, costo, cantidad, actividad, bodega.
3Tabla de artículos: editar / eliminar línea individual.
4Totales: Líneas, Costo, Presupuesto, Disponible (en vivo).
No hay botón "Guardar". Cada cambio en cabecera se guarda automáticamente al perder el foco del campo (blur) o al pulsar Enter. Visualmente:
  • Borde amarillo + fondo crema = guardando…
  • Borde verde + fondo claro = guardado OK (se va solo en 1 seg).
  • Borde rojo + fondo rosado = error (revierte el valor).

Datos de cabecera

CampoEditableValidación
NombreMáx 50 caracteres
TipoMáx 16 caracteres
UbicaciónMáx 50 caracteres
AgenteMáx 5 caracteres (no vacío)
Cliente CódigoSí (con buscador)No vacío
Cliente Nombre / Tel / Dir / EmailNoSe autocompletan al elegir cliente
PresupuestoNumérico ≥ 0
Costo / Venta / DisponibleNoCalculados

Asignar cliente

Pulsando la al lado del campo Código se abre el buscador de clientes MV-001 (componente reutilizable). Al seleccionar:

  1. Se actualiza ClienteId en el proyecto.
  2. La página recarga para traer el nombre, teléfonos, dirección y email del nuevo cliente.
El cliente SN (sin nombre) es válido como cliente genérico — se usa por defecto al crear el proyecto.

Agregar artículo

La barra azul claro debajo de la cabecera permite agregar artículos al proyecto. Hay dos vías:

A) Desde el buscador MBA-002

  1. Seleccionar bodega primero en el combo (obligatorio).
  2. Pulsar la al lado del campo Código.
  3. Buscar por código, código de barra, nombre o categoría.
  4. Seleccionar uno o varios artículos:
    • Uno solo → llena el form para que ajustes la cantidad y le des Agregar.
    • Varios → se agregan todos al proyecto con la cantidad puesta en el modal.

B) Tipeando el código directo

  1. Escribir el código en el campo Código y pulsar Enter.
  2. Si existe, se autocompleta nombre y costo.
  3. Ingresar la cantidad y pulsar Enter o el botón Agregar.
Si el combo de bodega está vacío al intentar agregar, parpadea con un halo naranja y muestra un toast indicándolo.

Validaciones del backend

  • El proyecto debe estar en estado Activo.
  • El artículo debe existir (estados 1 o 2).
  • La bodega debe existir.
  • Cantidad y costo > 0.
  • Para artículos de inventario (no servicios), debe haber stock suficiente en la bodega seleccionada.

Editar / Eliminar línea

En la tabla de artículos, cada fila tiene dos botones en la columna Acc.:

  • Editar: carga los datos de la línea en el form de arriba; al modificar la cantidad y dar Agregar, se reversará la cantidad anterior y se consumirá la nueva (todo en una sola operación atómica).
  • Eliminar: borra la línea y devuelve el stock a la bodega. Pide confirmación.
Atención: editar la cantidad afecta inventario inmediatamente — no es un cambio diferido.

Presupuesto y disponible

El campo Presupuesto en la cabecera permite establecer el monto máximo planeado para el proyecto. El sistema calcula automáticamente:

  • Costo: suma de ArticuloTotal de todas las líneas (cantidad × costo unitario).
  • Disponible: Presupuesto − Costo. Si es negativo, indica que el proyecto excedió el presupuesto.

Estos valores se actualizan en vivo en la barra de totales inferior cada vez que se agrega o elimina una línea.

Eliminar proyecto

El botón rojo Eliminar en la barra de título del editor borra el proyecto completo. Este es un proceso destructivo:

  1. Pide doble confirmación.
  2. Para cada artículo en el proyecto: reversa el inventario (devuelve la cantidad a la bodega original).
  3. Borra todas las líneas (ProyectoHija).
  4. Borra el proyecto (ProyectoMadre).
  5. Redirige al listado.
No hay "papelera" — la eliminación es definitiva. Si se interrumpe a media operación pueden quedar líneas reversadas pero sin proyecto eliminado; en ese caso revisar los movimientos de inventario manualmente.

También se pueden eliminar varios proyectos a la vez desde el listado PR-001 usando los checkboxes y el botón Eliminar.

Estados

CódigoNombreColorComportamiento
1ActivoVerdePermite agregar/editar artículos y datos.
2TerminadoGrisSolo lectura — proyecto cerrado.
3NuloRojoAnulado — no afecta cálculos.
Hoy el cambio de estado se hace por SQL directo (legacy VB6). Próximamente se añadirá UI de "Terminar" y "Anular".

Impacto en inventario

Cada acción del proyecto que toca artículos afecta el módulo de inventario usando los tipos de documento estándar de FactuPOS:

AcciónTipo Mov.SignoDocumento
Agregar artículoNSI (Nota Salida)− (rebaja)9900...{ID}
Editar cantidad: reversa anteriorNEI (Nota Entrada)+ (devuelve)9900...{ID}
Editar cantidad: aplicar nuevaNSI (Nota Salida)− (rebaja)9900...{ID}
Eliminar línea / proyectoNEI (Nota Entrada)+ (devuelve)9900...{ID}

El número de documento se forma con prefijo 99 seguido del ID del proyecto, padded a 20 dígitos. Esto permite trazabilidad: en el Kardex se ve qué proyecto consumió cada movimiento.

Los servicios (naturaleza = 2) no afectan inventario — se registran en el proyecto pero no rebajan stock.

Permisos

CódigoDescripciónAplica
120Acceso al módulo de ProyectosListar / Crear / Editar / Agregar artículos / Eliminar

Sin este permiso, el sistema redirige al menú principal automáticamente.

Errores comunes

  • "Seleccioná una bodega primero" + combo parpadea → escogé una bodega del combo antes de buscar/agregar artículos.
  • "Artículo no existe o inactivo" → verificá que el código sea correcto y que el artículo no esté en estado eliminado/descontinuado.
  • "No hay existencia para el artículo" → la bodega seleccionada no tiene stock suficiente. Cambiá de bodega o ajustá la cantidad.
  • "El proyecto no está activo" → el proyecto está Terminado o Nulo; reactivar requiere SQL directo.
  • Toast rojo con SQL → cuando aparece un error de base de datos, el toast no se cierra solo y trae botón Copiar para enviárselo al equipo de soporte.