bmc_hub/migrations/245_ordre_export_receipt.sql

33 lines
1.5 KiB
PL/PgSQL

-- Persist the evidence needed to reconcile an order draft with e-conomic.
BEGIN;
ALTER TABLE ordre_drafts
ADD COLUMN IF NOT EXISTS economic_export_id VARCHAR(120),
ADD COLUMN IF NOT EXISTS economic_order_url TEXT,
ADD COLUMN IF NOT EXISTS exported_economic_customer_number VARCHAR(80),
ADD COLUMN IF NOT EXISTS exported_currency VARCHAR(3),
ADD COLUMN IF NOT EXISTS exported_layout_number INTEGER,
ADD COLUMN IF NOT EXISTS exported_net_amount NUMERIC(18,2),
ADD COLUMN IF NOT EXISTS export_request_json JSONB,
ADD COLUMN IF NOT EXISTS export_response_json JSONB,
ADD COLUMN IF NOT EXISTS exported_created_products JSONB NOT NULL DEFAULT '[]'::jsonb,
ADD COLUMN IF NOT EXISTS last_export_error TEXT,
ADD COLUMN IF NOT EXISTS exported_by_user_id INTEGER REFERENCES users(user_id) ON DELETE SET NULL;
ALTER TABLE ordre_drafts DROP CONSTRAINT IF EXISTS ordre_drafts_sync_status_check;
ALTER TABLE ordre_drafts ADD CONSTRAINT ordre_drafts_sync_status_check
CHECK (sync_status IN ('pending', 'uncertain', 'exported', 'failed', 'posted', 'paid'));
UPDATE ordre_drafts
SET sync_status = 'uncertain',
last_export_error = COALESCE(last_export_error, 'Tidligere eksport: eksport markeret gennemført uden gemt e-conomic-ordrenummer; afstem manuelt før ny eksport')
WHERE sync_status IN ('exported', 'posted', 'paid')
AND economic_order_number IS NULL;
UPDATE ordre_drafts
SET title = 'Abonnementer'
WHERE invoice_aggregate_key LIKE 'also-cloud-%'
AND title LIKE 'ALSO Cloud %';
COMMIT;