<?php
namespace model\pro;
use \model;
use model\element;

/**
 * 
 */
class proSupplier  extends element
{   
    public $chkFields = ['psu_sup_id'=> '供应商','psu_pb_id' =>'商品品牌','psu_pb_p_innum'=>'商品物料编码',
    'psu_orgcode'=>'关联组织','psu_pack_style'=>'包装方式','psu_gckz'=>"是否工厂刻字",'psu_zhibao'=>'工厂质保期',
    'psu_inbox_count' => '内盒数量','psu_inbox_size'=>'内盒尺寸','psu_weight_net'=>'产品净重','psu_weight_gross'=>'产品毛重',
    'psu_outbox_count'=> '外箱数量','psu_outbox_size'=>'外箱尺寸','psu_zjm'=>'助记码',
    'psu_jhjq'=> '计划交期(天)','psu_minbuy'=>'起订量','psu_hsbm' => 'HS编码','psu_bgdw'=> '报关单位'];
    public function add($data)
    {
        $this->db->Begin();
        $saveData = $this->formartSaveData($data);
        $this->db->insert($this->table,$saveData);
		
		$key = $this->db->id();	
        //暂时隐藏
        // $log = [
        //     'cl_type'=>'prosup',
        //     'cl_act'=>'add',
        //     'cl_dataid'=>$key,
        //     'cl_change'=>json_encode(['prosup'=>[$saveData]], JSON_UNESCAPED_UNICODE),
        //     'cl_opuser'=>getOpuser(),
        //     'cl_create_time'=>getNowTime(),
        // ];
        // $this->db->insert('change_log', $log);
        $this->db->End();
        return $key;
    }

    public function edit($key,$data)
    {
        $this->db->Begin();
        $saveData = $this->formartSaveData($data);
        $oldArr = $this->getOne($key);
        $this->db->update($this->table,$saveData,[$this->key=>$key]);
        $newArr = $this->getOne($key);
        $changeArr = [];
        foreach ($this->chkFields as $field => $name) {

			$old = $oldArr['captions'][$field]??$oldArr[$field];
			$new = $newArr['captions'][$field]??$newArr[$field];
			if(isset($data[$field]) && $old != $new)
			{
				$changeArr[] = ['field'=>$field,'name'=>$name,'old'=>$old, 'new'=>$new];
			}
		}
        if(!empty($changeArr))
		{
			$log = [
				'cl_type'=>'prosup',
				'cl_act'=>'edit',
				'cl_dataid'=>$key,
				'cl_change'=>json_encode(['prosup'=>$changeArr], JSON_UNESCAPED_UNICODE),
				'cl_opuser'=>getOpuser(),
				'cl_create_time'=>getNowTime(),
			];
			$this->db->insert('change_log', $log);
		}
        $this->tolink($key,$data);
        $this->db->End();
        return $key;
    }

    function deleteRows($ids){
        if(!is_array($ids)){
            $ids = explode(',',$ids);
        }
        $this->db->Begin();
        $arr = $this->db->select($this->table,'*',[$this->key=>$ids]);
        foreach ($arr as $val) {
            $log = [
                'cl_type'=>'prosup',
                'cl_act'=>'del',
                'cl_dataid'=>$val['psu_id'],
                'cl_change'=>json_encode(['prosup'=>[$val]], JSON_UNESCAPED_UNICODE),
                'cl_opuser'=>getOpuser(),
                'cl_create_time'=>getNowTime(),
            ];
            $this->db->insert('change_log', $log);
        }
        $res = $this->db->delete($this->table,[$this->key=>$ids]);

        $this->db->End();
		return $res;
	}

    public function getOne($key)
    {
        $table = 'pro_supplier(psu)';
        $join = [
            '[>]supplier(sup)'=>['psu.psu_sup_id'=>'sup_id'],
            '[>]pro_brand(pbd)'=>['psu.psu_pb_id'=>'pb_id'],
        ];
        $field = [
            'psu.*',
            'sup.sup_code',
            'sup.sup_name',
            'pbd.pb_'.LG_NAME.'(pb_name)'
        ];
        $item = $this->db->get($table,$join,$field,['psu_id'=>$key]);
        if($item){
            $objArr  = [];
            $arr = $this->db->select('object',['o_parent_id','o_id',LG_NAME.'(obj_name)'],['o_parent_id'=>[13,16,21]]);
            foreach ($arr as $key => $val) 
            {
                $objArr[$val['o_id']] = $val['obj_name'];
            }
            $item['captions'] = [
                'psu_sup_id'=>$item['sup_name'],
                'psu_pb_id'=>$item['pb_name'],
                'psu_gckz'=>$item['psu_gckz'] == 1 ? '是' : '否',
            ];
        }
        return $item;
    }

}
			