PerfOrder.php 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. <?php
  2. namespace common\models;
  3. use common\helpers\snowflake\SnowFake;
  4. use common\helpers\Tool;
  5. use Yii;
  6. use yii\base\Exception;
  7. /**
  8. * This is the model class for table "{{%PERF_ORDER}}".
  9. *
  10. * @property string $ID
  11. * @property string $SN 业绩单编号
  12. * @property string $DEC_SN 报单编号
  13. * @property string $DEC_TYPE 报单类型
  14. * @property int $DEC_STATUS 业绩单状态
  15. * @property string $USER_ID 产生业绩会员ID
  16. * @property string $LAST_DEC_LV 结算时会员级别
  17. * @property string $LAST_EMP_LV 结算时会员聘级
  18. * @property int $LAST_STATUS 结算时状态
  19. * @property string $LAST_REC_USER_NAME 结算时开拓者编号
  20. * @property string $LAST_REC_REAL_NAME 结算时开拓者姓名
  21. * @property string $PV 业绩单PV
  22. * @property string $DEC_AMOUNT 报单金额
  23. * @property string $LAST_SUB_COM_ID 结算时所属分公司
  24. * @property int $LAST_PROVINCE 结算时省份
  25. * @property int $LAST_CITY 结算时城市
  26. * @property int $LAST_COUNTY 结算时地区
  27. * @property string $DEC_USER_ID 报单主体ID
  28. * @property string $LAST_DEC_DEC_LV 结算时报单主体级别
  29. * @property string $LAST_DEC_SUB_COM_ID 结算时报单主体所属分公司
  30. * @property int $LAST_DEC_PROVINCE 结算时报单主体省份
  31. * @property int $LAST_DEC_CITY 结算时报单主体城市
  32. * @property int $LAST_DEC_COUNTY 结算时报单主体地区
  33. * @property int $PERIOD_NUM 所在期数
  34. * @property int $CALC_MONTH 结算月
  35. * @property string $P_CALC_MONTH 分区结算月
  36. * @property int $CREATED_AT 创建时间
  37. * @property int $CLOSED_AT 置废时间
  38. */
  39. class PerfOrder extends \common\components\ActiveRecord
  40. {
  41. //业绩单状态
  42. const STATUS_NORMAL = 1; //正常
  43. const STATUS_CLOSED = 2; //置废
  44. const STATUS_NAME = [
  45. self::STATUS_NORMAL=>'Audited',//已审核
  46. self::STATUS_CLOSED=>'置废',
  47. ];
  48. /**
  49. * {@inheritdoc}
  50. */
  51. public static function tableName()
  52. {
  53. return '{{%PERF_ORDER}}';
  54. }
  55. /**
  56. * {@inheritdoc}
  57. */
  58. public function rules()
  59. {
  60. return [
  61. [['SN', 'DEC_TYPE', 'USER_ID', 'PERIOD_NUM', 'CALC_MONTH', 'P_CALC_MONTH', 'CREATED_AT', 'CLOSED_AT'], 'required'],
  62. [['LAST_STATUS', 'DEC_STATUS', 'LAST_PROVINCE', 'LAST_CITY', 'LAST_COUNTY', 'LAST_DEC_PROVINCE', 'LAST_DEC_CITY', 'LAST_DEC_COUNTY', 'PERIOD_NUM', 'CALC_MONTH', 'CREATED_AT', 'CLOSED_AT'], 'integer'],
  63. [['PV', 'DEC_AMOUNT'], 'number'],
  64. [['ID', 'USER_ID', 'LAST_DEC_LV','LAST_EMP_LV', 'LAST_SUB_COM_ID', 'DEC_USER_ID', 'LAST_DEC_DEC_LV', 'LAST_DEC_SUB_COM_ID'], 'string', 'max' => 32],
  65. [['SN', 'DEC_SN', 'DEC_TYPE'], 'string', 'max' => 32],
  66. [['LAST_REC_USER_NAME'], 'string', 'max' => 16],
  67. [['LAST_REC_REAL_NAME'], 'string', 'max' => 128],
  68. [['P_CALC_MONTH'], 'string', 'max' => 7],
  69. [['SN'], 'unique'],
  70. [['ID'], 'unique'],
  71. ];
  72. }
  73. /**
  74. * {@inheritdoc}
  75. */
  76. public function attributeLabels()
  77. {
  78. return [
  79. 'ID' => 'ID',
  80. 'SN' => '业绩单编号',
  81. 'DEC_SN' => '报单编号',
  82. 'DEC_TYPE' => '报单类型',
  83. 'DEC_STATUS' => '业绩单状态',
  84. 'USER_ID' => '产生业绩会员ID',
  85. 'LAST_DEC_LV' => '结算时会员级别',
  86. 'LAST_EMP_LV' => '结算时会员聘级',
  87. 'LAST_STATUS' => '结算时状态',
  88. 'LAST_REC_USER_NAME' => '结算时开拓者编号',
  89. 'LAST_REC_REAL_NAME' => '结算时开拓者姓名',
  90. 'PV' => '业绩单BV',
  91. 'DEC_AMOUNT' => '报单金额',
  92. 'LAST_SUB_COM_ID' => '结算时所属分公司',
  93. 'LAST_PROVINCE' => '结算时省份',
  94. 'LAST_CITY' => '结算时城市',
  95. 'LAST_COUNTY' => '结算时地区',
  96. 'DEC_USER_ID' => '报单主体ID',
  97. 'LAST_DEC_DEC_LV' => '结算时报单主体级别',
  98. 'LAST_DEC_SUB_COM_ID' => '结算时报单主体所属分公司',
  99. 'LAST_DEC_PROVINCE' => '结算时报单主体省份',
  100. 'LAST_DEC_CITY' => '结算时报单主体城市',
  101. 'LAST_DEC_COUNTY' => '结算时报单主体地区',
  102. 'PERIOD_NUM' => '所在期数',
  103. 'CALC_MONTH' => '结算月',
  104. 'P_CALC_MONTH' => '分区结算月',
  105. 'CREATED_AT' => '创建时间',
  106. 'CLOSED_AT' => '置废时间',
  107. ];
  108. }
  109. /**
  110. * 获取当前最大的订单编号
  111. * @return mixed
  112. */
  113. public static function getMaxSn(){
  114. return static::find()->where('1=1')->max('SN');
  115. }
  116. /**
  117. * 生成sn
  118. * @return string
  119. */
  120. public static function generateSN() {
  121. return SnowFake::instance()->generateId();
  122. }
  123. }