<?php

namespace common\models;

use Yii;
use common\libs\logging\operate\valueType\Config as ValueTypeConfig;

/**
 * This is the model class for table "{{%RESEND_QY}}".
 *
 * @property string $ID
 * @property string $USER_ID 会员ID
 * @property string $LAST_DEC_LV 结算时会员级别
 * @property string $LAST_EMP_LV 结算时会员聘级
 * @property int $LAST_STATUS 结算时状态
 * @property string $LAST_SUB_COM_ID 结算时所属分公司
 * @property int $LAST_PROVINCE 结算时所属省份
 * @property int $LAST_CITY 结算时所属城市
 * @property int $LAST_COUNTY 结算时所属地区
 * @property string $LAST_SYSTEM_ID 结算时体系
 * @property string $BONUS_QY 区域津贴
 * @property string $SHOULD_QY 应发区域津贴
 * @property string $QY_1L 一市场区域业绩
 * @property string $SURPLUS_1L 一市场结余业绩
 * @property string $QY_2L 二市场区域业绩
 * @property string $SURPLUS_2L 二市场结余业绩
 * @property string $QY_3L 三市场区域业绩
 * @property string $SURPLUS_3L 三市场结余业绩
 * @property string $QY_4L 四市场区域业绩
 * @property string $SURPLUS_4L 四市场结余业绩
 * @property string $QY_5L 五市场区域业绩
 * @property string $SURPLUS_5L 五市场结余业绩
 * @property string $QY_LS 虚拟零售区区域业绩
 * @property string $SURPLUS_LS 虚拟零售区结余
 * @property int $PERIOD_NUM 结算期数
 * @property int $CALC_YEAR 所在结算年
 * @property int $CALC_MONTH 所在结算月
 * @property int $RESEND_STATUS 补发状态
 * @property string $RESEND_AUDIT_ID 审核对应ID
 * @property int $RESEND_AUDIT_STATUS 审核状态
 * @property string $P_CALC_MONTH 表分区的日期索引
 * @property int $CREATED_AT 创建时间
 */
class ResendQY extends \common\components\ActiveRecord
{
    const STATUS_WAIT = 0;
    const STATUS_HAS = 1;
    const STATUS_NAME = [
        self::STATUS_WAIT => '待申请补发',
        self::STATUS_HAS => '已申请补发',
    ];

    /**
     * {@inheritdoc}
     */
    public static function tableName()
    {
        return '{{%RESEND_QY}}';
    }

    /**
     * {@inheritdoc}
     */
    public function rules()
    {
        return [
            [['USER_ID', 'LAST_SYSTEM_ID', 'PERIOD_NUM', 'CALC_YEAR', 'CALC_MONTH', 'P_CALC_MONTH', 'CREATED_AT'], 'required'],
            [['LAST_STATUS', 'LAST_PROVINCE', 'LAST_CITY', 'LAST_COUNTY', 'PERIOD_NUM', 'CALC_YEAR', 'CALC_MONTH', 'RESEND_STATUS', 'RESEND_AUDIT_STATUS', 'CREATED_AT'], 'integer'],
            [['BONUS_QY', 'SHOULD_QY', 'QY_1L', 'SURPLUS_1L', 'QY_2L', 'SURPLUS_2L', 'QY_3L', 'SURPLUS_3L', 'QY_4L', 'SURPLUS_4L', 'QY_5L', 'SURPLUS_5L', 'QY_LS', 'SURPLUS_LS'], 'number'],
            [['ID', 'USER_ID', 'LAST_DEC_LV', 'LAST_EMP_LV', 'LAST_SUB_COM_ID', 'LAST_SYSTEM_ID', 'RESEND_AUDIT_ID'], 'string', 'max' => 32],
            [['P_CALC_MONTH'], 'safe'],
            [['ID'], 'unique'],
        ];
    }

    /**
     * {@inheritdoc}
     */
    public function attributeLabels()
    {
        return [
            'ID' => 'ID',
            'USER_ID' => '会员ID',
            'LAST_DEC_LV' => '结算时会员级别',
            'LAST_EMP_LV' => '结算时会员聘级',
            'LAST_STATUS' => '结算时状态',
            'LAST_SUB_COM_ID' => '结算时所属分公司',
            'LAST_PROVINCE' => '结算时所属省份',
            'LAST_CITY' => '结算时所属城市',
            'LAST_COUNTY' => '结算时所属地区',
            'LAST_SYSTEM_ID' => '结算时体系',
            'BONUS_QY' => '区域津贴',
            'SHOULD_QY' => '应发区域津贴',
            'QY_1L' => '一市场区域业绩',
            'SURPLUS_1L' => '一市场结余业绩',
            'QY_2L' => '二市场区域业绩',
            'SURPLUS_2L' => '二市场结余业绩',
            'QY_3L' => '三市场区域业绩',
            'SURPLUS_3L' => '三市场结余业绩',
            'QY_4L' => '四市场区域业绩',
            'SURPLUS_4L' => '四市场结余业绩',
            'QY_5L' => '五市场区域业绩',
            'SURPLUS_5L' => '五市场结余业绩',
            'QY_LS' => '虚拟零售区区域业绩',
            'SURPLUS_LS' => '虚拟零售区结余',
            'PERIOD_NUM' => '结算期数',
            'CALC_YEAR' => '所在结算年',
            'CALC_MONTH' => '所在结算月',
            'RESEND_STATUS' => '补发状态',
            'RESEND_AUDIT_ID' => '审核对应ID',
            'RESEND_AUDIT_STATUS' => '审核状态',
            'P_CALC_MONTH' => '表分区的日期索引',
            'CREATED_AT' => '创建时间',
        ];
    }

    /**
     * 操作日志记录条件
     * @return array
     */
    public function attrLabelsWithLogType(){
        return [
            'USER_ID' => '会员ID',
            'BONUS_QY' => '区域津贴',
            'SHOULD_QY' => '应发区域津贴',
            'RESEND_STATUS' => [
                'label' => '补发状态',
                'type' => function($data){
                    $value = $data['value'];
                    return self::STATUS_NAME[$value];
                },
            ],
            'RESEND_AUDIT_STATUS' => [
                'label' => '审核状态',
                'type' => ValueTypeConfig::AUDIT_STATUS_TYPE,
            ],
        ];
    }
}