Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.
 
 
 
 
 
 

171 рядки
6.6 KiB

  1. <?php
  2. namespace backend\modules\api\models;
  3. use Yii;
  4. /**
  5. * This is the model class for table "outside_ticket".
  6. *
  7. * @property integer $id
  8. * @property integer $supplier_id
  9. * @property string $prod_name
  10. * @property string $prod_code
  11. * @property string $ticket_code
  12. * @property string $ticket_date
  13. * @property string $ticket_time
  14. * @property string $ticket_name
  15. * @property string $ticket_comment
  16. * @property integer $ticket_num
  17. * @property string $ticket_price
  18. * @property string $agent_price
  19. * @property integer $cancel_flag
  20. * @property string $update_time
  21. * @property integer $cs_prod_id
  22. */
  23. class OutsideTicket extends \yii\db\ActiveRecord
  24. {
  25. /**
  26. * @inheritdoc
  27. */
  28. public static function tableName()
  29. {
  30. return 'outside_ticket';
  31. }
  32. /**
  33. * @inheritdoc
  34. */
  35. public function rules()
  36. {
  37. return [
  38. [['supplier_id', 'ticket_num', 'cancel_flag', 'cs_prod_id'], 'integer'],
  39. [['ticket_comment'], 'string'],
  40. [['ticket_price', 'agent_price'], 'number'],
  41. [['update_time'], 'safe'],
  42. [['prod_name', 'prod_code'], 'string', 'max' => 50],
  43. [['ticket_code'], 'string', 'max' => 100],
  44. [['ticket_date', 'ticket_time', 'ticket_name'], 'string', 'max' => 20],
  45. ];
  46. }
  47. /**
  48. * @inheritdoc
  49. */
  50. public function attributeLabels()
  51. {
  52. return [
  53. 'id' => 'ID',
  54. 'supplier_id' => 'Supplier ID',
  55. 'prod_name' => 'Prod Name',
  56. 'prod_code' => 'Prod Code',
  57. 'ticket_code' => 'Ticket Code',
  58. 'ticket_date' => 'Ticket Date',
  59. 'ticket_time' => 'Ticket Time',
  60. 'ticket_name' => 'Ticket Name',
  61. 'ticket_comment' => 'Ticket Comment',
  62. 'ticket_num' => 'Ticket Num',
  63. 'ticket_price' => 'Ticket Price',
  64. 'agent_price' => 'Agent Price',
  65. 'cancel_flag' => 'Cancel Flag',
  66. 'update_time' => 'Update Time',
  67. 'cs_prod_id' => 'Cs Prod ID',
  68. ];
  69. }
  70. //************************************邱哥没备注的三个方法**********************************************
  71. public function getTicketMiniValueRun( $ticket_code )
  72. {
  73. $ticket_code_array = explode("_", $ticket_code);
  74. $search_ticket_code = $ticket_code_array[0];
  75. $current_date = date("Y-m-d");
  76. $row = self::find()->select("opr.run_date as ticket_date,opr.run_time as ticket_time,min(opr.cus_price) as mini_price ")->from("opera_product_run as opr")
  77. ->leftJoin("opera_product as op", "opr.PROD_ID = op.PROD_ID")
  78. ->leftJoin("opera_product as op2", "op.PARENT_ID = op2.PROD_ID" )
  79. ->where(['and', ["or",["=", "op2.prod_code", $ticket_code],["=", "op2.prod_id", $ticket_code]], [">=", "opr.run_date", $current_date], ["=", "opr.cancel_flag", 0]])
  80. ->groupBy("ticket_date")->asArray()->all();
  81. return $row;
  82. }
  83. public function getTicketDateRun( $ticket_code, $ticket_date ) {
  84. $ticket_code_array = explode("_", $ticket_code);
  85. $search_ticket_code = $ticket_code_array[0];
  86. $row = self::find()->select("op2.prod_name,op2.prod_code,opr.prod_id as ticket_code,opr.run_date as ticket_date,opr.run_time as ticket_time,op.prod_name ticket_name,(opr.total_count - opr.saled_count) as ticket_num,opr.cus_price as ticket_price,opr.prod_id as cs_prod_id,opr.prod_id as prod_id,opr.is_onsale")->from("opera_product_run as opr")
  87. ->leftJoin("opera_product as op", "opr.PROD_ID = op.PROD_ID" )
  88. ->leftJoin("opera_product as op2", "op.PARENT_ID = op2.PROD_ID" )
  89. ->where(['and', ["or",["=", "op2.prod_code", $search_ticket_code],["=", "op2.prod_id", $search_ticket_code]], ["=", "opr.run_date", $ticket_date], ["=", "opr.cancel_flag", 0]])->asArray()->all();
  90. return $row;
  91. }
  92. public function getTicketAll() {
  93. $not_ticket_array = array(81,82,282);
  94. $row = self::find()->select("prod_id,prod_name,prod_code,prod_type,parent_id")->from("opera_product")
  95. ->where(['and',["not in", "prod_type", $not_ticket_array],["=", "cancel_flag", 0],["=", "is_onsale", 1]])->asArray()->all();
  96. return $row;
  97. }
  98. //****************************************************************************************************************************
  99. /**
  100. * Function Description:插入或更新outside_ticket,根据驴妈妈批量数据
  101. * Function Name: InsertData
  102. * @param $tmp_prod_code
  103. * @param $tmp_prod_name
  104. * @param $tmp_ticket_code
  105. * @param $tmp_ticket_date
  106. * @param $tmp_ticket_name
  107. * @param $tmp_ticket_num
  108. * @param $tmp_ticket_price
  109. * @param $tmp_agent_price
  110. * @param $tmp_cs_prod_id
  111. *
  112. * @return bool
  113. *
  114. * @author 娄梦宁
  115. */
  116. public function InsertData($tmp_prod_code,$tmp_prod_name,$tmp_ticket_code,$tmp_ticket_date,$tmp_ticket_name,
  117. $tmp_ticket_num,$tmp_ticket_price,$tmp_agent_price,$tmp_cs_prod_id){
  118. $transaction = Yii::$app->db->beginTransaction();
  119. $values=[
  120. 'prod_code'=>(string)$tmp_prod_code,
  121. 'prod_name'=>$tmp_prod_name,
  122. 'ticket_code'=>(string)$tmp_ticket_code,
  123. 'ticket_date'=>$tmp_ticket_date,
  124. 'ticket_name'=>$tmp_ticket_name,
  125. 'ticket_num'=>$tmp_ticket_num,
  126. 'ticket_price'=>$tmp_ticket_price,
  127. 'agent_price'=>$tmp_agent_price,
  128. 'cs_prod_id'=>$tmp_cs_prod_id,
  129. 'supplier_id'=>1369,
  130. 'cancel_flag'=>0
  131. ];
  132. $model=self::find()->select('id')->from(self::tableName())
  133. ->where(['and',['=','prod_code',$tmp_prod_code],['=','ticket_code',$tmp_ticket_code],['=','ticket_date',$tmp_ticket_date]])
  134. ->asArray()->one();
  135. if(!$model){//为空时插入
  136. $outside_ticket=clone $this;
  137. $outside_ticket->attributes=$values;
  138. $res=$outside_ticket->insert();
  139. if(!$res){
  140. $transaction->rollBack();
  141. return false;
  142. }
  143. }else{//更新
  144. self::updateAll($values,['id'=>$model['id']]);
  145. }
  146. $transaction->commit();
  147. return true;
  148. }
  149. /*
  150. * 删除票种
  151. */
  152. public function cancelGoods($prod_code,$ticket_code){
  153. self::updateAll(['prod_code'=>$prod_code,'ticket_code'=>$ticket_code,'cancel_flag'=>0],['cancel_flag'=>1]);//库存表数据失效
  154. $opera_prod=new OperaProduct();
  155. $opera_prod::updateAll(['prod_code'=>$ticket_code,'org_id'=>1369,'cancel_flag'=>0],['cancel_flag'=>1]);//产品表该条商品失效
  156. }
  157. }