* fix: prevent credit notes from entering payment flow * fix: persist and display customer personal numbers * feat: configure automatic invoice reminder days * fix: issue credit notes through send flow * chore: add repository agent guidance * feat(mcp): route tools across user companies * fix(articles): delete unused register entries * feat(invoices): improve issued invoice actions * feat(supplier-invoices): retain uploaded source documents * docs: record implementation decisions * feat: enhance customer personal number handling and validation - Updated CustomerForm to allow personal numbers in the format of "********-1234" for individual customers. - Added validation to ensure personal numbers are only accepted for individual customers in CreateCustomerSchema. - Implemented masking and encryption for personal numbers to enhance data protection. - Introduced new utility functions for masking and encrypting personal numbers. - Added database migration to enforce unique constraints on credit note relationships and prevent duplicate entries. - Enhanced error handling and logging for credit note issuance and invoice processing. - Updated tests to cover new credit note creation guards and personal number handling. * test: enhance list companies test with supabase query mocks
27 lines
1.2 KiB
SQL
27 lines
1.2 KiB
SQL
-- Per-company schedule for the three automatic customer invoice reminders.
|
|
-- Defaults preserve the existing 15, 30, and 45 days overdue behavior.
|
|
|
|
ALTER TABLE public.company_settings
|
|
ADD COLUMN IF NOT EXISTS reminder_days_level_1 SMALLINT NOT NULL DEFAULT 15,
|
|
ADD COLUMN IF NOT EXISTS reminder_days_level_2 SMALLINT NOT NULL DEFAULT 30,
|
|
ADD COLUMN IF NOT EXISTS reminder_days_level_3 SMALLINT NOT NULL DEFAULT 45;
|
|
|
|
ALTER TABLE public.company_settings
|
|
ADD CONSTRAINT company_settings_reminder_days_check
|
|
CHECK (
|
|
reminder_days_level_1 BETWEEN 1 AND 365
|
|
AND reminder_days_level_2 BETWEEN 1 AND 365
|
|
AND reminder_days_level_3 BETWEEN 1 AND 365
|
|
AND reminder_days_level_1 < reminder_days_level_2
|
|
AND reminder_days_level_2 < reminder_days_level_3
|
|
) NOT VALID;
|
|
|
|
COMMENT ON COLUMN public.company_settings.reminder_days_level_1
|
|
IS 'Days overdue before the first automatic customer invoice reminder.';
|
|
COMMENT ON COLUMN public.company_settings.reminder_days_level_2
|
|
IS 'Days overdue before the second automatic customer invoice reminder.';
|
|
COMMENT ON COLUMN public.company_settings.reminder_days_level_3
|
|
IS 'Days overdue before the final automatic customer invoice reminder.';
|
|
|
|
NOTIFY pgrst, 'reload schema';
|