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()); } } }