Skip to main content

Requisicion

Main requisition entity representing a procurement request.
interface Requisicion {
  id: string
  fecha_recepcion: string
  proveedor_id: string
  producto_id: string
  presentacion_id: string
  destino_id: string
  estatus_id: string
  cantidad_solicitada: number
  unidad_cantidad_id: string
  numero_oc: string | null
  requisicion_numero: string | null
  fecha_oc: string | null
  fecha_solicitada_entrega: string | null
  fecha_confirmada: string | null
  fecha_entregado: string | null
  cantidad_entregada: number | null
  factura_remision: string | null
  comentarios: string | null
  created_by: string
  created_at: string
  updated_at: string
  // Joined relations
  proveedor?: Proveedor
  producto?: Producto
  presentacion?: Presentacion
  destino?: Destino
  estatus?: Estatus
  unidad_cantidad?: Unidad
}

Fields

id
string
Unique identifier (UUID)
fecha_recepcion
string
Reception date (ISO 8601 format: YYYY-MM-DD)
proveedor_id
string
Foreign key to supplier (proveedores table)
producto_id
string
Foreign key to product (productos table)
presentacion_id
string
Foreign key to presentation (presentaciones table)
destino_id
string
Foreign key to destination (destinos table)
estatus_id
string
Foreign key to status (estatus table)
cantidad_solicitada
number
Requested quantity
unidad_cantidad_id
string
Foreign key to unit of measurement (unidades table)
numero_oc
string | null
Purchase order number (optional)
requisicion_numero
string | null
Requisition number (optional)
fecha_oc
string | null
Purchase order date (ISO 8601 format, optional)
fecha_solicitada_entrega
string | null
Requested delivery date (ISO 8601 format, optional)
fecha_confirmada
string | null
Confirmed delivery date (ISO 8601 format, optional)
fecha_entregado
string | null
Actual delivery date (ISO 8601 format, optional)
cantidad_entregada
number | null
Delivered quantity (optional)
factura_remision
string | null
Invoice or remission number (optional)
comentarios
string | null
Additional comments (optional)
created_by
string
User ID of the creator (foreign key to profiles)
created_at
string
Timestamp of creation (ISO 8601 format)
updated_at
string
Timestamp of last update (ISO 8601 format)

Joined Relations

These fields are populated when using Supabase joins:
proveedor
Proveedor
Populated supplier object
producto
Producto
Populated product object
presentacion
Presentacion
Populated presentation object
destino
Destino
Populated destination object
estatus
Estatus
Populated status object
unidad_cantidad
Unidad
Populated unit object

RequisicionFormData

Form data structure for creating or updating requisitions. Similar to Requisicion but excludes system-managed fields.
interface RequisicionFormData {
  fecha_recepcion: string
  proveedor_id: string
  producto_id: string
  presentacion_id: string
  destino_id: string
  estatus_id: string
  cantidad_solicitada: number
  unidad_cantidad_id: string
  numero_oc?: string | null
  requisicion_numero?: string | null
  fecha_oc?: string | null
  fecha_solicitada_entrega?: string | null
  fecha_confirmada?: string | null
  fecha_entregado?: string | null
  cantidad_entregada?: number | null
  factura_remision?: string | null
  comentarios?: string | null
}

Required Fields

fecha_recepcion
string
required
Reception date
proveedor_id
string
required
Supplier ID
producto_id
string
required
Product ID
presentacion_id
string
required
Presentation ID
destino_id
string
required
Destination ID
estatus_id
string
required
Status ID
cantidad_solicitada
number
required
Requested quantity
unidad_cantidad_id
string
required
Unit ID

Optional Fields

All other fields from Requisicion are optional in the form data.

RequisicionFilters

Filter criteria for querying requisitions.
interface RequisicionFilters {
  proveedor_id?: string
  destino_id?: string
  estatus_id?: string
  fecha_desde?: string
  fecha_hasta?: string
  search?: string
}

Fields

proveedor_id
string
Filter by supplier ID
destino_id
string
Filter by destination ID
estatus_id
string
Filter by status ID
fecha_desde
string
Start date for date range filter (ISO 8601: YYYY-MM-DD)
fecha_hasta
string
End date for date range filter (ISO 8601: YYYY-MM-DD)
Search term (implementation varies by usage)

Example

import type { RequisicionFilters } from '@/types'
import { getRequisiciones } from '@/lib/actions/requisiciones'

const filters: RequisicionFilters = {
  proveedor_id: 'supplier-uuid',
  fecha_desde: '2026-01-01',
  fecha_hasta: '2026-03-31',
  estatus_id: 'status-uuid'
}

const result = await getRequisiciones(filters)

CalendarEvent

Event structure for calendar visualization of requisitions.
interface CalendarEvent {
  id: string
  title: string
  start: string
  backgroundColor: string
  borderColor: string
  extendedProps: {
    requisicion: Requisicion
    proveedor_nombre: string
    estatus_nombre: string
    estatus_color: string
  }
}

Fields

id
string
Event ID (typically the requisition ID)
title
string
Event title displayed on calendar
start
string
Event date (ISO 8601 format)
backgroundColor
string
Background color hex code (e.g., ‘#FF5733’)
borderColor
string
Border color hex code
extendedProps
object
Additional event data

Example

import type { CalendarEvent, Requisicion } from '@/types'

function mapRequisicionToEvent(req: Requisicion): CalendarEvent {
  return {
    id: req.id,
    title: `${req.proveedor?.nombre} - ${req.producto?.nombre}`,
    start: req.fecha_recepcion,
    backgroundColor: req.estatus?.color_hex || '#3788d8',
    borderColor: req.estatus?.color_hex || '#3788d8',
    extendedProps: {
      requisicion: req,
      proveedor_nombre: req.proveedor?.nombre || '',
      estatus_nombre: req.estatus?.nombre || '',
      estatus_color: req.estatus?.color_hex || '#3788d8'
    }
  }
}

Build docs developers (and LLMs) love