transaction edit
This commit is contained in:
@@ -10,6 +10,8 @@ import EventService from '@/entities/event/event.service';
|
||||
import { type IEvent } from '@/shared/model/event.model';
|
||||
import { type ITransaction, Transaction } from '@/shared/model/transaction.model';
|
||||
import { TransactionType } from '@/shared/model/enumerations/transaction-type.model';
|
||||
import { type IUserAccount } from '@/shared/model/user-account.model';
|
||||
import UserAccountService from '@/entities/user-account/user-account.service';
|
||||
|
||||
export default defineComponent({
|
||||
compatConfig: { MODE: 3 },
|
||||
@@ -20,7 +22,11 @@ export default defineComponent({
|
||||
|
||||
const transaction: Ref<ITransaction> = ref(new Transaction());
|
||||
|
||||
transaction.value.transactionItems = [];
|
||||
const dictUserAccounts = ref([]) as Ref<IUserAccount[]>;
|
||||
|
||||
const eventService = inject('eventService', () => new EventService());
|
||||
const userAccountService = inject('userAccountService', () => new UserAccountService());
|
||||
|
||||
const events: Ref<IEvent[]> = ref([]);
|
||||
const transactionTypeValues: Ref<string[]> = ref(Object.keys(TransactionType));
|
||||
@@ -34,13 +40,37 @@ export default defineComponent({
|
||||
|
||||
const retrieveTransaction = async transactionId => {
|
||||
try {
|
||||
const res2 = await userAccountService().retrieve();
|
||||
console.log('got accounts' + res2);
|
||||
dictUserAccounts.value = res2.data;
|
||||
const res = await transactionService().find(transactionId);
|
||||
transaction.value = res;
|
||||
// console.log('len'+transaction.value.transactionItems?.length);
|
||||
// console.log('len'+dictUserAccounts.value.length);
|
||||
// console.log('id'+transaction.value.transactionItems[0].userAccount.id);
|
||||
// console.log('id'+(dictUserAccounts.value.find(account => account.id === transaction.value.transactionItems[0].userAccount.id) || null));
|
||||
// transaction.value.transactionItems[0].userAccount = dictUserAccounts.value.find(account => account.id === transaction.value.transactionItems[0].userAccount.id) || null;
|
||||
transaction.value.transactionItems.forEach((item, index) => {
|
||||
const matchingAccount = dictUserAccounts.value.find(account => account.id === item.userAccount.id);
|
||||
transaction.value.transactionItems[index].userAccount = matchingAccount || null;
|
||||
});
|
||||
} catch (error) {
|
||||
alertService.showHttpError(error.response);
|
||||
}
|
||||
};
|
||||
|
||||
// const retrieveUserAccounts = async () => {
|
||||
// try {
|
||||
// const res = await userAccountService().retrieve();
|
||||
// console.log('got accounts'+ res);
|
||||
// dictUserAccounts.value = res.data;
|
||||
// } catch (error) {
|
||||
// alertService.showHttpError(error.response);
|
||||
// }
|
||||
// };
|
||||
//
|
||||
// retrieveUserAccounts();
|
||||
|
||||
if (route.params?.transactionId) {
|
||||
retrieveTransaction(route.params.transactionId);
|
||||
}
|
||||
@@ -61,10 +91,36 @@ export default defineComponent({
|
||||
date: {},
|
||||
comment: {},
|
||||
event: {},
|
||||
// transactionItems: {
|
||||
// $each: {
|
||||
// amount: { required: validations.required, minValue: validations.minValue(0.01) },
|
||||
// comment: {},
|
||||
// locked: {},
|
||||
// userAccount: {},
|
||||
// },
|
||||
// },
|
||||
};
|
||||
const v$ = useVuelidate(validationRules, transaction as any);
|
||||
v$.value.$validate();
|
||||
|
||||
const addTransactionItem = () => {
|
||||
transaction.value.transactionItems.push({
|
||||
amount: 0,
|
||||
comment: '',
|
||||
locked: false,
|
||||
userAccount: null,
|
||||
});
|
||||
};
|
||||
|
||||
const removeTransactionItem = (index: number) => {
|
||||
transaction.value.transactionItems.splice(index, 1);
|
||||
};
|
||||
|
||||
const calculateUnsettledBalance = (): string => {
|
||||
const balance = transaction.value.transactionItems.reduce((sum, item) => sum + item.amount, 0);
|
||||
return balance.toFixed(2);
|
||||
};
|
||||
|
||||
return {
|
||||
transactionService,
|
||||
alertService,
|
||||
@@ -75,9 +131,12 @@ export default defineComponent({
|
||||
currentLanguage,
|
||||
events,
|
||||
v$,
|
||||
dictUserAccounts,
|
||||
addTransactionItem,
|
||||
removeTransactionItem,
|
||||
calculateUnsettledBalance,
|
||||
};
|
||||
},
|
||||
created(): void {},
|
||||
methods: {
|
||||
save(): void {
|
||||
this.isSaving = true;
|
||||
|
||||
Reference in New Issue
Block a user