couple of ways to handle this
Im not sure a radio button is the way to go with that field though because its difficult to turn the button off again once selected. The field could be a check box (there are some tricks to make the check box look like a radio button but thats more extensive)
Your tax field can then be a calculation using the case function resulting in 0.00 when the box is unchecked and performing the tax calculation when its checked
You could also set a script trigger to perform the calculation when the field is changed.
Your field list seems a bit odd for the structure of an invoice
Are all these fields on a single line item. (we generally see shipping at the invoice header level but you could charge by the line item)
Your tax calculation can include a check of the taxable radio button (Single value check box might be more user friendly as you can have just one box and click it to both select or clear the check box.)
Use a calculation field, cTaxableAmount or auto-entered caclulation like this:
If ( taxable = "value that indicates entry is taxable here" ; extended )
Then your Tax field can use this calculation: Sum ( cTaxableAmount ) * TaxRate
If I were doing this, I'd replace the Radio button with a single value check box that enters a 1 when the box is selected. You can then resize the field so that only the box is showing and the calculation becomes:
If ( taxable ; extended )
Note: Subtotal, discount, shipping and Tax look like fields that aren't in your portal but are located below it and defined in the parent table rather than the invoice. I've based this answer on those assumptions.