Uploaded image for project: 'Blesta Core'
  1. Blesta Core
  2. CORE-351

Add proration to upgrades/downgrades.

    Details

    • Type: New Feature
    • Status: Closed
    • Priority: Blocker
    • Resolution: Fixed
    • Affects Version/s: 3.0.0.a6
    • Fix Version/s: 3.3.0-b1
    • Component/s: Staff Interface
    • Labels:
      None

      Description

      Add new checkbox option called "Prorate". Select by default.

      Tooltip next to "Prorate" that says..

      "If upgrading, an invoice will be generated to cover the difference in price between the current price and the new price."

      This option if selected, and if it's an upgrade (determined if the new price is > than the current price) then an invoice is generated for the difference prorated to the end of the current term.

      Not relevant:


      It gets a little tricky, because you'll need to check associated invoices and prorate until the end of the term covered by the most recent invoice. Otherwise, if we do a proration in the window between the service being invoiced and it actually being renewed than it would not cover everything.


      We may want to handle prorated credits for downgrades, but I think this should be a separate task.

        Issue Links

          Activity

          admin Paul Phillips created issue -
          admin Paul Phillips made changes -
          Field Original Value New Value
          Attachment bonfire-screenshot-20130405-140811-023.png [ 10502 ]
          admin Paul Phillips made changes -
          Fix Version/s 3.0.0.b1 [ 10102 ]
          Fix Version/s 3.0.0.a7 [ 10205 ]
          admin Paul Phillips made changes -
          Fix Version/s 3.0.0.b2 [ 10206 ]
          Fix Version/s 3.0.0.b1 [ 10102 ]
          admin Paul Phillips made changes -
          Fix Version/s 3.0.0.b3 [ 10207 ]
          Fix Version/s 3.0.0.b2 [ 10206 ]
          admin Paul Phillips made changes -
          Fix Version/s 3.0.0.b4 [ 10208 ]
          Fix Version/s 3.0.0.b3 [ 10207 ]
          admin Paul Phillips made changes -
          Fix Version/s 3.0.0.b5 [ 10209 ]
          Fix Version/s 3.0.0.b4 [ 10208 ]
          admin Paul Phillips made changes -
          Fix Version/s 3.0.0.b6 [ 10210 ]
          Fix Version/s 3.0.0.b5 [ 10209 ]
          admin Paul Phillips made changes -
          Fix Version/s 3.0.0.b7 [ 10211 ]
          Fix Version/s 3.0.0.b6 [ 10210 ]
          admin Paul Phillips made changes -
          Fix Version/s 3.0.0 [ 10000 ]
          Fix Version/s 3.0.0.b7 [ 10211 ]
          admin Paul Phillips made changes -
          Fix Version/s 3.0.1 [ 10212 ]
          Fix Version/s 3.0.0 [ 10000 ]
          admin Paul Phillips made changes -
          Fix Version/s 3.0.2 [ 10213 ]
          Fix Version/s 3.0.1 [ 10212 ]
          admin Paul Phillips made changes -
          Fix Version/s 3.0.3 [ 10214 ]
          Fix Version/s 3.0.2 [ 10213 ]
          admin Paul Phillips made changes -
          Fix Version/s 3.1.0 [ 10001 ]
          Fix Version/s 3.0.3 [ 10214 ]
          admin Paul Phillips made changes -
          Sprint Sprint 1 [ 1 ]
          admin Paul Phillips made changes -
          Fix Version/s 3.2.0 [ 10002 ]
          Fix Version/s 3.1.0 [ 10001 ]
          admin Paul Phillips made changes -
          Rank Ranked higher
          Hide
          tyson Tyson Phillips (Inactive) added a comment -

          This also needs to apply to client addons. Addons will probably need to be updated to a prorated price when adding them to a service separately. Similarly, we may want to only allow addons with the same term as the parent service to be added, and give the addon the same renew date.

          Show
          tyson Tyson Phillips (Inactive) added a comment - This also needs to apply to client addons. Addons will probably need to be updated to a prorated price when adding them to a service separately. Similarly, we may want to only allow addons with the same term as the parent service to be added, and give the addon the same renew date.
          Hide
          cody Cody Phillips (Inactive) added a comment -

          Wasn't this supposed to be part of 3.3 (invoice theme)?

          Show
          cody Cody Phillips (Inactive) added a comment - Wasn't this supposed to be part of 3.3 (invoice theme)?
          Hide
          admin Paul Phillips added a comment -

          I don't think that was the original intent, but it may have to be pushed to 3.3, and it would probably fit well with that theme.

          Show
          admin Paul Phillips added a comment - I don't think that was the original intent, but it may have to be pushed to 3.3, and it would probably fit well with that theme.
          admin Paul Phillips made changes -
          Fix Version/s 3.3.0 [ 10100 ]
          Fix Version/s 3.2.0 [ 10002 ]
          admin Paul Phillips made changes -
          Issue Type Task [ 3 ] New Feature [ 2 ]
          admin Paul Phillips made changes -
          Priority Major [ 3 ] Blocker [ 1 ]
          cody Cody Phillips (Inactive) made changes -
          Link This issue is blocked by CORE-1127 [ CORE-1127 ]
          tyson Tyson Phillips (Inactive) made changes -
          Link This issue blocks CORE-1127 [ CORE-1127 ]
          tyson Tyson Phillips (Inactive) made changes -
          Link This issue is blocked by CORE-1127 [ CORE-1127 ]
          tyson Tyson Phillips (Inactive) made changes -
          Link This issue is blocked by CORE-1347 [ CORE-1347 ]
          Hide
          tyson Tyson Phillips (Inactive) added a comment -

          Is there a task for prorated credits? Seems like a credit could only be given if the service has already been paid in full. If not already paid, what should be done?

          Show
          tyson Tyson Phillips (Inactive) added a comment - Is there a task for prorated credits? Seems like a credit could only be given if the service has already been paid in full. If not already paid, what should be done?
          Hide
          admin Paul Phillips added a comment -

          I don't believe there is a separate task for prorated credits. I think if there are any open invoices for the service we can do one of the following..

          1. Issue a credit and apply it to the oldest unpaid invoice for the service. This ensures the credit does not get applied to anything else.

          2. Do not allow the downgrade to take place until the user pays the previous invoice.

          3. Do not issue any credit.

          #1 is preferable, but will probably take the most work to implement. Thoughts on this method?

          Show
          admin Paul Phillips added a comment - I don't believe there is a separate task for prorated credits. I think if there are any open invoices for the service we can do one of the following.. 1. Issue a credit and apply it to the oldest unpaid invoice for the service. This ensures the credit does not get applied to anything else. 2. Do not allow the downgrade to take place until the user pays the previous invoice. 3. Do not issue any credit. #1 is preferable, but will probably take the most work to implement. Thoughts on this method?
          Hide
          tyson Tyson Phillips (Inactive) added a comment -

          I was thinking 2 or 3 would be better, preferably 3, since #1 is 'free money'.

          Any client could add this service from an order form, not pay it, then go downgrade the service to get free credit added to their account, and repeat.

          Show
          tyson Tyson Phillips (Inactive) added a comment - I was thinking 2 or 3 would be better, preferably 3, since #1 is 'free money'. Any client could add this service from an order form, not pay it, then go downgrade the service to get free credit added to their account, and repeat.
          Hide
          admin Paul Phillips added a comment -

          That's a good observation. Ok, let's go with #2.. if any unpaid invoices exist for the service, don't allow them to upgrade or downgrade the plan. If possible, let's allow them to select the option, then display a message that says they need to pay the invoice before proceeding.

          Show
          admin Paul Phillips added a comment - That's a good observation. Ok, let's go with #2.. if any unpaid invoices exist for the service, don't allow them to upgrade or downgrade the plan. If possible, let's allow them to select the option, then display a message that says they need to pay the invoice before proceeding.
          tyson Tyson Phillips (Inactive) made changes -
          Status Open [ 1 ] In Progress [ 3 ]
          Assignee Cody Phillips [ cody ] Tyson Phillips [ tyson ]
          tyson Tyson Phillips (Inactive) made changes -
          Link This issue blocks CORE-1127 [ CORE-1127 ]
          tyson Tyson Phillips (Inactive) made changes -
          Link This issue relates to CORE-1127 [ CORE-1127 ]
          tyson Tyson Phillips (Inactive) made changes -
          Description Add new checkbox option called "Prorate". Select by default.

          Tooltip next to "Prorate" that says..

          "If upgrading, an invoice will be generated to cover the difference in price between the current price and the new price."

          This option if selected, and if it's an upgrade (determined if the new price is > than the current price) then an invoice is generated for the difference prorated to the end of the current term.

          It gets a little tricky, because you'll need to check associated invoices and prorate until the end of the term covered by the most recent invoice. Otherwise, if we do a proration in the window between the service being invoiced and it actually being renewed than it would not cover everything.

          We may want to handle prorated credits for downgrades, but I think this should be a separate task.
          Add new checkbox option called "Prorate". Select by default.

          Tooltip next to "Prorate" that says..

          "If upgrading, an invoice will be generated to cover the difference in price between the current price and the new price."

          This option if selected, and if it's an upgrade (determined if the new price is > than the current price) then an invoice is generated for the difference prorated to the end of the current term.

          Not relevant:
          ---
          It gets a little tricky, because you'll need to check associated invoices and prorate until the end of the term covered by the most recent invoice. Otherwise, if we do a proration in the window between the service being invoiced and it actually being renewed than it would not cover everything.
          ---

          We may want to handle prorated credits for downgrades, but I think this should be a separate task.
          tyson Tyson Phillips (Inactive) made changes -
          Description Add new checkbox option called "Prorate". Select by default.

          Tooltip next to "Prorate" that says..

          "If upgrading, an invoice will be generated to cover the difference in price between the current price and the new price."

          This option if selected, and if it's an upgrade (determined if the new price is > than the current price) then an invoice is generated for the difference prorated to the end of the current term.

          Not relevant:
          ---
          It gets a little tricky, because you'll need to check associated invoices and prorate until the end of the term covered by the most recent invoice. Otherwise, if we do a proration in the window between the service being invoiced and it actually being renewed than it would not cover everything.
          ---

          We may want to handle prorated credits for downgrades, but I think this should be a separate task.
          Add new checkbox option called "Prorate". Select by default.

          Tooltip next to "Prorate" that says..

          "If upgrading, an invoice will be generated to cover the difference in price between the current price and the new price."

          This option if selected, and if it's an upgrade (determined if the new price is > than the current price) then an invoice is generated for the difference prorated to the end of the current term.

          Not relevant:
          -----
          It gets a little tricky, because you'll need to check associated invoices and prorate until the end of the term covered by the most recent invoice. Otherwise, if we do a proration in the window between the service being invoiced and it actually being renewed than it would not cover everything.
          -----

          We may want to handle prorated credits for downgrades, but I think this should be a separate task.
          tyson Tyson Phillips (Inactive) made changes -
          Status In Progress [ 3 ] Resolved [ 5 ]
          Resolution Fixed [ 1 ]
          admin Paul Phillips made changes -
          Security Private [ 10000 ]
          Hide
          admin Paul Phillips added a comment -

          Appears to work fine in testing, closing this issue.

          Show
          admin Paul Phillips added a comment - Appears to work fine in testing, closing this issue.
          admin Paul Phillips made changes -
          Status Resolved [ 5 ] Closed [ 6 ]

            People

            • Assignee:
              tyson Tyson Phillips (Inactive)
              Reporter:
              admin Paul Phillips
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:
                Fix Release Date:
                27/Aug/14

                Agile