order_detail.rb 3.8 KB

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