<?php
namespace model\import;
use \model;
use \model\check;
use \model\pro\pro;
/**
 * 
 */
class proRecommend  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'=>'pr_date','caption'=>lg('推荐日期'),'type'=>'date'],
            ['key'=>'pr_oe','caption'=>lg('OE号'),'must'=>true],
            ['key'=>'pr_price','caption'=>lg('含税单价')],
            ['key'=>'pr_count','caption'=>lg('起订量')],
            ['key'=>'pr_delivery','caption'=>lg('交期')],
            ['key'=>'pr_pobj','caption'=>lg('产品属性')],
            ['key'=>'pr_remark','caption'=>lg('备注')],
		];
		
		$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))
        {   
            $join = [
                '[><]oe_numidx(on)'=>['oe.oe_id'=>'on_oe_id']
            ];
            foreach ($this->import->data as &$dv) {
                if(!$dv['pr_oe']){
                    $state = false;
                    $dv['excelInfo']['error'] = 'OE不可为空';
                    $this->import->lineNum = $dv['excelInfo']['line'];
                    $this->import->lastError = $dv['excelInfo']['error'];
                    continue;
                }
                $dv['pr_oe_format'] = formatNum($dv['pr_oe']);
                //检查OE是否存在(有多个也只拿一个)
                $oe_id = $this->db->get('oe_item(oe)',$join,'oe_id',['on_formart'=>$dv['pr_oe_format']]);
                if(!$oe_id){
                    $state = false;
                    $dv['excelInfo']['error'] = '无匹配零件';
                    $this->import->lineNum = $dv['excelInfo']['line'];
                    $this->import->lastError = $dv['excelInfo']['error'];
                    continue;
                }
                $dv['pr_oe_id'] = $oe_id;
                //如果没有日期，默认当天  
                if(!$dv['pr_date']) $dv['pr_date'] = date('Y-m-d');
            }
        }

		if($state && !empty($this->import->data))
		{
	
            $opuser = getOpuser();
			$datetime = getNowTime();

            $this->db->Begin();
			foreach($this->import->data as $k=>$mv)
			{
				if($k > 0 && $k%1000 === 0) errorLog(__CLASS__.$this->title.':'.$k, 'import');
                $data = [];
                foreach ($mv as $field=> $val) {
                    if(stripos($field, 'pr_') === 0){
                        $data[$field] = $val;
                    }
                }
                $data['pr_opuser'] = $opuser;
                $data['pr_create_time'] = $datetime;
                $data['pr_update_time'] = $datetime;
				$this->db->insert('pro_recommend',$data);
			}
			$this->db->End();
		}
        return $this->import->output(); //生成处理结果
	}
}