refactor external orders
This commit is contained in:
@@ -222,7 +222,7 @@ async function createOrder(data: { bezeichnung: string; lieferant_id?: number; b
|
||||
}
|
||||
}
|
||||
|
||||
async function updateOrder(id: number, data: { bezeichnung?: string; lieferant_id?: number; notizen?: string; budget?: number; status?: string; steuersatz?: number }, userId: string) {
|
||||
async function updateOrder(id: number, data: { bezeichnung?: string; lieferant_id?: number; besteller_id?: string | null; notizen?: string; budget?: number; status?: string; steuersatz?: number }, userId: string) {
|
||||
try {
|
||||
// Check current order for status change detection
|
||||
const current = await pool.query(`SELECT * FROM bestellungen WHERE id = $1`, [id]);
|
||||
@@ -247,22 +247,24 @@ async function updateOrder(id: number, data: { bezeichnung?: string; lieferant_i
|
||||
`UPDATE bestellungen
|
||||
SET bezeichnung = COALESCE($1, bezeichnung),
|
||||
lieferant_id = COALESCE($2, lieferant_id),
|
||||
notizen = COALESCE($3, notizen),
|
||||
budget = COALESCE($4, budget),
|
||||
status = COALESCE($5, status),
|
||||
bestellt_am = $6,
|
||||
abgeschlossen_am = $7,
|
||||
steuersatz = COALESCE($8, steuersatz),
|
||||
besteller_id = CASE WHEN $3::text IS NOT NULL AND $3::text != '' THEN $3::uuid ELSE besteller_id END,
|
||||
notizen = COALESCE($4, notizen),
|
||||
budget = COALESCE($5, budget),
|
||||
status = COALESCE($6, status),
|
||||
bestellt_am = $7,
|
||||
abgeschlossen_am = $8,
|
||||
steuersatz = COALESCE($9, steuersatz),
|
||||
aktualisiert_am = NOW()
|
||||
WHERE id = $9
|
||||
WHERE id = $10
|
||||
RETURNING *`,
|
||||
[data.bezeichnung, data.lieferant_id, data.notizen, data.budget, data.status, bestellt_am, abgeschlossen_am, data.steuersatz, id]
|
||||
[data.bezeichnung, data.lieferant_id, data.besteller_id ?? null, data.notizen, data.budget, data.status, bestellt_am, abgeschlossen_am, data.steuersatz, id]
|
||||
);
|
||||
if (result.rows.length === 0) return null;
|
||||
|
||||
const changes: string[] = [];
|
||||
if (data.bezeichnung) changes.push(`Bezeichnung geändert`);
|
||||
if (data.lieferant_id) changes.push(`Lieferant geändert`);
|
||||
if (data.besteller_id) changes.push('Besteller geändert');
|
||||
if (data.status && data.status !== oldStatus) changes.push(`Status: ${oldStatus} → ${data.status}`);
|
||||
if (data.budget) changes.push(`Budget geändert`);
|
||||
if (data.steuersatz != null) changes.push(`Steuersatz: ${data.steuersatz}%`);
|
||||
|
||||
Reference in New Issue
Block a user