Module: CustomerOrganization
- Extended by:
- ActiveSupport::Concern
- Included in:
- Customer
- Defined in:
- app/models/concerns/customer_organization.rb
Overview
Parent/child orgs, buying groups, marketplace predicates, company determination.
Instance Method Summary collapse
- #abbreviation_for_packing_list ⇒ Object
- #all_or_none_are_blank_in_address? ⇒ Boolean
- #amazon_com? ⇒ Boolean
- #amazon_seller_central? ⇒ Boolean
- #amazon_vendor_central? ⇒ Boolean
- #broadcast_buying_group_changed(buying_group_id_added: nil, buying_group_id_removed: nil) ⇒ Object
- #build_com? ⇒ Boolean
- #buying_group_company? ⇒ Boolean
- #buying_group_name ⇒ Object
- #buying_groups_options_for_select ⇒ Object
- #canadian_tire? ⇒ Boolean
- #certified_installer? ⇒ Boolean
- #company_name ⇒ Object
- #company_name=(val) ⇒ Object
- #costco_ca? ⇒ Boolean
- #customer_segment ⇒ Object
- #dealer_or_trade_pro_for_locator? ⇒ Boolean
- #determine_company_id ⇒ Object
- #direct_buy? ⇒ Boolean
- #direct_buy_can? ⇒ Boolean
- #direct_buy_usa? ⇒ Boolean
- #e_commerce_misc? ⇒ Boolean
- #e_commerce_misc_or_direct_pro? ⇒ Boolean
- #effective_report_grouping ⇒ Object
- #home_depot_can? ⇒ Boolean
- #home_depot_usa? ⇒ Boolean
- #homeowner? ⇒ Boolean
- #houzz? ⇒ Boolean
- #include_po_prefix? ⇒ Boolean
- #organization? ⇒ Boolean
- #overstock_com? ⇒ Boolean
- #parent_organization_name ⇒ Object
- #part_of_lowes_ca? ⇒ Boolean
- #part_of_lowes_com? ⇒ Boolean
- #person? ⇒ Boolean
- #self_and_children_ids ⇒ Object
- #update_buying_group(buying_group_id) ⇒ Object
- #use_parent_billing_address ⇒ Object
- #use_parent_billing_address=(val) ⇒ Object
- #walmart_ca? ⇒ Boolean
- #wasn4_or_wat0f? ⇒ Boolean
- #wayfair? ⇒ Boolean
- #wayfair_ca? ⇒ Boolean
- #wayfair_usa? ⇒ Boolean
- #zoro? ⇒ Boolean
Instance Method Details
#abbreviation_for_packing_list ⇒ Object
29 30 31 32 33 |
# File 'app/models/concerns/customer_organization.rb', line 29 def abbreviation_for_packing_list abbreviation = name.length <= 18 ? name : nil abbreviation ||= name.split.filter_map(&:first).join marketplace_packing_abbreviation || abbreviation end |
#all_or_none_are_blank_in_address? ⇒ Boolean
196 197 198 |
# File 'app/models/concerns/customer_organization.rb', line 196 def all_or_none_are_blank_in_address? zip.present? || street1.present? || street2.present? || street3.present? || city.present? end |
#amazon_com? ⇒ Boolean
79 80 81 |
# File 'app/models/concerns/customer_organization.rb', line 79 def amazon_com? amazon_com_by_id? || amazon_com_by_parent_or_billing? || amazon_com_vendor_or_seller_ids? end |
#amazon_seller_central? ⇒ Boolean
83 84 85 |
# File 'app/models/concerns/customer_organization.rb', line 83 def amazon_seller_central? CustomerConstants::AMAZON_SELLER_CENTRAL_CUSTOMER_IDS.include?(id) end |
#amazon_vendor_central? ⇒ Boolean
87 88 89 |
# File 'app/models/concerns/customer_organization.rb', line 87 def amazon_vendor_central? CustomerConstants::AMAZON_VENDOR_CENTRAL_CUSTOMER_IDS.include?(id) end |
#broadcast_buying_group_changed(buying_group_id_added: nil, buying_group_id_removed: nil) ⇒ Object
173 174 175 176 |
# File 'app/models/concerns/customer_organization.rb', line 173 def (buying_group_id_added: nil, buying_group_id_removed: nil) CustomerBuyingGroupUpdater.broadcast(self, added: , removed: ) end |
#build_com? ⇒ Boolean
127 128 129 |
# File 'app/models/concerns/customer_organization.rb', line 127 def build_com? id == CustomerConstants::BUILD_COM_ID end |
#buying_group_company? ⇒ Boolean
145 146 147 |
# File 'app/models/concerns/customer_organization.rb', line 145 def profile&.name&.include?('Buying Group') && ! end |
#buying_group_name ⇒ Object
21 22 23 |
# File 'app/models/concerns/customer_organization.rb', line 21 def &.name end |
#buying_groups_options_for_select ⇒ Object
17 18 19 |
# File 'app/models/concerns/customer_organization.rb', line 17 def BuyingGroup.(include_id: , company_id: determine_company_id) end |
#canadian_tire? ⇒ Boolean
123 124 125 |
# File 'app/models/concerns/customer_organization.rb', line 123 def canadian_tire? id == CustomerConstants::CANADIAN_TIRE_ID end |
#certified_installer? ⇒ Boolean
135 136 137 |
# File 'app/models/concerns/customer_organization.rb', line 135 def certified_installer? certifications.active.any? end |
#company_name ⇒ Object
43 44 45 |
# File 'app/models/concerns/customer_organization.rb', line 43 def company_name full_name if organization? end |
#company_name=(val) ⇒ Object
47 48 49 |
# File 'app/models/concerns/customer_organization.rb', line 47 def company_name=(val) self.full_name = val.presence end |
#costco_ca? ⇒ Boolean
95 96 97 |
# File 'app/models/concerns/customer_organization.rb', line 95 def costco_ca? id == CustomerConstants::COSTCO_CA_ID end |
#customer_segment ⇒ Object
178 179 180 181 182 183 184 |
# File 'app/models/concerns/customer_organization.rb', line 178 def customer_segment if organization? .nil? ? 'TP' : 'BG' else 'HO' end end |
#dealer_or_trade_pro_for_locator? ⇒ Boolean
190 191 192 193 194 |
# File 'app/models/concerns/customer_organization.rb', line 190 def dealer_or_trade_pro_for_locator? profile&.jde_code_1.present? && %w[DL TP].include?(profile.jde_code_1) rescue StandardError false end |
#determine_company_id ⇒ Object
13 14 15 |
# File 'app/models/concerns/customer_organization.rb', line 13 def determine_company_id company_id || catalog&.company_id end |
#direct_buy? ⇒ Boolean
149 150 151 |
# File 'app/models/concerns/customer_organization.rb', line 149 def direct_buy? &.is_direct_buy? end |
#direct_buy_can? ⇒ Boolean
157 158 159 |
# File 'app/models/concerns/customer_organization.rb', line 157 def direct_buy_can? &.is_direct_buy_can? end |
#direct_buy_usa? ⇒ Boolean
153 154 155 |
# File 'app/models/concerns/customer_organization.rb', line 153 def direct_buy_usa? &.is_direct_buy_usa? end |
#e_commerce_misc? ⇒ Boolean
59 60 61 |
# File 'app/models/concerns/customer_organization.rb', line 59 def e_commerce_misc? profile&.e_commerce_misc? end |
#e_commerce_misc_or_direct_pro? ⇒ Boolean
63 64 65 |
# File 'app/models/concerns/customer_organization.rb', line 63 def e_commerce_misc_or_direct_pro? profile && (profile.e_commerce_misc? || profile.direct_pro?) end |
#effective_report_grouping ⇒ Object
39 40 41 |
# File 'app/models/concerns/customer_organization.rb', line 39 def effective_report_grouping Customer::ReportGrouping.get_report_grouping_for_customer(self) end |
#home_depot_can? ⇒ Boolean
71 72 73 |
# File 'app/models/concerns/customer_organization.rb', line 71 def home_depot_can? id == CustomerConstants::HOME_DEPOT_CAN_ID end |
#home_depot_usa? ⇒ Boolean
67 68 69 |
# File 'app/models/concerns/customer_organization.rb', line 67 def home_depot_usa? id == CustomerConstants::HOME_DEPOT_USA_ID end |
#homeowner? ⇒ Boolean
55 56 57 |
# File 'app/models/concerns/customer_organization.rb', line 55 def homeowner? profile_id == ProfileConstants::HOMEOWNER end |
#houzz? ⇒ Boolean
119 120 121 |
# File 'app/models/concerns/customer_organization.rb', line 119 def houzz? id == CustomerConstants::HOUZZ_ID end |
#include_po_prefix? ⇒ Boolean
35 36 37 |
# File 'app/models/concerns/customer_organization.rb', line 35 def include_po_prefix? CustomerConstants::SKIP_PREFIX_IN_PO_NUMBER_FOR_BILLING_ENTITY.exclude?(id) end |
#organization? ⇒ Boolean
51 52 53 |
# File 'app/models/concerns/customer_organization.rb', line 51 def organization? !homeowner? end |
#overstock_com? ⇒ Boolean
139 140 141 142 143 |
# File 'app/models/concerns/customer_organization.rb', line 139 def overstock_com? name.to_s.casecmp('overstock.com').zero? || (id == 303_919) || catalog.name.to_s.casecmp('overstock.com').zero? end |
#parent_organization_name ⇒ Object
25 26 27 |
# File 'app/models/concerns/customer_organization.rb', line 25 def parent_organization_name parent_organization&.name end |
#part_of_lowes_ca? ⇒ Boolean
99 100 101 |
# File 'app/models/concerns/customer_organization.rb', line 99 def part_of_lowes_ca? [CustomerConstants::LOWES_CA_ID, CustomerConstants::RONA_CA_ID, CustomerConstants::RENO_CA_ID].include?(id) end |
#part_of_lowes_com? ⇒ Boolean
103 104 105 |
# File 'app/models/concerns/customer_organization.rb', line 103 def part_of_lowes_com? [CustomerConstants::LOWES_COM_ID].include?(id) end |
#person? ⇒ Boolean
186 187 188 |
# File 'app/models/concerns/customer_organization.rb', line 186 def person? homeowner? end |
#self_and_children_ids ⇒ Object
9 10 11 |
# File 'app/models/concerns/customer_organization.rb', line 9 def self_and_children_ids [id] + child_organizations.pluck(:id) end |
#update_buying_group(buying_group_id) ⇒ Object
169 170 171 |
# File 'app/models/concerns/customer_organization.rb', line 169 def () CustomerBuyingGroupUpdater.call(self, ) end |
#use_parent_billing_address ⇒ Object
161 162 163 |
# File 'app/models/concerns/customer_organization.rb', line 161 def use_parent_billing_address parent_organization&.billing_address_id && (parent_organization.billing_address_id == billing_address_id) end |
#use_parent_billing_address=(val) ⇒ Object
165 166 167 |
# File 'app/models/concerns/customer_organization.rb', line 165 def use_parent_billing_address=(val) self.record_parent_billing_address = ((val == '1') && val.present?) end |
#walmart_ca? ⇒ Boolean
75 76 77 |
# File 'app/models/concerns/customer_organization.rb', line 75 def walmart_ca? id == CustomerConstants::WALMART_CA_ID end |
#wasn4_or_wat0f? ⇒ Boolean
91 92 93 |
# File 'app/models/concerns/customer_organization.rb', line 91 def wasn4_or_wat0f? [CustomerConstants::AMAZON_VENDOR_CENTRAL_WASN4_CUSTOMER_ID, CustomerConstants::AMAZON_VENDOR_CENTRAL_WAT0F_CUSTOMER_ID].include?(id) end |
#wayfair? ⇒ Boolean
107 108 109 |
# File 'app/models/concerns/customer_organization.rb', line 107 def wayfair? [CustomerConstants::WAYFAIR_USA_ID, CustomerConstants::WAYFAIR_CA_ID].include?(id) end |
#wayfair_ca? ⇒ Boolean
115 116 117 |
# File 'app/models/concerns/customer_organization.rb', line 115 def wayfair_ca? id == CustomerConstants::WAYFAIR_CA_ID end |
#wayfair_usa? ⇒ Boolean
111 112 113 |
# File 'app/models/concerns/customer_organization.rb', line 111 def wayfair_usa? id == CustomerConstants::WAYFAIR_USA_ID end |
#zoro? ⇒ Boolean
131 132 133 |
# File 'app/models/concerns/customer_organization.rb', line 131 def zoro? id == CustomerConstants::ZORO_ID end |