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.customer_code","like","%{$param['khNo']}%"]; if($param['companyNo']!="") $where[]=["c.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.apply_name","like","%{$param['sale_name']}%"]; if($param['cgd_saler']!="") $where[]=["c.cgder","like","%{$param['cgd_saler']}%"]; $count= Db::name("inter_order")->alias("a") ->leftJoin("qrd_caixiao b","a.orderCode=b.sequenceNo") ->leftJoin("cgd_caixiao c","a.cgdNo=c.s.cgdNo")->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.orderCode") ->leftJoin("cgd_info c","a.cgdNo=c.sequenceNo") ->field("a.id, a.orderCode, b.customer_name , b.customer_code, c.companyName, c.companyNo, a.rate*100 as cgd_tax, c.supplier_name, c.supplierNo, b.poNo, a.addtime, b.apply_name as sale_name, c.cgder as cgd_saler, c.depart as cgd_depart, b.depart as sale_depart, b.goodName, b.tax, b.sale_price, b.good_num , b.total_price, b.order_type, b.cat_name, a.cgdNo, b.workNo") ->json(["cat_name"]) ->where($where)->page($page,intval($param['size'])) ->select()->toArray(); return app_show(0,"获取成功",["list"=>$list,"count"=>$count]); } public function create(){ $param =$this->request->only(["token"=>"", "saleid"=>"","companyNo"=>'',"poNo"=>"","workNo"=>"","khNo"=>"","order_type"=>"","goodName"=>"", "tax"=>"","goodNum"=>"","goodPrice"=>"","mobile"=>"","addr"=>"","contactor"=>"", "buyerid"=>"","sendtime"=>"","cat_id"=>'',"supplierNo"=>"","cgd_tax"=>"" ],"post"); $valid =Validate::rule([ "token"=>"require|max:255|min:1", "saleid|业务员名称"=>"require|number|gt:0", "companyNo|业务公司编号"=>"require|max:255|min:1", "supplierNo|业务公司编号"=>"require|max:255|min:1", "poNo|PO编号"=>"require|max:255|min:1", "workNo|单据编号"=>"require|max:255|min:1", "khNo|客户公司编号"=>"require|max:255|min:1", "order_type|订单类型"=>"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", "buyerid|销售员"=>"require|number|gt:0", "sendtime|发货时间"=>"require|date", "cat_id|商品分类ID"=>"require|number|gt:0", "cgd_tax|采购毛利率"=>"require|number|gt:0", ]); 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")->where('code', "=", $param['supplierNo'])->value("name",""); $companyName =Db::name("supplier")->where('code', "=", $param['companyNo'])->value("name",""); $param["cgd_tax"]=$param["cgd_tax"]/100; $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'], ]; $saleinfo= GetInfoById($param['token'],['id'=>$param['saleid']]); if(empty($to)||$to['code']!=0){ return app_show(1002,"销售员工信息不存在"); } $buyer= GetInfoById($param['token'],['id'=>$param['buyerid']]); if(empty($to)||$to['code']!=0){ return app_show(1002,"采购员工信息不存在"); } $qrd =['orderCode' => $qrdcode, 'apply_id' => $param['saleid'] ?? 0, 'apply_name' => $saleinfo['data']['nickname'] ?? '', 'order_type' => 2, 'order_source' =>1, 'platform_id' => '', 'good_code' => $goodCode, 'cat_id' => $param['cat_id'] ?? 0, 'cat_name' => json_encode($this->_get_cat_list($param['cat_id']), JSON_UNESCAPED_UNICODE), 'good_name' => $param['goodName'] ?? '', 'good_num' => $param['goodNum'] ?? 0, 'good_type' =>1, 'is_activity' => 0, 'is_stock' => 0, 'arrive_time' => '', 'customer_code' => $customer['companyNo'] ?? '', 'customer_name' => $customer['companyName'] ?? '', 'supplierNo' => $param['companyNo'], 'supplier_name' => $companyName ?? '', 'zxNo' => '', 'proof_id' => 0, 'proof_url' => '', 'other_orderNo' =>'' , 'paytime' => '', 'workNo' => $param['workNo'] ?? '', 'poNo' => $param['poNo'] ?? '', 'use_order' => '', 'good_weight' => 0, 'addtime' => date("Y-m-d H:i:s"), 'noble_metal' => '', 'brand' =>'', 'unit' => '', 'cost_desc' => '', 'noble_weight' => 0, 'tax' => $param['tax'], 'lead_time' => 0, 'depart' => get_company_name_by_uid($param['saleid'] ?? 0) ?? '', 'cgdNo' => $cgddcode, 'pay_id' =>0, 'oldCode' => 0, 'origin_price' => 0, 'sale_price' => round($param['goodPrice'], 4), 'total_price' =>round($param['goodPrice']*$param['goodNum'], 4), 'post_fee' => 0, 'is_diff' => 0, 'send_num' => $param['goodNum'], 'wsend_num' => 0, 'th_num' => 0, 'send_type' => 0, 'gold_price' =>0, 'cost_price' => 0, 'status' => 2, 'updatetime' =>date("Y-m-d H:i:s"), 'delivery_day' => 0, 'th_fee' => 0, 'cost_fee' => 0, 'diff_fee' => 0, 'diff_weight' => 0, 'send_status' =>3, ]; $cgd=[ 'cgdNo' => $cgddcode, 'bkcode' => '', 'wsm_code' => '', 'cgder' => $buyer['data']['nickname'] ?? '', 'cgder_id' => $param['buyerid'] ?? 0, 'depart' => get_company_name_by_uid($param['buyerid'] ?? 0) ?? '', 'qrdNo' => $qrdcode, 'spuCode' => $goodCode, 'good_name' => $param['goodName'], 'skuCode' =>'', 'good_num' => $param['goodNum'] ?? 0, 'cat_name' => json_encode($this->_get_cat_list($param['cat_id']), JSON_UNESCAPED_UNICODE), 'companyNo' => $param['companyNo'], 'companyName' => $companyName, 'supplierNo' => $param['supplierNo'], 'supplier_name' => $supplierName, 'bktime' => '', 'bkcreater' => '', 'noble_metal' => '', 'brand' => '', 'unit' => '', 'cost_desc' => '', 'noble_weight' => '', 'tax' => $param['tax'] ?? '', 'is_stock' =>0, 'delivery_day' => 0, 'lead_time' => 0, 'is_diff' =>0, 'addtime' =>date("Y-m-d H:i:s"), 'supplier_persion' => $buyer['data']['nickname'] ?? '', 'supplier_persionid' => $param['buyerid'] ?? 0, 'pay_id' => 0, 'oldCode' => '', 'good_price' => round($param['goodPrice']*(1-$param['cgd_tax']), 4), 'total_fee' => round($param['goodNum']*$param['goodPrice']*(1-$param['cgd_tax']),4), 'pakage_fee' => 0, 'open_fee' => 0, 'cert_fee' => 0, 'delivery_fee' => 0, 'mark_fee' => 0, 'teach_fee' => 0, 'nake_fee' => 0, 'demo_fee' => 0, 'weight' => 0, 'diff_weight' =>0, 'diff_fee' => 0, 'gold_price' =>0, 'send_num' => $param['goodNum'], 'wsend_num' => 0, 'status' =>3 , 'order_type' =>2, 'order_source' => 1,//支付渠道 'good_type' => 1, 'last_time' => '', 'send_type' => 1, 'send_status' => 3, 'th_num' => 0, 'th_fee' =>0, 'updatetime' =>date("Y-m-d H:i:s"), ]; $good=[ "spuCode" => $goodCode, "good_name" => $param['goodName'], "brand_id" => 0, "good_unit" => 0, "cat_id" => $param['cat_id'], "good_type" => 1, "moq" => 1, "customized" => 0, "tax" => $param['tax'], "supplierNo" => $param["supplierNo"], "is_auth" => 0, "craft_desc" => $param['goodName'], "good_remark" => "", "platform_id" =>0, "good_img" => '', "good_thumb_img" => "", "good_info_img" => "", "specinfo" => '', "work_day" => 0, "noble_metal" => 0, "is_gold_price" =>0, "config" => '', "other_config" => '', "weight" =>0, "good_weight" => 0, "is_diff" => 0, "supply_area" =>0, "pay_way" => 0, "send_way" => 1, "companyNo" => $param['comapnyNo'], "status" => 1, "is_del" => 0, "createrid" => $this->uid, "creater" => $this->uname, "addtime" => date("Y-m-d H:i:s"), "updatetime" => date("Y-m-d H:i:s"), 'proof_type' => 0,//凭证类型 'proof_url' => '',//凭证文件 ]; Db::startTrans(); try { $a = Db::name("qrd_caixiao")->insert($qrd); $d = Db::name("inter_order")->insert($inter); $b = Db::name('cgd_caixiao')->insert($cgd); $c = Db::name('good_zixun')->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(["token"=>"", "saleid"=>"","companyNo"=>'',"poNo"=>"","workNo"=>"","khNo"=>"","order_type"=>"","goodName"=>"", "tax"=>"","goodNum"=>"","goodPrice"=>"","mobile"=>"","addr"=>"","contactor"=>"", "buyerid"=>"","sendtime"=>"","cat_id"=>'',"supplierNo"=>"","cgd_tax"=>"","id"=>"" ],"post"); $valid =Validate::rule([ "token"=>"require|max:255|min:1", "id|主键ID"=>"require|number|gt:0", "saleid|业务员名称"=>"require|number|gt:0", "companyNo|业务公司编号"=>"require|max:255|min:1", "supplierNo|业务公司编号"=>"require|max:255|min:1", "poNo|PO编号"=>"require|max:255|min:1", "workNo|单据编号"=>"require|max:255|min:1", "khNo|客户公司编号"=>"require|max:255|min:1", "order_type|订单类型"=>"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", "buyerid|销售员"=>"require|number|gt:0", "sendtime|发货时间"=>"require|date", "cat_id|商品分类ID"=>"require|number|gt:0", "cgd_tax|采购毛利率"=>"require|number|gt:0", ]); 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_caixiao")->where(["orderCode"=>$inter_order['orderCode']])->findOrEmpty(); if(empty($qrd_order)) return error_show(1004,"未找到销售单数据"); $cgd_order=Db::name("cgd_caixiao")->where(["cgdNo"=>$inter_order['cgdNo']])->findOrEmpty(); if(empty($cgd_order)) return error_show(1004,"未找到采购单数据"); $customer =Db::name("customer_info")->where('companyNo', "=", $param['khNo'])->find(); $supplierName =Db::name("supplier")->where('code', "=", $param['supplierNo'])->value("name",""); $companyName =Db::name("supplier")->where('code', "=", $param['companyNo'])->value("name",""); $param["cgd_tax"]=$param["cgd_tax"]/100; $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") ]; $saleinfo= GetInfoById($param['token'],['id'=>$param['saleid']]); if(empty($to)||$to['code']!=0){ return app_show(1002,"销售员工信息不存在"); } $buyer= GetInfoById($param['token'],['id'=>$param['buyerid']]); if(empty($to)||$to['code']!=0){ return app_show(1002,"采购员工信息不存在"); } $qrd =['id' => $qrd_order['id'], 'apply_id' => $param['saleid'] ?? 0, 'apply_name' => $saleinfo['data']['nickname'] ?? '', 'cat_id' => $param['cat_id'] ?? 0, 'cat_name' => json_encode($this->_get_cat_list($param['cat_id']), JSON_UNESCAPED_UNICODE), 'good_name' => $param['goodName'] ?? '', 'good_num' => $param['goodNum'] ?? 0, 'customer_code' => $customer['companyNo'] ?? '', 'customer_name' => $customer['companyName'] ?? '', 'supplierNo' => $param['companyNo'], 'supplier_name' => $companyName ?? '', 'workNo' => $param['workNo'] ?? '', 'poNo' => $param['poNo'] ?? '', 'tax' => $param['tax'], 'depart' => get_company_name_by_uid($param['saleid'] ?? 0) ?? '', 'sale_price' => round($param['goodPrice'], 4), 'total_price' =>round($param['goodPrice']*$param['goodNum'], 4), 'send_num' => $param['goodNum'], 'updatetime' =>date("Y-m-d H:i:s")]; $cgd=[ 'id' => $cgd_order['id'], 'cgder' => $buyer['data']['nickname'] ?? '', 'cgder_id' => $param['buyerid'] ?? 0, 'depart' => get_company_name_by_uid($param['buyerid'] ?? 0) ?? '', 'good_name' => $param['goodName'], 'good_num' => $param['goodNum'] ?? 0, 'cat_name' => json_encode($this->_get_cat_list($param['cat_id']), JSON_UNESCAPED_UNICODE), 'companyNo' => $param['companyNo'], 'companyName' => $companyName, 'supplierNo' => $param['supplierNo'], 'supplier_name' => $supplierName, 'tax' => $param['tax'] ?? '', 'supplier_persion' => $buyer['data']['nickname'] ?? '', 'supplier_persionid' => $param['buyerid'] ?? 0, 'good_price' => round($param['goodPrice']*(1-$param['cgd_tax']), 4), 'total_fee' => round($param['goodNum']*$param['goodPrice']*(1-$param['cgd_tax']),4), 'send_num' => $param['goodNum'], 'updatetime' =>date("Y-m-d H:i:s"), ]; Db::startTrans(); try { $a = Db::name("qrd_caixiao")->save($qrd); $d = Db::name("inter_order")->save($inter); $b = Db::name('cgd_caixiao')->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'] :""; if($id=='') return error_show(1004,"参数id 不能为空"); $condition = [['a.id',"=",$id]]; $list=Db::name('inter_order')->alias('a')->join('qrd_caixiao b','a.orderCode=b.orderCode','left') ->join('cgd_caixiao c','a.cgdNo=c.cgdNo','left')->json(["cat_name"])->where($condition) ->order("a.addtime desc")->field('a.id, b.good_code , a.orderCode, b.customer_code as khNo, b.customer_name as khName, c.companyName, c.companyNo, b.poNo, b.workNo, a.addtime, b.apply_name as sale_name, b.apply_id as saleid, b.depart as sale_depart, b.good_name goodName, b.tax, b.cat_name as cat, b.sale_price goodPrice, b.good_num goodNum, b.total_price, b.order_type, c.supplier_name, c.supplierNo, a.cgdNo, c.cgder as buyer, c.cgderid as buyerid, c.depart 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,'未找到数据'); } return app_show(0,"获取成功",$list); } //获取分类层级信息,id、cat_name(分类名称)和fund_code(财务核算码) private function _get_cat_list($var, $data = []) { $str = Db::name('cat') ->field('id,cat_name,fund_code,pid') ->where(['id' => $var]) ->findOrEmpty(); if ($str == false) return []; $vmn = []; $vmn['id'] = $str['id']; $vmn['cat_name'] = $str['cat_name']; $vmn['fund_code'] = $str['fund_code']; array_unshift($data, $vmn); if ($str['pid'] == 0) return $data; else return $this->_get_cat_list($str['pid'], $data); } }