Implement delete transaction
This commit is contained in:
parent
ab30c8acec
commit
11626f2557
@ -86,7 +86,7 @@
|
|||||||
</table>
|
</table>
|
||||||
|
|
||||||
<div class="flex justify-end mt-4 space-x-2">
|
<div class="flex justify-end mt-4 space-x-2">
|
||||||
<!--<button type="submit" name="action" value="delete" class="btn-secondary text-red-600 ring-red-500" onclick="return confirm('Are you sure you want to delete this transaction? This operation is irreversible.');">Delete</button>-->
|
<button class="btn-secondary text-red-600 ring-red-500" @click="deleteTransaction" v-if="transaction.id !== null">Delete</button>
|
||||||
<button class="btn-primary" @click="saveTransaction">Save</button>
|
<button class="btn-primary" @click="saveTransaction">Save</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -244,4 +244,36 @@
|
|||||||
|
|
||||||
await getCurrentWindow().close();
|
await getCurrentWindow().close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function deleteTransaction() {
|
||||||
|
if (!confirm('Are you sure you want to delete this transaction? This operation is irreversible.')) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const session = await db.load();
|
||||||
|
|
||||||
|
// Delete atomically
|
||||||
|
await session.execute(
|
||||||
|
`BEGIN;
|
||||||
|
|
||||||
|
-- Cascade delete statement line reconciliations
|
||||||
|
DELETE FROM statement_line_reconciliations
|
||||||
|
WHERE posting_id IN (
|
||||||
|
SELECT postings.id FROM postings WHERE transaction_id = $1
|
||||||
|
);
|
||||||
|
|
||||||
|
-- Delete postings
|
||||||
|
DELETE FROM postings
|
||||||
|
WHERE transaction_id = $1;
|
||||||
|
|
||||||
|
-- Delete transaction
|
||||||
|
DELETE FROM transactions
|
||||||
|
WHERE id = $1;
|
||||||
|
|
||||||
|
COMMIT;`,
|
||||||
|
[transaction.id]
|
||||||
|
);
|
||||||
|
|
||||||
|
await getCurrentWindow().close();
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
Loading…
Reference in New Issue
Block a user