Can move entries between accounts
This commit is contained in:
@ -108,7 +108,7 @@ function MovementsTable(p: {
|
||||
// Change account of movement
|
||||
const handleMoveClick = async (movement: Movement) => {
|
||||
const targetAccount = await chooseAccount(
|
||||
"Transfer movementd",
|
||||
"Transfer movement",
|
||||
`Please select the target account that will receive the movement: ${movement.label} (${movement.amount} €)`,
|
||||
"Transfer movement",
|
||||
[accounts.get(movement.account_id)!]
|
||||
@ -152,6 +152,50 @@ function MovementsTable(p: {
|
||||
}
|
||||
};
|
||||
|
||||
// Move multiple movements
|
||||
const moveMultiple = async () => {
|
||||
try {
|
||||
const movements = p.movements.filter((m) =>
|
||||
rowSelectionModel.includes(m.id)
|
||||
);
|
||||
|
||||
const targetAccount = await chooseAccount(
|
||||
"Transfer movements",
|
||||
<>
|
||||
Please select the target account that will receive the selected
|
||||
movements:
|
||||
<ul>
|
||||
{movements.map((m) => (
|
||||
<li>
|
||||
{m.label} ({m.amount} €)
|
||||
</li>
|
||||
))}
|
||||
</ul>
|
||||
</>,
|
||||
"Transfer movement",
|
||||
[accounts.get(movements[0].account_id)!]
|
||||
);
|
||||
|
||||
if (!targetAccount) return;
|
||||
|
||||
for (const [num, m] of movements.entries()) {
|
||||
loadingMessage.show(`Moveing movement ${num}/${movements.length}`);
|
||||
|
||||
m.account_id = targetAccount.id;
|
||||
await MovementApi.Update(m);
|
||||
}
|
||||
|
||||
snackbar("The movements have been successfully moved!");
|
||||
|
||||
p.needReload(false);
|
||||
} catch (e) {
|
||||
console.error("Failed to delete multiple movements!", e);
|
||||
alert(`Failed to delete multiple movements! ${e}`);
|
||||
} finally {
|
||||
loadingMessage.hide();
|
||||
}
|
||||
};
|
||||
|
||||
// Delete multiple movements
|
||||
const deleteMultiple = async () => {
|
||||
try {
|
||||
@ -274,6 +318,17 @@ function MovementsTable(p: {
|
||||
return (
|
||||
<>
|
||||
<div style={{ display: "flex", justifyContent: "end" }}>
|
||||
<Tooltip title="Move all the selected entries to another account">
|
||||
<IconButton
|
||||
disabled={
|
||||
rowSelectionModel.length === 0 ||
|
||||
rowSelectionModel.length === p.movements.length
|
||||
}
|
||||
onClick={moveMultiple}
|
||||
>
|
||||
<DriveFileMoveOutlineIcon />
|
||||
</IconButton>
|
||||
</Tooltip>
|
||||
<Tooltip title="Delete all the selected entries">
|
||||
<IconButton
|
||||
disabled={
|
||||
|
Reference in New Issue
Block a user