Skip to main content

Overview

The Design Request module allows users to create, track, and manage design requests from reception through delivery. It provides comprehensive workflow management with priorities, states, time tracking, and task assignments. Controller: DesignRequestController (app/Http/Controllers/DesignRequestController.php:19)
Model: DesignRequest (app/Models/DesignRequest.php:10)
Vue Component: resources/js/Pages/Design/Request.vue

Key Features

Request Management

Create and track design requests with detailed metadata including dates, priorities, and assignments

Workflow States

Track requests through multiple states with time-based status indicators

Task Management

Break down requests into manageable tasks with individual tracking

Multi-User Assignment

Assign designers, sellers, and customers to each request

Data Model

The DesignRequest model includes the following relationships:
protected $fillable = [
    'comments', 'reception_date', 'tentative_date', 'real_date', 
    'delivery_date', 'customer_approved_date', 'estimated_arrival_sherpa_date',
    'observations', 'priority_id', 'designer_id', 'seller_document', 
    'customer_id', 'time_state_id', 'state_id'
];

Relationships

  • priority: DesignPriority - Request priority level
  • designer: User - Assigned designer
  • seller: Seller - Associated seller
  • customer: User - Customer requesting design
  • time_state: DesignTimeState - Time-based state (on time, delayed, etc.)
  • state: DesignState - Workflow state
  • tasks: DesignTask[] - Related tasks

API Endpoints

List Design Requests

GET /design/request
Returns all design requests with priorities, states, designers, sellers, and customers. Response includes:
  • All design requests
  • Available priorities
  • Available time states
  • Available workflow states
  • List of designers (users with type=‘designer’)
  • List of sellers
  • Customers (local and external from SSF database)
Implementation: DesignRequestController.php:24-58

Create Design Request

POST /design/request
Request Body:
{
  "priority_id": 1,
  "designer_id": 5,
  "seller_document": "123456",
  "customer_id": 10,
  "comments": "Design request details",
  "reception_date": "2026-03-01",
  "tentative_date": "2026-03-10",
  "real_date": "2026-03-08",
  "delivery_date": "2026-03-15",
  "customer_approved_date": "2026-03-12",
  "estimated_arrival_sherpa_date": "2026-03-20",
  "time_state_id": 1,
  "state_id": 2,
  "observations": "Additional notes"
}
Response: JSON array of all design requests (200) or error message (500) Implementation: DesignRequestController.php:63-89

Update Design Request

PUT /design/request/{id}
Request Body:
{
  "name": "Updated request name"
}
Implementation: DesignRequestController.php:94-107

Update Request State

POST /design/request/update-state
Special endpoint to update specific state properties dynamically. Request Body:
{
  "id": 1,
  "property": "state_id",
  "state_id": 3
}
Implementation: DesignRequestController.php:168-177

View Request Details

GET /design/request/{id}
Returns detailed view of a single design request with all related data. Implementation: DesignRequestController.php:128-163

Delete Design Request

DELETE /design/request/{id}
Implementation: DesignRequestController.php:112-123

User Interface

The design request interface includes:

Main Table View

  • Columns: ID, Priority, Designer, Seller, Customer, Comments, Reception Date, Tentative Date, Real Date, Delivery Date, Customer Approval Date, Sherpa Date, Time State, State, Observations, Actions
  • Actions: View details, Edit, Delete
  • Create Button: Opens modal to create new request

Request Details View

Displays comprehensive information including:
  • All request metadata
  • Associated tasks
  • State history
  • Assignment information

Design Priorities

Manage priority levels for design requests

Design States

Configure workflow states (e.g., Draft, In Progress, Review, Complete)

Design Time States

Track time-based status (On Time, Delayed, Critical)

Design Tasks

Break down requests into actionable tasks

Customer Data Sources

The module integrates customer data from two sources:
  1. Local Customers: From GBapp.dbo.users table (type=‘customer’)
  2. External Customers: From SSF database (un_tercegener table) where:
    • eobcodigo = 'AC'
    • tgeesclie = 'S'
    • Active clients only
Customers are grouped by type (‘local’ or ‘external’) and ordered by name for easy selection.

Workflow Example

1

Create Request

Sales team creates a design request with customer information, priority, and tentative delivery date.
2

Assign Designer

Manager assigns the request to an available designer and sets the workflow state.
3

Create Tasks

Designer breaks down the request into specific tasks for tracking progress.
4

Track Progress

Update time state and workflow state as work progresses. Track actual dates vs. tentative dates.
5

Customer Approval

Record customer approval date when design is accepted.
6

Delivery & Sherpa

Track final delivery date and estimated Sherpa arrival date.

Permissions

Access to design request functionality is controlled through the route middleware in routes/web.php:164-173.
All design request routes are protected by the auth:sanctum middleware and require email verification.

Build docs developers (and LLMs) love