CREATE TABLE IF NOT EXISTS despachos (
id uuid DEFAULT gen_random_uuid() PRIMARY KEY,
numero_guia text UNIQUE NOT NULL,
fecha date NOT NULL,
cliente text NOT NULL,
producto text NOT NULL,
calidad text,
kg_total numeric(8,2),
n_bidones integer,
precio_usd numeric(8,4),
tipo_cambio numeric(10,2),
valor_usd numeric(12,4),
valor_clp numeric(14,0),
estado text CHECK (estado IN ('pendiente','despachado','anulado')) DEFAULT 'pendiente',
chofer text,
patente text,
observaciones text,
temporada integer,
created_at timestamptz DEFAULT now()
);
ALTER TABLE despachos ENABLE ROW LEVEL SECURITY;
DROP POLICY IF EXISTS "allow all" ON despachos;
CREATE POLICY "allow all" ON despachos FOR ALL USING (true) WITH CHECK (true);
Despachos del mes
—
Kg despachados
—
USD total
—
CLP total
—
🚚 Registrar Despacho
Total USD
—
Total CLP
—
Precio CLP/kg
—
📋 Registro de Despachos
Guía
Fecha
Cliente
Producto
Calidad
Kg
USD/kg
Total USD
Total CLP
Estado
Acciones
Cargando...
💰 Ventas USD
Boletus—
Lactarius—
Arándanos—
Total USD—
🏦 Ventas CLP
Boletus—
Lactarius—
Arándanos—
Total CLP—
⚖️ Kg despachados
Boletus—
Lactarius—
Arándanos—
Total kg—
📦 N° Despachos
Boletus—
Lactarius—
Arándanos—
Total—
🍄 Lactarius — Despachos por calidad
👥 Top clientes (por kg)
🗄 Tabla requerida — Facturas de Ventas
CREATE TABLE IF NOT EXISTS ventas_facturas (
id uuid DEFAULT gen_random_uuid() PRIMARY KEY,
despacho_id uuid REFERENCES despachos(id) ON DELETE CASCADE,
numero_factura text,
fecha_factura date NOT NULL DEFAULT CURRENT_DATE,
modo text CHECK (modo IN ('contado','credito')) DEFAULT 'contado',
monto numeric(14,0),
estado_pago text CHECK (estado_pago IN ('pagado','pendiente')) DEFAULT 'pendiente',
fecha_pago date,
observaciones text,
created_at timestamptz DEFAULT now()
);
ALTER TABLE ventas_facturas ENABLE ROW LEVEL SECURITY;
DROP POLICY IF EXISTS "allow all" ON ventas_facturas;
CREATE POLICY "allow all" ON ventas_facturas FOR ALL USING (true) WITH CHECK (true);