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.
 
 
 
 
 
 

139 linhas
4.3 KiB

  1. <?php
  2. namespace common\models;
  3. use yii\db\ActiveRecord;
  4. /**
  5. * This is the model class for table "base_supplier_sale".
  6. *
  7. * @property integer $ID
  8. * @property integer $CREATE_USER_ID
  9. * @property string $CREATE_TIME
  10. * @property integer $UPDATE_USER_ID
  11. * @property string $UPDATE_TIME
  12. * @property integer $CANCEL_FLAG
  13. * @property integer $SUPPLIER_ID
  14. * @property integer $PROD_SUPPLIER_ID
  15. * @property integer $PRODUCT_TYPE
  16. * @property integer $PARENT_TYPE
  17. * @property integer $SALE_TYPE
  18. * @property integer $COMMISION_FLAG
  19. * @property integer $COMMISION_TYPE
  20. * @property integer $BACK_COMMISION_TYPE
  21. * @property integer $BACK_COMMISION_METHOD
  22. * @property string $BACK_PERCENT
  23. * @property string $BACK_VALUE
  24. */
  25. class BaseSupplierSale extends ActiveRecord
  26. {
  27. const SALE_HOTEL = 25; //酒店
  28. const TYPE_CHANNEL = 303; //佣金类型 渠道定义
  29. const TYPE_PRODUCT = 304; //产品定义
  30. const METHOD_PRICE = 308; //按销售金额
  31. const METHOD_COST = 309; //按结算金额
  32. const SALE_TYPE_AGENT = 277; //代理
  33. const SALE_TYPE_DIRECT = 312; //直营
  34. const SALE_TYPE_CHANNEL = 177; //分销
  35. /**
  36. * @inheritdoc
  37. */
  38. public static function tableName()
  39. {
  40. return 'base_supplier_sale';
  41. }
  42. /**
  43. * @inheritdoc
  44. */
  45. public function rules()
  46. {
  47. return [
  48. [['CREATE_USER_ID', 'UPDATE_USER_ID', 'CANCEL_FLAG', 'SUPPLIER_ID', 'PROD_SUPPLIER_ID', 'PRODUCT_TYPE', 'PARENT_TYPE', 'SALE_TYPE', 'COMMISION_FLAG', 'COMMISION_TYPE', 'BACK_COMMISION_TYPE', 'BACK_COMMISION_METHOD'], 'integer'],
  49. [['CREATE_TIME'], 'required'],
  50. [['UPDATE_TIME'], 'safe'],
  51. [['BACK_PERCENT', 'BACK_VALUE'], 'number'],
  52. [['CREATE_TIME'], 'string', 'max' => 20],
  53. ];
  54. }
  55. /**
  56. * @inheritdoc
  57. */
  58. public function attributeLabels()
  59. {
  60. return [
  61. 'ID' => 'ID',
  62. 'CREATE_USER_ID' => '记录创建用户ID',
  63. 'CREATE_TIME' => '记录创建时间',
  64. 'UPDATE_USER_ID' => '记录最后更新用户ID',
  65. 'UPDATE_TIME' => '记录最后更新时间',
  66. 'CANCEL_FLAG' => '记录有效性标记,CANCEL_FLAG=0记录有效;CANCEL_FLAG=1,记录已删除',
  67. 'SUPPLIER_ID' => '供应商或渠道商ID,对应BASE_SUPPLIER.ID',
  68. 'PROD_SUPPLIER_ID' => '供应商ID,对应BASE_SUPPLIER.ID',
  69. 'PRODUCT_TYPE' => '产品子类',
  70. 'PARENT_TYPE' => '产品父类',
  71. 'SALE_TYPE' => '销售方式',
  72. 'COMMISION_FLAG' => '是否有佣金规则,1:有,0:无',
  73. 'COMMISION_TYPE' => '佣金类别,渠道定义或产品定义,对应DICT_TYPE.ID',
  74. 'BACK_COMMISION_TYPE' => '返佣类别,固定返佣,对应DICT_TYPE.ID',
  75. 'BACK_COMMISION_METHOD' => '返佣方式,按销售或按结算,对应DICT_TYPE.ID',
  76. 'BACK_PERCENT' => '返佣比例',
  77. 'BACK_VALUE' => '返佣固定金额',
  78. ];
  79. }
  80. /**
  81. * User: wangxj
  82. *
  83. * 获取渠道商的价格字段
  84. *
  85. * @param $type
  86. * @return string
  87. */
  88. public static function getSaleField($type)
  89. {
  90. switch ($type) {
  91. case BaseSupplierSale::SALE_TYPE_AGENT:
  92. $field = 'CUS_PRICE';
  93. break;
  94. case BaseSupplierSale::SALE_TYPE_DIRECT:
  95. $field = 'CUS_PRICE';
  96. break;
  97. case BaseSupplierSale::SALE_TYPE_CHANNEL:
  98. $field = 'PROD_PRICE';
  99. break;
  100. default:
  101. $field = 'CUS_PRICE';
  102. }
  103. return $field;
  104. }
  105. /**
  106. * Function Description:根据传入的渠道id获取酒店的销售方式
  107. * Function Name: getSaleType
  108. * @param $supplier_id
  109. *
  110. * @return string
  111. *
  112. * @author 娄梦宁
  113. */
  114. public static function getSaleType($supplier_id)
  115. {
  116. $sale_type=self::find()
  117. ->select('sale_type')
  118. ->from(self::tableName())
  119. ->where(['and',['=','cancel_flag',0],['=','parent_type',25],['=','supplier_id',$supplier_id]])
  120. ->asArray()
  121. ->one();
  122. if(!empty($sale_type)){
  123. $field=self::getSaleField($sale_type);
  124. }else{
  125. $field='';
  126. }
  127. return $field;
  128. }
  129. }