As a farmer I want to be able to add, use, and remove types of expenses that are useful for my particular operations so that I can accurately mirror and understand my operations financially
Screens
https://www.figma.com/file/96NZ02oYe3jpet1roUp0s0/Mockups?type=design&node-id=1712-37203&mode=design (see Finances tab, Manage custom expense types section)
Requirements
Must have
Updated multi-select expense type view
Including ability to add / manage custom expense types
View custom expense types (tile view)
View custom expense type (individual view)
Add custom expense type flow
Only user editable attribute is “Custom expense type name”
Retire custom expense type (see https://lite-farm.atlassian.net/wiki/spaces/LITEFARM/pages/1341259816/Manage+custom+expense+types#Other-context)
Nice to have
Spotlight for managing expense types on updated multi-select expense type view
Edit custom expense type
Customize an icon for a custom expense type
Migration of all expense types of type “Other” to be custom expense types
Shouldn’t have
Other context
Closely follows the pattern for custom task types - check that functionality out first!
We’ve eschewed the term “categories” in favour of “types” throughout finances. Any time you see “categories”, it’s out of date and should be replaced. Logic for this:
Types is shorter than categories in most of our supported languages
farmExpenseType table already exists - reducing tech debt
Changes to the model are hopefully minimal in this epic (though this isn’t the case for Manage custom revenue types - so take note of the structures for that upcoming epic). farmExpense and farmExpenseType tables already exist in the database.
For farmExpenseType, should use the existing convention around NULL or populated farm_id as to whether the type belongs to a specific farm or is universal
V1.0 has an “Other” type that should be removed in favour of documenting custom expense types. Ideally, each of these would be migrated to be custom expense types for the farm where they are created.
SELECT DISTINCT note FROM "farmExpense" WHERE expense_type_id = '7ce971b4-1590-11ea-9019-22000b628b95'
For retired expense types:
Retiring is a soft delete
Retired expense types must…
Not be selectable on the multi-select expense type view for new expenses created post-retirement
Still appear as a potential filter (with some sort of visual treatment, e.g. “Mechanical (retired)”) elsewhere in Finances V2.0
Continue to show up as a category in reports, lists, tables elsewhere in Finances V2.0
Previously created expenses of the retired type must…
Be visible in lists and tables elsewhere in Finances V2.0 (per filter criteria)
These treatments☝️ are not in scope for this epic, but are helpful in framing future work in the Finances V2.0 module.