<?php
namespace model\import;
use \model;
use \model\check;
use model\pack\attributes;
use model\pack\packs;
use \model\pbrand;

/**
 * 
 */
class packAttribute  extends model
{
	 /**
     * 标题 (用于消息提醒)
     */
	public $title = '包装属性'; //固定
	public $import = null;    //固定
	public $rules = null;    //规则
	public $demoData = null;  //样例数据
	public $demoremark = null;  //样例说明
	public $params = null; 
	public $attrs = null;
	
	public function __construct()
	{
		parent::__construct(); //执行父类
		$this->import = new \lib\import();
		
		$this->rules = [
            ['key'=>'paa_pat_id','caption'=>lg('包材类型'),'must'=>true],
            ['key'=>'paa_attcat','caption'=>lg('属性类别'),'must'=>true,'formatCell'=>[\model\collocation::class,[],'getOidByName',['@', 1169],null]],
            ['key'=>'paa_cn_name', 'caption'=>lg('中文名'),'must'=>true],
            ['key'=>'paa_en_name', 'caption'=>lg('英文名')],          
		];
        
		$this->demoData = [
			
		];

		$this->demoremark = '';
	}
	
    public function import($src)
    {
        $state = $this->import->execute($src, $this->rules);
		if($state && !empty($this->import->data))
		{   
           $allType = $this->db->select('pack_type',['pat_id','pat_cn_name']);
           $allTypeArr = array_column($allType, 'pat_id', 'pat_cn_name');
           foreach ($this->import->data as $key => &$dv) {
                $dv['paa_pat_id'] = $allTypeArr[$dv['paa_pat_id']];
                if(empty($dv['paa_pat_id'])){
                    $state = false;
                    $dv['excelInfo']['error'] = '包材类型不存在！';
                    $this->import->lineNum = $dv['excelInfo']['line'];
                    $this->import->lastError = $dv['excelInfo']['error'];
                    continue;
                }
           }
           unset($dv);
        }   
        //入库
        if($state && !empty($this->import->data))
		{   
            $opuser = getOpuser();
			$datetime = getNowTime();

            $addAnyArr = [];
			$perAdd = 1000;
			$total = count($this->import->data);

            $this->db->Begin();
			foreach($this->import->data as $k=>$mv)
			{
				if($k > 0 && $k%1000 === 0) errorLog(__CLASS__.$this->title.':'.$k, 'import');
				$set = [
                    'paa_opuser'=>$opuser,
                    'paa_create_time'=>$datetime,
                    'paa_update_time'=>$datetime,
                    'paa_pat_id'=>$mv['paa_pat_id'],
                    'paa_attcat'=>$mv['paa_attcat'],
                    'paa_cn_name'=>$mv['paa_cn_name'],
                ];
                if(isset($mv['paa_en_name'])){
                    $set['paa_en_name'] = $mv['paa_en_name'];
                }
               
                $addAnyArr[] = $set;

				if(count($addAnyArr) == $perAdd || ($k+1) == $total)
				{
					if(!empty($addAnyArr)){
                        $this->db->insert('pack_attributes', $addAnyArr);
                    } 
					$addAnyArr = [];
					$logArr = [
						'register'=>$k,
						'class'=>__CLASS__,
						'title'=>$this->title,
						'option'=>'importing'
					];
					errorLog($logArr, 'import');
				}
	
			}
			$this->db->End();
        }

        return $this->import->output(); //生成处理结果
    }

	
}