123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506 |
- <?php
- namespace app\admin\controller;
- use think\facade\Db;
- use think\facade\Validate;
- use think\App;
- class InterOrder extends Base {
- 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.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);
- }
- }
|