base_detail.rb 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  1. # encoding:utf-8
  2. class BaseDetail < ActiveRecord::Base
  3. has_paper_trail
  4. self.table_name = "base_details"
  5. belongs_to :product
  6. belongs_to :order, :foreign_key => :order_id
  7. # has_one :order, :foreign_key=>:order_id, :primary_key=>:order_id
  8. validates :product_id,:nums,:dt_id, presence: true
  9. validate :order_validation
  10. def order_validation
  11. if self.product_id > 0
  12. prd = Product.where("id = ?", self.product_id).first
  13. if prd.blank?
  14. self.errors.add(:product_id,"商品不存在,请重新填写商品ID")
  15. else
  16. self.product_name=prd.name
  17. #self.price=prd.price
  18. end
  19. end
  20. if self.dt_id > 0
  21. orDt = OrderDetail.where("id = ?", self.dt_id).first
  22. if orDt.blank?
  23. self.errors.add(:dt_id,"订单明细ID不存在,请重新填写明细ID")
  24. else
  25. self.order_no=orDt.order_no
  26. self.order_id=orDt.order_id
  27. #self.price=prd.price
  28. end
  29. end
  30. end
  31. def order_state
  32. order = Order.where("id = ?", self.order_id).first
  33. if !order.blank?
  34. return order.status
  35. end
  36. end
  37. STATUS_ENUM = [["未支付","unpay"],["已关闭","closed"],["待确认","unconfirmed"],["处理中","processing"],["已完成","complete"],["待收货","dispatch"],["已退款","refunded"]]
  38. def paid_time
  39. order = Order.where("id = ?", self.order_id).first
  40. if !order.blank?
  41. paidTime=order.paied_at == 0 || order.paied_at == nil ? Time.at(0) : Time.at(order.paied_at)
  42. return paidTime
  43. end
  44. return paidTime
  45. end
  46. def pay_way
  47. payWay = ""
  48. order = Order.where("id = ?", self.order_id).first
  49. if !order.blank?
  50. payWay=order.pay_way
  51. end
  52. return payWay
  53. end
  54. STATUS_ENUM = [["未支付","unpay"],["已关闭","closed"],["待确认","unconfirmed"],["处理中","processing"],["已完成","complete"],["待收货","dispatch"],["已退款","refunded"]]
  55. PAY_WAY_ENUM = [
  56. # ["Web网银连连支付","webbankllpay"],
  57. # ["Web认证连连支付","webauthllpay"],
  58. # ["Wap认证连连支付","wapauthllpay"],
  59. ["微信支付","weixinpay"],
  60. ["提货券支付","balance"],
  61. # ["公众号微信支付","gzhwxpay"],
  62. # ["公众号提货券支付","gzhbalance"],
  63. # ["统统微信支付","wx_sumpay"],
  64. # ["统统Web网银支付","webbanksumpay"],
  65. ]
  66. rails_admin do
  67. navigation_label '商品管理'
  68. weight -240
  69. parent Order
  70. list do
  71. filters [:product,:order_no,:nums,:price,:order_status]
  72. field :id
  73. field :order_no do
  74. filterable true
  75. end
  76. #field :order
  77. #field :product
  78. field :product do
  79. visible false
  80. end
  81. field :nums
  82. field :price do
  83. visible true
  84. label "单价(元)"
  85. formatted_value do
  86. value!=0 ? (value/100.0):0
  87. end
  88. end
  89. field :product_name
  90. field :order_status, :enum do
  91. filterable true
  92. enum do
  93. STATUS_ENUM
  94. end
  95. end
  96. # field :paid_time do
  97. # filterable true
  98. # formatted_value do
  99. # #bindings[:object].order.paied_time
  100. # (bindings[:object].order.paied_at == 0 || bindings[:object].order.paied_at == nil) ? Time.at(0) : Time.at(bindings[:object].order.paied_at)
  101. # end
  102. # end
  103. field :paid_time
  104. field :pay_way, :enum do
  105. filterable true
  106. enum do
  107. PAY_WAY_ENUM
  108. end
  109. end
  110. field :order_status, :enum do
  111. enum do
  112. STATUS_ENUM
  113. end
  114. end
  115. field :is_zeng
  116. #field :size_name
  117. #field :color_name
  118. field :created_at
  119. field :updated_at
  120. end
  121. show do
  122. field :id
  123. field :order_no
  124. field :product
  125. field :nums
  126. field :is_zeng
  127. field :price do
  128. visible true
  129. label "单价(元)"
  130. formatted_value do
  131. value!=0 ? (value/100.0):0
  132. end
  133. end
  134. field :product_name
  135. #field :size_name
  136. #field :color_name
  137. field :created_at
  138. field :updated_at
  139. end
  140. edit do
  141. # field :order_no
  142. #field :order_id
  143. field :dt_id
  144. field :product_id
  145. field :nums
  146. field :is_zeng
  147. field :price
  148. end
  149. export do
  150. include_all_fields
  151. field :wx_user_id do
  152. formatted_value do
  153. bindings[:object].order.wx_user_id
  154. end
  155. end
  156. field :nums
  157. field :product_name
  158. end
  159. end
  160. end