113 lines
5.4 KiB
JavaScript
113 lines
5.4 KiB
JavaScript
const db = require('./backend/db-sqlite');
|
|
async function fix() {
|
|
const fixes = [
|
|
// logistics_companies - add missing columns
|
|
"ALTER TABLE logistics_companies ADD COLUMN code TEXT DEFAULT ''",
|
|
"ALTER TABLE logistics_companies ADD COLUMN status TEXT DEFAULT 'active'",
|
|
"ALTER TABLE logistics_companies ADD COLUMN type TEXT DEFAULT ''",
|
|
"ALTER TABLE logistics_companies ADD COLUMN country TEXT DEFAULT ''",
|
|
|
|
// payment_plans - add missing columns
|
|
"ALTER TABLE payment_plans ADD COLUMN planned_date TEXT DEFAULT ''",
|
|
"ALTER TABLE payment_plans ADD COLUMN actual_date TEXT DEFAULT ''",
|
|
"ALTER TABLE payment_plans ADD COLUMN description TEXT DEFAULT ''",
|
|
"ALTER TABLE payment_plans ADD COLUMN status TEXT DEFAULT 'pending'",
|
|
"ALTER TABLE payment_plans ADD COLUMN name TEXT DEFAULT ''",
|
|
"ALTER TABLE payment_plans ADD COLUMN amount REAL DEFAULT 0",
|
|
"ALTER TABLE payment_plans ADD COLUMN payee TEXT DEFAULT ''",
|
|
"ALTER TABLE payment_plans ADD COLUMN payer TEXT DEFAULT ''",
|
|
"ALTER TABLE payment_plans ADD COLUMN currency TEXT DEFAULT 'CNY'",
|
|
|
|
// return_records table
|
|
`CREATE TABLE IF NOT EXISTS return_records (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
return_id INTEGER,
|
|
product_name TEXT DEFAULT '',
|
|
quantity REAL DEFAULT 0,
|
|
unit TEXT DEFAULT '',
|
|
unit_price REAL DEFAULT 0,
|
|
amount REAL DEFAULT 0,
|
|
remark TEXT DEFAULT '',
|
|
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
)`,
|
|
|
|
// returns - add missing columns
|
|
"ALTER TABLE returns ADD COLUMN total_amount REAL DEFAULT 0",
|
|
"ALTER TABLE returns ADD COLUMN items TEXT DEFAULT '[]'",
|
|
"ALTER TABLE returns ADD COLUMN return_date TEXT DEFAULT ''",
|
|
"ALTER TABLE returns ADD COLUMN type TEXT DEFAULT ''",
|
|
|
|
// payment_nodes - add missing columns
|
|
"ALTER TABLE payment_nodes ADD COLUMN project_id INTEGER",
|
|
"ALTER TABLE payment_nodes ADD COLUMN planned_amount REAL DEFAULT 0",
|
|
"ALTER TABLE payment_nodes ADD COLUMN actual_amount REAL DEFAULT 0",
|
|
"ALTER TABLE payment_nodes ADD COLUMN status TEXT DEFAULT 'pending'",
|
|
"ALTER TABLE payment_nodes ADD COLUMN planned_date TEXT DEFAULT ''",
|
|
"ALTER TABLE payment_nodes ADD COLUMN actual_date TEXT DEFAULT ''",
|
|
"ALTER TABLE payment_nodes ADD COLUMN description TEXT DEFAULT ''",
|
|
"ALTER TABLE payment_nodes ADD COLUMN contract_id INTEGER",
|
|
"ALTER TABLE payment_nodes ADD COLUMN payment_request_id INTEGER",
|
|
|
|
// payment_records - add missing columns
|
|
"ALTER TABLE payment_records ADD COLUMN project_id INTEGER",
|
|
"ALTER TABLE payment_records ADD COLUMN payment_node_id INTEGER",
|
|
"ALTER TABLE payment_records ADD COLUMN amount REAL DEFAULT 0",
|
|
"ALTER TABLE payment_records ADD COLUMN amount_cny REAL DEFAULT 0",
|
|
"ALTER TABLE payment_records ADD COLUMN currency TEXT DEFAULT 'CNY'",
|
|
"ALTER TABLE payment_records ADD COLUMN exchange_rate REAL DEFAULT 1",
|
|
"ALTER TABLE payment_records ADD COLUMN payee TEXT DEFAULT ''",
|
|
"ALTER TABLE payment_records ADD COLUMN payer TEXT DEFAULT ''",
|
|
"ALTER TABLE payment_records ADD COLUMN method TEXT DEFAULT ''",
|
|
"ALTER TABLE payment_records ADD COLUMN status TEXT DEFAULT 'completed'",
|
|
"ALTER TABLE payment_records ADD COLUMN remark TEXT DEFAULT ''",
|
|
"ALTER TABLE payment_records ADD COLUMN payment_date TEXT DEFAULT ''",
|
|
"ALTER TABLE payment_records ADD COLUMN voucher_no TEXT DEFAULT ''",
|
|
|
|
// finance_stats - ensure table
|
|
`CREATE TABLE IF NOT EXISTS finance_stats (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
type TEXT DEFAULT '',
|
|
amount REAL DEFAULT 0,
|
|
month TEXT DEFAULT '',
|
|
year INTEGER DEFAULT 0,
|
|
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
)`,
|
|
|
|
// purchase_orders - add more missing columns
|
|
"ALTER TABLE purchase_orders ADD COLUMN items TEXT DEFAULT '[]'",
|
|
"ALTER TABLE purchase_orders ADD COLUMN total_amount REAL DEFAULT 0",
|
|
"ALTER TABLE purchase_orders ADD COLUMN status TEXT DEFAULT 'pending'",
|
|
"ALTER TABLE purchase_orders ADD COLUMN order_date TEXT DEFAULT ''",
|
|
"ALTER TABLE purchase_orders ADD COLUMN description TEXT DEFAULT ''",
|
|
"ALTER TABLE purchase_orders ADD COLUMN supplier_name TEXT DEFAULT ''",
|
|
"ALTER TABLE purchase_orders ADD COLUMN created_by INTEGER",
|
|
|
|
// budget_quotations - add missing columns
|
|
"ALTER TABLE budget_quotations ADD COLUMN project_id INTEGER",
|
|
"ALTER TABLE budget_quotations ADD COLUMN status TEXT DEFAULT 'draft'",
|
|
"ALTER TABLE budget_quotations ADD COLUMN total_amount REAL DEFAULT 0",
|
|
"ALTER TABLE budget_quotations ADD COLUMN items TEXT DEFAULT '[]'",
|
|
"ALTER TABLE budget_quotations ADD COLUMN description TEXT DEFAULT ''",
|
|
"ALTER TABLE budget_quotations ADD COLUMN created_by INTEGER",
|
|
"ALTER TABLE budget_quotations ADD COLUMN name TEXT DEFAULT ''",
|
|
"ALTER TABLE budget_quotations ADD COLUMN version TEXT DEFAULT '1.0'",
|
|
];
|
|
|
|
for (const sql of fixes) {
|
|
try {
|
|
await db.query(sql);
|
|
console.log('OK:', sql.substring(0, 70));
|
|
} catch(e) {
|
|
const msg = e.message || '';
|
|
if (msg.includes('duplicate') || msg.includes('already exists')) {
|
|
console.log('SKIP:', sql.substring(0, 70));
|
|
} else {
|
|
console.log('ERR:', msg.substring(0, 100));
|
|
}
|
|
}
|
|
}
|
|
|
|
console.log('\nAll remaining fixes applied!');
|
|
process.exit();
|
|
}
|
|
fix(); |