<?php

// require './vendor/autoload.php';
// use PhpOffice\PhpSpreadsheet\Spreadsheet;
// use PhpOffice\PhpSpreadsheet\Writer\Xlsx;

class pjlOfferAction extends baseAction
{
	/**
	 * @产品主页
	 * @author 卢
	 * @copyright 2017.7.31
	 */
	function index()
	{
		LibRule::Check('JP01');
		LibTpl::Set('title','报价单列表-跑街令');

		LibTpl::Put();
	}
	/**
	* @产品列表
	* @author 卢
	* @copyright 2017.7.31
	 */
	function productList()
	{
		LibRule::Check('JP01');
		$Params = MVC::$URL_PARAMS;
		$columnArrDefault=[
			'po_id',
			'po_status',
			'pur_title',
		];
		$columnArr=[
			['name'=>'报价单','key'=>'po_id','width'=>50],
			['name'=>'询价单','key'=>'po_pur_id','width'=>50],
			['name'=>'状态','key'=>'po_status','width'=>50],
			['name'=>'采购单标题','key'=>'pur_title','width'=>400],
			['name'=>'采购单图片','key'=>'pur_imgs','width'=>320],
			['name'=>'报价人','key'=>'po_opu_uid','width'=>250],
			['name'=>'时间','key'=>'time','width'=>150]
		];
		LibTpl::Set('columnArr',$columnArr);
		$page=isset($Params['page']) ? $Params['page'] : 1;
		$where='';
		//状态
		$where.=(isset($Params['status'])&&$Params['status']!=='all') ? ' and po_status='.$Params['status']: '';
		//id
		$where.=(!empty($Params['po_pur_id'])) ? ' and po_pur_id='.(int)$Params['po_pur_id']: '';
		$where.=(!empty($Params['po_id'])) ? ' and po_id='.(int)$Params['po_id']: '';
		$where.=LibFc::Int($Params['pur_id'])?sprintf(' and po_pur_id=%d',$Params['pur_id']):'';
        $LibYpApi = new LibYpApi();
        if(LibFc::Escape($Params['po_opu_uid'])){

            $post = [
                'filed'=>['u_id'],
                'where'=>sprintf(" and u_name like '%%%s%%' or u_mobile like '%%%s%%'", LibFc::Escape($Params['po_opu_uid']), LibFc::Escape($Params['po_opu_uid'])),
                'oneRow'=>true
            ];
            $res = $LibYpApi->Get('user/getUser',[], $post);
            if($res['data']['u_id']){
                $where .= sprintf(" and po_opu_uid=%d",$res['data']['u_id']);
            }else{
                $where .= sprintf(" and po_opu_uid > 0");
            }
        }

        if(!empty($Params['shop_name'])){
            $pjl = new PjlBase();
            $res = $pjl->get('pl_shop',['shop_id'],sprintf(" and shop_name like '%%%s%%'",$Params['shop_name']));
            if(!empty($res['data'])){
                $where .= sprintf(" and po_shop_id in (%s)",implode(',',array_unique(array_column($res['data'],'shop_id'))));
            }else{
                $where .= sprintf(" and po_shop_id < 0");
            }
        }

		//添加时间
		$where.=!empty($Params['addTime'])?sprintf(' and po_atime>=%d',strtotime($Params['addTime'])):'';
		$where.=!empty($Params['endTime'])?sprintf(' and po_atime<=%d',strtotime($Params['endTime'])):'';
		//排序
		$orderBy=isset($Params['orderBy']) ? $Params['orderBy'] : 'tdesc';
		switch ($orderBy) {
			case 'tdesc':
				$order=' order by po_atime desc';
				break;
			case 'tasc':
				$order=' order by po_atime asc';
				break;
			case 'wasc':
				$order=' order by po_close_time asc';
				break;
			case 'wdesc':
				$order=' order by po_close_time desc';
				break;
			default :
				$order=' orcer by po_atime desc';
		}
		if(isset($_SESSION['pjlOffChkIds'])&&$Params['select'])
		{
			$idsArr=array_filter($_SESSION['pjlOffChkIds']);
			if(!empty($idsArr))
			{
				$where=sprintf(' and po_id in (%s)',implode(',',$idsArr));
			}
		}

		$perPage=isset($_COOKIE['perPage'])? $_COOKIE['perPage'] : 20;

		$res = $LibYpApi->get('pjl/getOfferList',[],['where'=>$where,'orderBy'=>$order,'limit'=>sprintf(' limit %d,%d',($page-1)*$perPage,$perPage)]);
		$Page = LibPage::Show($res['data']['total'], $perPage);
		if(!empty($res['data']['lists']))
		{
			$nowtime=time();
			foreach ($res['data']['lists'] as $k => $v)
			{
				$v['addDay']=round(($nowtime-$v['po_atime'])/(24*60*60));
				// echo $res['data'][$k]['addDay'].'<br/>';
				$v['closeDay']=round(($nowtime-$v['po_close_atime'])/(24*60*60));
				$res['data']['lists'][$k]=$v;
			}
		}
		LibTpl::Set('productList',$res['data']['lists']);
		// print_r($res['data']['lists']);
		// setcookie('showColumnOff','');
		LibTpl::Set('Page', $Page);
		LibTpl::Set('title','配件列表-跑街的');
		LibTpl::Put();
	}
	/**
	* @搜索页面
	* @author 卢
	* @copyright 2017.7.31
	 */
	function  productSearch ()
	{
		$Params = MVC::$URL_PARAMS;
		LibTpl::Set('Params',$Params);
		LibRule::Check('JP01');
		$data=[
			['name'=>'报价单ID','id'=>'po_id'],
			['name'=>'询价单ID','id'=>'po_pur_id'],
			['name'=>'报价单状态','id'=>'po_status'],
			['name'=>'采购单标题','id'=>'pur_title'],
			['name'=>'采购单图片','id'=>'pur_imgs'],
			['name'=>'报价人','id'=>'po_opu_uid'],
			['name'=>'时间','id'=>'time']
		];
		$paramsArr=[
			'id'=>'showColumn',
			'type'=>'checkbox',
			'show_name'=>'name',
			'width'=>85,
			'data_key'=>'id',
			'data_value'=>['key','id'],
			'data_check'=>['po_id','po_status','pur_title'],
			'callback'=>'putIntoCheckColumn',
			'unCheckCallback'=>'putIntoCheckColumn',
		];
		$columnArrDefault=[
			'po_id',
			'po_status',
			'pur_title',
		];
		// die;
		if(isset($_COOKIE['showColumnOff']))
		{
			foreach ($data as $k=> $v)
			{
				if(in_array($v['id'], explode(',', $_COOKIE['showColumnOff'])))
				{
					$data[$k]['check']=true;
				}
			}
		}else
		{
			foreach ($data as $k=> $v)
			{
				if(in_array($v['id'], $columnArrDefault))
				{
					$data[$k]['check']=true;
				}
			}
		}
		// print_r($data);
		LibTpl::Set('params',$paramsArr);
		LibTpl::Set('data',$data);
		// LibTpl::Set('shopArr',$shopData['data']);
		LibTpl::Set('partArr',$res['data']);
		LibTpl::Set('title','产品列表-跑街的');
		LibTpl::Put();
	}
	/**
	* @ajax 处理选中产品
	* @author 卢
	* @copyright 2017.7.31
	 */
	function ajaxProCheck()
	{
		$proId=trim($_POST['ChkIds'],',');
		$notCheck=trim($_POST['NotChkIds'],',');
		if(isset($_SESSION['pjlOffChkIds']))
		{
			$_SESSION['pjlOffChkIds']=array_unique(array_merge(explode(',', $proId),$_SESSION['pjlOffChkIds']));
			foreach ($_SESSION['pjlOffChkIds'] as $k => $v)
			{
				if(in_array($v, explode(',', $notCheck)))
				{
					unset($_SESSION['pjlOffChkIds'][$k]);
				}
			}
		}
		else
		{
			$_SESSION['pjlOffChkIds']=explode(',', $proId);
		}

		$purIdArr = array_filter($_SESSION['pjlOffChkIds']);
		if(!empty($purIdArr))
		{
			$LibYpApi = new LibYpApi();
			$res = $LibYpApi->Get('pjl/getPurProductByOffId',[],['offArr'=>$purIdArr]);
			foreach ($res['data'] as $k=>$v)
			{
				$res['data'][$k]['title']=implode(',',array_column($v['purArr'], 'pup_name'));
				unset($res['data'][$k]['purArr']);
			}
			$data=array('status'=>true,'data'=>array('check'=>$res['data']));
			LibFc::ajaxJsonEncode($data);
		}
		$data=array('status'=>true,'data'=>array('check'=>$res['data']));
		LibFc::ajaxJsonEncode($data);
	}
	/**
	* @ajax 改变产品状态
	* @author 卢
	* @copyright 2017.7.31
	 */
	function ajaxChangePro()
	{
		LibRule::Check('PL02');
		if(isset($_POST['status']))
		{
			$B2cProduct=new B2cProduct();
			$proId=$_POST['proId'];
			$remark=$_POST['remark'];
			$B2cProduct->adminChangePro($proId,$_POST['status'],$remark);
		}
		LibFc::ajaxJsonEncode(array('status'=>true,'data'=>true));
	}
	function deleteCheck()
	{
		$offArr=$_POST['proId'];
		$remark=$_POST['remark'];
		if(!empty($offArr))
		{
			$postArr=[
				'offArr'=>$offArr,
				'remark'=>$remark
			];
			$LibYpApi=new LibYpApi();
			$res = $LibYpApi->Get('pjl/deleteOff', [], $postArr);
			LibFc::ajaxJsonEncode($res);
		}
		LibFc::ajaxJsonEncode(['status'=>false,'data'=>'询价单ID不能为空']);
	}
	/**
	* @ajax更新选中产品的session
	* @author 卢
	* @copyright 2017.7.31
	 */
	function updateCheck()
	{
		if(!is_array($_POST['proId']))
		{
			$proId=trim($_POST['proId'],',');
			$proId=[$proId];
		}
		else
		{
			$proId=$_POST['proId'];
		}
		if(isset($_SESSION['pjlOffChkIds']))
		{
			foreach ($_SESSION['pjlOffChkIds'] as $k => $v)
			{
				if(in_array($v, $proId))
				{
					unset($_SESSION['pjlOffChkIds'][$k]);
				}
			}
		}
		LibFc::ajaxJsonEncode(array('status'=>true,'data'=>true));
	}

}
