48 lines
2.2 KiB
JavaScript
48 lines
2.2 KiB
JavaScript
const db = require('./backend/db-sqlite');
|
|||
|
|
async function fix() {
|
||
|
|
const fixes = [
|
||
|
|
// Purchase requests
|
||
|
|
"ALTER TABLE purchase_requests ADD COLUMN applicant TEXT DEFAULT ''",
|
||
|
|
"ALTER TABLE purchase_requests ADD COLUMN department TEXT DEFAULT ''",
|
||
|
|
"ALTER TABLE purchase_requests ADD COLUMN total_amount REAL DEFAULT 0",
|
||
|
|
"ALTER TABLE purchase_requests ADD COLUMN items TEXT DEFAULT '[]'",
|
||
|
|
// Purchase orders
|
||
|
|
"ALTER TABLE purchase_orders ADD COLUMN quotation_url TEXT DEFAULT ''",
|
||
|
|
"ALTER TABLE purchase_orders ADD COLUMN quotation_no TEXT DEFAULT ''",
|
||
|
|
"ALTER TABLE purchase_orders ADD COLUMN delivery_date TEXT DEFAULT ''",
|
||
|
|
"ALTER TABLE purchase_orders ADD COLUMN payment_terms TEXT DEFAULT ''",
|
||
|
|
// Payment plans
|
||
|
|
"ALTER TABLE payment_plans ADD COLUMN planned_percentage REAL DEFAULT 0",
|
||
|
|
"ALTER TABLE payment_plans ADD COLUMN actual_amount REAL DEFAULT 0",
|
||
|
|
"ALTER TABLE payment_plans ADD COLUMN payment_method TEXT DEFAULT ''",
|
||
|
|
// Products
|
||
|
|
"ALTER TABLE products ADD COLUMN source TEXT DEFAULT ''",
|
||
|
|
"ALTER TABLE products ADD COLUMN supplier TEXT DEFAULT ''",
|
||
|
|
"ALTER TABLE products ADD COLUMN location TEXT DEFAULT ''",
|
||
|
|
// Customers - check if is_default exists in a view
|
||
|
|
"ALTER TABLE customers ADD COLUMN is_default INTEGER DEFAULT 0",
|
||
|
|
// Reimbursements
|
||
|
|
"ALTER TABLE reimbursements ADD COLUMN items TEXT DEFAULT '[]'",
|
||
|
|
"ALTER TABLE reimbursements ADD COLUMN total_amount REAL DEFAULT 0",
|
||
|
|
// Budget projects
|
||
|
|
"ALTER TABLE budget_projects ADD COLUMN created_by INTEGER",
|
||
|
|
// Projects - add POST support columns
|
||
|
|
"ALTER TABLE projects ADD COLUMN contract_no TEXT DEFAULT ''",
|
||
|
|
"ALTER TABLE projects ADD COLUMN project_type TEXT DEFAULT ''",
|
||
|
|
"ALTER TABLE projects ADD COLUMN location TEXT DEFAULT ''",
|
||
|
|
];
|
||
|
|
|
||
|
|
for (const sql of fixes) {
|
||
|
|
try { await db.query(sql); console.log('OK:', sql.substring(0, 80)); }
|
||
|
|
catch(e) {
|
||
|
|
const msg = e.message || '';
|
||
|
|
if (msg.includes('duplicate') || msg.includes('already exists')) {
|
||
|
|
console.log('SKIP:', sql.substring(0, 80));
|
||
|
|
} else {
|
||
|
|
console.log('ERR:', msg.substring(0, 100));
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
process.exit();
|
||
|
|
}
|
||
|
|
fix();
|