<?php
namespace model\pro;

(!defined('GSP_BRANDS')) && define('GSP_BRANDS',[
	'OE'    => ['id'=>1,'cn_name'=>'OE','en_name'=>'OE'],
	'OUTNUM'=> ['id'=>2,'cn_name'=>'GSP型号','en_name'=>'GSP No.'],
	'INNUM' => ['id'=>3,'cn_name'=>'内部编码','en_name'=>'Old No.'],
	'G'     => ['id'=>4,'cn_name'=>'G','en_name'=>'G'],
	'NTK'   => ['id'=>5,'cn_name'=>'NTK','en_name'=>'NTK'],
]);

use \model;
use model\country;
use model\element;
/**
 * Class profactory
 * @package model
 */
class factory extends \model\element
{
	public function __construct($elecfg='pro_factory')
    {
		parent::__construct($elecfg);
	}


	 public function getList($params, $rules)
	 {
		$filters = $params['filters'];
		$page = $params['page'];
		$pagesize = $params['rows'];
		$sidx = empty($params['sidx'])? '': $params['sidx'];
		$sord = empty($params['sord'])? 'asc': $params['sord'];
		$orderby = $params['orderby'];
		$table = 'pro_factory';
		$fields = '*';
        $where = $this->filter2medoo($filters,function(&$field,&$op,&$data){
			
        });

		if(!empty($params['coutype']))
		{
			$country = new \model\country();
			$couwhere = $country->formatSearchWhere('factory', $rules, $params);
			if(!empty($couwhere)) $where = array_merge($where, $couwhere);
		}

		if(!empty($params['keys'])) $where['pf_id'] = explode(',', $params['keys']);
        $where = $this->listWhere($where,$page,$pagesize,$sidx,$sord,$orderby);
		if($this->elecfg['where']){
			$where = array_merge($this->elecfg['where'],$where);
		}
		if($page>0 && $pagesize>0){
           $pages = $this->paging($table,$where,$page,$pagesize);
			$where["LIMIT"] = [$pages['limit'],$pagesize];
		}
        $dataArr = $this->db->select($table,$fields, $where);
		if(!empty($dataArr))
		{
			//适用国家
			$country = new \model\country();
			$dataArr = $country->getDataCountryId($dataArr, 'factory');
			$dataArr = $country->formatDataCountry($dataArr, 1);
		}

		$data = [
			'page'=> $page,
			'total'=> $pages['total'],
			'records' => $pages['records'],
			'rows' => array_values($dataArr)
		];
		return $data;
     }

    public function gspList()
    {
       return $this->db->select($this->table,['[>]m_area' => ['pf_ma_id' => 'ma_id']],'*',['pf_is_gsp' => 1]);
    }
    public function getBrandName($brandId)
    {
		foreach(GSP_BRANDS as $item){
			if($item['id']==$brandId){
				return $item[$_SESSION['cateName']];
			}
		}
		return $brandId;
    }


	public function fachasncv()
    {
		$where = [
			"OR" => [
				'pf_is_gsp'=>0,
				'pf_id'=> 5
			],
			'ORDER'=>'pf_name'
		];
       return $this->db->select($this->table, ['pf_id', 'pf_name'],$where);
    }

	//竞品厂商+指定ID
	public function fachasAny($ids)
    {
		if(empty($ids)) $ids = 0;
		$where = [
			"OR" => [
				'pf_is_gsp'=>0,
				'pf_id'=> $ids
			],
			'ORDER'=>'pf_name'
		];
        $rows = $this->db->select($this->table, ['pf_id', 'pf_name'],$where);
		foreach($rows as &$v)
		{
			$v['pf_name'] = $this->reDatafac($v['pf_name']);
		}
		return $rows;
    }


	public function getFacId($name,$type='')
    {
		$name = trim($name);
		if(empty($name)) return 0;
		if($type=='innum'){
		   if(in_array(strtoupper($name), ['物料编码'])) $name = '物料编码';
		   $where['pn_is_sys'] = 1;
		}
		$where['pf_name'] = $name;
		$pf_id = $this->db->get($this->table, 'pf_id',$where);
		if(empty($pf_id) && $type == 'add'){
			$pf_id = $this->add(['pf_type'=>'FAC', 'pf_name'=>$name]);
		}
		return $pf_id;
    }


	public function reDatafac($name)
	{
		return strtr($name, ['OUTNUM'=>'FREY']);
	
	}

	public function add($data)
	{
		$this->db->Begin();
		$saveData = $this->formartSaveData($data);
		$this->db->insert($this->table,$saveData);
		$key = $this->db->id();
		$this->db->End();
		return $key;
		
	}

	function edit($key,$data){
        $this->db->Begin();
        $saveData = $this->formartSaveData($data);
        $this->db->update($this->table,$saveData,[$this->key=>$key]);
        $this->db->End();
        return $key;
    }
}