Hi Krileon, it has been a long time. But thank you for answering it. I will try to be more precise:
I have an user that is registered to Plan A since 3 months ago, it means that he has 9 months left to his plan. At this moment he decides to upgrade to plan B. I need him to pay the 20 dollars for upgrading to plan B, but to keep the same 9 months left when he upgrades.
In another scenario, if he decides to upgrade to plan B when he had 2 months left from the original plan A, I would need him to keep the same 2 months originally left when upgrading to plan B.
Those scenarios are covered?
What time does the upgrade have to be programmed, since they don't determine the time that the user will keep their subscription. The original plan (A) will be the plan that determines the subscription duration, and it has not to be altered/modified by any upgrades to plan B.
I suppose that it means that Plan B should not have any duration specified, because is Plan A the one that specifies that.