Order.php 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202
  1. <?php
  2. namespace common\models;
  3. use Yii;
  4. /**
  5. * This is the model class for table "{{%ORDER}}".
  6. *
  7. * @property string $ID
  8. * @property string $SN 订单号
  9. * @property string $DEC_SN 报单编号
  10. * @property string $USER_ID 用户ID
  11. * @property string $USER_NAME 会员编号
  12. * @property string $DEC_USER_ID 会员编号
  13. * @property string $ORDER_TYPE 订货类型
  14. * @property string $ORDER_AMOUNT 订单总价格(n)
  15. * @property string $ORDER_AMOUNT_STANDARD 订单总价格($)
  16. * @property string $PV 订货PV
  17. * @property string $PAY_AMOUNT 支付价格
  18. * @property string $PAY_AMOUNT_STANDARD 支付价格
  19. * @property string $EXCHANGE_RATE 汇率
  20. * @property string $PAY_PV 实付PV
  21. * @property int $PAY_AT 支付时间
  22. * @property string $PAY_TYPE 支付方式
  23. * @property string $FREIGHT 运费
  24. * @property string $PAY_FREIGHT 实付运费金额
  25. * @property int $DELIVERY_STATUS 发货状态
  26. * @property int $DELIVERY_PERIOD 发货期数
  27. * @property int $DELIVERY_AT 发货时间
  28. * @property string $EXPRESS_COMPANY 快递公司
  29. * @property string $ORDER_TRACK_NO 快递单号
  30. * @property int $EXPRESS_TYPE 发货方式
  31. * @property string $FRONT_REMARK 前台备注
  32. * @property string $REMARK 后台备注
  33. * @property int $PERIOD_NUM 期数
  34. * @property int $STATUS 订单状态
  35. * @property string $CONSIGNEE 收货人
  36. * @property string $MOBILE 收货人手机
  37. * @property string $TEL 固定电话
  38. * @property int $PROVINCE 省份名称
  39. * @property int $CITY 城市名称
  40. * @property int $COUNTY 县区
  41. * @property string $LGA_NAME
  42. * @property string $CITY_NAME
  43. * @property string $ADDRESS 详细地址
  44. * @property string $P_CALC_MONTH 分区日期
  45. * @property int $CREATED_AT 订单创建时间
  46. * @property string $CREATE_USER 订单创建人
  47. * @property int $UPDATED_AT 修改时间
  48. * @property string $UPDATER 修改人
  49. * @property int $IS_DELETE 是否删除
  50. * @property int $DELETED_AT 删除时间
  51. * @property int $WAREHOUSE 发货仓
  52. * @property string $EMAIL 邮箱
  53. * @property string $NOTE 备注说明
  54. * @property string COUNTRY_ID 国家ID
  55. * @property int CURRENCY_ID 币种ID
  56. * @property int AUTO_MAINTENANCE AMP订单
  57. * @property string INVOICE_REMARK 发票备注
  58. * @property string INVOICE_NO 发票号
  59. * @property string METHOD 支付方式
  60. */
  61. class Order extends \common\components\ActiveRecord
  62. {
  63. /**
  64. * {@inheritdoc}
  65. */
  66. public static function tableName()
  67. {
  68. return '{{%ORDER}}';
  69. }
  70. /**
  71. * {@inheritdoc}
  72. */
  73. public function rules()
  74. {
  75. return [
  76. [['USER_ID', 'ORDER_TYPE', 'CREATE_USER'/*, 'EMAIL'*/], 'required'],
  77. [['ORDER_AMOUNT', 'PV', 'PAY_AMOUNT', 'PAY_PV', 'FREIGHT', 'PAY_FREIGHT', 'ORDER_AMOUNT_STANDARD', 'PAY_AMOUNT_STANDARD', 'EXCHANGE_RATE'], 'number'],
  78. [['PAY_AT', 'DELIVERY_STATUS', 'DELIVERY_PERIOD', 'DELIVERY_AT', 'EXPRESS_TYPE', 'PERIOD_NUM', 'STATUS', 'PROVINCE', /*'CITY', 'COUNTY', */'CREATED_AT', 'UPDATED_AT', 'IS_DELETE', 'DELETED_AT', 'AUTO_MAINTENANCE'], 'integer'],
  79. [['ID','SN', 'DEC_SN', 'USER_ID', 'ORDER_TRACK_NO','PAY_TYPE','DEC_USER_ID'], 'string', 'max' => 32],
  80. [['USER_NAME', 'TEL', 'CREATE_USER', 'UPDATER', 'WAREHOUSE'], 'string', 'max' => 16],
  81. [['ORDER_TYPE'], 'string', 'max' => 12],
  82. [['EXPRESS_COMPANY'], 'string', 'max' => 128],
  83. [['FRONT_REMARK'], 'string', 'max' => 1000],
  84. [['REMARK', 'NOTE'], 'string', 'max' => 4000],
  85. [['CONSIGNEE'], 'string', 'max' => 120],
  86. [['MOBILE'], 'string', 'max' => 15],
  87. [['ADDRESS'], 'string', 'max' => 255],
  88. [['SN'], 'unique'],
  89. ];
  90. }
  91. /**
  92. * {@inheritdoc}
  93. */
  94. public function attributeLabels()
  95. {
  96. return [
  97. 'ID' => 'ID',
  98. 'SN' => '订单号',
  99. 'DEC_SN' => '报单编号',
  100. 'USER_ID' => '用户ID',
  101. 'USER_NAME' => '会员编号',
  102. 'DEC_USER_ID' => '报单中心编号',
  103. 'ORDER_TYPE' => '订货类型',
  104. 'ORDER_AMOUNT' => '订单总价格',
  105. 'PV' => '订货BV',
  106. 'PAY_AMOUNT' => '支付价格',
  107. 'PAY_PV' => '实付BV',
  108. 'PAY_AT' => '支付时间',
  109. 'PAY_TYPE' => '支付方式',
  110. 'FREIGHT' => '运费',
  111. 'PAY_FREIGHT' => '实付运费金额',
  112. 'DELIVERY_STATUS' => '发货状态',
  113. 'DELIVERY_PERIOD' => '发货期数',
  114. 'DELIVERY_AT' => '发货时间',
  115. 'EXPRESS_COMPANY' => '快递公司',
  116. 'ORDER_TRACK_NO' => '快递单号',
  117. 'EXPRESS_TYPE' => '发货方式',
  118. 'FRONT_REMARK' => '前台备注',
  119. 'REMARK' => '后台备注',
  120. 'PERIOD_NUM' => '期数',
  121. 'STATUS' => '订单状态',
  122. 'CONSIGNEE' => '收货人',
  123. 'MOBILE' => '收货人手机',
  124. 'TEL' => '固定电话',
  125. 'PROVINCE' => '省份名称',
  126. // 'CITY' => '城市名称',
  127. // 'COUNTY' => '县区',
  128. 'ADDRESS' => '详细地址',
  129. 'P_CALC_MONTH' => '分区日期',
  130. 'CREATED_AT' => '订单创建时间',
  131. 'CREATE_USER' => '订单创建人',
  132. 'UPDATED_AT' => '修改时间',
  133. 'UPDATER' => '修改人',
  134. 'IS_DELETE' => '是否删除',
  135. 'DELETED_AT' => '删除时间',
  136. 'WAREHOUSE' => '发货仓',
  137. 'EMAIL' => 'Email',
  138. 'COUNTRY_ID' => '国家ID',
  139. 'CURRENCY_ID' => '币种ID',
  140. 'AUTO_MAINTENANCE' => 'AMP订单',
  141. 'INVOICE_REMARK' => '发票备注',
  142. ];
  143. }
  144. /*
  145. * 通过 期数和用户ID
  146. * 查询当月订单
  147. */
  148. public static function fetchOrderCurrentMonth($periodNum, $userId){
  149. $currentPeriod = Period::findOneAsArray("PERIOD_NUM = :PERIOD_NUM", [':PERIOD_NUM' => $periodNum]);
  150. switch ($currentPeriod['CALC_WEEKEND']){
  151. case 1:
  152. $periods = [$periodNum];
  153. break;
  154. case 2:
  155. $periods = [$periodNum-1, $periodNum];
  156. break;
  157. }
  158. $periodsStr = implode(",", $periods);
  159. $orders = Order::find()->where("USER_ID = :USER_ID AND PERIOD_NUM IN ($periodsStr)", [':USER_ID' => $userId]);
  160. return $orders;
  161. }
  162. /*
  163. * 通过 期数和用户ID
  164. * 查询当期订单
  165. */
  166. public static function fetchOrderCurrentPeriod($periodNum, $userId){
  167. $orders = Order::find()->where("USER_ID = :USER_ID AND PERIOD_NUM = :PERIOD_NUM", [':USER_ID' => $userId,':PERIOD_NUM' => $periodNum]);
  168. return $orders;
  169. }
  170. public function getRecName()
  171. {
  172. return $this->hasOne(UserInfo::class, ['USER_ID' => 'USER_ID']);
  173. }
  174. public function getUserByUserId()
  175. {
  176. return $this->hasOne(User::class, ['ID' => 'USER_ID']);
  177. }
  178. public function getOrderGoods()
  179. {
  180. return $this->hasMany(OrderGoods::class, ['SN' => 'ORDER_SN']);
  181. }
  182. public function getCountry()
  183. {
  184. return $this->hasOne(Countries::class, ['ID' => 'COUNTRY_ID']);
  185. }
  186. public function getCurrency()
  187. {
  188. return $this->hasOne(Currency::class, ['ID' => 'CURRENCY_ID']);
  189. }
  190. }