Class: HhPackage::Package::Base
Overview
Constant Summary
ModelConcerns::MixAndMatch::MINIMUM_MIX_AND_MATCH
Class Method Summary
collapse
Instance Method Summary
collapse
#ala_carte?, #decide_max_seat, #decide_min_seat, #dynamic_price_comemore_payless?, #dynamic_pricings_as_json, #highest_pricing, #lowest_pricing, #price_currency, #pricing_model_and_dynamic_pricing_type, #pricing_tier, pricing_type, #pricing_type_humanize, #validate_comemore_payless_promotion, #validate_menu_v3_diy
#allow_mix_and_match?, #allow_mix_ayce?, #mix_n_match_qty, #use_mix_and_match?
Methods included from SoftDelete
#soft_deleted?, #soft_destroy
Class Method Details
.per_pack_or_set(package, pricing = nil) ⇒ Object
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
# File 'app/models/hh_package/package/base.rb', line 52
def self.per_pack_or_set(package, pricing = nil)
case package.dynamic_price_pricing_model.to_sym
when :per_pack
if pricing.nil?
pricing = package.dynamic_pricings.first
if pricing.nil?
APMErrorHandler.report "missing pricing for package #{package.id}",
dynamic_pricings: package.dynamic_pricings.as_json
return HhPackage::Pricing::PER_PACK_DEFAULT_WHEN_MISSING
end
pricing.per_pack
else
pricing.per_pack
end
when :per_set
HhPackage::Pricing::PER_SET_DEFAULT
end
end
|
Instance Method Details
#kids_price_rate ⇒ Object
No need to trigger this callback on Package level, we should do it on RestaurantPackage level after_commit :update_inv_checker_package_base_level_cache, on: [:create, :update]
13
14
15
16
|
# File 'app/models/hh_package/package/base.rb', line 13
def kids_price_rate
0
end
|
18
19
20
|
# File 'app/models/hh_package/package/base.rb', line 18
def
package_attr&.
end
|
22
23
24
25
26
|
# File 'app/models/hh_package/package/base.rb', line 22
def (value)
build_package_attr if package_attr.nil?
package_attr. = value
end
|
#reservations ⇒ Object
48
49
50
|
# File 'app/models/hh_package/package/base.rb', line 48
def reservations
Reservation.joins(:reservation_packages).where(reservation_packages: { restaurant_package_id: restaurant_package_ids }).reached_goal_scope
end
|
#route_name ⇒ Object
44
45
46
|
# File 'app/models/hh_package/package/base.rb', line 44
def route_name
raise NotImplementedError
end
|
#slug_code ⇒ Object
40
41
42
|
# File 'app/models/hh_package/package/base.rb', line 40
def slug_code
raise NotImplementedError
end
|
#tnc_link ⇒ Object
36
37
38
|
# File 'app/models/hh_package/package/base.rb', line 36
def tnc_link
AdminSetting.send("term_condition_link_#{route_name}".to_sym).presence || nil
end
|
#type ⇒ Object
28
29
30
|
# File 'app/models/hh_package/package/base.rb', line 28
def type
raise NotImplementedError
end
|
#type_short ⇒ Object
32
33
34
|
# File 'app/models/hh_package/package/base.rb', line 32
def type_short
raise NotImplementedError
end
|