diff --git a/src/locales/de.json b/src/locales/de.json index e8cf6216..f513c64c 100644 --- a/src/locales/de.json +++ b/src/locales/de.json @@ -1946,6 +1946,8 @@ "Batch Convert Income Transaction to Transfer Transaction": "Batch Convert Income Transaction to Transfer Transaction", "Batch Convert Transfer Transaction to Expense Transaction": "Batch Convert Transfer Transaction to Expense Transaction", "Batch Convert Transfer Transaction to Income Transaction": "Batch Convert Transfer Transaction to Income Transaction", + "Batch Convert Selected Amounts to Positive Values": "Batch Convert Selected Amounts to Positive Values", + "Batch Convert Selected Amounts to Negative Values": "Batch Convert Selected Amounts to Negative Values", "Invalid Category": "Ungültige Kategorie", "Target Category": "Zielkategorie", "Default Expense Category": "Default Expense Category", diff --git a/src/locales/en.json b/src/locales/en.json index 947b56ce..97748fda 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -1946,6 +1946,8 @@ "Batch Convert Income Transaction to Transfer Transaction": "Batch Convert Income Transaction to Transfer Transaction", "Batch Convert Transfer Transaction to Expense Transaction": "Batch Convert Transfer Transaction to Expense Transaction", "Batch Convert Transfer Transaction to Income Transaction": "Batch Convert Transfer Transaction to Income Transaction", + "Batch Convert Selected Amounts to Positive Values": "Batch Convert Selected Amounts to Positive Values", + "Batch Convert Selected Amounts to Negative Values": "Batch Convert Selected Amounts to Negative Values", "Invalid Category": "Invalid Category", "Target Category": "Target Category", "Default Expense Category": "Default Expense Category", diff --git a/src/locales/es.json b/src/locales/es.json index 8a9e0d2f..4135e5e7 100644 --- a/src/locales/es.json +++ b/src/locales/es.json @@ -1946,6 +1946,8 @@ "Batch Convert Income Transaction to Transfer Transaction": "Batch Convert Income Transaction to Transfer Transaction", "Batch Convert Transfer Transaction to Expense Transaction": "Batch Convert Transfer Transaction to Expense Transaction", "Batch Convert Transfer Transaction to Income Transaction": "Batch Convert Transfer Transaction to Income Transaction", + "Batch Convert Selected Amounts to Positive Values": "Batch Convert Selected Amounts to Positive Values", + "Batch Convert Selected Amounts to Negative Values": "Batch Convert Selected Amounts to Negative Values", "Invalid Category": "Categoría no válida", "Target Category": "Categoría de destino", "Default Expense Category": "Default Expense Category", diff --git a/src/locales/fr.json b/src/locales/fr.json index 7b2b2a3c..c702b6ee 100644 --- a/src/locales/fr.json +++ b/src/locales/fr.json @@ -1946,6 +1946,8 @@ "Batch Convert Income Transaction to Transfer Transaction": "Convertir en lot les transactions de revenu en transactions de virement", "Batch Convert Transfer Transaction to Expense Transaction": "Convertir en lot les transactions de virement en transactions de dépense", "Batch Convert Transfer Transaction to Income Transaction": "Convertir en lot les transactions de virement en transactions de revenu", + "Batch Convert Selected Amounts to Positive Values": "Batch Convert Selected Amounts to Positive Values", + "Batch Convert Selected Amounts to Negative Values": "Batch Convert Selected Amounts to Negative Values", "Invalid Category": "Catégorie invalide", "Target Category": "Catégorie cible", "Default Expense Category": "Catégorie de dépense par défaut", diff --git a/src/locales/it.json b/src/locales/it.json index 3235ec77..2aef241f 100644 --- a/src/locales/it.json +++ b/src/locales/it.json @@ -1946,6 +1946,8 @@ "Batch Convert Income Transaction to Transfer Transaction": "Converti in blocco transazione di entrata in transazione di trasferimento", "Batch Convert Transfer Transaction to Expense Transaction": "Converti in blocco transazione di trasferimento in transazione di spesa", "Batch Convert Transfer Transaction to Income Transaction": "Converti in blocco transazione di trasferimento in transazione di entrata", + "Batch Convert Selected Amounts to Positive Values": "Batch Convert Selected Amounts to Positive Values", + "Batch Convert Selected Amounts to Negative Values": "Batch Convert Selected Amounts to Negative Values", "Invalid Category": "Categoria non valida", "Target Category": "Categoria di destinazione", "Default Expense Category": "Categoria di spesa predefinita", diff --git a/src/locales/ja.json b/src/locales/ja.json index dd02c883..3b0b33fa 100644 --- a/src/locales/ja.json +++ b/src/locales/ja.json @@ -1946,6 +1946,8 @@ "Batch Convert Income Transaction to Transfer Transaction": "収入取引を振替取引に一括変換", "Batch Convert Transfer Transaction to Expense Transaction": "振替取引を支出取引に一括変換", "Batch Convert Transfer Transaction to Income Transaction": "振替取引を収入取引に一括変換", + "Batch Convert Selected Amounts to Positive Values": "Batch Convert Selected Amounts to Positive Values", + "Batch Convert Selected Amounts to Negative Values": "Batch Convert Selected Amounts to Negative Values", "Invalid Category": "無効なカテゴリ", "Target Category": "対象カテゴリ", "Default Expense Category": "Default Expense Category", diff --git a/src/locales/ko.json b/src/locales/ko.json index 17663368..0b35210f 100644 --- a/src/locales/ko.json +++ b/src/locales/ko.json @@ -1946,6 +1946,8 @@ "Batch Convert Income Transaction to Transfer Transaction": "수입 거래를 이체 거래로 일괄 변환", "Batch Convert Transfer Transaction to Expense Transaction": "이체 거래를 비용 거래로 일괄 변환", "Batch Convert Transfer Transaction to Income Transaction": "이체 거래를 수입 거래로 일괄 변환", + "Batch Convert Selected Amounts to Positive Values": "Batch Convert Selected Amounts to Positive Values", + "Batch Convert Selected Amounts to Negative Values": "Batch Convert Selected Amounts to Negative Values", "Invalid Category": "유효하지 않은 카테고리", "Target Category": "대상 카테고리", "Default Expense Category": "기본 비용 카테고리", diff --git a/src/locales/nl.json b/src/locales/nl.json index 90868492..ed4ffca2 100644 --- a/src/locales/nl.json +++ b/src/locales/nl.json @@ -1946,6 +1946,8 @@ "Batch Convert Income Transaction to Transfer Transaction": "Inkomentransacties batchgewijs omzetten naar overboekingen", "Batch Convert Transfer Transaction to Expense Transaction": "Overboekingen batchgewijs omzetten naar uitgaven", "Batch Convert Transfer Transaction to Income Transaction": "Overboekingen batchgewijs omzetten naar inkomsten", + "Batch Convert Selected Amounts to Positive Values": "Batch Convert Selected Amounts to Positive Values", + "Batch Convert Selected Amounts to Negative Values": "Batch Convert Selected Amounts to Negative Values", "Invalid Category": "Ongeldige categorie", "Target Category": "Doelcategorie", "Default Expense Category": "Standaard uitgavecategorie", diff --git a/src/locales/pt_BR.json b/src/locales/pt_BR.json index d0b75468..60e4dc5b 100644 --- a/src/locales/pt_BR.json +++ b/src/locales/pt_BR.json @@ -1946,6 +1946,8 @@ "Batch Convert Income Transaction to Transfer Transaction": "Converter em Lote Transação de Receita para Transação de Transferência", "Batch Convert Transfer Transaction to Expense Transaction": "Converter em Lote Transação de Transferência para Transação de Despesa", "Batch Convert Transfer Transaction to Income Transaction": "Converter em Lote Transação de Transferência para Transação de Receita", + "Batch Convert Selected Amounts to Positive Values": "Batch Convert Selected Amounts to Positive Values", + "Batch Convert Selected Amounts to Negative Values": "Batch Convert Selected Amounts to Negative Values", "Invalid Category": "Categoria Inválida", "Target Category": "Categoria Alvo", "Default Expense Category": "Categoria Padrão de Despesa", diff --git a/src/locales/ru.json b/src/locales/ru.json index 51be9e5c..9469b594 100644 --- a/src/locales/ru.json +++ b/src/locales/ru.json @@ -1946,6 +1946,8 @@ "Batch Convert Income Transaction to Transfer Transaction": "Batch Convert Income Transaction to Transfer Transaction", "Batch Convert Transfer Transaction to Expense Transaction": "Batch Convert Transfer Transaction to Expense Transaction", "Batch Convert Transfer Transaction to Income Transaction": "Batch Convert Transfer Transaction to Income Transaction", + "Batch Convert Selected Amounts to Positive Values": "Batch Convert Selected Amounts to Positive Values", + "Batch Convert Selected Amounts to Negative Values": "Batch Convert Selected Amounts to Negative Values", "Invalid Category": "Недействительная категория", "Target Category": "Целевая категория", "Default Expense Category": "Default Expense Category", diff --git a/src/locales/th.json b/src/locales/th.json index cdaed0c9..0dc0789c 100644 --- a/src/locales/th.json +++ b/src/locales/th.json @@ -1946,6 +1946,8 @@ "Batch Convert Income Transaction to Transfer Transaction": "แปลงรายการรายได้เป็นรายการโอนแบบกลุ่ม", "Batch Convert Transfer Transaction to Expense Transaction": "แปลงรายการโอนเป็นรายการค่าใช้จ่ายแบบกลุ่ม", "Batch Convert Transfer Transaction to Income Transaction": "แปลงรายการโอนเป็นรายการรายได้แบบกลุ่ม", + "Batch Convert Selected Amounts to Positive Values": "Batch Convert Selected Amounts to Positive Values", + "Batch Convert Selected Amounts to Negative Values": "Batch Convert Selected Amounts to Negative Values", "Invalid Category": "หมวดหมู่ไม่ถูกต้อง", "Target Category": "หมวดหมู่เป้าหมาย", "Default Expense Category": "หมวดค่าใช้จ่ายเริ่มต้น", diff --git a/src/locales/uk.json b/src/locales/uk.json index 298003d5..34018831 100644 --- a/src/locales/uk.json +++ b/src/locales/uk.json @@ -1946,6 +1946,8 @@ "Batch Convert Income Transaction to Transfer Transaction": "Пакетно змінити дохідні транзакції на перекази", "Batch Convert Transfer Transaction to Expense Transaction": "Пакетно змінити перекази на витратні транзакції", "Batch Convert Transfer Transaction to Income Transaction": "Пакетно змінити перекази на дохідні транзакції", + "Batch Convert Selected Amounts to Positive Values": "Batch Convert Selected Amounts to Positive Values", + "Batch Convert Selected Amounts to Negative Values": "Batch Convert Selected Amounts to Negative Values", "Invalid Category": "Неприпустима категорія", "Target Category": "Цільова категорія", "Default Expense Category": "Категорія витрат за замовчуванням", diff --git a/src/locales/vi.json b/src/locales/vi.json index 6ce3caf7..42e1c5c0 100644 --- a/src/locales/vi.json +++ b/src/locales/vi.json @@ -1946,6 +1946,8 @@ "Batch Convert Income Transaction to Transfer Transaction": "Batch Convert Income Transaction to Transfer Transaction", "Batch Convert Transfer Transaction to Expense Transaction": "Batch Convert Transfer Transaction to Expense Transaction", "Batch Convert Transfer Transaction to Income Transaction": "Batch Convert Transfer Transaction to Income Transaction", + "Batch Convert Selected Amounts to Positive Values": "Batch Convert Selected Amounts to Positive Values", + "Batch Convert Selected Amounts to Negative Values": "Batch Convert Selected Amounts to Negative Values", "Invalid Category": "Danh mục không hợp lệ", "Target Category": "Danh mục mục tiêu", "Default Expense Category": "Default Expense Category", diff --git a/src/locales/zh_Hans.json b/src/locales/zh_Hans.json index 8bc86954..f742417e 100644 --- a/src/locales/zh_Hans.json +++ b/src/locales/zh_Hans.json @@ -1946,6 +1946,8 @@ "Batch Convert Income Transaction to Transfer Transaction": "批量转换收入交易为转账交易", "Batch Convert Transfer Transaction to Expense Transaction": "批量转换转账交易为支出交易", "Batch Convert Transfer Transaction to Income Transaction": "批量转换转账交易为收入交易", + "Batch Convert Selected Amounts to Positive Values": "批量转换选中的金额为正值", + "Batch Convert Selected Amounts to Negative Values": "批量转换选中的金额为负值", "Invalid Category": "无效分类", "Target Category": "目标分类", "Default Expense Category": "默认支出分类", diff --git a/src/locales/zh_Hant.json b/src/locales/zh_Hant.json index eecb560a..2f3a5894 100644 --- a/src/locales/zh_Hant.json +++ b/src/locales/zh_Hant.json @@ -1946,6 +1946,8 @@ "Batch Convert Income Transaction to Transfer Transaction": "批次將收入交易轉換為轉帳交易", "Batch Convert Transfer Transaction to Expense Transaction": "批次將轉帳交易轉換為支出交易", "Batch Convert Transfer Transaction to Income Transaction": "批次將轉帳交易轉換為收入交易", + "Batch Convert Selected Amounts to Positive Values": "批次將選中的金額轉換為正值", + "Batch Convert Selected Amounts to Negative Values": "批次將選中的金額轉換為負值", "Invalid Category": "無效分類", "Target Category": "目標分類", "Default Expense Category": "預設支出分類", diff --git a/src/views/desktop/transactions/import/tabs/ImportTransactionCheckDataTab.vue b/src/views/desktop/transactions/import/tabs/ImportTransactionCheckDataTab.vue index 3961a516..bd149a8b 100644 --- a/src/views/desktop/transactions/import/tabs/ImportTransactionCheckDataTab.vue +++ b/src/views/desktop/transactions/import/tabs/ImportTransactionCheckDataTab.vue @@ -451,7 +451,9 @@ import { mdiPound, mdiFindReplace, mdiShapePlusOutline, - mdiTransfer + mdiTransfer, + mdiNumericPositive1, + mdiNumericNegative1 } from '@mdi/js'; type SnackBarType = InstanceType; @@ -887,6 +889,19 @@ const toolMenus = computed(() => [ title: tt('Batch Convert Transfer Transaction to Income Transaction'), disabled: isEditing.value || selectedTransferTransactionCount.value < 1, onClick: () => convertTransactionType(TransactionType.Transfer, TransactionType.Income) + }, + { + prependIcon: mdiNumericPositive1, + title: tt('Batch Convert Selected Amounts to Positive Values'), + disabled: isEditing.value || selectedImportTransactionCount.value < 1, + divider: true, + onClick: () => convertTransactionAmountSign(1) + }, + { + prependIcon: mdiNumericNegative1, + title: tt('Batch Convert Selected Amounts to Negative Values'), + disabled: isEditing.value || selectedImportTransactionCount.value < 1, + onClick: () => convertTransactionAmountSign(-1) } ]); @@ -1995,6 +2010,28 @@ function convertTransactionType(fromType: TransactionType, toType: TransactionTy } } +function convertTransactionAmountSign(toSign: number): void { + if (!props.importTransactions || props.importTransactions.length < 1) { + return; + } + + for (const importTransaction of props.importTransactions) { + if (!importTransaction.selected) { + continue; + } + + if (toSign > 0) { + importTransaction.sourceAmount = Math.abs(importTransaction.sourceAmount); + importTransaction.destinationAmount = Math.abs(importTransaction.destinationAmount); + } else if (toSign < 0) { + importTransaction.sourceAmount = -Math.abs(importTransaction.sourceAmount); + importTransaction.destinationAmount = -Math.abs(importTransaction.destinationAmount); + } + + updateTransactionData(importTransaction); + } +} + function changeCustomDateFilter(minTime: number, maxTime: number): void { filters.value.minDatetime = minTime; filters.value.maxDatetime = maxTime;