wugg 2 years ago
parent
commit
0b5cdc2be7
2 changed files with 467 additions and 6 deletions
  1. 462 6
      app/admin/controller/OrderInv.php
  2. 5 0
      app/admin/route/app.php

+ 462 - 6
app/admin/controller/OrderInv.php

@@ -5,7 +5,7 @@ namespace app\admin\controller;
 use app\admin\BaseController;
 use app\admin\model\ReportCode;
 use think\App;
-use think\facade\Db;
+use think\facade\Config;use think\facade\Db;
 use think\facade\Cache;
 
 class OrderInv extends BaseController{
@@ -478,6 +478,80 @@ class OrderInv extends BaseController{
     public function  Discard(){
 		$invNo = isset($this->post['invNo'])&&$this->post['invNo']!=''?trim($this->post['invNo']):"";
 		if($invNo=='') return error_show(1004,"参数invNo不能为空");
+		$invinfo =Db::name("invoice_pool")->where(["invNo"=>$invNo,"is_del"=>0])->find();
+		if($invinfo==false) return  error_show(1004,"未找到对应发票申请数据");
+		if(!in_array($invinfo['status'],[1,2,3,5]))return  error_show(1004,"发票状态无法废弃");
+		$company =Db::name("company_info")->where(["companyNo"=>$invinfo['inv_out']])->find();
+		if($company==false)return  error_show(1004,"开票业务公司未找到");
+		$invoice =Db::name("invoice_ticket")->where(["invNo"=>$invNo])->find();
+		if($invoice==false)return  error_show(1004,"发票详细信息未找到");
+		Db::startTrans();
+		try{
+		$invoice=Config::get("invoice");
+    	$tax =new \TaxInvoice($invoice['appKey'],$invoice['appSecret'],$company['company_license']);
+		 $result=$tax->DeprecateInvoices($company['company_license'],invoiceType($invinfo['inv_type']),$invoice['inv_code'],$invoice['inv_number'],1);
+		 if(isset($result['ZTDM']) && $result['ZTDM']=='050000'){
+			 $up =Db::name("invoice_pool")->where($invinfo)->update(["status"=>6,"updatetime"=>date("Y-m-d H:i:s")]);
+			 if($up){
+			 	if($invinfo['status']!=5){
+			    $qrdArr=Db::name("assoc")->where(["viceCode"=>$invNo,"is_del"=>0,"status"=>[1,2]])->column("id,orderCode,cancel_fee");
+	                 if(!empty($qrdArr)){
+	                      foreach ($qrdArr as $value){
+	                          $qrdinfo =Db::name("qrd_info")->where(["sequenceNo"=>$value['orderCode']])->find();
+	                          if($qrdinfo==false){
+	                              Db::rollback();
+	                              return error_show(1003,"确认单信息未找到");
+	                          }
+	                          if ($invinfo['status']==3){
+								 if($qrdinfo['ainv_fee']<$value['cancel_fee']){
+	                               Db::rollback();
+	                              return error_show(1003,"确认单信息开票金额不足");
+	                            }
+								  $update =[
+	                              "ainv_fee"=>$qrdinfo['ainv_fee']-$value['cancel_fee'],
+	                              "winv_fee"=>$qrdinfo['winv_fee']+$value['cancel_fee'],
+	                              "inv_status"=>$qrdinfo['ainv_fee']==0 &&$qrdinfo['inv_fee'] ==0 ? 1: 2,
+	                              "updatetime"=>date("Y-m-d H:i:s"),
+	                          ];
+	                          }else{
+                                if($qrdinfo['inv_fee']<$value['cancel_fee']){
+	                               Db::rollback();
+	                              return error_show(1003,"确认单信息开票金额不足");
+	                          }
+                                 $update =[
+	                              "winv_fee"=>$qrdinfo['winv_fee']+$value['cancel_fee'],
+	                              "inv_fee"=>$qrdinfo['inv_fee']-$value['cancel_fee'],
+	                              "inv_status"=>$qrdinfo['ainv_fee']==0 &&($qrdinfo['inv_fee']-$value['cancel_fee']) ==0 ?1 : 2,
+	                              "updatetime"=>date("Y-m-d H:i:s"),
+	                          ];
+	                        }
+
+
+	                          $qrdup = Db::name("qrd_info")->where($qrdinfo)->update($update);
+	                          if($qrdup==false){
+	                              Db::rollback();
+	                              return error_show(1003,"确认单信息更新失败");
+	                          }
+	                          $assoc=["status"=>3,"assoc_time"=>date("Y-m-d H:i:s"),"updatetime"=>date("Y-m-d H:i:s")];
+	                          $assocup =Db::name("assoc")->where($value)->update($assoc);
+	                          if($assocup==false){
+	                              Db::rollback();
+	                              return error_show(1003,"确认单关联信息更新失败");
+	                          }
+	                      }
+	                 }
+			 	}
+			 	Db::commit();
+			 	return app_show(0,"发票废弃成功");
+			 }
+		 }
+		 Db::rollback();
+		return  error_show(1004,"发票废弃失败");
+		}catch (\Exception $e){
+			Db::rollback();
+			return  error_show(1004,$e->getMessage());
+		}
+
 
     }
     /**@param invNo return_reason remark  退票申请
@@ -569,7 +643,7 @@ class OrderInv extends BaseController{
              $up =Db::name("invoice_return")->where($return)->update($update);
             if($up){
                 if($status==2){
-                      $qrdArr=Db::name("assoc")->where(["viceCode"=>$return['invNo'],"is_del"=>0])->column("id,orderCode,cancel_fee");
+                      $qrdArr=Db::name("assoc")->where(["viceCode"=>$return['invNo'],"is_del"=>0,"status"=>[1,2]])->column("id,orderCode,cancel_fee");
                      if(!empty($qrdArr)){
                           foreach ($qrdArr as $value){
                               $qrdinfo =Db::name("qrd_info")->where(["sequenceNo"=>$value['orderCode']])->find();
@@ -626,14 +700,18 @@ class OrderInv extends BaseController{
         if($returnCode==""){
             return error_show(1005,"参数 returnCode 不能为空");
         }
+        $return= Db::name("invoice_return")->where(["returnCode"=>$returnCode])->find();
+        if($return==false){
+            return error_show(1005,"退票申请信息未找到");
+        }
         $redinv =isset($this->post['redinv'])&&$this->post['redinv']!="" ? trim($this->post['redinv']):"";
         if($redinv==""){
             return error_show(1005,"参数 redinv 不能为空");
         }
-         $return= Db::name("invoice_return")->where(["returnCode"=>$returnCode])->find();
-        if($return==false){
-            return error_show(1005,"退票申请信息未找到");
-        }
+		$red =Db::name("invoice_red")->where(["invRed"=>$redinv,"is_del"=>0])->findOrEmpty();
+        if(empty($red)) return error_show(1005,"红冲发票信息未找到");
+        if($red['status']!=4) return error_show(1005,"红冲发票开票未完成");
+
          $invinfo = Db::name("invoice_pool")->where(["invNo"=>$return['invNo'],"is_del"=>0])->find();
          if($invinfo==false){
             return error_show(1005,"发票申请信息未找到");
@@ -882,4 +960,382 @@ class OrderInv extends BaseController{
         }
         return app_show(0,"获取成功",["list"=>$list,"count"=>$count]);
     }
+		//红冲申请
+    public function applyRed(){
+    	$invNo = isset($this->post['invNo'])&&$this->post['invNo']!=''?trim($this->post['invNo']):"";
+    	if($invNo=='')return error_show(1004,"参数 invNo 不能为空");
+    	$invfo =Db::name("invoice_pool")->where(["invNo"=>$invNo,"is_del"=>0])->find();
+		if($invfo==false) return error_show(1004,"发票数据未找到");
+		if(!in_array($invfo['status'],[1,2,3,4,5]))return error_show(1004,"发票数据状态无法申请");
+		$ticket =Db::name("invoice_ticket")->where(["invNo"=>$invNo])->findOrEmpty();
+		if(empty($ticket)) return error_show(1004,"未找到开票信息");
+		$company =Db::name("company_info")->where(["companyNo"=>$invfo['inv_out']])->findOrEmpty();
+		if(empty($company)) return error_show(1004,"业务企业信息未找到");
+		$invoice=Config::get("invoice");
+		$Tax =new \TaxInvoice($invoice['appKey'],$invoice['appSecret'],$company['company_license']);
+
+		$redticketList=[];
+		$redticketArry=[
+			"SQBSCQQPCH"=>randomkeys(26).date("YmdHis"),
+			"NSRSBH"=>$company['company_license'],
+			"FPLXDM"=>invoiceType($invfo['inv_type']),
+		];
+		$goodinfo =Db::name("invoice_good")
+            		->where(["invNo"=>$invNo,"is_del"=>0])
+            		->field("0 as FPHXZ, 
+									catNo  as SPBM,
+									goodNo as ZXBM,
+									is_discount as YHZCBS,
+									inv_tag as  LSLBS,
+									addTax	as ZZSTSGL,
+									goodName as XMMC,
+									unitName as DW,
+									goodNum as SPSL,
+									goodPrice as DJ,
+									totalPrice as JE,
+									1 HSBZ,
+									tax as SL,
+									taxPrice as SE")
+									->select()->toArray();
+					if(empty($goodinfo)){
+						Db::rollback();
+	                    return error_show(1004,"开票商品信息未找到");
+					}
+		$info=[
+			"SQBSCQQLSH"=>randomkeys(29).date("YmdHis"),
+			"YYSBZ"=> "0000000000", //营业税标志
+			"XXBLX"=> "0",//信息表类型 0 正常;1 逾期(仅销方开具)
+			"YFPDM"=>$ticket['inv_code'], //红字专票购方已抵扣可不填
+			"YFPHM"=> $ticket['inv_number'],//红字专票购方已抵扣可不填
+			"YFPKPRQ"=>$ticket['open_date'], //红字专票购方已抵扣可不填
+			"TKSJ"=>date("YmdHis"), //填开时间
+			"XHFSBH"=>$ticket['seller_id'],
+			"XHFMC"=>$ticket['seller_title'],
+			"GMFSBH"=>$ticket['buyer_id'],
+			 "GMFMC"=> $ticket['buyer_title'],
+			 "HJJE"=> "-".$ticket['inv_total'],//合计金额(不含 税)
+			 "HJSE"=>"-".$ticket['tax_fee'],//合计税额
+			 "SQSM"=>"", //申请说明
+			 "XXBTSBS"=>"0",//0: 正常;1:成品油发票,涉及销售数量 变更(销货退回、开票有误等原因);2: 成品油发票,仅涉及销售金额变更(销 售折让);3:机动车发票,仅涉及销售数
+//量变更(销货退回、开票有误等原因);4: 机动车发票,仅涉及销售金额变更(销 售折让)
+		];
+					$invRed=makeNo("IRE");
+		$data=[
+			'invNo'=>$invNo,
+			"invRed"=>$invRed,
+			"apply_id"=>$this->uid,
+			"apply_name"=>$this->uname,
+			"status"=>0,
+			"remark"=>'',
+			"addtime"=>date("Y-m-d H:i:s"),
+			"updatetime"=>date("Y-m-d H:i:s"),
+			"SQBSCQQLSH"=>$info['SQBSCQQLSH'],
+			"YYSBZ"=> "0000000000", //营业税标志
+			"XXBLX"=> "0",//信息表类型 0 正常;1 逾期(仅销方开具)
+			"YFPDM"=>$ticket['inv_code'], //红字专票购方已抵扣可不填
+			"YFPHM"=> $ticket['inv_number'],//红字专票购方已抵扣可不填
+			"YFPKPRQ"=>$ticket['open_date'], //红字专票购方已抵扣可不填
+			"TKSJ"=>date("YmdHis"), //填开时间
+			"XHFSBH"=>$ticket['seller_id'],
+			"XHFMC"=>$ticket['seller_title'],
+			"GMFSBH"=>$ticket['buyer_id'],
+			 "GMFMC"=> $ticket['buyer_title'],
+			 "HJJE"=> "-".$ticket['inv_total'],//合计金额(不含 税)
+			 "HJSE"=>"-".$ticket['tax_fee'],//合计税额
+			 "SQSM"=>"", //申请说明
+			 "XXBTSBS"=>"0",
+			 "DDMXX"=>json_encode($goodinfo,JSON_UNESCAPED_UNICODE),
+			 "SQBSCQQPCH"=>$redticketArry['SQBSCQQPCH'],
+			  "FPLXDM"=>invoiceType($invfo['inv_type']),
+		];
+		$redticketList[]=["HZSQDTXX"=>$info,"DDMXXX"=>$goodinfo];
+		$result=$Tax->AllocateRedInvoiceApplication($redticketArry,$redticketList);
+		$data['status']=5;
+		$data['remark']='红冲申请提交失败';
+		if(isset($result['ZTDM']) && $result['ZTDM']=='060000'){
+			$resultChild=$result['HZSQDSCJG'][0];
+			if($resultChild['ZTDM']=='060000'){
+				$data['status']=2;
+				$data['remark']='红冲申请审核通过';
+			}
+			if($resultChild['ZTDM']=='060001'){
+				$data['status']=1;
+				$data['remark']='红冲申请审核中';
+			}
+		}
+		$up =Db::name("invoice_red")->insert($data);
+		return $up ? app_show(0,"红冲发票申请新建成功",["invRed"=>$invRed]):error_show(1004,"红冲发票申请新建失败");
+    }
+
+	//批量申请红冲发票
+    public function batchApplyRed(){
+        $invArr = isset($this->post['invArr'])&&!empty($this->post['invArr'])?$this->post['invArr']:[];
+    	if(empty($invArr))return error_show(1004,"参数 invArr 不能为空");
+		$invfo =Db::name("invoice_pool")->where(["invNo"=>$invArr,"is_del"=>0])->select()->toArray();
+		if(empty($invfo)) return error_show(1004,"发票数据未找到");
+		$insertAll=[];
+		$companyCode = array_unique(array_column($invfo,"inv_out"));
+		$inv_type = array_unique(array_column($invfo,"inv_type"));
+		if(count($companyCode)>1){
+			return error_show(1004,"业务企业公司不统一");
+		}
+		if(count($inv_type)>1){
+			return error_show(1004,"发票类型不统一");
+		}
+		$company =Db::name("company_info")->where(["companyNo"=>$companyCode])->findOrEmpty();
+		if(empty($company)) {
+			return error_show(1004,"业务企业信息未找到");
+		}
+		$ticketArr=Db::name("invoice_ticket")->where(["invNo"=>$invArr,"is_del"=>0])->column("*","invNo");
+		if(empty($ticketArr)){
+		 return error_show(1004,"未找到开票信息");
+		}
+		$invoice=Config::get("invoice");
+		$Tax =new \TaxInvoice($invoice['appKey'],$invoice['appSecret'],$company['company_license']);
+		Db::startTrans();
+		try{
+			$redticketArry=[
+					"SQBSCQQPCH"=>randomkeys(26).date("YmdHis"),
+					"NSRSBH"=>$company['company_license'],
+					"FPLXDM"=>invoiceType($inv_type[0]),
+				];
+			$redticketList=[];
+			foreach ($invfo as $value){
+					if(!in_array($invfo['status'],[1,2,3,4,5])){
+						Db::rollback();
+						return error_show(1004,"发票数据状态无法申请");
+					}
+					$ticket =$ticketArr[$value['invNo']] ??[];
+					if(empty($ticket)){
+						Db::rollback();
+						return error_show(1004,"未找到开票信息");
+					}
+					$goodinfo =Db::name("invoice_good")
+            		->where(["invNo"=>$value['invNo'],"is_del"=>0])
+            		->field("0 as FPHXZ, 
+									catNo  as SPBM,
+									goodNo as ZXBM,
+									is_discount as YHZCBS,
+									inv_tag as  LSLBS,
+									addTax	as ZZSTSGL,
+									goodName as XMMC,
+									unitName as DW,
+									goodNum as SPSL,
+									goodPrice as DJ,
+									totalPrice as JE,
+									1 HSBZ,
+									tax as SL,
+									taxPrice as SE")
+									->select()->toArray();
+					if(empty($goodinfo)){
+						Db::rollback();
+	                    return error_show(1004,"开票商品信息未找到");
+					}
+
+			$info=[
+			"SQBSCQQLSH"=>randomkeys(29).date("YmdHis"),
+			"YYSBZ"=> "0000000000", //营业税标志
+			"XXBLX"=> "0",//信息表类型 0 正常;1 逾期(仅销方开具)
+			"YFPDM"=>$ticket['inv_code'], //红字专票购方已抵扣可不填
+			"YFPHM"=> $ticket['inv_number'],//红字专票购方已抵扣可不填
+			"YFPKPRQ"=>$ticket['open_date'], //红字专票购方已抵扣可不填
+			"TKSJ"=>date("YmdHis"), //填开时间
+			"XHFSBH"=>$ticket['seller_id'],
+			"XHFMC"=>$ticket['seller_title'],
+			"GMFSBH"=>$ticket['buyer_id'],
+			 "GMFMC"=> $ticket['buyer_title'],
+			 "HJJE"=> "-".$ticket['inv_total'],//合计金额(不含 税)
+			 "HJSE"=>"-".$ticket['tax_fee'],//合计税额
+			 "SQSM"=>"", //申请说明
+			 "XXBTSBS"=>"0",//0: 正常;1:成品油发票,涉及销售数量 变更(销货退回、开票有误等原因);2: 成品油发票,仅涉及销售金额变更(销 售折让);3:机动车发票,仅涉及销售数
+//量变更(销货退回、开票有误等原因);4: 机动车发票,仅涉及销售金额变更(销 售折让)
+		];
+		$data=[
+			'invNo'=>$value['invNo'],
+			"invRed"=>makeNo("IRE"),
+			"apply_id"=>$this->uid,
+			"apply_name"=>$this->uname,
+			"status"=>5,
+			"remark"=>'红冲申请提交失败',
+			"addtime"=>date("Y-m-d H:i:s"),
+			"updatetime"=>date("Y-m-d H:i:s"),
+			"SQBSCQQLSH"=>$info['SQBSCQQLSH'],
+			"YYSBZ"=> "0000000000", //营业税标志
+			"XXBLX"=> "0",//信息表类型 0 正常;1 逾期(仅销方开具)
+			"YFPDM"=>$ticket['inv_code'], //红字专票购方已抵扣可不填
+			"YFPHM"=> $ticket['inv_number'],//红字专票购方已抵扣可不填
+			"YFPKPRQ"=>$ticket['open_date'], //红字专票购方已抵扣可不填
+			"TKSJ"=>date("YmdHis"), //填开时间
+			"XHFSBH"=>$ticket['seller_id'],
+			"XHFMC"=>$ticket['seller_title'],
+			"GMFSBH"=>$ticket['buyer_id'],
+			 "GMFMC"=> $ticket['buyer_title'],
+			 "HJJE"=> "-".$ticket['inv_total'],//合计金额(不含 税)
+			 "HJSE"=>"-".$ticket['tax_fee'],//合计税额
+			 "SQSM"=>"", //申请说明
+			 "XXBTSBS"=>"0",
+			 "DDMXX"=>json_encode($goodinfo,JSON_UNESCAPED_UNICODE),
+			 "SQBSCQQPCH"=>$redticketArry['SQBSCQQPCH'],
+			  "FPLXDM"=>invoiceType($value['inv_type']),
+		];
+		$redticketList[]=["HZSQDTXX"=>$info,"DDMXXX"=>$goodinfo];
+		$insertAll[$info['SQBSCQQLSH']]=$data;
+		}
+		$result=$Tax->AllocateRedInvoiceApplication($redticketArry,$redticketList);
+			if(isset($result['ZTDM']) && $result['ZTDM']=='060000'){
+				if(isset($result['HZSQDSCJG']) && count($result['HZSQDSCJG'])>0){
+					foreach ($result['HZSQDSCJG'] as $value){
+						if($value['ZTDM']=='060000'){
+							$insertAll[$value['SQBSCQQLSH']]['status']=2;
+							$insertAll[$value['SQBSCQQLSH']]['remark']="红冲申请审核通过";
+//							$data['status']=2;
+//							$data['remark']='红冲申请审核通过';
+						}
+						if($value['ZTDM']=='060001'){
+							$insertAll[$value['SQBSCQQLSH']]['status']=1;
+							$insertAll[$value['SQBSCQQLSH']]['remark']="红冲申请审核中";
+						}
+					}
+				}
+			}
+			$uns= Db::name("invoice_red")->insertAll($insertAll);
+			if($uns==count($insertAll)){
+				Db::commit();
+				return app_show(0,"红冲发票申请新建成功");
+			}
+			Db::rollback();
+			return error_show(1004,"红冲发票申请新建失败");
+		}catch (\Exception $e){
+			Db::rollback();
+			return error_show(1004,$e->getMessage());
+		}
+
+    }
+    //红票申请开票
+    public function redOpen(){
+		$invRed= isset($this->post['invRed'])&&$this->post['invRed']!=''? $this->post['invRed']:"";
+		if($invRed==''){
+			return error_show(1004,"参数 invRed 不能为空");
+		}
+		$redinfo =Db::name("invoice_red")->where(["invRed"=>$invRed,"is_del"=>0])->findOrEmpty();
+		if(empty($redinfo)){
+			return error_show(1004,"红冲发票申请不存在");
+		}
+		$redreason = isset($this->post['redreason'])&&$this->post['redreason']!=''? $this->post['redreason']:"";
+		if($redreason==''){
+			return error_show(1004,"参数 redreason 不能为空");
+		}
+		if($redinfo['status']!=2){
+				return error_show(1004,"红冲发票申请审核未通过");
+		}
+		$invinfo = Db::name("invoice_pool")->where(["invNo"=>$redinfo['invNo'],"is_del"=>0])->findOrEmpty();
+		if(empty($invinfo)) return error_show(1004,"红冲发票原票信息未找到");
+		$invpoolinfo = Db::name("invoice_pool_info")->where(["invNo"=>$redinfo['invNo']])->findOrEmpty();
+		if(empty($invpoolinfo)) return error_show(1004,"红冲发票开票信息未找到");
+		Db::startTrans();
+		try{
+					$data=[
+							"invNo"=>$invRed,
+							"KPLX"=>"1",
+							"XHFSBH"=>$invpoolinfo['seller_code'],
+							"XHFMC"=>$invpoolinfo['seller_title'],
+							"XHFDZ"=>$invpoolinfo['seller_addr'],
+							"XHFDH"=>$invpoolinfo['seller_mobile'],
+							"XHFYH"=>$invpoolinfo['seller_bank'],
+							"XHFZH"=>$invpoolinfo['seller_bankNo'],
+							"GMFBM"=>"",
+							"GMFSBH"=>$invpoolinfo['buyer_code'],
+							"GMFMC"=>$invpoolinfo['buyer_title'],
+							"GMFDZ"=>$invpoolinfo['buyer_addr'],
+							"GMFDH"=>$invpoolinfo['buyer_mobile'],
+							"GMFYH"=>$invpoolinfo['buyer_bank'],
+							"GMFZH"=>$invpoolinfo['buyer_bankNo'],
+							"GMFLX"=>$invinfo['company_type'],
+							"GMFSJH"=>"",
+							"GMFDZYX"=>$invinfo['email'],
+							"KPR"=>$invpoolinfo['drawer'],
+							"SKR"=>$invpoolinfo['payee'],
+							"FHR"=>$invpoolinfo['reviewer'],
+							"QDBZ"=>"",
+							"YFPDM"=>$invRed['YFPDM'],
+							"YFPHM"=>$invRed['YFPDM'],
+							"YFPLX"=>$invRed['YFPDM'],
+							"YFPKPRQ"=>$invRed['YFPDM'],
+							"CHYY"=>$redreason,
+							"TSCHBZ"=>"",
+							"JSHJ"=>"-".$invinfo['inv_value'],
+							"HJJE"=>$redinfo['HJJE'],
+							"HJSE"=>$redinfo['HJSE'],
+							"BZ"=>"",
+							"DDMXXX"=>$redinfo['DDMXXX'],
+							"FPLXDM"=>$redinfo['FPLXDM'],
+							"DDQQPCH"=>"",
+							"DDQQLSH"=>randomkeys(26).date("YmdHis"),
+							"status"=>"0",
+							"result"=>"",
+							"addtime"=>date("Y-m-d H:i:s"),
+							"updatetime"=>date("Y-m-d H:i:s")
+						];
+		$invoice=Db::name("invoice_interface")->insert($data);
+		if($invoice==false){
+			Db::rollback();
+            return error_show(1003,"红冲开票信息生成失败");
+		}
+		$upred=Db::name("invoice_red")->where(["invRed"=>$invRed])->update(["status"=>3,"red_reason"=>$redreason,"updatetime"=>date("Y-m-d H:i:s")]);
+		if($upred==false){
+			Db::rollback();
+            return error_show(1003,"红冲发票信息更新失败");
+		}
+		Db::commit();
+		return app_show(0,"红冲发票信息开票提交成功");
+		}catch (\Exception $e){
+			Db::rollback();
+            return error_show(1003,$e->getMessage());
+		}
+    }
+	//红冲票申请列表
+    public function redList(){
+    	$page=isset($this->post['page'])&&$this->post['page']!="" ? intval($this->post['page']) :1;
+        $size=isset($this->post['size'])&&$this->post['size']!="" ? intval($this->post['size']) :15;
+        $condition=[["is_del","=",0]];
+        $invRed=isset($this->post["invRed"])&&$this->post["invRed"]!=''?trim($this->post["invRed"]):"";
+        if($invRed!=''){
+        	$condition[]=["invRed","like","%$invRed%"];
+        }
+         $apply_id=isset($this->post["apply_id"])&&$this->post["apply_id"]!=''?intval($this->post["apply_id"]):"";
+        if($apply_id!=''){
+        	$condition[]=["apply_id","=",$apply_id];
+        }
+         $invNo=isset($this->post["invNo"])&&$this->post["invNo"]!=''?trim($this->post["invNo"]):"";
+        if($invNo!=''){
+        	$condition[]=["invNo","like","%$invNo%"];
+        }
+         $apply_name=isset($this->post["apply_name"])&&$this->post["apply_name"]!=''?trim($this->post["apply_name"]):"";
+        if($apply_name!=''){
+        	$condition[]=["apply_name","like","%$apply_name%"];
+        }
+        $start = isset($this->post["start"])&&$this->post["start"]!=''?trim($this->post["start"]):"";
+        $end = isset($this->post["end"])&&$this->post["end"]!=''?trim($this->post["end"]):"";
+        if($start!=''){
+        	$condition[]=["addtime",">=",$start];
+        }
+        if($end!=''){
+        	$condition[]=["addtime","<=",$end];
+        }
+        $total_low=isset($this->post["total_low"])&&$this->post["total_low"]!=''?floor($this->post["total_low"]):"";
+        $total_up=isset($this->post["total_up"])&&$this->post["total_up"]!=''?floor($this->post["total_up"]):"";
+         if($total_low!=''){
+        	$condition[]=["ABS(HJJE)",">=",$total_low];
+        }
+        if($total_up!=''){
+        	$condition[]=["ABS(HJJE)","<=",$total_up];
+        }
+
+        $count= Db::name("invoice_red")->where($condition)->count();
+        $total =ceil($count/$size);
+        $page=$total>=$page?$page :intval($total);
+        $list =Db::name("invoice_red")->where($condition)->page($page,$size)->order("addtime desc")->select()->toArray();
+        return app_show(0,"获取成功",["list"=>$list,"count"=>$count]);
+    }
+
 }

+ 5 - 0
app/admin/route/app.php

@@ -93,6 +93,11 @@ Route::rule("invreturnstatus","admin/OrderInv/ReturnStatus");
 Route::rule("invreturnred","admin/OrderInv/returnRed");
 Route::rule("orderinvlist","admin/OrderInv/list");
 Route::rule("invreturnlist","admin/OrderInv/returnList");
+Route::rule("discard","admin/OrderInv/Discard");
+Route::rule("applyred","admin/OrderInv/applyRed");
+Route::rule("batchapplyred","admin/OrderInv/batchApplyRed");
+Route::rule("redopen","admin/OrderInv/redOpen");
+Route::rule("redlist","admin/OrderInv/redList");
 
 Route::rule("orderpayadd","admin/OrderPay/create");
 Route::rule("orderpaystatus","admin/OrderPay/status");