Can transfer movement from an account to another

This commit is contained in:
Pierre HUBERT 2025-04-23 20:20:54 +02:00
parent 639fa4b176
commit 53494210af

View File

@ -7,8 +7,10 @@ import { useParams } from "react-router-dom";
import { Movement, MovementApi } from "../api/MovementsApi"; import { Movement, MovementApi } from "../api/MovementsApi";
import { useAccounts } from "../hooks/AccountsListProvider"; import { useAccounts } from "../hooks/AccountsListProvider";
import { useAlert } from "../hooks/context_providers/AlertDialogProvider"; import { useAlert } from "../hooks/context_providers/AlertDialogProvider";
import { useSelectAccount } from "../hooks/context_providers/ChooseAccountDialogProvider";
import { useConfirm } from "../hooks/context_providers/ConfirmDialogProvider"; import { useConfirm } from "../hooks/context_providers/ConfirmDialogProvider";
import { useLoadingMessage } from "../hooks/context_providers/LoadingMessageProvider"; import { useLoadingMessage } from "../hooks/context_providers/LoadingMessageProvider";
import { useSnackbar } from "../hooks/context_providers/SnackbarProvider";
import { AccountWidget } from "../widgets/AccountWidget"; import { AccountWidget } from "../widgets/AccountWidget";
import { AmountWidget } from "../widgets/AmountWidget"; import { AmountWidget } from "../widgets/AmountWidget";
import { AsyncWidget } from "../widgets/AsyncWidget"; import { AsyncWidget } from "../widgets/AsyncWidget";
@ -16,7 +18,6 @@ import { DateWidget } from "../widgets/DateWidget";
import { MoneyMgrWebRouteContainer } from "../widgets/MoneyMgrWebRouteContainer"; import { MoneyMgrWebRouteContainer } from "../widgets/MoneyMgrWebRouteContainer";
import { NewMovementWidget } from "../widgets/NewMovementWidget"; import { NewMovementWidget } from "../widgets/NewMovementWidget";
import { NotFoundRoute } from "./NotFound"; import { NotFoundRoute } from "./NotFound";
import { useSelectAccount } from "../hooks/context_providers/ChooseAccountDialogProvider";
export function AccountRoute(): React.ReactElement { export function AccountRoute(): React.ReactElement {
const loadingMessage = useLoadingMessage(); const loadingMessage = useLoadingMessage();
@ -91,6 +92,7 @@ function MovementsTable(p: {
const accounts = useAccounts(); const accounts = useAccounts();
const alert = useAlert(); const alert = useAlert();
const confirm = useConfirm(); const confirm = useConfirm();
const snackbar = useSnackbar();
const chooseAccount = useSelectAccount(); const chooseAccount = useSelectAccount();
@ -103,8 +105,20 @@ function MovementsTable(p: {
[accounts.get(movement.account_id)!] [accounts.get(movement.account_id)!]
); );
// TODO if (!target) return;
alert(target?.id?.toString() ?? "none");
try {
movement.account_id = target.id;
await MovementApi.Update(movement);
snackbar("The movement has been successfully moved!");
p.needReload(false);
} catch (e) {
console.error("Failed to update movement information!", e);
alert(`Failed to change movemlent account! ${e}`);
}
}; };
// Delete movement // Delete movement