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
52
migrations/087_surgeries_and_accounting.sql
Normal file
52
migrations/087_surgeries_and_accounting.sql
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
CREATE TABLE animal_surgeries (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
animal_id INTEGER NOT NULL REFERENCES animals(id) ON DELETE CASCADE,
|
||||
category TEXT NOT NULL,
|
||||
procedure_name TEXT NOT NULL,
|
||||
surgery_date TEXT NOT NULL,
|
||||
status TEXT NOT NULL DEFAULT 'completed' CHECK(status IN ('planned','completed','cancelled')),
|
||||
clinic_contact_id INTEGER REFERENCES directory_contacts(id) ON DELETE SET NULL,
|
||||
veterinarian_contact_id INTEGER REFERENCES directory_contacts(id) ON DELETE SET NULL,
|
||||
tariff_id INTEGER REFERENCES clinic_tariffs(id) ON DELETE SET NULL,
|
||||
amount_cents INTEGER CHECK(amount_cents IS NULL OR amount_cents>=0),
|
||||
anesthesia TEXT, notes TEXT, follow_up TEXT,
|
||||
created_by INTEGER REFERENCES users(id) ON DELETE SET NULL,
|
||||
created_at TEXT NOT NULL DEFAULT(datetime('now')), updated_at TEXT NOT NULL DEFAULT(datetime('now'))
|
||||
);
|
||||
CREATE INDEX idx_animal_surgeries_animal_date ON animal_surgeries(animal_id,surgery_date);
|
||||
|
||||
CREATE TABLE accounting_invoices (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
vendor_contact_id INTEGER REFERENCES directory_contacts(id) ON DELETE SET NULL,
|
||||
reference TEXT NOT NULL COLLATE NOCASE,
|
||||
invoice_date TEXT NOT NULL, due_date TEXT,
|
||||
document_type TEXT NOT NULL DEFAULT 'invoice' CHECK(document_type IN ('invoice','credit','adjustment')),
|
||||
status TEXT NOT NULL DEFAULT 'to_pay' CHECK(status IN ('to_pay','partial','paid','disputed','cancelled','credit')),
|
||||
payment_method TEXT CHECK(payment_method IS NULL OR payment_method IN ('transfer','card','check','cash','direct_debit','other')),
|
||||
paid_on TEXT,
|
||||
total_ht_cents INTEGER,
|
||||
total_ttc_cents INTEGER NOT NULL,
|
||||
amount_due_cents INTEGER,
|
||||
notes TEXT, source TEXT,
|
||||
original_filename TEXT, stored_filename TEXT, mime_type TEXT, file_size INTEGER,
|
||||
created_by INTEGER REFERENCES users(id) ON DELETE SET NULL,
|
||||
created_at TEXT NOT NULL DEFAULT(datetime('now')), updated_at TEXT NOT NULL DEFAULT(datetime('now')),
|
||||
UNIQUE(vendor_contact_id,reference)
|
||||
);
|
||||
CREATE INDEX idx_accounting_invoice_date ON accounting_invoices(invoice_date,status);
|
||||
CREATE INDEX idx_accounting_invoice_vendor ON accounting_invoices(vendor_contact_id,invoice_date);
|
||||
|
||||
ALTER TABLE role_permissions RENAME TO role_permissions_legacy;
|
||||
CREATE TABLE role_permissions (
|
||||
role TEXT NOT NULL CHECK(role IN ('admin','responsable','benevole','lecture')),
|
||||
module TEXT NOT NULL CHECK(module IN ('dashboard','animals','medical','care','directory','agenda','statistics','administrative','accounting','grants')),
|
||||
can_view INTEGER NOT NULL DEFAULT 0 CHECK(can_view IN (0,1)),
|
||||
can_edit INTEGER NOT NULL DEFAULT 0 CHECK(can_edit IN (0,1)),
|
||||
updated_by INTEGER REFERENCES users(id) ON DELETE SET NULL,
|
||||
updated_at TEXT NOT NULL DEFAULT(datetime('now')),
|
||||
PRIMARY KEY(role,module)
|
||||
);
|
||||
INSERT INTO role_permissions SELECT * FROM role_permissions_legacy;
|
||||
DROP TABLE role_permissions_legacy;
|
||||
INSERT INTO role_permissions(role,module,can_view,can_edit) VALUES
|
||||
('admin','accounting',1,1),('responsable','accounting',1,1),('benevole','accounting',0,0),('lecture','accounting',0,0);
|
||||
Loading…
Add table
Add a link
Reference in a new issue