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

Prorate new addon services to synchronize renew dates with the parent

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 3.6.0, 4.0.0-b1
    • Fix Version/s: 4.3.0-b1
    • Component/s: None
    • Labels:
      None

      Description

      1. Add a new setting under Settings > Company > Billing/Payment > Invoice and Charge Options above the setting "Allow Clients to Create Addons for Existing Services"
        • Call the setting "Allow Addon Services to be Synchronized with their Parent Service"
        • Add a tooltip that says, "When checked, newly-created addon services that match the parent's monthly or yearly terms will be prorated to the parent's renew date."
        • This setting is also used by client group company settings for add/edit, so it should be available and working there too
      2. Create a migration that adds this company setting and enables it by default
      3. Integrate the functionality that on addon service creation from anywhere in the system, the addon can be synched with the parent service as described below
        • In the admin interface, the addon can be created as a new invoice or appended to an existing invoice. We may be able to re-use the ServiceDataPresenter to calculate line items and prorate prices, otherwise we'll need to figure out how to do so otherwise

      When an addon service is created from

      • An order form
      • The admin interface
      • The client interface

      ... the addon should be set the same renew date as the parent service and prorated to that date iff the following conditions are met:

      • The setting is enabled to allow addon services to be synchronized with their parent on creation (this is a new setting added for this task)
      • The addon term and period are the same as the parent service
      • The service periods are either 'month' or 'year'
      • The addon package does not have pro rata enabled

      When an addon service is created it will renew on the anniversary of its creation date. Instead, addon services should be prorated and synchronized to renew at the same time as their parent services if possible.

      Conditions

      • The addon service is for the same term and period as the parent, with the exception of one-time services
      • The addon package does not have "Enable Pro rata" enabled. This option should take precedence.

      It is probably a good idea to add a new setting, enabled by default, for this behavior. It may be desirable for some people to keep these out of sync, and this will maintain backwards compatibility.

        Issue Links

          Activity

          admin Paul Phillips created issue -
          admin Paul Phillips made changes -
          Field Original Value New Value
          Affects Version/s 3.6.0 [ 10803 ]
          Affects Version/s 4.0.0 [ 10603 ]
          admin Paul Phillips made changes -
          Fix Version/s Short Term [ 10800 ]
          admin Paul Phillips made changes -
          Description When an addon service is created it will renew on the anniversary of its creation date. Instead, addon services should be prorated and synchronized to renew at the same time as their parent services if possible.

          *Conditions*

          * The addon service is for the same term and period as the parent
          * The addon package does not have "Enable Pro rata" enabled. This option should take precedence.

          It is probably a good idea to add a new setting, enabled by default, for this behavior. It may be desirable for some people to keep these out of sync, and this will maintain backwards compatibility.
          When an addon service is created it will renew on the anniversary of its creation date. Instead, addon services should be prorated and synchronized to renew at the same time as their parent services if possible.

          *Conditions*

          * The addon service is for the same term and period as the parent
          * The addon package does not have "Enable Pro rata" enabled. This option should take precedence.
          * The addon service is not using a pricing period of "One Time"

          It is probably a good idea to add a new setting, enabled by default, for this behavior. It may be desirable for some people to keep these out of sync, and this will maintain backwards compatibility.
          admin Paul Phillips made changes -
          Fix Version/s 4.1.0 [ 11007 ]
          Fix Version/s Short Term [ 10800 ]
          admin Paul Phillips made changes -
          Rank Ranked higher
          admin Paul Phillips made changes -
          Fix Version/s 4.1.0-b2 [ 11012 ]
          Fix Version/s 4.1.0-b1 [ 11007 ]
          admin Paul Phillips made changes -
          Fix Version/s 4.1.0 [ 11013 ]
          Fix Version/s 4.1.0-b2 [ 11012 ]
          admin Paul Phillips made changes -
          Fix Version/s 4.2.0-b1 [ 11014 ]
          Fix Version/s 4.1.0 [ 11013 ]
          admin Paul Phillips made changes -
          Fix Version/s 4.2.0-b2 [ 11017 ]
          Fix Version/s 4.2.0-b1 [ 11014 ]
          jonathan Jonathan Reissmueller made changes -
          Rank Ranked higher
          admin Paul Phillips made changes -
          Fix Version/s 4.2.0 [ 11018 ]
          Fix Version/s 4.2.0-b2 [ 11017 ]
          admin Paul Phillips made changes -
          Fix Version/s 4.3.0-b1 [ 11019 ]
          Fix Version/s 4.2.0 [ 11018 ]
          Hide
          tyson Tyson Phillips (Inactive) added a comment -

          It is probably a good idea to add a new setting, enabled by default, for this behavior. It may be desirable for some people to keep these out of sync, and this will maintain backwards compatibility.

          If this new setting is enabled by default, then it would not be backward compatible because it doesn't follow the current behavior.

          It seems to me like this task would be very time consuming to integrate.

          Show
          tyson Tyson Phillips (Inactive) added a comment - It is probably a good idea to add a new setting, enabled by default, for this behavior. It may be desirable for some people to keep these out of sync, and this will maintain backwards compatibility. If this new setting is enabled by default, then it would not be backward compatible because it doesn't follow the current behavior. It seems to me like this task would be very time consuming to integrate.
          tyson Tyson Phillips (Inactive) made changes -
          Description When an addon service is created it will renew on the anniversary of its creation date. Instead, addon services should be prorated and synchronized to renew at the same time as their parent services if possible.

          *Conditions*

          * The addon service is for the same term and period as the parent
          * The addon package does not have "Enable Pro rata" enabled. This option should take precedence.
          * The addon service is not using a pricing period of "One Time"

          It is probably a good idea to add a new setting, enabled by default, for this behavior. It may be desirable for some people to keep these out of sync, and this will maintain backwards compatibility.
          When an addon service is created it will renew on the anniversary of its creation date. Instead, addon services should be prorated and synchronized to renew at the same time as their parent services if possible.

          *Conditions*

          * The addon service is for the same term and period as the parent, with the exception of one-time services
          * The addon package does not have "Enable Pro rata" enabled. This option should take precedence.

          It is probably a good idea to add a new setting, enabled by default, for this behavior. It may be desirable for some people to keep these out of sync, and this will maintain backwards compatibility.
          Hide
          admin Paul Phillips added a comment -

          It should have worked this way originally, the setting is to allow others to maintain current behavior, but the vast majority prefer the dates to by sync'd (including me for Blesta addons) and will expect it to work this way by default with new installs.

          Show
          admin Paul Phillips added a comment - It should have worked this way originally, the setting is to allow others to maintain current behavior, but the vast majority prefer the dates to by sync'd (including me for Blesta addons) and will expect it to work this way by default with new installs.
          tyson Tyson Phillips (Inactive) made changes -
          Rank Ranked higher
          tyson Tyson Phillips (Inactive) made changes -
          Story Points 8
          tyson Tyson Phillips (Inactive) made changes -
          Description When an addon service is created it will renew on the anniversary of its creation date. Instead, addon services should be prorated and synchronized to renew at the same time as their parent services if possible.

          *Conditions*

          * The addon service is for the same term and period as the parent, with the exception of one-time services
          * The addon package does not have "Enable Pro rata" enabled. This option should take precedence.

          It is probably a good idea to add a new setting, enabled by default, for this behavior. It may be desirable for some people to keep these out of sync, and this will maintain backwards compatibility.
          # Add a new setting under *Settings > Company > Billing/Payment > Invoice and Charge Options* above the setting "Allow Clients to Create Addons for Existing Services"
          #* Call the setting "Allow Addon Services to be Synchronized with their Parent Service"
          #* Add a tooltip that says, "When checked, newly-created addon services that match the parent's monthly or yearly terms will be prorated to the parent's renew date."
          #* This setting is also used by client group company settings for add/edit, so it should be available and working there too
          # Create a migration that adds this company setting and enables it by default
          #* Update the [documentation|https://docs.blesta.com/display/dev/Company+Settings] to describe this setting
          # Integrate the functionality that on addon service creation from anywhere in the system, the addon can be synched with the parent service as described below
          #* In the admin interface, the addon can be created as a new invoice or appended to an existing invoice. We may be able to re-use the ServiceDataPresenter to calculate line items and prorate prices, otherwise we'll need to figure out how to do so otherwise

          When an addon service is created from
          * An order form
          * The admin interface
          * The client interface

          ... the addon should be set the same renew date as the parent service and prorated to that date iff the following conditions are met:
          * The setting is enabled to allow addon services to be synchronized with their parent on creation (this is a new setting added for this task)
          * The addon term and period are the same as the parent service
          * The service periods are either 'month' or 'year'
          * The addon package does not have pro rata enabled

          ----

          When an addon service is created it will renew on the anniversary of its creation date. Instead, addon services should be prorated and synchronized to renew at the same time as their parent services if possible.

          *Conditions*

          * The addon service is for the same term and period as the parent, with the exception of one-time services
          * The addon package does not have "Enable Pro rata" enabled. This option should take precedence.

          It is probably a good idea to add a new setting, enabled by default, for this behavior. It may be desirable for some people to keep these out of sync, and this will maintain backwards compatibility.
          tyson Tyson Phillips (Inactive) made changes -
          Sprint 4.3.0 Sprint 6 [ 56 ]
          tyson Tyson Phillips (Inactive) made changes -
          Rank Ranked higher
          tyson Tyson Phillips (Inactive) made changes -
          Sprint 4.3.0 Sprint 6 [ 56 ] 4.3.0 Sprint 5 [ 55 ]
          tyson Tyson Phillips (Inactive) made changes -
          Rank Ranked higher
          tyson Tyson Phillips (Inactive) made changes -
          Sprint 4.3.0 Sprint 5 [ 55 ] 4.3.0 Sprint 5, 4.3.0 Sprint 6 [ 55, 56 ]
          tyson Tyson Phillips (Inactive) made changes -
          Rank Ranked higher
          jonathan Jonathan Reissmueller made changes -
          Assignee Jonathan Reissmueller [ jonathan ]
          Automated transition triggered when Jonathan Reissmueller created a branch in Stash -
          Status Open [ 1 ] In Progress [ 3 ]
          jonathan Jonathan Reissmueller made changes -
          Remaining Estimate 0 minutes [ 0 ]
          Time Spent 5 hours, 28 minutes [ 19680 ]
          Worklog Id 10933 [ 10933 ]
          jonathan Jonathan Reissmueller made changes -
          Time Spent 5 hours, 28 minutes [ 19680 ] 7 hours, 2 minutes [ 25320 ]
          Worklog Id 10937 [ 10937 ]
          jonathan Jonathan Reissmueller made changes -
          Time Spent 7 hours, 2 minutes [ 25320 ] 1 day, 2 minutes [ 28920 ]
          Worklog Id 10939 [ 10939 ]
          jonathan Jonathan Reissmueller made changes -
          Time Spent 1 day, 2 minutes [ 28920 ] 1 day, 1 hour, 18 minutes [ 33480 ]
          Worklog Id 10940 [ 10940 ]
          Automated transition triggered when Jonathan Reissmueller created pull request #413 in Stash -
          Status In Progress [ 3 ] In Review [ 5 ]
          Resolution Fixed [ 1 ]
          tyson Tyson Phillips (Inactive) made changes -
          Sprint 4.3.0 Sprint 5, 4.3.0 Sprint 6 [ 55, 56 ] 4.3.0 Sprint 5, 4.3.0 Sprint 6, 4.3.0 Sprint 7 [ 55, 56, 57 ]
          tyson Tyson Phillips (Inactive) made changes -
          Rank Ranked higher
          jonathan Jonathan Reissmueller made changes -
          Time Spent 1 day, 1 hour, 18 minutes [ 33480 ] 1 day, 2 hours, 50 minutes [ 39000 ]
          Worklog Id 10950 [ 10950 ]
          jonathan Jonathan Reissmueller made changes -
          Time Spent 1 day, 2 hours, 50 minutes [ 39000 ] 1 day, 7 hours, 44 minutes [ 56640 ]
          Worklog Id 10955 [ 10955 ]
          jonathan Jonathan Reissmueller made changes -
          Time Spent 1 day, 7 hours, 44 minutes [ 56640 ] 2 days, 5 hours, 49 minutes [ 78540 ]
          Worklog Id 10958 [ 10958 ]
          jonathan Jonathan Reissmueller made changes -
          Time Spent 2 days, 5 hours, 49 minutes [ 78540 ] 2 days, 7 hours, 34 minutes [ 84840 ]
          Worklog Id 10962 [ 10962 ]
          jonathan Jonathan Reissmueller made changes -
          Time Spent 2 days, 7 hours, 34 minutes [ 84840 ] 3 days, 58 minutes [ 89880 ]
          Worklog Id 10966 [ 10966 ]
          tyson Tyson Phillips (Inactive) made changes -
          Sprint 4.3.0 Sprint 5, 4.3.0 Sprint 6, 4.3.0 Sprint 7 [ 55, 56, 57 ] 4.3.0 Sprint 5, 4.3.0 Sprint 6, 4.3.0 Sprint 7, 4.3.0 Sprint 8 [ 55, 56, 57, 58 ]
          tyson Tyson Phillips (Inactive) made changes -
          Rank Ranked higher
          jonathan Jonathan Reissmueller made changes -
          Time Spent 3 days, 58 minutes [ 89880 ] 3 days, 1 hour, 5 minutes [ 90300 ]
          Worklog Id 10999 [ 10999 ]
          jonathan Jonathan Reissmueller made changes -
          Time Spent 3 days, 1 hour, 5 minutes [ 90300 ] 3 days, 1 hour, 14 minutes [ 90840 ]
          Worklog Id 11060 [ 11060 ]
          tyson Tyson Phillips (Inactive) made changes -
          Sprint 4.3.0 Sprint 5, 4.3.0 Sprint 6, 4.3.0 Sprint 7, 4.3.0 Sprint 8 [ 55, 56, 57, 58 ] 4.3.0 Sprint 5, 4.3.0 Sprint 6, 4.3.0 Sprint 7, 4.3.0 Sprint 8, 4.3.0 Sprint 9 [ 55, 56, 57, 58, 60 ]
          tyson Tyson Phillips (Inactive) made changes -
          Rank Ranked higher
          jonathan Jonathan Reissmueller made changes -
          Time Spent 3 days, 1 hour, 14 minutes [ 90840 ] 3 days, 1 hour, 44 minutes [ 92640 ]
          Worklog Id 11154 [ 11154 ]
          jonathan Jonathan Reissmueller made changes -
          Time Spent 3 days, 1 hour, 44 minutes [ 92640 ] 3 days, 3 hours, 44 minutes [ 99840 ]
          Worklog Id 11214 [ 11214 ]
          jonathan Jonathan Reissmueller made changes -
          Time Spent 3 days, 3 hours, 44 minutes [ 99840 ] 3 days, 4 hours, 14 minutes [ 101640 ]
          Worklog Id 11214 [ 11214 ]
          jonathan Jonathan Reissmueller made changes -
          Time Spent 3 days, 4 hours, 14 minutes [ 101640 ] 3 days, 5 hours, 44 minutes [ 107040 ]
          Worklog Id 11225 [ 11225 ]
          jonathan Jonathan Reissmueller made changes -
          Time Spent 3 days, 5 hours, 44 minutes [ 107040 ] 3 days, 7 hours, 14 minutes [ 112440 ]
          Worklog Id 11226 [ 11226 ]
          jonathan Jonathan Reissmueller made changes -
          Time Spent 3 days, 7 hours, 14 minutes [ 112440 ] 4 days, 5 hours, 16 minutes [ 134160 ]
          Worklog Id 11229 [ 11229 ]
          jonathan Jonathan Reissmueller made changes -
          Time Spent 4 days, 5 hours, 16 minutes [ 134160 ] 1 week, 3 hours, 37 minutes [ 157020 ]
          Worklog Id 11232 [ 11232 ]
          jonathan Jonathan Reissmueller made changes -
          Worklog Id 11232 [ 11232 ]
          tyson Tyson Phillips (Inactive) made changes -
          Sprint 4.3.0 Sprint 5, 4.3.0 Sprint 6, 4.3.0 Sprint 7, 4.3.0 Sprint 8, 4.3.0 Sprint 9 [ 55, 56, 57, 58, 60 ] 4.3.0 Sprint 5, 4.3.0 Sprint 6, 4.3.0 Sprint 7, 4.3.0 Sprint 8, 4.3.0 Sprint 9, 4.3.0 Sprint 10 [ 55, 56, 57, 58, 60, 61 ]
          tyson Tyson Phillips (Inactive) made changes -
          Rank Ranked higher
          jonathan Jonathan Reissmueller made changes -
          Time Spent 1 week, 3 hours, 37 minutes [ 157020 ] 1 week, 6 hours, 17 minutes [ 166620 ]
          Worklog Id 11236 [ 11236 ]
          jonathan Jonathan Reissmueller made changes -
          Time Spent 1 week, 6 hours, 17 minutes [ 166620 ] 1 week, 6 hours, 42 minutes [ 168120 ]
          Worklog Id 11238 [ 11238 ]
          jonathan Jonathan Reissmueller made changes -
          Time Spent 1 week, 6 hours, 42 minutes [ 168120 ] 1 week, 1 day, 56 minutes [ 176160 ]
          Worklog Id 11241 [ 11241 ]
          jonathan Jonathan Reissmueller made changes -
          Time Spent 1 week, 1 day, 56 minutes [ 176160 ] 1 week, 1 day, 4 hours, 37 minutes [ 189420 ]
          Worklog Id 11246 [ 11246 ]
          jonathan Jonathan Reissmueller made changes -
          Time Spent 1 week, 1 day, 4 hours, 37 minutes [ 189420 ] 1 week, 1 day, 5 hours, 27 minutes [ 192420 ]
          Worklog Id 11247 [ 11247 ]
          jonathan Jonathan Reissmueller made changes -
          Time Spent 1 week, 1 day, 5 hours, 27 minutes [ 192420 ] 1 week, 1 day, 5 hours, 58 minutes [ 194280 ]
          Worklog Id 11249 [ 11249 ]
          Automated transition triggered when Tyson Phillips (Inactive) merged pull request #46 in Stash -
          Status In Review [ 5 ] Closed [ 6 ]
          tyson Tyson Phillips (Inactive) made changes -
          Link This issue Testing discovered CORE-2740 [ CORE-2740 ]
          tyson Tyson Phillips (Inactive) made changes -
          Link This issue relates to CORE-2807 [ CORE-2807 ]

            People

            • Assignee:
              jonathan Jonathan Reissmueller
              Reporter:
              admin Paul Phillips
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:
                Fix Release Date:
                15/Jun/18

                Time Tracking

                Estimated:
                Original Estimate - Not Specified
                Not Specified
                Remaining:
                Remaining Estimate - 0 minutes
                0m
                Logged:
                Time Spent - 1 week, 1 day, 5 hours, 58 minutes
                1w 1d 5h 58m

                  Agile