<?php


namespace app\admin\controller;

use think\facade\Db;
use think\facade\Validate;
use think\App;
class InterOrder extends \app\admin\BaseController{
	 public function __construct(App $app) {
	 	parent::__construct($app);
	 }
	/**
	* @return \think\response\Json|void
	* @throws \think\db\exception\DataNotFoundException
	* @throws \think\db\exception\DbException
	* @throws \think\db\exception\ModelNotFoundException
	 */
	 public function list(){
		$param = $this->request->only(["page"=>1,"size"=>10,'cgdNo'=>"","qrdNo"=>"","khNo"=>"",
		"supplierNo"=>"","companyNo"=>"","starttime"=>"","endtime"=>"","sale_name"=>"","cgd_saler"=>""],"post","trim");
		$where=[];
		if($param['cgdNo']!="") $where[]=["a.cgdNo","like","%{$param['cgdNo']}%"];
		if($param['qrdNo']!="") $where[]=["a.orderCode","like","%{$param['qrdNo']}%"];
		if($param['khNo']!="") $where[]=["b.customerNo","like","%{$param['khNo']}%"];
		if($param['companyNo']!="") $where[]=["b.companyNo","like","%{$param['companyNo']}%"];
		if($param['supplierNo']!="") $where[]=["c.supplierNo","like","%{$param['supplierNo']}%"];
		if($param['starttime']!="") $where[]=["a.addtime",">=",date("Y-m-d 00:00:00",strtotime($param['starttime']))];
		if($param['endtime']!="") $where[]=["a.addtime","<=",date("Y-m-d 23:59:59",strtotime($param['endtime']))];
		if($param['sale_name']!="") $where[]=["b.ownerName","like","%{$param['sale_name']}%"];
		if($param['cgd_saler']!="") $where[]=["c.ownerName","like","%{$param['cgd_saler']}%"];

		$count= Db::name("inter_order")->alias("a")
		->leftJoin("qrd_info b","a.orderCode=b.sequenceNo")
		->leftJoin("cgd_info c","a.cgdNo=c.sequenceNo")->where($where)->count();
		$total =ceil($count/$param['size']);
		$page =$total>=$param['page'] ? intval($param['page']): intval($total);
		$list= Db::name("inter_order")->alias("a")
		->leftJoin("qrd_info b","a.orderCode=b.sequenceNo")
		->leftJoin("cgd_info c","a.cgdNo=c.sequenceNo")
		->field("a.id,
		a.orderCode,
		b.customerName as khName,
		b.customerNo as khNo,
		b.companyName,
		b.companyNo,
		a.rate*100 as cgd_tax,
		c.supplierName,
		c.supplierNo,
        b.poCode,
        a.addtime as ordertime,
        b.ownerName as sale_name,
        c.ownerName as cgd_saler,
        c.department as cgd_depart,
        b.department as sale_depart,
        b.goodName,
        b.tax,
        b.goodPrice,
        b.goodNum,
        b.totalPrice,
         b.apay_fee,
         b.wpay_fee,
         b.ainv_fee,
            b.winv_fee,
            b.qrdType,
            b.catInfo,
            a.cgdNo,
            b.workCode")
           ->json(["catInfo"])
		->where($where)->page($page,intval($param['size']))->order("id desc")
		->select()->toArray();
//		echo  Db::name("inter_order")->getLastSql();
		return app_show(0,"获取成功",["list"=>$list,"count"=>$count]);
	 }

	 public function create(){
	 	$param =$this->request->only([
	 		"sale_name"=>"","sale_id"=>"","companyNo"=>'',"poCode"=>"","workCode"=>"","khNo"=>"","qrdType"=>"","goodName"=>"",
	 		"tax"=>"","goodNum"=>"","goodPrice"=>"","mobile"=>"","addr"=>"","contactor"=>"",
	 		"buyer"=>"","buyerid"=>"","sendtime"=>"","cat"=>'',"supplierNo"=>"","cgd_tax"=>"","sale_depart"=>"","cgd_depart"=>""
	 		],"post");
	 	$valid =Validate::rule([
	 		"sale_name|业务员名称"=>"require|max:255|min:1",
	 		"sale_id|业务员名称"=>"require|number|gt:0",
	 		"companyNo|业务公司编号"=>"require|max:255|min:1",
	 		"supplierNo|业务公司编号"=>"require|max:255|min:1",
	 		"poCode|PO编号"=>"require|max:255|min:1",
	 		"workCode|单据编号"=>"require|max:255|min:1",
	 		"khNo|客户公司编号"=>"require|max:255|min:1",
	 		"qrdType|订单类型"=>"require|number|in:[1,2,3]",
	 		"goodName|商品名称"=>"require|max:255|min:1",
	 		"tax|税率"=>"require|number|gt:0",
	 		"goodNum|商品数量"=>"require|number|gt:0",
	 		"goodPrice|商品单价"=>"require|float|gt:0",
	 		"mobile|联系人电话"=>"require|number|mobile",
	 		"contactor|联系人"=>"require|max:255|min:1",
	 		"addr|收货地址"=>"require|max:255|min:1",
	 		"buyer|销售员"=>"require|max:255|min:1",
	 		"buyerid|销售员"=>"require|number|gt:0",
	 		"sendtime|发货时间"=>"require|date",
	 		"cat|商品分类id"=>"require|number|gt:0",
	 		"cgd_tax|采购毛利率"=>"require|float|gt:0",
	 		"sale_depart|销售员部门"=>"require|max:255|min:1",
	 		"cgd_depart|采购员部门"=>"require|max:255|min:1",
	 	]);
	 	if($valid->check($param)==false)return error_show(1004,$valid->getError());
		$qrdcode =makeNo("QRD");
		$cgddcode =makeNo("CGD");
		$goodCode =makeNo("SPU");
		$customer =Db::name("customer_info")->where('companyNo', "=", $param['khNo'])->find();
		$supplierName =Db::name("supplier_info")->where('code', "=", $param['supplierNo'])->value("name","");
		$companyName =Db::name("supplier_info")->where('code', "=", $param['companyNo'])->value("name","");
		$taxinfo = Db::name("order_rate")->where(["id"=>$param["tax"],"status"=>1])->value("rate",0);
		$param["cgd_tax"]=$param["cgd_tax"]/100;
		$cat = [];
		$this->cat($param['cat'],$cat);
		if(empty($cat)) return error_show(1004,'分类信息为找到');
		$inter=[
			"cgdNo"=>$cgddcode,
			"orderCode"=>$qrdcode,
			"rate"=>$param["cgd_tax"],
			"apply_id"=>$this->uid,
			"apply_name"=>$this->uname,
			"mobile"=>$param['mobile'],
			"contactor"=>$param['contactor'],
			"sendtime"=>$param['sendtime'],
			"addr"=>$param['addr'],
		];

		$qrd =[
                                'name' => $param['sale_depart']."销售单",//确认单名称,
                                'sequenceNo' => $qrdcode,//确认单编号,
                                'ownerName' => $param['sale_name'],//销售员,
                                'ownerid' => $param['sale_id'],//销售员id,
                                'department' => $param['sale_depart'],//部门,
                                'createdTime' => date("Y-m-d H:i:s"),//销售单创建时间,
                                'qrdType' => $param['qrdType'],//销售单类型,
                                'qrdSource' => 1,//销售单来源,
                                'companyNo' => $param['companyNo'],//业务企业编号,
                                'companyName' => $companyName,//业务企业名称,
                                'customerNo' => $param['khNo'],//客户编号,
                                'customerName' =>$customer['companyName']??"",//客户名称,
                                'poCode' => $param['poCode'],//po编号,
                                'platName' => '',//平台名称,
                                'workCode' =>$param['workCode'],//业务编号,
                                'zxCode' => '',//咨询单编号,
                                'goodNo' => $goodCode,//商品编号,
                                'goodName' => $param['goodName'],//商品名称,
                                'goodBrand' =>'',//商品品牌,
                                'firstCat' => $cat[0]['cat_name']??"",//一级分类,
                                'secCat' => $cat[1]['cat_name']??"",//二级分类,
                                'thirdCat' => $cat[2]['cat_name']??"",//三级分类,
                                'catInfo' => json_encode($cat,JSON_UNESCAPED_UNICODE),//分类详情,
                                'fundCode' => $cat[2]['fund_code']??"",//核算编码,
                                'goodMaterial' => '',//商品材质,
                                'goodUnit' => '',//商品单位,
                                'goodDesc' => '',//工艺说明,
                                'goodType' =>1,//商品类型,
                                'goodModel' => '',//商品型号,
                                'isStock' => 0,//是否库存品,
                                'metalsType' =>'',//贵金属种类,
                                'weight' => 0,//商品重量,
                                'goldPrice' => 0,//贵金属单价,
                                'deliveryDay' =>'',//物流天数,
                                'workDay' => '',//工期,
                                'tax' => $taxinfo,//税率,
                                'goodNum' => $param['goodNum'],//销售数量,
                                'goodPrice' => $param['goodPrice'],//产品单价,
                                'totalPrice' =>round( $param['goodPrice']*$param['goodNum'],2),//货款总额,
                                'sendNum' => $param['goodNum'],//已发货数量,
                                'wsendNum' => 0,//未发货数量,
                                'apay_fee' => 0,//已付款,
                                'pay_fee' => 0,//付款中
                                'wpay_fee' => round( $param['goodPrice']*$param['goodNum'],2),
                                'inv_fee' => 0,//回票中
                                'ainv_fee' => 0,//已开票,
                                'winv_fee' =>round( $param['goodPrice']*$param['goodNum'],2),
                                'is_diff' =>0,//是否有工差,
                                'sendType' => 1,//发货方式,
                                'sendStatus' =>3,//发货状态,
                                'pay_status' =>1,//收款状态,1未付,2部分,3完结
                                'inv_status' => 1,//开票状态,,1未付,2部分,3完结
                                'remark' => '',//备注,
                                'invtime' => null,
                                'paytime' => null,
                                'diff_weight' =>0,//工差重量,
                                'diff_fee' =>0,//工差金额,
                                'area' =>$customer['companyName']??"",//公司,
                                'customerAttr' => $customer['parent']??"",//客户属性,
                                'branch' => $customer['branch']??"",//分公司,从客户表中查
                                'cgdNo' => $cgddcode,//采购单号,
                                'thNum' => 0,//退货数量,
                                'th_fee' => 0,//退货金额,
                                'is_del' => 0,//是否删除,
                                'addtime' => date("Y-m-d H:i:s"),
                                'updatetime' =>date("Y-m-d H:i:s"),
                                'inv_tag' => 0,//开票标签,
                                'pay_tag' => 0,//回款标签,
                                'inv_tag_fee' => 0,//开票票标签金额,
                                'pay_tag_fee' => 0,//回款标签金额,

                            ];
		$cgd=[
                                'name' => $param['cgd_depart']."采购单",//采购单名称',
                                'sequenceNo' => $cgddcode,//采购单编号',
                                'ownerName' => $param['buyer'],//采购员名称',
                                'ownerid' => $param['buyerid'],//采购员id',
                                'department' => $param['cgd_depart'],//部门名称',
                                'createdTime' => date("Y-m-d H:i:s"),//订单创建时间',
                                'cgdType' =>$param['qrdType'],//采购单类型',
                                'cgdSource' => 0,//采购单来源',
                                'companyNo' => $param['companyNo'],//业务公司编号',
                                'companyName' => $companyName,//业务公司',
                                'cgdTime' => date("Y-m-d H:i:s"),//采购下单时间',
                                'bkCode' => '',//备库单编号',
                                'qrdCode' => $qrdcode,//确认单编号',
                                'goodNo' => $goodCode,//商品编号',
                                'goodName' => $param['goodName'],//商品名称',
                                'goodType' => 1,//商品类型',
                                'goodBrand' =>'',//商品品牌',
                                'goodModel' => '',//商品型号',
                                'firstCat' => $cat[0]['cat_name']??"",//商品一级分类',
                                'secCat' => $cat[1]['cat_name']??"",//二级分类',
                                'thirdCat' => $cat[2]['cat_name']??"",//三级分类',
                                'catInfo' => json_encode($cat,JSON_UNESCAPED_UNICODE),//分类明细',
                                'fundCode' => $cat[2]['fund_code']??"",//NOT NULL,
                                'goodMaterial' => '',//商品材质',
                                'goodUnit' => '',//商品单位',
                                'goodDesc' => '',//工艺说明',
                                'metalsType' => '',//贵金属种类',
                                'weight' => 0,//商品重量',
                                'goldPrice' => 0,//贵金属实时金价',
                                'is_diff' =>0,//是否有工差',
                                'deliveryDay' =>'',//物流天数',
                                'workDay' =>'',//产品工期',
                                'tax' => $taxinfo,//税点',
                                'barePrice' => 0,//裸价',
                                'markPrice' => 0,//加标费',
                                'packPrice' => 0,//包装费',
                                'certPrice' => 0,//证书费',
                                'openPrice' => 0,//开模费',
                                'costPrice' => 0,//工艺费',
                                'deliveryPrice' =>0,//物流费',
                                'goodPrice' => round( $param['goodPrice']*(1-$param['cgd_tax']),2),//成本合计/单价',
                                'isStock' =>0,//是否库存品',
                                'goodNum' => $param['goodNum'],//下单数量',
                                'totalPrice' => round(  $param['goodNum']*$param['goodPrice']*(1-$param['cgd_tax']),2),//采购总货款',
                                'supplierNo' => $param['supplierNo'],//供应商编号',
                                'supplierName' => $supplierName,//供应商名称',
                                'apay_fee' => 0,//已付款金额',
                                'wpay_fee' =>round(  $param['goodNum']*$param['goodPrice']*(1-$param['cgd_tax']),2),//采购总货款',
                                'ainv_fee' => 0,//已开票金额',
                                'winv_fee' =>round(  $param['goodNum']*$param['goodPrice']*(1-$param['cgd_tax']),2),//采购总货款',
                                'sendType' => 1,//发货方式',
                                'bkCreater' => '',//备库申请人',
                                'sendStatus' => 3,//发货状态',
                                'wsendNum' =>0,//未发货数量',
                                'sendNum' => $param['goodNum'],//已发货数量',
                                'wareHouse' => '',//仓库名称',
                                'wsmCode' =>'',//仓库编号',
                                'remark' => '',//备注',
                                'pay_status' =>1,//付款情况',
                                'inv_status' => 1,//开票情况',
                                'diff_weight' => 0,//工差重量',
                                'diff_fee' => 0,//工差金额',
                                'thNum' => 0,//退货数量',
                                'th_fee' => 0,//退货金额',
                                'check_rate' => '',//修正后的税率',
                                'is_del' => 0,
                                'addtime' => date("Y-m-d H:i:s"),
                                'updatetime' => date("Y-m-d H:i:s"),
                            ];

		$good=[
					"spuCode"=>$goodCode,
					"good_name"=>$param['goodName'],
					"companyNo"=>$param['companyNo'],
					"supplierNo"=>$param['supplierNo'],
					"is_stock"=>0,
					"craft_desc"=>'',
					"after_sales"=>'',
					"good_img"=>'',
					"good_thumb_img"=>'',
					"good_info_img"=>'',
					"creater"=>$this->uname,
					"createrid"=>$this->uid,
					"cat_name"=>$cat[2]['cat_name'],
					"unit_name"=>'',
					"isZx"=>0,
					"status"=>0,
					"addtime"=>date("Y-m-d H:i:s"),
					"updatetime"=>date("Y-m-d H:i:s")
				];
				 Db::startTrans();
        try {
            $a = Db::name("qrd_info")->insert($qrd);
            $d = Db::name("inter_order")->insert($inter);
            $b = Db::name('cgd_info')->insert($cgd);
            $c = Db::name('good')->insert($good);
            if ($a && $b && $c&&$d) {
                Db::commit();
                return app_show(0,'新建成功');
            } else {
                Db::rollback();
                return error_show(1004,'新建失败');
            }
        } catch (\Exception $e) {
            Db::rollback();
            return error_show(1004, $e->getMessage());
        }

	 }

	public function save(){
			$param =$this->request->only([
	 		"sale_name"=>"","sale_id"=>"","companyNo"=>'',"poCode"=>"","workCode"=>"","khNo"=>"","qrdType"=>"","goodName"=>"",
	 		"tax"=>"","goodNum"=>"","goodPrice"=>"","good_total"=>"","mobile"=>"","addr"=>"","contactor"=>"","id"=>"",
	 		"buyer"=>"","buyerid"=>"","sendtime"=>"","cat"=>'',"supplierNo"=>"","cgd_tax"=>"","sale_depart"=>"","cgd_depart"=>""
	 		],"post");
	 	$valid =Validate::rule([
	 		"id|主键ID"=>"require|number|gt:0",
	 		"sale_name|业务员名称"=>"require|max:255|min:1",
	 		"sale_id|业务员名称"=>"require|number|gt:0",
	 		"companyNo|业务公司编号"=>"require|max:255|min:1",
	 		"supplierNo|业务公司编号"=>"require|max:255|min:1",
	 		"poCode|PO编号"=>"require|max:255|min:1",
	 		"workCode|单据编号"=>"require|max:255|min:1",
	 		"khNo|客户公司编号"=>"require|max:255|min:1",
	 		"qrdType|订单类型"=>"require|number|in:[1,2,3]",
	 		"goodName|商品名称"=>"require|max:255|min:1",
	 		"tax|税率"=>"require|number|gt:0",
	 		"goodNum|商品数量"=>"require|number|gt:0",
	 		"goodPrice|商品单价"=>"require|float|gt:0",
	 		"mobile|联系人电话"=>"require|number|mobile",
	 		"contactor|联系人"=>"require|max:255|min:1",
	 		"addr|收货地址"=>"require|max:255|min:1",
	 		"buyer|销售员"=>"require|max:255|min:1",
	 		"buyerid|销售员"=>"require|number|gt:0",
	 		"sendtime|发货时间"=>"require|date",
	 		"cat|商品分类"=>"require|number|gt:0",
	 		"cgd_tax|采购毛利率"=>"require|float|gt:0",
	 		"sale_depart|销售员部门"=>"require|max:255|min:1",
	 		"cgd_depart|采购员部门"=>"require|max:255|min:1",
	 	]);
	 	if($valid->check($param)==false)return error_show(1004,$valid->getError());
	 	$inter_order=Db::name("inter_order")->where(["id"=>$param['id']])->findOrEmpty();
	 	if(empty($inter_order)) return error_show(1004,"未找到订单数据");
		$qrd_order=Db::name("qrd_info")->where(["sequenceNo"=>$inter_order['orderCode']])->findOrEmpty();
	 	if(empty($qrd_order)) return error_show(1004,"未找到销售单数据");
	 	$cgd_order=Db::name("cgd_info")->where(["sequenceNo"=>$inter_order['cgdNo']])->findOrEmpty();
	 	if(empty($cgd_order)) return error_show(1004,"未找到采购单数据");
		$param["cgd_tax"]=$param["cgd_tax"]/100;
		$customer =Db::name("customer_info")->where('companyNo', "=", $param['khNo'])->find();
		$supplierName =Db::name("supplier_info")->where('code', "=", $param['supplierNo'])->value("name","");
		$companyName =Db::name("supplier_info")->where('code', "=", $param['companyNo'])->value("name","");
		$taxinfo = Db::name("order_rate")->where(["id"=>$param["tax"],"status"=>1])->value("rate",0);
		$cat = [];
		$this->cat($param['cat'],$cat);
		if(empty($cat)) return error_show(1004,'分类信息为找到');
		$inter=[
			"id"=>$inter_order['id'],
			"rate"=>$param["cgd_tax"],
			"mobile"=>$param['mobile'],
			"contactor"=>$param['contactor'],
			"addr"=>$param['addr'],
			"sendtime"=>$param['sendtime'],
			"updatetime"=>date("Y-m-d H:i:s")
		];

		$qrd =["id"=>$qrd_order['id'],
                                'name' => $param['sale_depart']."销售单",//确认单名称,
                                'ownerName' => $param['sale_name'],//销售员,
                                'ownerid' => $param['sale_id'],//销售员id,
                                'department' => $param['sale_depart'],//部门,
                                'qrdType' => $param['qrdType'],//销售单类型,
                                'companyNo' => $param['companyNo'],//业务企业编号,
                                'companyName' => $companyName,//业务企业名称,
                                'customerNo' => $param['khNo'],//客户编号,
                                'customerName' =>$customer['companyName']??"",//客户名称,
                                'poCode' => $param['poCode'],//po编号,
                                'workCode' =>$param['workCode'],//业务编号,
                                'goodName' => $param['goodName'],//商品名称,
                                'firstCat' => $cat[0]['cat_name']??"",//一级分类,
                                'secCat' => $cat[1]['cat_name']??"",//二级分类,
                                'thirdCat' => $cat[2]['cat_name']??"",//三级分类,
                                'catInfo' => json_encode($cat,JSON_UNESCAPED_UNICODE),//分类详情,
                                'fundCode' => $cat[2]['fund_code']??"",//核算编码,
                                'tax' => $taxinfo,//税率,
                                'goodNum' => $param['goodNum'],//销售数量,
                                'goodPrice' => $param['goodPrice'],//产品单价,
                                'totalPrice' =>round( $param['goodPrice']*$param['goodNum'],2),//货款总额,
                                'sendNum' => $param['goodNum'],//已发货数量,
                                'wpay_fee' => round( $param['goodPrice']*$param['goodNum'],2),
                                'winv_fee' =>round( $param['goodPrice']*$param['goodNum'],2),
                                'area' =>$customer['companyName']??"",//公司,
                                'customerAttr' => $customer['parent']??"",//客户属性,
                                'branch' => $customer['branch']??"",//分公司,从客户表中查
                                'updatetime' =>date("Y-m-d H:i:s"),
                            ];
		$cgd=["id"=>$cgd_order['id'],
                                'name' => $param['cgd_depart']."采购单",//采购单名称',
                                'ownerName' => $param['buyer'],//采购员名称',
                                'ownerid' => $param['buyerid'],//采购员id',
                                'department' => $param['cgd_depart'],//部门名称',
                                'cgdType' =>$param['qrdType'],//采购单类型',
                                'companyNo' => $param['companyNo'],//业务公司编号',
                                'companyName' => $companyName,//业务公司',
                                'goodName' => $param['goodName'],//商品名称',
                                'firstCat' => $cat[0]['cat_name']??"",//商品一级分类',
                                'secCat' => $cat[1]['cat_name']??"",//二级分类',
                                'thirdCat' => $cat[2]['cat_name']??"",//三级分类',
                                'catInfo' => json_encode($cat,JSON_UNESCAPED_UNICODE),//分类明细',
                                'fundCode' => $cat[2]['fund_code']??"",//NOT NULL,
                                'tax' => $taxinfo,//税点',
                                'goodPrice' => round( $param['goodPrice']*(1-$param['cgd_tax']),2),//成本合计/单价',
                                'goodNum' => $param['goodNum'],//下单数量',
                                'totalPrice' => round(  $param['goodNum']*$param['goodPrice']*(1-$param['cgd_tax']),2),//采购总货款',
                                'supplierNo' => $param['supplierNo'],//供应商编号',
                                'supplierName' => $supplierName,//供应商名称',
                                'wpay_fee' =>round(  $param['goodNum']*$param['goodPrice']*(1-$param['cgd_tax']),2),//采购总货款',
                                'winv_fee' =>round(  $param['goodNum']*$param['goodPrice']*(1-$param['cgd_tax']),2),//采购总货款',
                                'sendNum' => $param['goodNum'],//已发货数量',
                                'updatetime' => date("Y-m-d H:i:s"),
                            ];
				 Db::startTrans();
        try {
            $a = Db::name("qrd_info")->save($qrd);
            $d = Db::name("inter_order")->save($inter);
            $b = Db::name('cgd_info')->save($cgd);
            if ($a && $b && $d) {
                Db::commit();
                return app_show(0,'更新成功');
            } else {
                Db::rollback();
                return error_show(1004,'更新失败');
            }
        } catch (\Exception $e) {
            Db::rollback();
            return error_show(1004, $e->getMessage());
        }
	}
//			"id|主键ID"=>"require|number|gt:0",
//	 		"sale_name|业务员名称"=>"require|max:255|min:1",
//	 		"sale_id|业务员名称"=>"require|number|gt:0",
//	 		"companyNo|业务公司编号"=>"require|max:255|min:1",
//	 		"supplierNo|业务公司编号"=>"require|max:255|min:1",
//	 		"poNo|PO编号"=>"require|max:255|min:1",
//	 		"sequenceNo|单据编号"=>"require|max:255|min:1",
//	 		"khNo|客户公司编号"=>"require|max:255|min:1",
//	 		"qrdType|订单类型"=>"require|number|in:[1,2,3]",
//	 		"goodName|商品名称"=>"require|max:255|min:1",
//	 		"tax|税率"=>"require|number|gt:0",
//	 		"goodNum|商品数量"=>"require|number|gt:0",
//	 		"goodPrice|商品单价"=>"require|number|gt:0",
//	 		"mobile|联系人电话"=>"require|number|mobile",
//	 		"contactor|联系人"=>"require|max:255|min:1",
//	 		"addr|收货地址"=>"require|max:255|min:1",
//	 		"buyer|销售员"=>"require|max:255|min:1",
//	 		"buyerid|销售员"=>"require|number|gt:0",
//	 		"sendtime|发货时间"=>"require|date",
//	 		"cat|商品分类"=>"require|array",
//	 		"cgd_tax|采购毛利率"=>"require|number|gt:0",
//	 		"sale_depart|销售员部门"=>"require|max:255|min:1",
//	 		"cgd_depart|采购员部门"=>"require|max:255|min:1",
	  public function  info(){
        $post=$this->request->post();
        $id = isset($post['id'])&&$post['id']!='' ? $post['id'] :"";
        $condition = [['a.id',"=",$id]];
        $list=Db::name('inter_order')->alias('a')->join('qrd_info b','a.orderCode=b.sequenceNo','left')
            ->join('cgd_info c','a.cgdNo=c.sequenceNo','left')->json(["cat"])->where($condition)
            ->order("a.addtime desc")->field('a.id,
            b.goodNo ,
            a.orderCode,
            b.customerNo as khNo,
            b.customerName as khName,
            b.companyName,
            b.companyNo,
            b.poCode,
            b.workCode,
            a.addtime as ordertime,
            b.ownerName as sale_name,
            b.ownerid as sale_id,
            b.department as sale_depart,
            b.goodName,
            b.goodNo,
            b.tax,
            b.catInfo as cat,
            b.goodPrice,
            b.goodNum,
            b.totalPrice,
            b.qrdType,
            c.supplierName,
            c.supplierNo,
            a.cgdNo,
            c.ownerName as buyer,
            c.ownerid as buyerid,
            c.department as cgd_depart,
            a.sendtime ,
            a.rate*100 as cgd_tax,
            a.contactor,
            a.mobile,
            a.addr
            ')->findOrEmpty();
        if(empty($list)){
            return error_show(1004,'未找到数据');
        }

        $list['rateid'] =  Db::name("order_rate")->where('rate',"=",$list['tax'])->value("id",'');
        return app_show(0,"获取成功",$list);
        }

     public function getCat(){
        $post=$this->request->post();
        $condition = [['status',"=",1],["is_del","=",0],['level',"=",3]];
        $cat_name=isset($post['cat_name']) && $post['cat_name'] !==""? trim($post['cat_name']) :"";
        if($cat_name!==""){
            $condition[]=['cat_name',"like","%$cat_name%"];
        }
         $search=isset($post['search']) && $post['search'] !==""? trim($post['search']) :"";
        if($search!==""){
            $condition[]=['search',"like","%$search%"];
        }
        $cat = Db::connect("mysql_wsm")->name("cat")->where($condition)->field("id,cat_name,fund_code,search")->order
        ("weight desc ,addtime desc")->select()->toArray();
        return app_show(0,"获取成功",$cat);
    }

    private function cat($id,&$cat=[]){
	 	$condition[]=["id","=",$id];
	 	$data= Db::connect("mysql_wsm")->name("cat")->where($condition)->field("id,cat_name,fund_code,pid")->findOrEmpty();
	 	array_unshift($cat,$data);
		if($data['pid']==0||empty($data)) return $cat;
		else $this->cat($data['pid'],$cat);

    }
}