Ok, so now I'm selling the new membership as a new order, and I'm using the same payment type as long as the payment type is in DirectDebit or StandingOrder, and if it's anything else I'm changing it to DirectDebit (default to be configurable)
So I need to create a new payment record. I could set the payment amount
- To the current cost of the membership
- To the amount paid last time.
The obvious sensible answer should be (1). But what if the original standing order was deliberately set for more than the membership price in order to give a donation and / or what if the membership price is increased?
Perhaps it should be
"Current cost of the membership PLUS any donations that were in the original order."
"Whatever is larger: the amount paid last time or the current cost of the membership"
The trouble with all these options as that as it's running unattended - so no user interaction - and the settings are based on a previous order - which isn't editable - I can't think of a good way of handling the case where someone overpaid in the past as a donation but now wants to stop. I guess we could just set the membership to renew manually and sell them a new one... Yeah, that'll do.