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

/**
 * 
 */
class proparam  extends model
{
	public $title = '产品参数'; //固定
	public $import = null;    //固定
	public $rules = null;    //规则
	public $demoData = null;  //样例数据
	public $demoremark = null;  //样例说明
	public $cateParas = null;  //样例说明
	
	public function __construct()
	{
		$req = \mvc::$req;
		parent::__construct(); //执行父类
		$this->import = new \lib\import();
		$this->rules = [
			 ['key'=>'ppv_p_id','caption'=>lg('物料编码'),'must'=>true,'formatCell'=>'p_idLinkInnum'],
		];
		//限制品名
		$this->cateParas = $this->db->select('part_param', '*', ['ptpa_pc_id'=>$req['cat_id'], 'ptpa_is_edit'=>1]);
		foreach($this->cateParas as $v)
		{
			$this->rules[] = ['key'=>'ptpa_id_'.$v['ptpa_id'], 'caption'=>$v['cn_name'], 'isparams'=>1, 'ptpa'=>$v];
		}

		$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);

		//数据重复验证
		if($state && !empty($this->import->data))
		{
			$proParam = new \model\pro\param();
			$rulesK = array_column($this->rules, null, 'key');
			$this->db->Begin();
			foreach($this->import->data as &$dv)
			{
				foreach($dv as $tkk=>$tkv)
				{
					if(!is_null($tkv) && (is_string($tkv) && trim($tkv) !='NULL') && !empty($rulesK[$tkk]['isparams']))
					{
						$ptpa = $rulesK[$tkk]['ptpa'];
						$set = [
							'ppv_p_id' => $dv['ppv_p_id'],
							'ppv_pc_id' => $ptpa['ptpa_pc_id'],
							'ppv_ptpa_id' => $ptpa['ptpa_id'],
							'ppv_val_int' => $ptpa['ptpa_type'] == 'int' ? $tkv : NULL,
							'ppv_val_double' => $ptpa['ptpa_type'] == 'double' ? $tkv : NULL,
							'ppv_val_string' => in_array($ptpa['ptpa_type'],['string','list','redio','checkbox']) ? $tkv : NULL,
							'ppv_val_smalltxt' => in_array($ptpa['ptpa_type'],['smalltxt','bigtxt']) ? $tkv : NULL,
						];
						$this->db->replace('gsp_pro_param_val', $set, ['ppv_p_id','ppv_ptpa_id']);
					}
				}
			}
			$this->db->End();
		}
        return $this->import->output(); //生成处理结果
	}
}