User of dealer can switch tracker from tariff t1 to tariff t2 if:
- tracker belongs to user and isn’t a clone.
- tracker’s tariff last changed more than tariff.freeze.period (config option. default 30 days) ago.
- t1.tariff_id != t2.tariff_id, i.e. new tariff must be differ from current.
- t1.dealer_id = t2.dealer_id = dealer.effectiveDealerId, i.e. current and new tariffs must belongs to user’s effective dealer
- t2.active = 1, i.e. new tariff is active (tariff’s option “Allow users to switch to this tariff independently” in panel is set on)
- t1.grouping = t2.grouping, i.e. user can change tariff only within one group of tariffs
- t2.device = tracker, i.e. new tariff must be for trackers
- new tariff is available to user’s legal type
User’s effective dealer is
- user’s dealer if its dealer_id = defaultDealerId (config option) or dogovor_type = ‘paas’
- parent of user’s dealer elsewise
- 201 – Not found in database (if user doesn’t have trackers with given tracker_id)
- 219 – Not allowed for clones of the device
- 237 – Invalid tariff (if there are no tariff with tracker.tariff_id and belongs to user’s effective dealer)