Module: EffectiveProductsStampWizard

Extended by:
ActiveSupport::Concern
Defined in:
app/models/concerns/effective_products_stamp_wizard.rb

Overview

EffectiveProductsStampWizard

Mark your owner model with effective_products_stamp_wizard to get all the includes

Defined Under Namespace

Modules: Base, ClassMethods

Instance Method Summary collapse

Instance Method Details

#assign_pricingObject



117
118
119
120
121
122
123
124
125
# File 'app/models/concerns/effective_products_stamp_wizard.rb', line 117

def assign_pricing
  raise('assign_pricing() to be implemented by including class')

  # price = (stamp.physical? ? 100_00 : 50_00)
  # qb_item_name = "Professional Stamp"
  # tax_exempt = false

  # stamp.assign_attributes(price: price, qb_item_name: qb_item_name, tax_exempt: tax_exempt)
end

#build_stampObject



107
108
109
110
111
112
113
114
115
# File 'app/models/concerns/effective_products_stamp_wizard.rb', line 107

def build_stamp
  stamp = stamps.build(owner: owner)

  if (address = owner.try(:shipping_address) || owner.try(:billing_address)).present?
    stamp.shipping_address = address
  end

  stamp
end

#done?Boolean

Returns:

  • (Boolean)


99
100
101
# File 'app/models/concerns/effective_products_stamp_wizard.rb', line 99

def done?
  
end

#in_progress?Boolean

Returns:

  • (Boolean)


95
96
97
# File 'app/models/concerns/effective_products_stamp_wizard.rb', line 95

def in_progress?
  draft?
end

#stampObject



103
104
105
# File 'app/models/concerns/effective_products_stamp_wizard.rb', line 103

def stamp
  stamps.first
end

#stamp!Object

After the configure Stamp step



128
129
130
131
132
# File 'app/models/concerns/effective_products_stamp_wizard.rb', line 128

def stamp!
  assign_pricing() if stamp.present?
  raise('expected stamp to have a price') if stamp.price.blank?
  save!
end

#stamp_categoriesObject



134
135
136
# File 'app/models/concerns/effective_products_stamp_wizard.rb', line 134

def stamp_categories
  EffectiveProducts.stamp_categories
end

#to_sObject

Instance Methods



91
92
93
# File 'app/models/concerns/effective_products_stamp_wizard.rb', line 91

def to_s
  (persisted? || destroyed?) ? "#{model_name.human} ##{id_was}" : model_name.human
end