balance_promotion.rb 4.4 KB

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