wugg 7 months ago
parent
commit
fd3853f0bc
2 changed files with 162 additions and 1 deletions
  1. 145 1
      app/user/controller/Supplier.php
  2. 17 0
      app/user/model/SupplierBank.php

+ 145 - 1
app/user/controller/Supplier.php

@@ -4,7 +4,7 @@
 namespace app\user\controller;
 
 use app\user\model\CompanyType;use app\user\model\Headquarters;
-use app\user\model\SupplierContact;
+use app\user\model\SupplierBank;use app\user\model\SupplierContact;
 use think\App;
 use think\facade\Validate;
 class Supplier extends Base{
@@ -286,6 +286,7 @@ class Supplier extends Base{
         $info->addr=$param['addr'];
         $info->scope=$param['scope'];
         $info->status=$param['registercode']==$param['invoice_code']?1:0;
+        $info->remark .= $param['registercode']==$param['invoice_code']?"":"企业纳税识别号与营业执照不匹配";
         $this->model->startTrans();
 
         try{
@@ -449,4 +450,147 @@ class Supplier extends Base{
         ];
         return success("获取成功",$data);
     }
+    /**
+     * 银行信息添加
+     * @param code|供应商编码
+     * @param bank_name|银行名称
+     * @param contact_name|联系人
+     * @param  contact_mobile|联系电话
+     * @param  bank_no|银行卡号
+     * @return \think\Response|\think\response\Json|void
+    * @throws \think\db\exception\DbException
+     */
+    public function bankCreate()
+    {
+        $post = $this->request->only(['code', 'bank_name', 'bank_no', 'contact_name', 'contact_mobile'], 'post', 'trim');
+        $val = Validate::rule([
+            'code|供应商编码' => 'require',
+            'bank_name|银行名称' => 'require|max:255',
+            'bank_no|银行卡号' => 'require|number|unique:\app\user\model\supplier_bank,bank_no',
+            'contact_name|联系人' => 'max:255',
+            'contact_mobile|联系电话' => 'mobile',
+        ]);
+        if ($val->check($post) == false) return error($val->getError());
+        $supplier = $this->model->where([['code',"=", $post['code']],["is_del","=",0]])->findOrEmpty();
+        if ($supplier->isEmpty()) return error("供应商不存在");
+        $data=[
+            'code'=>$post['code'],
+            'bank_name'=>$post['bank_name'],
+            'bank_no'=>$post['bank_no'],
+            'contact_name'=>$post['contact_name'],
+            'contact_mobile'=>$post['contact_mobile'],
+            'apply_name'=>$this->uname,
+            'apply_id'=>$this->uid,
+            "status"=>0,
+            "is_default"=>SupplierBank::where(["code"=>$post['code']])->count()==0?1:0,
+            ];
+        SupplierBank::create($data);
+        return success("添加成功");
+    }
+    /**
+     * 银行信息删除
+     * @param id|供应商银行id
+    * @return \think\Response|\think\response\Json|void
+     */
+    public function bankDelete()
+    {
+        $post = $this->request->only(['id'], 'post', 'trim');
+        $val = Validate::rule([
+            'id|供应商银行id' => 'require',
+        ]);
+        if ($val->check($post) == false) return error($val->getError());
+        $bank = SupplierBank::where([['id',"=", $post['id']]])->findOrEmpty();
+        if ($bank->isEmpty()) return error("供应商银行不存在");
+        if($bank->is_default==1)return error("默认银行不能删除");
+        $bank->delete();
+        return success("删除成功");
+    }
+    /**
+     * @param id|供应商银行id
+     *@param bank_name|银行名称
+     *@param contact_name|联系人
+     *@param contact_mobile|联系电话
+     *@return \think\Response|\think\response\Json|void
+     **/
+    public function bankUpdate()
+    {
+        $post = $this->request->only(['id', 'bank_name', 'bank_no', 'contact_name', 'contact_mobile'], 'post', 'trim');
+        $val = Validate::rule([
+            'id|供应商银行id' => 'require',
+            'bank_name|银行名称' => 'require|max:255',
+            'bank_no|银行卡号' => 'require|number|unique:\app\user\model\supplier_bank,bank_no',
+            'contact_name|联系人' => 'max:255',
+            'contact_mobile|联系电话' => 'mobile',
+        ]);
+        if ($val->check($post) == false) return error($val->getError());
+        $bank = SupplierBank::where([['id',"=", $post['id']]])->findOrEmpty();
+        if ($bank->isEmpty()) return error("供应商银行不存在");
+        $bank->bank_name=$post['bank_name'];
+        $bank->bank_no=$post['bank_no'];
+        $bank->contact_name=$post['contact_name'];
+        $bank->contact_mobile=$post['contact_mobile'];
+        $bank->save();
+        return success("修改成功");
+    }
+    /**
+     * @param id|供应商银行id
+     * @return \think\Response|\think\response\Json|void
+     * @throws \think\db\exception\DbException
+     */
+    public function bankDefault()
+    {
+        $post = $this->request->only(['id'], 'post', 'trim');
+        $val = Validate::rule([
+            'id|供应商银行id' => 'require',
+        ]);
+        if ($val->check($post) == false) return error($val->getError());
+        $bank = SupplierBank::where([['id',"=", $post['id']]])->findOrEmpty();
+        if ($bank->isEmpty()) return error("供应商银行不存在");
+        SupplierBank::where(["code"=>$bank->code,"is_default"=>1])->update(["is_default"=>0]);
+        $bank->is_default=1;
+        $bank->save();
+        return success("设置成功");
+    }
+    /**
+     * 银行信息列表
+     * @param code|供应商编码
+     * @param status|状态
+     * @param contact_name|联系人
+     * @param contact_mobile|联系电话
+     * @param page|页码
+     * @param size|每页数量
+     * @return \think\Response|\think\response\Json|void
+     * @throws \think\db\exception\DbException
+     */
+    public function bankList()
+    {
+        $post = $this->request->only(['code'=>"","status"=>"","contact_name"=>"","contact_mobile"=>"","page"=>1,"size"=>15], 'post', 'trim');
+        $where=[];
+        if($post['code']!="")$where[]=["code","=",$post['code']];
+        if($post['status']!=="")$where[]=["status","=",$post['status']];
+        if($post['contact_name']!="")$where[]=["contact_name","like","%".$post['contact_name']."%"];
+        if($post['contact_mobile']!="")$where[]=["contact_mobile","like","%".$post['contact_mobile']."%"];
+        $data=SupplierBank::with(['supplier'])->where($where)->order('id', 'desc')
+        ->paginate(['list_rows'=>$post['size'],'page'=>$post['page']]);
+        return success("获取成功",["list"=>$data->items(),"total"=>$data->total()]);
+    }
+    /**
+     * @param id|供应商银行id
+     * @param status|状态
+     * @return \think\Response|\think\response\Json|void
+     */
+    public function bankStatus()
+    {
+        $post = $this->request->only(['id','status'], 'post', 'trim');
+        $val = Validate::rule([
+            'id|供应商银行id' => 'require',
+            'status|状态' => 'require|in:0,1',
+        ]);
+        if ($val->check($post) == false) return error($val->getError());
+        $bank = SupplierBank::where([['id',"=", $post['id']]])->findOrEmpty();
+        if ($bank->isEmpty()) return error("供应商银行不存在");
+        $bank->status=$post['status'];
+        $bank->save();
+        return success("修改成功");
+    }
 }

+ 17 - 0
app/user/model/SupplierBank.php

@@ -0,0 +1,17 @@
+<?php
+
+
+namespace app\user\model;
+
+
+use think\model\concern\SoftDelete;
+class SupplierBank extends Base{
+    use SoftDelete;
+    protected $createTime='createTime';
+    protected $updateTime="updateTime";
+    protected $deleteTime="delete_time";
+
+    public function supplier(){
+        return $this->belongsTo('Supplier','code','code')->bind(["name"]);
+    }
+}