Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 
 
 
 
 

186 linhas
6.7 KiB

  1. <?php
  2. namespace backend\modules\motorcade\models;
  3. use backend\modules\api\models\BaseUser;
  4. use backend\modules\zzcs\models\DictType;
  5. use Yii;
  6. use yii\data\ActiveDataProvider;
  7. use common\models\zModel;
  8. /**
  9. * This is the model class for table "bus_department".
  10. *
  11. * @property integer $ID
  12. * @property integer $cancel_flag
  13. * @property integer $create_user_id
  14. * @property string $create_time
  15. * @property string $depart_name
  16. * @property integer $main_cooperation_id
  17. * @property integer $depart_type
  18. * @property integer $settle_type
  19. * @property integer $settle_cycle
  20. * @property integer $sales_man_id
  21. * @property int $status
  22. */
  23. class BusDepartment extends zModel
  24. {
  25. /**
  26. * @inheritdoc
  27. */
  28. public static function tableName()
  29. {
  30. return 'bus_department';
  31. }
  32. /**
  33. * @inheritdoc
  34. */
  35. public function rules()
  36. {
  37. return [
  38. [['depart_type', 'settle_type', 'settle_cycle'], 'required'],
  39. [['depart_type', 'settle_type', 'settle_cycle'], 'required', 'on' => ['add_customer']],
  40. [['cancel_flag', 'create_user_id', 'main_cooperation_id', 'depart_type', 'settle_type', 'settle_cycle'], 'integer'],
  41. [['create_time'], 'safe'],
  42. [['depart_name'], 'string', 'max' => 255],
  43. [['depart_name'], 'unique', 'targetAttribute' => ['depart_name', 'cancel_flag', 'main_cooperation_id'], 'message' => '用车单位已经存在!'],
  44. [['depart_name'], 'required', 'message' => '请填写客户名称', 'on' => ['add_customer']],
  45. [['company_name'], 'required', 'message' => '请填写公司全称', 'on' => ['add_customer']],
  46. [['sales_man_id'], 'required', 'message' => '请选择业务员', 'on' => ['add_customer']],
  47. ];
  48. }
  49. /**
  50. * 自定义规则:检查当前运营主体下有没有有效的(cancel_flag=0)的同名用车单位
  51. * User: Steven
  52. * @param $attribute
  53. * @return bool
  54. */
  55. /*public function uniqueBySpecial($attribute)
  56. {
  57. $res = BusDepartment::findOne([
  58. 'depart_name' => $this->depart_name,
  59. 'cancel_flag' => 0,
  60. 'main_cooperation_id' => Yii::$app->user->identity->MAIN_CORP_ID2
  61. ]);
  62. if ($res != null) {
  63. $this->addError($attribute, '用车单位已经存在!');
  64. return false;
  65. } else {
  66. return true;
  67. }
  68. }*/
  69. /**
  70. * @inheritdoc
  71. */
  72. public function attributeLabels()
  73. {
  74. return [
  75. 'ID' => 'ID',
  76. 'cancel_flag' => 'Cancel Flag',
  77. 'create_user_id' => 'Create User ID',
  78. 'create_time' => 'Create Time',
  79. 'depart_name' => '客户名称',
  80. 'company_name' => '公司全称',
  81. 'main_cooperation_id' => '运营主体ID',
  82. 'depart_type' => '类型',
  83. 'settle_type' => '结算方式', //(授信 275,预付 288,单结 292)
  84. 'settle_cycle' => '结算周期', //(293:日结 294:周结 295 月结)
  85. 'sales_man_id' => '业务员',
  86. 'departStatus.TYPE_NAME' => '状态',
  87. 'departType.TYPE_NAME' => '类型'
  88. ];
  89. }
  90. public function beforeSave($insert)
  91. {
  92. if ($this->isNewRecord) {
  93. $this->create_time = date('Y-m-d H:i:s', time());
  94. $this->create_user_id = Yii::$app->user->id;
  95. $this->main_cooperation_id = Yii::$app->user->identity->MAIN_CORP_ID2;
  96. $this->cancel_flag = 0;
  97. }
  98. return parent::beforeSave($insert);
  99. }
  100. //结算方式
  101. public function getSettleType()
  102. {
  103. return $this->hasOne(DictType::className(), ['ID' => 'settle_type'])->from(DictType::tableName() . ' as settleType');
  104. }
  105. //结算周期
  106. public function getSettleCycle()
  107. {
  108. return $this->hasOne(DictType::className(), ['ID' => 'settle_cycle'])->from(DictType::tableName() . ' as settleCycle');
  109. }
  110. public function getDepartType()
  111. {
  112. return $this->hasOne(DictType::className(), ['ID' => 'depart_type']);
  113. }
  114. public function getDepartStatus()
  115. {
  116. return $this->hasOne(DictType::className(), ['ID' => 'status']);
  117. }
  118. public function getSalesName()
  119. {
  120. return $this->hasOne(BaseUser::className(), ['ID' => 'sales_man_id']);
  121. }
  122. /*public function load($data, $formName = null)
  123. {
  124. $this->depart_name = isset($data['depart_name']) ? $data['depart_name'] : '';
  125. $this->depart_type = isset($data['depart_type']) ? $data['depart_type'] : 0;
  126. $this->sales_man_id = isset($data['sales_man_id']) ? $data['sales_man_id'] : 0;
  127. $this->status = isset($data['status']) ? $data['status'] : 0;
  128. return parent::load($data, $formName); // TODO: Change the autogenerated stub
  129. }*/
  130. public function getIndex()
  131. {
  132. $data = Yii::$app->request->get();
  133. $this->depart_name = isset($data['depart_name']) ? $data['depart_name'] : '';
  134. $this->depart_type = isset($data['depart_type']) ? $data['depart_type'] : 0;
  135. $this->sales_man_id = isset($data['sales_man_id']) ? $data['sales_man_id'] : 0;
  136. $this->status = isset($data['status']) ? $data['status'] : 0;
  137. $query = BusDepartment::find();
  138. $query->andFilterWhere(['cancel_flag' => 0, 'main_cooperation_id' => Yii::$app->user->identity->MAIN_CORP_ID2]);
  139. $query->andFilterWhere(['like', 'depart_name', $this->depart_name]);
  140. $query->orderBy('create_time desc');
  141. if ($this->depart_type != 0)
  142. $query->andFilterWhere(['depart_type' => $this->depart_type]);
  143. if ($this->sales_man_id != 0)
  144. $query->andFilterWhere(['sales_man_id' => $this->sales_man_id]);
  145. if ($this->status != 0)
  146. $query->andFilterWhere(['status' => $this->status]);
  147. $dataProvider = new ActiveDataProvider([
  148. 'query' => $query
  149. ]);
  150. return $dataProvider;
  151. }
  152. public static function getSales()
  153. {
  154. $sql = "select sales_man_id,base_user.TRUE_NAME from bus_department inner join base_user on bus_department.sales_man_id = base_user.ID where bus_department.main_cooperation_id = " . Yii::$app->user->identity->MAIN_CORP_ID2 . " group by sales_man_id";
  155. $data = Yii::$app->db->createCommand($sql)->queryAll();
  156. return $data;
  157. }
  158. //全部用车单位、客户
  159. public static function getList($type = '')
  160. {
  161. if ($type == 'array')
  162. return BusDepartment::find()->where(['cancel_flag' => 0, 'main_cooperation_id' => Yii::$app->user->identity->MAIN_CORP_ID2])->asArray()->all();
  163. else
  164. return BusDepartment::find()->where(['cancel_flag' => 0, 'main_cooperation_id' => Yii::$app->user->identity->MAIN_CORP_ID2])->all();
  165. }
  166. }