<?php
namespace model\import;
use \model;
use \model\check;
use \model\pbrand;

/**
 * 
 */
class pbrandExt  extends model
{
	 /**
     * 标题 (用于消息提醒)
     */
	public $title = '供应商扩展信息'; //固定
	public $import = null;    //固定
	public $rules = null;    //规则
	public $demoData = null;  //样例数据
	public $demoremark = null;  //样例说明
	public $params = null; 
	
	
	public function __construct()
	{
		parent::__construct(); //执行父类
		$this->import = new \lib\import();
		
		$this->rules = [
		     ['key'=>'pbe_val', 'caption'=>lg('名称'),'must'=>true],
		     ['key'=>'pbe_code', 'caption'=>lg('型号')],
		];
		
		$extRules = [
			'pbe_length'=>['key'=>'pbe_length', 'caption'=>lg('长'), 'type'=>'number'],
			'pbe_width'=>['key'=>'pbe_width', 'caption'=>lg('宽'), 'type'=>'number'],
			'pbe_height'=>['key'=>'pbe_height', 'caption'=>lg('高'), 'type'=>'number'],
			'pbe_size_unit'=>['key'=>'pbe_size_unit','caption'=>lg('尺寸单位'), 'formatCell'=>'coll2']
		];

		$type = \mvc::$req['pbe_type'];
		foreach(\mvc::$cfg['BrandExt'][$type] as $field){
			if($extRules[$field]) $this->rules[] = $extRules[$field];
		}	
		$this->rules[] = ['key'=>'pbe_sort', 'caption'=>lg('顺序'), 'type'=>'number'];
		
		$this->demoData = [
			
		];

		$this->demoremark = '';
	}
	
	 /**处理导入
     * @param array|string $src 数组或者文件名
     * @param isInit 是否是初始化
     * @return 可返回任意值(string|array|bool)，都会到前端
     */
    public function import($src,$isInit=false) //固定
    {
		$state = $this->import->execute($src, $this->rules);
		$opuser = getOpuser();
		$datetime = getNowTime();
		$pb_id = $this->params['pb_id'];
		$pbe_type = $this->params['pbe_type'];

		//数据重复验证
		if($state && !empty($this->import->data)){
			/*$check = new check();
			foreach($this->import->data as &$dv){
				$exists = $this->db->get('pro_brand_ext', 'pbe_id', ['pbe_pb_id'=>$pb_id, 'pbe_type'=>$pbe_type, 'pbe_val'=>$dv['pbe_val']]);
				if(!empty($exists)){
					$state = false;
					$dv['excelInfo']['error'] = '记录已存在';
					$this->import->lineNum = $dv['excelInfo']['line'];
					$this->import->lastError = $dv['excelInfo']['error'];
					continue;
				}
			}*/
		}

		//数据重复验证 - 自己
		if($state && !empty($this->import->data)){
			$state = !$this->import->checkRepeat([
			    ['pbe_val']
		    ]);
		}

		//入库
		if($state && !empty($this->import->data)){
			$this->db->Begin();
			foreach($this->import->data as $k=>$mv){
				$set = [
					'pbe_pb_id'=>$pb_id,
					'pbe_type'=>$pbe_type,
					'pbe_val'=>$mv['pbe_val'],
					'pbe_opuser'=>$opuser,	
					'pbe_create_time'=>$datetime,	
					'pbe_update_time'=>$datetime,
				];
				foreach($mv as $kk=>$vv){
					if(stripos($kk, 'pbe_') === 0){
						$set[$kk] = $vv;
					}
				}
				$exists = $this->db->get('pro_brand_ext', 'pbe_id', ['pbe_pb_id'=>$pb_id, 'pbe_type'=>$pbe_type, 'pbe_val'=>$mv['pbe_val']]);
				if(!empty($exists)){
					$this->db->update('pro_brand_ext', $set, ['pbe_id'=>$exists]);
				}else{
					$this->db->insert('pro_brand_ext', $set);
				}
			}
			$this->db->End();
		}
        return $this->import->output(); //生成处理结果
	}
}