balance_promotion.rb 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  1. class BalancePromotion < ActiveRecord::Base
  2. has_paper_trail
  3. self.table_name = "balance_promotions"
  4. belongs_to :depart_record, :foreign_key => :depart
  5. validates :begin_time,:end_time,:name,:depart,:min_total,:max_total, presence: true
  6. validate :product_validation
  7. attr_accessor :get_depart_enum
  8. def product_validation
  9. if self.send_prod1 > 0
  10. prd1 = Product.where("id = ?", self.send_prod1).first
  11. if prd1.blank?
  12. self.errors.add(:send_prod1,"赠品1不存在,请重新填写。")
  13. end
  14. end
  15. if self.send_prod2 > 0
  16. prd2 = Product.where("id = ?", self.send_prod2).first
  17. if prd2.blank?
  18. self.errors.add(:send_prod2,"赠品2不存在,请重新填写。")
  19. end
  20. end
  21. if self.send_prod3 > 0
  22. prd3 = Product.where("id = ?", self.send_prod3).first
  23. if prd3.blank?
  24. self.errors.add(:send_prod3,"赠品3不存在,请重新填写。")
  25. end
  26. end
  27. end
  28. def send_prodcut1
  29. prd1 = Product.where("id = ?", self.send_prod1).first
  30. if !prd1.blank?
  31. return format("%s-%d",prd1.name,self.send_nums1)
  32. else
  33. return "--"
  34. end
  35. end
  36. def send_prodcut2
  37. prd1 = Product.where("id = ?", self.send_prod2).first
  38. if !prd1.blank?
  39. return format("%s-%d",prd1.name,self.send_nums2)
  40. else
  41. return "--"
  42. end
  43. end
  44. def send_prodcut3
  45. prd1 = Product.where("id = ?", self.send_prod3).first
  46. if !prd1.blank?
  47. return format("%s-%d",prd1.name,self.send_nums3)
  48. else
  49. return "--"
  50. end
  51. end
  52. def get_depart_enum
  53. DEPART_ENUM.clear
  54. if DEPART_ENUM.length ==0
  55. departAttrs = DepartRecord.where("1 ").order("id desc")
  56. departAttrs.each do |attr|
  57. a=[attr.name,attr.id]
  58. DEPART_ENUM.push(a)
  59. end
  60. end
  61. return DEPART_ENUM
  62. end
  63. rails_admin do
  64. navigation_label '促销管理'
  65. weight -100
  66. list do
  67. filters [:id,:name,:begin_time,:end_time]
  68. field :id
  69. field :name
  70. field :begin_time
  71. field :end_time
  72. field :min_total do
  73. label "最小金额(元)"
  74. formatted_value do # used in form views
  75. value.to_f / 100
  76. end
  77. end
  78. field :max_total do
  79. label "最大金额(元)"
  80. formatted_value do # used in form views
  81. value.to_f / 100
  82. end
  83. end
  84. field :is_more
  85. field :depart_record
  86. field :send_prodcut1
  87. field :send_prodcut1
  88. field :send_prodcut2
  89. field :send_prodcut3
  90. field :cash do
  91. label "代办金(元)"
  92. formatted_value do # used in form views
  93. value.to_f / 100
  94. end
  95. end
  96. field :cent do
  97. label "积分(元)"
  98. formatted_value do # used in form views
  99. value.to_f / 100
  100. end
  101. end
  102. field :is_enable
  103. field :created_at
  104. end
  105. show do
  106. field :id
  107. field :name
  108. field :begin_time
  109. field :end_time
  110. field :min_total do
  111. label "最小金额(元)"
  112. formatted_value do # used in form views
  113. value.to_f / 100
  114. end
  115. end
  116. field :max_total do
  117. label "最大金额(元)"
  118. formatted_value do # used in form views
  119. value.to_f / 100
  120. end
  121. end
  122. field :is_more
  123. field :depart_record
  124. field :send_prodcut1
  125. field :send_prodcut2
  126. field :send_prodcut3
  127. field :is_enable
  128. field :cash
  129. field :cent
  130. field :created_at
  131. field :created_at
  132. field :updated_at
  133. end
  134. edit do
  135. field :name
  136. field :begin_time
  137. field :end_time
  138. field :min_total
  139. field :max_total
  140. field :is_more
  141. field :depart, :enum do
  142. enum do
  143. bindings[:object].get_depart_enum
  144. end
  145. end
  146. field :send_prod1
  147. field :send_nums1
  148. field :send_prod2
  149. field :send_nums2
  150. field :send_prod3
  151. field :send_nums3
  152. field :cash
  153. field :cent
  154. field :is_enable
  155. end
  156. end
  157. end