not allow to add transaction with hidden transaction category

This commit is contained in:
MaysWind
2024-07-23 00:47:19 +08:00
parent 085f9817fc
commit a7280bf7ed
4 changed files with 20 additions and 0 deletions
+1
View File
@@ -21,4 +21,5 @@ var (
ErrCannotCreateTransactionWithThisTransactionTime = NewNormalError(NormalSubcategoryTransaction, 14, http.StatusBadRequest, "cannot add transaction with this transaction time")
ErrCannotModifyTransactionWithThisTransactionTime = NewNormalError(NormalSubcategoryTransaction, 15, http.StatusBadRequest, "cannot modify transaction with this transaction time")
ErrCannotDeleteTransactionWithThisTransactionTime = NewNormalError(NormalSubcategoryTransaction, 16, http.StatusBadRequest, "cannot delete transaction with this transaction time")
ErrCannotUseHiddenTransactionCategory = NewNormalError(NormalSubcategoryTransaction, 17, http.StatusBadRequest, "cannot use hidden transaction category")
)
+17
View File
@@ -1635,6 +1635,10 @@ func (s *TransactionService) isCategoryValid(sess *xorm.Session, transaction *mo
return errs.ErrTransactionCategoryNotFound
}
if category.Hidden {
return errs.ErrCannotUseHiddenTransactionCategory
}
if category.ParentCategoryId < 1 {
return errs.ErrCannotUsePrimaryCategoryForTransaction
}
@@ -1644,6 +1648,19 @@ func (s *TransactionService) isCategoryValid(sess *xorm.Session, transaction *mo
((transaction.Type == models.TRANSACTION_DB_TYPE_TRANSFER_OUT || transaction.Type == models.TRANSACTION_DB_TYPE_TRANSFER_IN) && category.Type != models.CATEGORY_TYPE_TRANSFER) {
return errs.ErrTransactionCategoryTypeInvalid
}
parentCategory := &models.TransactionCategory{}
has, err = sess.ID(category.ParentCategoryId).Where("uid=? AND deleted=?", transaction.Uid, false).Get(parentCategory)
if err != nil {
return err
} else if !has {
return errs.ErrTransactionCategoryNotFound
}
if parentCategory.Hidden {
return errs.ErrCannotUseHiddenTransactionCategory
}
}
return nil