123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432 |
- <?php
- namespace app\admin\controller;
- use app\abutment\logic\Filing as FilingLogic;
- use think\Exception;use think\facade\Db;
- use think\facade\Validate;
- //报备单
- class Filing extends Base
- {
- //列表
- public function getList()
- {
- $param = $this->request->only(['page' => 1, 'size' => 10, 'cat_id' => '', 'start_date' => '', 'end_date' => '', 'filingCode' => '', 'status' => '', 'good_name' => '', 'companyName' => '', 'companyCode' => '', 'orderCode' => '', 'supplierNo' => ''], 'post');
- return FilingLogic::list($param);
- }
- //详情
- public function detail()
- {
- $param = $this->request->only(['id' => 0], 'post', 'trim');
- return FilingLogic::detail($param);
- }
- //审核
- public function status()
- {
- $param = $this->request->only(['id', 'status', 'companyCode', 'plat_code' => '', 'service_charge', 'service_proportion','platform_id'], 'post');
- $val = Validate::rule([
- 'id' => 'require|number|gt:0',
- 'status|状态' => 'require|number|in:1,2',
- 'companyCode|客户' => 'require|length:18',
- 'service_charge|服务费' => 'require|float|egt:0|max:99999999.99',
- 'service_proportion|服务费比例' => 'require|float|egt:0',
- 'platform_id|平台id' => 'require|number|gt:0',
- ]);
- if (!$val->check($param)) return json_show(1004, $val->getError());
- return FilingLogic::status($param);
- }
- //订单录入
- public function orderAdd(){
- $param=$this->request->param([
- "companyNo"=>'',
- "poCode"=>"",
- "workCode"=>"",
- "khNo"=>"",
- "qrdType"=>3,
- "goodName"=>"",
- "tax"=>"",
- "goodNum"=>"",
- "goodPrice"=>"",
- "goodUnit"=>"",
- "mobile"=>"",
- "addr"=>"",
- "addr_code"=>"",
- "contactor"=>"",
- "buyerid"=>"",
- "buyer_name"=>"",
- "sendtime"=>"",
- "cat_id"=>'',
- "supplierNo"=>"",
- "cgd_tax"=>"",
- "pay_id"=>"0",
- ],"post","trim");
- $valid=Validate::rule([
- // "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",
- "goodUnit|商品单位"=>"require|number|gt:0",
- "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",
- "buyerid|采购员ID"=>"require|number|gt:0",
- "buyer_name|采购员"=>"require|max:255|min:1",
- "sendtime|发货时间"=>"require|date",
- "cat_id|商品分类id"=>"require|number|gt:0",
- "cgd_tax|采购毛利率"=>"require|float|gt:0",
- "pay_id|支付渠道"=>"require|number"
- ]);
- if($valid->check($param)==false) return error_show(1004,$valid->getError());
- $qrdcode =makeNo("QR");
- $cgddcode =makeNo("CG");
- $goodCode =makeNo("SKU");
- $customer =Db::name("customer_info")->where('companyNo', "=", $param['khNo'])->find();
- if($customer==false) return error_show(1004,"客户信息未找到");
- $supplierName =Db::name("supplier")->where('code', "=", $param['supplierNo'])->value("name","");
- if($supplierName=='') return error_show(1004,"供应商信息未找到");
- $companyName =Db::name("supplier")->where('code', "=", $param['companyNo'])->value("name","");
- if($companyName=='') return error_show(1004,"业务公司信息未找到");
- if($param['pay_id']!=0){
- $payinfo =Db::name("pay")->where("id",$param['pay_id'])->findOrEmpty();
- if(empty($payinfo)) return error_show(1004, "支付渠道信息未找到");
- if($payinfo['status']!=1)return error_show(1004, "支付渠道已禁用");
- $supplierArr =Db::name("pay_rate")->where(["pay_id"=>$param['pay_id'],"status"=>1,"is_del"=>0])->column("companyNo");
- if(in_array($param['companyNo'],$supplierArr)) return error_show(1004, "支付渠道含有该业务公司,支付渠道无法使用!");
- }
- $param["cgd_tax"]=$param["cgd_tax"]/100;
- $cgdPrice= round( $param['goodPrice']*(1-$param['cgd_tax']),2);
- $qrddata=[
- "orderCode"=>$qrdcode,
- "apply_id"=>$this->uid,
- "apply_name"=>$this->uname,
- "order_type"=>$param['qrdType'],
- "order_source"=>9,
- "platform_id"=>0,
- "good_code"=>$goodCode,
- "skuCode"=>'',
- "cat_id"=>$param['cat_id'],
- "good_name"=>$param['goodName'],
- "good_num"=>$param['goodNum'],
- "good_type"=>1,
- "origin_price"=>$cgdPrice,
- "sale_price"=>$param['goodPrice'],
- "total_price"=>round( $param['goodPrice']*$param['goodNum'],2),
- "post_fee"=>0,
- "is_diff"=>0,
- "is_activity"=>0,
- "activity_code"=>'',
- "is_stock"=>0,
- "arrive_time"=>$param['sendtime'],
- "customer_code"=>$param['khNo'],
- "supplierNo"=>$param['companyNo'],
- "platform_order"=>$param['poCode'],
- "send_num"=>$param['goodNum'],
- "wsend_num"=>0,
- "send_status"=>3,
- "send_type"=>1,
- "status"=>2,
- "is_del"=>0,
- "pay_id"=>$param['pay_id'],
- "workNo"=>$param['workCode'],
- "addtime"=>date("Y-m-d H:i:s"),
- "updatetime"=>date("Y-m-d H:i:s"),
- "cgderid"=>$param['buyerid'],
- "cgder"=>$param['buyer_name'],
- "good_createrid"=>$this->uid,
- "good_creater"=>$this->uname
- ];
- $orderCgd=[
- "orderCode"=>$qrdcode,
- "cgdNo"=>$cgddcode,
- "spuCode"=>$goodCode,
- "good_num"=>$param['goodNum'],
- "wsend_num"=>0,
- "send_num"=>$param['goodNum'],
- "wait_num"=>0
- ];
- $cgddata=[
- "cgdNo"=>$cgddcode,
- "bkcode"=>'',
- "wsm_code"=>"",
- "cgder_id"=>$param['buyerid'],
- 'cgder'=>$param['buyer_name'],
- "spuCode"=>$goodCode,
- "good_name"=>$param['goodName'],
- "good_num"=>$param['goodNum'],
- "good_price"=>$cgdPrice,
- "total_fee"=>round($cgdPrice*$param['goodNum'],2 ),
- "supplierNo"=>$param['supplierNo'],
- "supplier_name"=>$supplierName,
- "companyNo"=>$param['companyNo'],
- "send_status"=>3,
- "send_num"=>$param['goodNum'],
- "wsend_num"=>0,
- "status"=>3,
- "lasttime"=>date("Y-m-d H:i:s"),
- "order_type"=>$param['qrdType'],
- "order_source"=>9,
- "addtime"=>date("Y-m-d H:i:s"),
- "updatetime"=>date("Y-m-d H:i:s"),
- "good_createrid"=>$this->uid,
- "good_creater"=>$this->uname,
- ];
- $goodinfo =[
- "spuCode"=>$goodCode,
- "good_name"=>$param['goodName'],
- "brand_id"=>0,
- "cat_id"=>$param['cat_id'],
- "good_unit"=>$param['goodUnit'],
- "good_type"=>1,
- "moq"=>1,
- "customized"=>0,
- "tax"=>$param['tax'],
- "supplierNo"=>$param['supplierNo'],
- "is_auth"=>1,
- "craft_desc"=>'',
- "good_remark"=>'',
- "good_img"=>'',
- "good_thumb_img"=>'',
- "good_info_img"=>'',
- "createrid"=>$this->uid,
- "creater"=>$this->uname,
- "specinfo"=>'',
- "work_day"=>0,
- "noble_metal"=>0,
- "good_weight"=>0,
- "config"=>"",
- "weight"=>0,
- "supply_area"=>0,
- "is_diff"=>0,
- "pay_way"=>0,
- "send_way"=>0,
- "companyNo"=>$param['companyNo'],
- "addtime"=>date("Y-m-d H:i:s"),
- "updatetime"=>date("Y-m-d H:i:s"),
- ];
- $orderAddr=[
- "orderCode"=>$qrdcode,
- "addr"=>$param['addr'],
- "addr_code"=>$param['addr_code'],
- "contactor"=>$param['contactor'],
- "mobile"=>$param['mobile'],
- "arrive_time"=>$param['sendtime'],
- "customer_code"=>$param['khNo'],
- "receipt_quantity"=>$param['goodNum'],
- "addtime"=>date("Y-m-d H:i:s"),
- "updatetime"=>date("Y-m-d H:i:s"),
- ];
- Db::startTrans();
- try{
- $qrd =Db::name("sale")->insert($qrddata);
- if($qrd==false) throw new Exception("销售单生成失败");
- $qrd =Db::name("order_num")->insert($orderCgd);
- if($qrd==false) throw new Exception("销售单采购管联生成失败");
- $qrd =Db::name("purchease_order")->insert($cgddata);
- if($qrd==false) throw new Exception("采购单生成失败");
- $qrd =Db::name("good_zixun")->insert($goodinfo);
- if($qrd==false) throw new Exception("商品信息录入生成失败");
- $qrd =Db::name("order_addr")->insert($orderAddr);
- if($qrd==false) throw new Exception("销售单地址生成失败");
- if($param['pay_id']!=0){
- pay_log($param['pay_id'],$param['companyNo'],$qrdcode);
- }
- Db::commit();
- return app_show(0,'订单生成成功');
- }catch (\Exception $exception){
- Db::rollback();
- return error_show(1004,$exception->getMessage());
- }
- }
- public function orderInfo(){
- $param=$this->request->param(["orderCode"],"post","trim");
- if($param['orderCode']=='')return error_show(1004,"订单编号不能为空");
- $saleinfo =Db::name("sale")->where(["orderCode"=>$param['orderCode']])->findOrEmpty();
- if(empty($saleinfo)) return error_show(1004,"销售单不存在");
- if($saleinfo['order_source']!=9) return error_show(1004,"销售单来源不是网络录入");
- $cgd = Db::name("purchease_order")->alias("a")
- ->leftJoin("order_num b","a.cgdNo=b.cgdNo")
- ->where(["b.orderCode"=>$param['orderCode']])
- ->field("a.*")
- ->findOrEmpty();
- if(empty($cgd)) return error_show(1004,"采购单不存在");
- $goodinfo =Db::name("good_zixun")->where(["spuCode"=>$saleinfo['good_code']])->findOrEmpty();
- if(empty($goodinfo)) return error_show(1004,"商品信息不存在");
- $addr =Db::name("order_addr")->where(["orderCode"=>$param['orderCode']])->findOrEmpty();
- if(empty($addr)) return error_show(1004,"地址信息不存在");
- $addinfo =$addr['addr_code']!=''?json_decode($addr['addr_code'],true)??$addr['addr_code']: '' ;
- if(is_string($addinfo)&&$addinfo!=''){
- $addinfo=["provice_code"=>'',"city_code"=>'',"area_code"=>''];
- list($addinfo['provice_code'],$addinfo['city_code'],$addinfo['area_code']) = explode(",",$addr['addr_code']);
- }
- $data=[
- "orderCode"=>$saleinfo['orderCode'],
- "companyNo"=>$saleinfo['supplierNo'],
- "companyName"=>Db::name("supplier")->where(["code"=>$saleinfo['supplierNo']])->value("name",''),
- "poCode"=>$saleinfo['platform_order'],
- "workCode"=>$saleinfo['workNo'],
- "khNo"=>$saleinfo['customer_code'],
- "khName"=>Db::name("customer_info")->where(["companyNo"=>$saleinfo['customer_code']])->value("companyName",''),
- "qrdType"=>$saleinfo['order_type'],
- "goodName"=>$saleinfo['good_name'],
- "tax"=>$goodinfo['tax'],
- "goodUnit"=>$goodinfo['good_unit'],
- "unitName"=>Db::name("unit")->where(["id"=>$goodinfo['good_unit']])->value("unit",""),
- "goodNum"=>$saleinfo['good_num'],
- "goodPrice"=>$saleinfo['sale_price'],
- "mobile"=>$addr['mobile'],
- "addr"=>$addr['addr'],
- "addr_cn"=>GetAddr(json_encode($addinfo)),
- "addr_code"=>$addr['addr_code'],
- "contactor"=>$addr['contactor'],
- "buyerid"=>$saleinfo['cgderid'],
- "buyer_name"=>$saleinfo['cgder'],
- "sendtime"=>$saleinfo['arrive_time'],
- "cat_id"=>made($saleinfo['cat_id']),
- "cat_name"=>Db::name("cat")->where(["id"=>$saleinfo['cat_id']])->value("cat_name",''),
- "supplierNo"=>$cgd['supplierNo'],
- "supplierNanme"=>$cgd['supplier_name'],
- "cgd_tax"=>round(($saleinfo['sale_price'] - $saleinfo['origin_price'])/$saleinfo['sale_price'],4)*100,
- "pay_id"=>$saleinfo['pay_id'],
- "pay_name"=>Db::name("pay")->where(["id"=>$saleinfo['pay_id']])->value("pay_name","")
- ];
- return app_show(0,"获取成功",$data);
- }
- public function orderEdit(){
- $param=$this->request->param([
- "orderCode"=>"",
- "companyNo"=>'',
- "poCode"=>"",
- "workCode"=>"",
- "khNo"=>"",
- "tax"=>"",
- "goodUnit"=>"",
- "mobile"=>"",
- "addr"=>"",
- "addr_code"=>"",
- "contactor"=>"",
- "buyerid"=>"",
- "buyer_name"=>"",
- "sendtime"=>"",
- "supplierNo"=>"",
- "cgd_tax"=>""
- ],"post","trim");
- $valid=Validate::rule([
- "orderCode|销售单号"=>"require|max:255",
- // "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",
- "mobile|联系人电话"=>"require|number|mobile",
- "goodUnit|商品单位"=>"require|number|gt:0",
- "contactor|联系人"=>"require|max:255|min:1",
- "addr|收货地址"=>"require|max:255|min:1",
- "addr_code|收货省市区"=>"require|max:255|min:1",
- "buyerid|采购员ID"=>"require|number|gt:0",
- "buyer_name|采购员"=>"require|max:255|min:1",
- "sendtime|发货时间"=>"require|date",
- "tax|商品利率"=>"require|number",
- "cgd_tax|采购毛利率"=>"require|float|gt:0",
- ]);
- if($valid->check($param)==false) return error_show(1004,$valid->getError());
- $customer =Db::name("customer_info")->where('companyNo', "=", $param['khNo'])->find();
- if($customer==false) return error_show(1004,"客户信息未找到");
- $supplierName =Db::name("supplier")->where('code', "=", $param['supplierNo'])->value("name","");
- if($supplierName=='') return error_show(1004,"供应商信息未找到");
- $companyName =Db::name("supplier")->where('code', "=", $param['companyNo'])->value("name","");
- if($companyName=='') return error_show(1004,"业务公司信息未找到");
- $param["cgd_tax"]=$param["cgd_tax"]/100;
- $saleinfo =Db::name("sale")->where(["orderCode"=>$param['orderCode']])->findOrEmpty();
- if(empty($saleinfo)) return error_show(1004,"销售单不存在");
- if($saleinfo['order_source']!=9) return error_show(1004,"销售单来源不是网络录入");
- $cgd = Db::name("purchease_order")->alias("a")
- ->leftJoin("order_num b","a.cgdNo=b.cgdNo")
- ->where(["b.orderCode"=>$param['orderCode']])
- ->field("a.*")
- ->findOrEmpty();
- if(empty($cgd)) return error_show(1004,"采购单不存在");
- $good =Db::name("good_zixun")->where(["spuCode"=>$saleinfo['good_code']])->findOrEmpty();
- if(empty($good)) return error_show(1004,"商品信息不存在");
- $addr =Db::name("order_addr")->where(["orderCode"=>$param['orderCode']])->findOrEmpty();
- if(empty($addr)) return error_show(1004,"地址信息不存在");
- $cgdPrice= round( $saleinfo['sale_price']*(1-$param['cgd_tax']),2);
- if($saleinfo['pay_id']!=0){
- $supplierArr =Db::name("pay_rate")->where(["pay_id"=>$saleinfo['pay_id'],"status"=>1,"is_del"=>0])->column("companyNo");
- if(in_array($param['companyNo'],$supplierArr)) return error_show(1004, "支付渠道含有该业务公司,支付渠道无法使用!");
- }
- $qrddata=[
- "origin_price"=>$cgdPrice,
- "arrive_time"=>$param['sendtime'],
- // "customer_code"=>$param['khNo'],
- // "supplierNo"=>$param['companyNo'],
- "platform_order"=>$param['poCode'],
- "workNo"=>$param['workCode'],
- "updatetime"=>date("Y-m-d H:i:s"),
- "cgderid"=>$param['buyerid'],
- "cgder"=>$param['buyer_name']
- ];
- $cgddata=[
- "cgder_id"=>$param['buyerid'],
- 'cgder'=>$param['buyerid'],
- "good_price"=>$cgdPrice,
- "total_fee"=>round($cgdPrice*$saleinfo['good_num'],2),
- "supplierNo"=>$param['supplierNo'],
- "supplier_name"=>$supplierName,
- // "companyNo"=>$param['companyNo'],
- "updatetime"=>date("Y-m-d H:i:s"),
- ];
- $goodinfo =[
- "good_unit"=>$param['goodUnit'],
- "tax"=>$param['tax'],
- "supplierNo"=>$param['supplierNo'],
- "companyNo"=>$param['companyNo'],
- "updatetime"=>date("Y-m-d H:i:s"),
- ];
- $orderAddr=[
- "addr"=>$param['addr'],
- "addr_code"=>$param['addr_code'],
- "contactor"=>$param['contactor'],
- "mobile"=>$param['mobile'],
- "arrive_time"=>$param['sendtime'],
- "customer_code"=>$param['khNo'],
- "updatetime"=>date("Y-m-d H:i:s"),
- ];
- Db::startTrans();
- try{
- $qrd =Db::name("sale")->where($saleinfo)->update($qrddata);
- if($qrd==false) throw new Exception("销售单更新失败");
- $qrd =Db::name("purchease_order")->where($cgd)->update($cgddata);
- if($qrd==false) throw new Exception("采购单更新失败");
- $qrd =Db::name("good_zixun")->where($good)->update($goodinfo);
- if($qrd==false) throw new Exception("商品信息更新失败");
- $qrd =Db::name("order_addr")->where($addr)->update($orderAddr);
- if($qrd==false) throw new Exception("销售单地址更新失败");
- Db::commit();
- return app_show(0,'订单更新成功');
- }catch (\Exception $exception){
- Db::rollback();
- return error_show(1004,$exception->getMessage());
- }
- }
- }
|