diff --git a/app/controllers/api/plans_controller.rb b/app/controllers/api/plans_controller.rb index c860c3e4b..f5895b07d 100644 --- a/app/controllers/api/plans_controller.rb +++ b/app/controllers/api/plans_controller.rb @@ -26,7 +26,7 @@ class API::PlansController < API::ApiController end type = plan_params[:type] - partner = params[:plan][:partner_id].empty? ? nil : User.find(params[:plan][:partner_id]) + partner = params[:plan][:partner_id].blank? ? nil : User.find(params[:plan][:partner_id]) plan = PlansService.create(type, partner, plan_params) if plan.key?(:errors) diff --git a/app/frontend/src/javascript/components/plans/plan-form.tsx b/app/frontend/src/javascript/components/plans/plan-form.tsx index e26e43550..6b36c583e 100644 --- a/app/frontend/src/javascript/components/plans/plan-form.tsx +++ b/app/frontend/src/javascript/components/plans/plan-form.tsx @@ -166,8 +166,9 @@ export const PlanForm: React.FC = ({ action, plan, onError, onSuc formState={formState} id="amount" type="number" + step={0.01} addOn={FormatLib.currencySymbol()} - rules={{ required: true }} + rules={{ required: true, min: 0 }} label={t('app.admin.plan_form.subscription_price')} /> = ({ action, plan, onError, onSuc onChange={handlePartnershipChange} formState={formState} label={t('app.admin.plan_form.partner_plan')} /> - + {output.type === 'PartnerPlan' &&
} onClick={tooglePartnerModal}> {t('app.admin.plan_form.new_user')} diff --git a/app/models/plan.rb b/app/models/plan.rb index 93a7f992f..ac1323845 100644 --- a/app/models/plan.rb +++ b/app/models/plan.rb @@ -40,7 +40,7 @@ class Plan < ApplicationRecord def self.create_for_all_groups(plan_params) plans = [] - Group.find_each do |group| + Group.where(disabled: [nil, false]).find_each do |group| plan = if plan_params[:type] == 'PartnerPlan' PartnerPlan.new(plan_params.except(:group_id, :type)) else diff --git a/app/services/plans_service.rb b/app/services/plans_service.rb index e393e4619..1c78f6f31 100644 --- a/app/services/plans_service.rb +++ b/app/services/plans_service.rb @@ -12,11 +12,9 @@ class PlansService { plan_ids: plans.map(&:id) } else plan = type.constantize.new(params) - if plan.save - partner&.add_role :partner, plan - else - return { errors: plan.errors.full_messages } - end + return { errors: plan.errors.full_messages } unless plan.save + + partner&.add_role :partner, plan { plan_ids: [plan.id] } end rescue PaymentGatewayError => e