order_detail.rb 4.0 KB

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