|
@@ -6,14 +6,14 @@ namespace app\admin\controller;
|
|
|
use app\admin\model\CgdInfo;
|
|
|
use app\admin\model\CompanyInfo;
|
|
|
use app\admin\model\FhdChild;
|
|
|
-use app\admin\model\QrdInfo;use app\admin\model\SupplierInfo;
|
|
|
+use app\admin\model\Pay;use app\admin\model\PayInfo;use app\admin\model\QrdInfo;use app\admin\model\SupplierInfo;
|
|
|
use think\App;
|
|
|
use think\facade\Validate;
|
|
|
|
|
|
class Track extends Base
|
|
|
{
|
|
|
protected $model=null;
|
|
|
- protected $novalidate=["*"];
|
|
|
+// protected $novalidate=["*"];
|
|
|
public function __construct(App $app) {
|
|
|
parent::__construct($app);
|
|
|
$this->model=new \app\admin\model\Track();
|
|
@@ -61,7 +61,7 @@ class Track extends Base
|
|
|
//***列表
|
|
|
public function list(){
|
|
|
$param=$this->request->param(["outChildCode"=>"","order_type"=>"","order_source"=>"","supplierNo"=>"",
|
|
|
- "companyNo"=>"","status"=>"","orderCode"=>"","cgdNo"=>""],"post","trim");
|
|
|
+ "companyNo"=>"","status"=>"","orderCode"=>"","cgdNo"=>"",'page'=>1,'size'=>10],"post","trim");
|
|
|
$where=[];
|
|
|
$param['outChildCode']==''??$where[]=["outChildCode","like","%{$param['outChildCode']}%"];
|
|
|
$param['orderCode']==''??$where[]=["orderCode","like","%{$param['orderCode']}%"];
|
|
@@ -103,4 +103,163 @@ class Track extends Base
|
|
|
'page'=>$param['page']]);
|
|
|
$this->success('获取成功',['list'=>$list->items(),'count'=>$list->total()]);
|
|
|
}
|
|
|
+
|
|
|
+ public function PayAdd(){
|
|
|
+ $param=$this->request->param(['cids'=>[]],'post','trim');
|
|
|
+ $valid = Validate::rule(['cids|对账数据集合'=>'require|array']);
|
|
|
+ if($valid->check($param)==false)$this->error($valid->getError());
|
|
|
+ $PayObject = new \app\admin\model\Track();
|
|
|
+ $objall= $PayObject->where(['id'=>$param['cids']])->select();
|
|
|
+ if($objall->isEmpty()) $this->error('对账数据不能为空');
|
|
|
+ $supplierNo= array_column($objall,'supplierNo');
|
|
|
+ $supplierName= array_column($objall,'supplierName');
|
|
|
+ if(count(array_unique($supplierNo))>1){
|
|
|
+ $this->error('对账数据供应商不唯一');
|
|
|
+ }
|
|
|
+ $companyNo= array_column($objall,'companyNo');
|
|
|
+ $companyName= array_column($objall,'companyName');
|
|
|
+ if(count(array_unique($companyNo))>1){
|
|
|
+ $this->error('对账数据业务公司不唯一');
|
|
|
+ }
|
|
|
+ if ($this->level == 2) {
|
|
|
+ //判断是否开通供应商账号
|
|
|
+ $temp = check_has_account_by_supplierNos([$supplierNo[0]]);
|
|
|
+ if (isset($temp['data'][$supplierNo[0]])) $this->error( '该供应商已经开通账号,不允许当前账号操作');
|
|
|
+ }
|
|
|
+ $pay= new Pay();
|
|
|
+ $data = [
|
|
|
+ 'payNo'=>makeNo('PAY'),
|
|
|
+ 'apply_id'=>$this->uid,
|
|
|
+ 'apply_name'=>$this->uname,
|
|
|
+ 'total_fee'=>'0',
|
|
|
+ 'pay_type'=>2,
|
|
|
+ 'supplierNo'=>$supplierNo[0],
|
|
|
+ 'supplierName'=>$supplierName[0],
|
|
|
+ 'companyNo'=>$companyNo[0],
|
|
|
+ 'companyName'=>$companyName[0],
|
|
|
+ 'wpay_fee'=>'0',
|
|
|
+ 'apay_fee'=>'0',
|
|
|
+ 'ainv_fee'=>'0',
|
|
|
+ 'winv_fee'=>'0',
|
|
|
+ 'remark'=>'',
|
|
|
+ 'status'=>1,
|
|
|
+ ];
|
|
|
+ $pay->startTrans();
|
|
|
+ try{
|
|
|
+ $payinfo=[];
|
|
|
+ foreach ($objall as $item){
|
|
|
+ $temp=[];
|
|
|
+ $temp['cgdNo']=$item['TrackCode'];
|
|
|
+ $temp['total_fee']=$item['post_fee'];
|
|
|
+ $temp['apay_fee']=0;
|
|
|
+ $temp['wpay_fee']=$item['post_fee'];
|
|
|
+ $temp['winv_fee']=0;
|
|
|
+ $temp['ainv_fee']=$item['post_fee'];
|
|
|
+ $temp['payNo']=$data['payNo'];
|
|
|
+ $temp['addtime']=date('Y-m-d H:i:s');
|
|
|
+ $temp['updatetime']=date('Y-m-d H:i:s');
|
|
|
+ $payinfo[]=$temp;
|
|
|
+ $data['total_fee']=bcadd($data['total_fee'],$item['post_fee'],2);
|
|
|
+ $data['wpay_fee']= bcadd($data['wpay_fee'],$item['post_fee'],2);
|
|
|
+ $data['winv_fee']= bcadd($data['winv_fee'],$item['post_fee'],2);
|
|
|
+ }
|
|
|
+ $info =(new PayInfo())->saveAll($payinfo);
|
|
|
+ if(empty($info)==false){
|
|
|
+ $create=$pay->save($data);
|
|
|
+ if($create)$objall->update(['status'=>1]);
|
|
|
+ }
|
|
|
+ $pay->commit();
|
|
|
+ }catch (\Exception $e){
|
|
|
+ $pay->rollback();
|
|
|
+ $this->error($e->getMessage());
|
|
|
+ }
|
|
|
+ $this->success('对账单添加成功',['payNo'=>$data['payNo']]);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**对账单未对账前编辑8**/
|
|
|
+ public function PaySave(){
|
|
|
+ $param=$this->request->param(['cids'=>[],'payNo'=>''],'post','trim');
|
|
|
+ $valid = Validate::rule(['cids|对账数据集合'=>'require|array','payNo|对账编号'=>'require']);
|
|
|
+ if($valid->check($param)==false)$this->error($valid->getError());
|
|
|
+ $PayObject = new \app\admin\model\Track();
|
|
|
+ $pay= new Pay();
|
|
|
+ $objall= $PayObject->where(['id'=>$param['cids']])->select();
|
|
|
+ if($objall->isEmpty()) $this->error('对账数据不能为空');
|
|
|
+ $PayInfo = $pay->where(['payNo'=>$param['payNo']])->findOrEmpty();
|
|
|
+ if($PayInfo->isEmpty()) $this->error('未找到对账单数据');
|
|
|
+
|
|
|
+ $supplierNo= array_column($objall,'supplierNo');
|
|
|
+ $supplierName= array_column($objall,'supplierName');
|
|
|
+ if(count(array_unique($supplierNo))>1){
|
|
|
+ $this->error('对账数据供应商不唯一');
|
|
|
+ }
|
|
|
+ $companyNo= array_column($objall,'companyNo');
|
|
|
+ $companyName= array_column($objall,'companyName');
|
|
|
+ if(count(array_unique($companyNo))>1){
|
|
|
+ $this->error('对账数据业务公司不唯一');
|
|
|
+ }
|
|
|
+ if ($this->level == 2) {
|
|
|
+ //判断是否开通供应商账号
|
|
|
+ $temp = check_has_account_by_supplierNos([$supplierNo[0]]);
|
|
|
+ if (isset($temp['data'][$supplierNo[0]])) $this->error( '该供应商已经开通账号,不允许当前账号操作');
|
|
|
+ }
|
|
|
+ $trackArr = PayInfo::where(['payNo'=>$param['payNo'],'is_del'=>0,'status'=>1])->column('cgdNo');
|
|
|
+ $add=$remove=[];
|
|
|
+ if(empty($trackArr)==false){
|
|
|
+ $remove= array_diff($trackArr,array_column($objall,'TrackCode'));
|
|
|
+ $add= array_diff(array_column($objall,'TrackCode'),$trackArr);
|
|
|
+ }
|
|
|
+ $data = [
|
|
|
+ 'apply_id'=>$this->uid,
|
|
|
+ 'apply_name'=>$this->uname,
|
|
|
+ 'total_fee'=>'0',
|
|
|
+ 'supplierNo'=>$supplierNo[0],
|
|
|
+ 'supplierName'=>$supplierName[0],
|
|
|
+ 'companyNo'=>$companyNo[0],
|
|
|
+ 'companyName'=>$companyName[0],
|
|
|
+ 'wpay_fee'=>'0',
|
|
|
+ 'winv_fee'=>'0',
|
|
|
+ ];
|
|
|
+ $pay->startTrans();
|
|
|
+ try{
|
|
|
+ $payinfo=[];
|
|
|
+ foreach ($objall as $item){
|
|
|
+ $data['total_fee']=bcadd($data['total_fee'],$item['post_fee'],2);
|
|
|
+ $data['wpay_fee']= bcadd($data['wpay_fee'],$item['post_fee'],2);
|
|
|
+ $data['winv_fee']= bcadd($data['winv_fee'],$item['post_fee'],2);
|
|
|
+ if(!empty($add)&& in_array($item['TrackCode'],$add)){
|
|
|
+ $temp=[];
|
|
|
+ $temp['cgdNo']=$item['TrackCode'];
|
|
|
+ $temp['total_fee']=$item['post_fee'];
|
|
|
+ $temp['apay_fee']=0;
|
|
|
+ $temp['wpay_fee']=$item['post_fee'];
|
|
|
+ $temp['winv_fee']=0;
|
|
|
+ $temp['ainv_fee']=$item['post_fee'];
|
|
|
+ $temp['payNo']=$param['payNo'];
|
|
|
+ $temp['addtime']=date('Y-m-d H:i:s');
|
|
|
+ $temp['updatetime']=date('Y-m-d H:i:s');
|
|
|
+ $payinfo[]=$temp;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ if(!empty($payinfo))(new PayInfo())->saveAll($payinfo);
|
|
|
+ $up = $PayInfo->save($data);
|
|
|
+ if($up){
|
|
|
+ $objall->update(['status'=>1]);
|
|
|
+ if(!empty($remove)){
|
|
|
+ $PayObject->where(['TrackCode'=>$remove,'status'=>1])->update(['status'=>0]);
|
|
|
+ PayInfo::where(['cgdNo'=>$remove,'status'=>1,'is_del'=>0])->update(['status'=>0,'is_del'=>1]);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ $pay->commit();
|
|
|
+ }catch (\Exception $exception){
|
|
|
+ $pay->rollback();
|
|
|
+ $this->error($exception->getMessage());
|
|
|
+ }
|
|
|
+ $this->success('更新成功');
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
+
|