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

/**
 * 
 */
class promasattaqty  extends model
{
	public $title = 'masterlist附件'; //固定
	public $import = null;    //固定
	public $rules = null;    //规则
	public $demoData = null;  //样例数据
	public $demoremark = null;  //样例说明
	public $cateFj = null;  //样例说明
	public $cateid = '';
	public function __construct()
	{
		$req = \mvc::$req;
		$this->cateid = $req['cate'];
		if(empty($this->cateid) && !empty(\mvc::$req['params'])){
			$params =json_decode(\mvc::$req['params'],true);
			$this->cateid = $params['cate'];
		}

		parent::__construct(); //执行父类
		$this->import = new \lib\import();
		$this->rules = [
			 ['key'=>'pa_p_id','caption'=>lg('PRO NO.'),'must'=>true,'formatCell'=>'p_id', 'set'=>1],
		];
		$join = [
			"[><]ckv(ckv)" => ["cat.attaqty2" => "k"]
		];
		$oriarr = $this->getOriArr();
		$res  = $this->db->get('pro_cate(cat)', $join, ['v','k'], ['cat.id'=>$this->cateid]);
		$this->cateFj = $res['v'];
		if(empty($this->cateFj)) $this->cateFj = '[]';
		$this->cateFj = json_decode($this->cateFj, true);
		$curArr = $oriarr[$res['k']]??[];
		foreach($this->cateFj as $k=>$v)
		{
			$this->rules[] = ['key'=>'pa_'.($k+1), 'caption'=>$curArr[$v], 'set'=>1];
		}

		$this->demoData = [
		];

		$this->demoremark = '';
	}

	public function getOriArr()
	{
		return [
			'mas_attaqty_1'=>[
				'1-1'=>'Bearing',
				'1-2'=>'Bearing Qty.','1-3'=>'Bolt','1-4'=>'Nut','1-5'=>'Cover','1-6'=>'Gasket-1',
				'1-7'=>'Locking lid','1-8'=>'Cotter pin','1-9'=>'Seal','1-10'=>'O-Ring','1-11'=>'Gasket-2','1-12'=>'Circlip',
				'1-13'=>'Silent pin','1-14'=>'Spacer bush','1-15'=>'Magnetic ring','1-16'=>'Teeth ring','1-17'=>'Fixed cover','1-18'=>'sleeve',
				'1-19'=>'Grease','1-20'=>'Locking-type plug','1-21'=>'Locating pin','other'=>'Others','remark'=>'Remark'
			],
			'mas_attaqty_2'=>[	
				'2-1'=>'Boot','2-2'=>'Clamp','2-3'=>'Anti Loose Cover','2-4'=>'Bearing','2-5'=>'Disc Spring','2-6'=>'Bolt','2-7'=>'Circlip',
				'2-8'=>'Cylinder','2-9'=>'Gasket','2-10'=>'Metal Cover','2-11'=>'Nut','2-12'=>'Retainer','2-13'=>'Screws',
				'2-14'=>'Sealing Ring-1','2-15'=>'Sealing Ring-2','2-16'=>'Spacer-1','2-17'=>'Spacer-2',
				'2-18'=>'Spacer-3','2-19'=>'Cap Spring','2-20'=>'Cap','2-21'=>'Washer'
			]
		];
	}
	
	 /**处理导入
     * @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))
		{	
			$req = \mvc::$req;
			
			$proParam = new \model\pro\param();
			$rulesK = array_column($this->rules, null, 'key');
			$this->db->Begin();

			if($rows = $this->db->select('pro_cate',"id",['OR'=>['id'=>$this->cateid,'parent_id'=>$this->cateid]])){
    			$rows = array_unique($rows);
			}
			if($rows && $rows = $this->db->select('pro_cate',"id",['OR'=>['id'=>$this->cateid,'parent_id'=>$rows]])){
    			$rows = array_unique($rows);
			}
			if($rows){
				$where['RAW #1']  = raw( sprintf(" pa_p_id in (select p_id from pro where p_cate in (%s))",implode(',',$rows)));
				$this->db->delete('pro_masattaqty',$where);
			}
			foreach($this->import->data as &$dv)
			{
				$set = [];
				foreach($dv as $tkk=>$tkv)
				{
					if(!empty($rulesK[$tkk]['set']))
						$set[$tkk] = $tkv;
				}
				$this->db->replace('pro_masattaqty', $set, ['pa_p_id']);
			}
			$this->db->End();
		}
        return $this->import->output(); //生成处理结果
	}
}