wugg 10 months ago
parent
commit
e027f7b713

+ 5 - 1
app/admin/controller/Payment.php

@@ -232,9 +232,11 @@ class Payment extends Base
         foreach ($list as $key=>$value){
             $value['ordeNum'] = Db::name("pay_info")->where([["payNo","=",$value["payNo"]],["is_del","=",0]])->count();
             $tag =Db::name("tag_log")->alias("a")->leftJoin("order_tag b","a.tag_id=b.id")->where
-            (["code"=>$value['payNo'],"a.status"=>1])->column("b.tag_name,a.tag_img,a.tag_remark","b.type");
+            (["code"=>$value['payNo'],"a.status"=>1])->column("a.key_id,b.tag_name,a.tag_img,a.tag_remark","b.type");
             $value['inv_tag_name']=$tag[2]['tag_name']??'';
+            $value['inv_tag_id']=$tag[2]['key_id']??'0';
             $value['pay_tag_name']=$tag[1]['tag_name']??'';
+            $value['pay_tag_id']=$tag[1]['key_id']??'0';
             $value['pay_tag_img']=$tag[1]['tag_img']??'';
             $value['inv_tag_img']=$tag[2]['tag_img']??'';
             $value['inv_tag_remark']=$tag[2]['tag_remark']??'';
@@ -533,6 +535,8 @@ class Payment extends Base
        	    if(!empty($stages)) return error_show(1004,"对账单存在未解除的付款申请单");
        	    $hpinv = Db::name("pay_invoice")->where(['status'=>[0,1,2,3,4,9],"payNo"=>$payNo,"is_del"=>0])->findOrEmpty();
        	    if(!empty($hpinv)) return error_show(1004,"对账单存在未解除的回票申请单");
+       	    if($data['inv_tag']==1)$this->error("存在回票标签未解除");
+       	    if($data['pay_tag']==1)$this->error("存在付款标签未解除");
        }
         Db::startTrans();
         try{

+ 86 - 10
app/admin/controller/TagGood.php

@@ -3,10 +3,11 @@
 
 namespace app\admin\controller;
 
-use think\App;
+use app\admin\model\OrderTag;use app\admin\model\Pay;use app\admin\model\QrdInfo;use app\admin\model\TagLog;use think\App;
 use think\facade\Db;
 
 class TagGood extends Base{
+	#public $novalidate=['*'];
     public function __construct(App $app) {parent::__construct($app);}
     //新建标签
     public function create(){
@@ -149,14 +150,6 @@ class TagGood extends Base{
         if($type==''){
            return error_show(1004,"参数 type 不能为空");
         }
-//          if($this->post['relaComNo']!=""){
-//        	$companyNo = isset($this->post['relaComNo'])&& $this->post['relaComNo']!="" ? trim($this->post['relaComNo']) :"";
-//        }else{
-//        	 $companyNo = isset($this->post['companyNo'])&& $this->post['companyNo']!="" ? trim($this->post['companyNo']) :"";
-//        }
-//         if($companyNo==''){
-//          return error_show(1004,"参数 companyNo 不能为空");
-//        }
         $tag =Db::name("order_tag")->where([['tag_name',"=",$tagName],['companyNo',"=",$taginfo['companyNo']],
         ['type',"=",$type], ["id","<>",$id],["is_del","=",0]])->find();
         if($tag!=false){
@@ -249,6 +242,33 @@ class TagGood extends Base{
 	        return error_show(1004,$e->getMessage());
         }
     }
+    
+    public function checkTag(){
+        $param= $this->request->post(["logid"=>''],"post","trim");
+        $loginfo = TagLog::where("id",$param['logid'])->findOrEmpty();
+        if($loginfo->isEmpty())$this->error('未找到标签关联数据');
+        $tag = OrderTag::where("id",$loginfo->tag_id)->findOrEmpty();
+        if($tag->isEmpty())$this->error('未找到标签信息数据');
+        TagLog::startTrans();
+        $message="";
+        try{
+        	 if($tag['type']==1 || $tag['type']==2){
+        	 	$message="对账单{$loginfo->code}{$tag->tag_name}";
+		          $this->payReTag($tag['type'],$loginfo->code,$loginfo->tag_fee);
+	        }
+	        if($tag['type']==3|| $tag['type']==4){
+	        	$message="销售单{$loginfo->code}{$tag->tag_name}";
+		          $this->qrdReTag($tag['type'],$loginfo->code,$loginfo->tag_fee);
+	        }
+	        $loginfo->status=0;
+	        $loginfo->save();
+        }catch (\Exception $exception){
+        	TagLog::rollback();
+        	$this->error($exception->getMessage());
+        }
+        TagLog::commit();
+        $this->success("{$message}数据标签解除");
+    }
 	/**
 	* @param $tagId 标签类型 1 付款2回票
 	* @param $code  对账单编号
@@ -285,6 +305,34 @@ class TagGood extends Base{
 		 $resulr= Db::name("pay")->where($pay)->update($update);
 		 return $resulr? app_show(0,"标签添加成功"):error_show(1004,"标签添加失败");
     }
+    
+    	/**解除标签
+	* @param $tagId 标签类型 1 付款2回票
+	* @param $code  对账单编号
+	* @param $total_fee 标签金额
+	* @return \think\response\Json|void
+	* @throws \think\db\exception\DbException
+	*/
+    private  function payReTag($tagId,$code,$total_fee){
+		 $pay=Pay::where(['payNo'=>$code,'is_del'=>0])->findOrEmpty();
+		 if($pay->isEmpty())throw  new \Exception("未找到对账单数据");
+		 if($tagId==1){
+		 	if($pay['pay_tag_fee']<$total_fee)throw  new \Exception('对账单付款标签金额不足');
+		 	$pay->pay_tag_fee=$pay->pay_tag_fee-$total_fee;
+		 	$pay->wpay_fee=$pay->wpay_fee+$total_fee;
+		 	$pay->pay_status = $pay->wpay_fee==0 && $pay->pay_fee==0?3:($pay->apay_fee==0?1:2);
+		 	$pay->pay_tag=0;
+		 }
+		 if($tagId==2){
+		 	if($pay['inv_tag_fee']<$total_fee)throw  new \Exception('对账单回票标签金额不足');
+		 	$pay->inv_tag_fee=$pay->inv_tag_fee-$total_fee;
+		 	$pay->winv_fee=$pay->winv_fee+$total_fee;
+		 	$pay->inv_status = $pay->winv_fee==0 && $pay->inv_fee==0?3:($pay->ainv_fee==0?1:2);
+		 	$pay->inv_tag=0;
+		 }
+		 $resulr= $pay->save();
+		if($resulr==false)throw  new \Exception("对账单更新失败");
+    }
 	/**
 	* @param $tagId 标签类型 3 回款4开票
 	* @param $code 销售单编号
@@ -310,7 +358,7 @@ class TagGood extends Base{
 		 }
 		 if($tagId==4){
 		 	if($qrd['winv_fee']+$qrd['inv_tag_fee']<$total_fee){
-		 		return	error_show(1004,"对账单未金额不足");
+		 		return	error_show(1004,"对账单未开票金额不足");
 		 	}
 		 	$update['winv_fee']=$qrd['winv_fee']+$qrd['inv_tag_fee']-$total_fee;
 		 	$status = $update['winv_fee']==0 &&$qrd['inv_fee']==0 ? 3:($qrd['ainv_fee']==0?1:2);
@@ -321,4 +369,32 @@ class TagGood extends Base{
 		 $resulr= Db::name("qrd_info")->where($qrd)->update($update);
 		 return $resulr? app_show(0,"标签添加成功"):error_show(1004,"标签添加失败");
     }
+    
+    /** 解除标签销售单
+	* @param $tagId 标签类型 3 回款4开票
+	* @param $code 销售单编号
+	* @param $total_fee 标签金额
+	 * @return \think\response\Json|void
+	* @throws \think\db\exception\DbException
+	 */
+    private function qrdReTag($tagId,$code,$total_fee){
+    	$qrd=QrdInfo::where(['sequenceNo'=>$code,'is_del'=>0])->findOrEmpty();
+		 if($qrd->isEmpty())throw  new \Exception('未找到销售单数据');
+		  if($tagId==3){
+		 	if($qrd->pay_tag_fee<$total_fee)throw  new \Exception('销售单回款标签金额不足');
+		 	$qrd->pay_tag_fee=$qrd->pay_tag_fee-$total_fee;
+		 	$qrd->wpay_fee=$qrd->wpay_fee+$total_fee;
+		 	$qrd->pay_status = $qrd->wpay_fee==0 && $qrd->pay_fee==0?3:($qrd->apay_fee==0?1:2);
+		 	$qrd->pay_tag=0;
+		 }
+		 if($tagId==4){
+		 	if($qrd->pay_tag_fee<$total_fee)throw  new \Exception('销售单开票标签金额不足');
+		 	$qrd->inv_tag_fee=$qrd->inv_tag_fee-$total_fee;
+		 	$qrd->winv_fee=$qrd->winv_fee+$total_fee;
+		 	$qrd->inv_status = $qrd->winv_fee==0 && $qrd->inv_fee==0?3:($qrd->ainv_fee==0?1:2);
+		 	$qrd->inv_tag=0;
+		 }
+		 $resulr= $qrd->save();
+		if($resulr==false)throw  new \Exception('销售单更新失败');
+    }
 }

+ 1 - 1
app/admin/model/Pay.php

@@ -10,7 +10,7 @@ use think\Model;
  */
 class Pay extends Model
 {
-       protected $createTime='addtime';
+	protected $createTime='addtime';
     protected $updateTime='updatetime';
     public static $status=["待提交","待买方审核","审核通过","审核驳回","对账单无效"];
 }

+ 2 - 1
app/admin/model/TagLog.php

@@ -10,5 +10,6 @@ use think\Model;
  */
 class TagLog extends Model
 {
-    //
+     protected $createTime='addtime';
+    protected $updateTime='updatetime';
 }