Publier Globinours 1.0.0-rc.3
This commit is contained in:
parent
ea8c24d622
commit
9a2b4068da
325 changed files with 38230 additions and 20 deletions
25
migrations/065_pricing_and_animal_expenses.sql
Normal file
25
migrations/065_pricing_and_animal_expenses.sql
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
CREATE TABLE clinic_discount_rules (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT, clinic_contact_id INTEGER NOT NULL,
|
||||
discount_group TEXT NOT NULL, label TEXT NOT NULL, percent REAL NOT NULL DEFAULT 0 CHECK(percent BETWEEN 0 AND 100),
|
||||
UNIQUE(clinic_contact_id,discount_group), FOREIGN KEY(clinic_contact_id) REFERENCES directory_contacts(id) ON DELETE CASCADE
|
||||
);
|
||||
CREATE TABLE clinic_tariffs (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT, clinic_contact_id INTEGER NOT NULL, label TEXT NOT NULL COLLATE NOCASE,
|
||||
category TEXT NOT NULL DEFAULT 'other', discount_group TEXT NOT NULL DEFAULT 'act', unit_label TEXT NOT NULL DEFAULT 'acte',
|
||||
medication_id INTEGER, vaccine_id INTEGER, dewormer_id INTEGER, amount_cents INTEGER NOT NULL CHECK(amount_cents>=0),
|
||||
active INTEGER NOT NULL DEFAULT 1 CHECK(active IN(0,1)), notes TEXT, created_at TEXT NOT NULL DEFAULT(datetime('now')), updated_at TEXT NOT NULL DEFAULT(datetime('now')),
|
||||
FOREIGN KEY(clinic_contact_id) REFERENCES directory_contacts(id) ON DELETE CASCADE,
|
||||
FOREIGN KEY(medication_id) REFERENCES ref_medications(id) ON DELETE SET NULL,
|
||||
FOREIGN KEY(vaccine_id) REFERENCES ref_vaccines(id) ON DELETE SET NULL,
|
||||
FOREIGN KEY(dewormer_id) REFERENCES ref_dewormers(id) ON DELETE SET NULL, UNIQUE(clinic_contact_id,label)
|
||||
);
|
||||
CREATE INDEX idx_clinic_tariffs_clinic ON clinic_tariffs(clinic_contact_id,active,label);
|
||||
CREATE TABLE animal_expenses (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT, animal_id INTEGER NOT NULL, clinic_contact_id INTEGER, tariff_id INTEGER,
|
||||
source_type TEXT, source_id INTEGER, label TEXT NOT NULL, occurred_on TEXT NOT NULL, quantity REAL NOT NULL DEFAULT 1 CHECK(quantity>0),
|
||||
catalog_unit_cents INTEGER NOT NULL CHECK(catalog_unit_cents>=0), discount_percent REAL NOT NULL DEFAULT 0,
|
||||
total_cents INTEGER NOT NULL CHECK(total_cents>=0), notes TEXT, created_by INTEGER, created_at TEXT NOT NULL DEFAULT(datetime('now')),
|
||||
FOREIGN KEY(animal_id) REFERENCES animals(id) ON DELETE CASCADE, FOREIGN KEY(clinic_contact_id) REFERENCES directory_contacts(id) ON DELETE SET NULL,
|
||||
FOREIGN KEY(tariff_id) REFERENCES clinic_tariffs(id) ON DELETE SET NULL, FOREIGN KEY(created_by) REFERENCES users(id) ON DELETE SET NULL
|
||||
);
|
||||
CREATE INDEX idx_animal_expenses_animal_date ON animal_expenses(animal_id,occurred_on);
|
||||
Loading…
Add table
Add a link
Reference in a new issue