Imagine we have an inventory management system. It contains a form where the user can fill in a placed order. The order has some properties like:
- Date
- Supplier
- User who ordered it
- Total price
- VAT (tax) in percentage
- Tax to pay in money
On the right side of the form, there's a section (actually another form) to add products to the order. The user fills in the order properties (see bullet points above), and adds products to the order.
The total price of the order should just be the sum of the prices of all products added to this order. So, its value could be updated with the correct total price when the list of added products changes. At the same time this field must stay editable, because in some circumstances the user must be able to change the total price, whatever the actual total price of the products is. The same thing applies to the tax percentage and tax in money fields. They must be automatically filled with the correct value based on default circumstances so the user has to type in less fields and can leave them with their automatically populated values.
Of course it is contradictory: on the one hand the fields should get filled with a caculated value while the user is busy in the form. On the other hand the user must be able to just change the value, without the problem that the user value is overwritten each time the form recalculates and fills the automatic fields.
I was thinking of a calculate button or something, but this seems not very clean to me. Goal is to make the form as smart as possible, and have the user to type, think and calculate as less as possible.