소스 검색

Merge branch 'master-dev' of wugg/cxinv into master

wugg 2 년 전
부모
커밋
91f997b5d0
5개의 변경된 파일84개의 추가작업 그리고 53개의 파일을 삭제
  1. 1 1
      app/admin/command/QueryInvalidInvoice.php
  2. 47 16
      app/admin/controller/InvCat.php
  3. 29 31
      app/admin/controller/Payment.php
  4. 1 0
      config/log.php
  5. 6 5
      extend/TaxInvoice.php

+ 1 - 1
app/admin/command/QueryInvalidInvoice.php

@@ -92,7 +92,7 @@ class QueryInvalidInvoice extends Command
     private function ChickInvoice($sellid,$invoice_code,$invoice_num){
     	$invoice=Config::get("invoice");
     	$tax =new TaxInvoice($invoice['appKey'],$invoice['appSecret'],$invoice['entCode']);
-    	$reuslt = $tax->QueryInvalidInvoice($sellid,$invoice_code,$invoice_num);
+    	$reuslt = $tax->QueryInvalidInvoice($sellid,$invoice_num,$invoice_code);
     	return $reuslt;
     }
 }

+ 47 - 16
app/admin/controller/InvCat.php

@@ -216,24 +216,55 @@ class InvCat extends BaseController{
                 $value['tax'] = str_replace('%', '', $value['tax']);
                 $value['tax'] = round(bcdiv($value['tax'], 100, 3), 2);
 
+//
+//                if ($value['is_discount'] == 1) {
+//                    // 优惠政策下 税率标识只能选择 0非零说率 1免税 2不征税 增值税管理为空"出口零税/免税/不征税"
+//                    if($value['tax'] == 0){
+//                    	if ( $value['inv_tag'] == 3) throw new Exception($value['spuCode'].'税率标识不能选择零税率');
+//                        if ($value['addTax'] == '') throw new Exception($value['spuCode'].'参数 addTax 不能为空');
+//                        if($value['addTax']!=$this->Tax[$value['inv_tag']]){
+//                        	throw new Exception($value['spuCode'].'税率标识与增值税管理内容不符');
+//						}
+//                    }
+//
+//
+//                } else {
+//                    // 非优惠政策下 零税率 税率标识只能选择 3 普通零税率  增值税管理为空
+//                    // 非优惠政策下 非零税率 税率标识只能选择 0 非零税率  增值税管理为空
+//                    if ($value['tax'] == 0 && $value['inv_tag'] != 3) throw new Exception($value['spuCode'].'税率标识只能选择零税率');
+//					$value['addTax'] = '';
+//                }
 
-                if ($value['is_discount'] == 1) {
-                    // 优惠政策下 税率标识只能选择 0非零说率 1免税 2不征税 增值税管理为空"出口零税/免税/不征税"
-                    if($value['tax'] == 0){
-                    	if ( $value['inv_tag'] == 3) throw new Exception($value['spuCode'].'税率标识不能选择零税率');
-                        if ($value['addTax'] == '') throw new Exception($value['spuCode'].'参数 addTax 不能为空');
-                        if($value['addTax']!=$this->Tax[$value['inv_tag']]){
-                        	throw new Exception($value['spuCode'].'税率标识与增值税管理内容不符');
-						}
-                    }
-
+                if($value['is_discount'] ==1){
+//				1.如果YHZCBS为1, 则ZZSTSGL必须填; 如果YHZCBS为0,ZZSTSGL不填。
+//				2.如果YHZCBS为1, 且税率为0, 则LSLBS只能根据实际情况选择"1或2"中的一种, 不能选择3, 且ZZSTSGL内容也只能写与1/2对应的"免税/不征税";
+//				3.如果税率为0,但并不属于优惠政策(即普通的零税率),则YHZCBS填0,LSLBS填3,ZZSTSGL为空;
+//				4.如果税率不为0, 但属于优惠政策,则YHZCBS填1,LSLBS填空或不填,ZZSTSGL根据实际情况填写;
+//				5.如果税率不为0, 且不属于优惠政策, 则YHZCBS填0,LSLBS填空或不填,ZZSTSGL不填或空.
+				// 优惠政策下 税率标识只能选择 0非零说率 1免税 2不征税 增值税管理为空"出口零税/免税/不征税"
+				if($value['tax'] ==0){
+					if($value['inv_tag']==3){
+						throw new Exception($value['spuCode'].'税率标识不能选择零税率');
+					}
+					if($value['addTax']==''){
+						throw new Exception($value['spuCode'].'参数 addTax 不能为空');
+					}
+					if($value['addTax']!=$this->Tax[$value['inv_tag']]){
+						throw new Exception($value['spuCode'].'参数 addTax 不能为空');
+					}
+				}
 
-                } else {
-                    // 非优惠政策下 零税率 税率标识只能选择 3 普通零税率  增值税管理为空
-                    // 非优惠政策下 非零税率 税率标识只能选择 0 非零税率  增值税管理为空
-                    if ($value['tax'] == 0 && $value['inv_tag'] != 3) throw new Exception($value['spuCode'].'税率标识只能选择零税率');
-					$value['addTax'] = '';
-                }
+			}else{
+				// 非优惠政策下 零税率 税率标识只能选择 3 普通零税率  增值税管理为空
+				// 非优惠政策下 非零税率 税率标识只能选择 0 非零税率  增值税管理为空
+				if($value['tax'] == 0 && $value['inv_tag'] != 3){
+					throw new Exception($value['spuCode'].'税率标识只能选择零税率');
+				}
+				if($value['tax']!=0 && $value['inv_tag']!=0){
+					throw new Exception($value['spuCode']."税率标识只能选择非零税率");
+				}
+				$value['addTax']='';
+			}
 
                 $data = [
                     'inv_cat_name' => $all_cat_code[$value['cat_code']]['short_name'],

+ 29 - 31
app/admin/controller/Payment.php

@@ -1894,15 +1894,11 @@ class Payment extends BaseController
             "companyNo|公司编号" => "requireWithout:relaComNo|max:255",
         ]);
         if ($valid->check($post) == false) return error_show(1004, $valid->getError());
-//		if(empty($post['hpNo'])) return error_show(1004,'回票申请编号集合不能为空');
         $companyNo = $post["relaComNo"] ?? $post['companyNo'];
-//		if($companyNo =="") return error_show(1004,'业务公司编号不能为空');
         $payArr = Db::name("pay_invoice")
-            ->alias("a")
-            ->leftJoin("pay b", "a.payNo=b.payNo")
-            ->where(['a.is_del' => 0, 'b.is_del' => 0])
-            ->whereIn('a.hpNo', array_column($post['list'], 'hpNo'))
-            ->column("a.id,a.payNo,a.hpNo,a.invoiceType,a.inv_fee as invoice_fee,a.status,b.inv_status,b.inv_fee,b.companyNo,b.ainv_fee,b.winv_fee,a.hpNo", "a.hpNo");
+            ->where(['is_del' => 0])
+            ->whereIn('hpNo', array_column($post['list'], 'hpNo'))
+            ->column("id,payNo,hpNo,invoiceType,inv_fee as invoice_fee,status", "hpNo");
 
         $val_hpNo = Validate::rule([
             'hpNo|回票申请编号' => 'require',
@@ -1918,28 +1914,26 @@ class Payment extends BaseController
         try {
             $pay_invoice_allow = [];
 
-            $hpNo_item = array_column($post['list'], null, 'hpNo');
-
-            $date = date('Y-m-d H:i:s');
-
             foreach ($post['list'] as $val) {
 
-                if (!$val_hpNo->check($item)) throw new \Exception($val_hpNo->getError());
+                if (!$val_hpNo->check($val)) throw new \Exception($val_hpNo->getError());
                 if (!isset($payArr[$val['hpNo']])) throw new \Exception("{$val['hpNo']}记录不存在");
 
                 $value = $payArr[$val['hpNo']];
-
-                if ($value['companyNo'] == '') throw new Exception("{$value['hpNo']}对账信息有误");
-                if ($value['companyNo'] != $companyNo) throw new Exception("{$value['hpNo']}不属于当前业务公司发票");
+				$payinfo = Db::name("pay")->where(["payNo"=>$payArr[$val['hpNo']]['payNo'],"status"=>2,"is_del"=>0])
+->findOrEmpty();
+				if(empty($payinfo)) throw new Exception("{$value['hpNo']}对账信息有误");
+                if ($payinfo['companyNo'] == '') throw new Exception("{$value['hpNo']}对账信息有误");
+                if ($payinfo['companyNo'] != $companyNo) throw new Exception("{$value['hpNo']}不属于当前业务公司发票");
                 if ($value['status'] != '3') throw new Exception("{$value['hpNo']}状态有误");
-                if ($value['invoice_fee'] > $value['inv_fee']) throw new Exception("{$value['hpNo']}对账单开票中金额不足");
+                if ($value['invoice_fee'] > $payinfo['inv_fee']) throw new Exception("{$value['hpNo']}对账单开票中金额不足");
 
-                if ($hpNo_item[$value['hpNo']]['status'] == 4) {
+                if ($val['status'] == 4) {
                     //审核通过
                     $payupdate = [
-                        "ainv_fee" => $value['ainv_fee'] + $value['invoice_fee'],
-                        "inv_fee" => $value['inv_fee'] - $value['invoice_fee'],
-                        "inv_status" => ($value['inv_fee'] - $value['invoice_fee']) == 0 && $value['winv_fee'] == 0 ? 3 : 2,
+                        "ainv_fee" => $payinfo['ainv_fee'] + $value['invoice_fee'],
+                        "inv_fee" => $payinfo['inv_fee'] - $value['invoice_fee'],
+                        "inv_status" => ($payinfo['inv_fee'] - $value['invoice_fee']) == 0 && $payinfo['winv_fee'] == 0 ? 3 : 2,
                         "updatetime" => date("Y-m-d H:i:s")
                     ];
 
@@ -1948,24 +1942,28 @@ class Payment extends BaseController
                 } else {
                     //审核不通过
                     $payupdate = [
-                        "winv_fee" => $value['winv_fee'] + $value['invoice_fee'],
-                        "inv_fee" => $value['inv_fee'] - $value['invoice_fee'],
-                        "inv_status" => ($value['inv_fee'] - $value['invoice_fee']) == 0 && $value['ainv_fee'] == 0 ? 1 : 2,
-                        "updatetime" => $date
+                        "winv_fee" => $payinfo['winv_fee'] + $value['invoice_fee'],
+                        "inv_fee" => $payinfo['inv_fee'] - $value['invoice_fee'],
+                        "inv_status" => ($payinfo['inv_fee'] - $value['invoice_fee']) == 0 && $payinfo['ainv_fee'] == 0 ? 1 : 2,
+                        "updatetime" => date("Y-m-d H:i:s")
                     ];
 //                        $pay_invoice_not_allow[]=$value['id'];
                     Db::name("pay_invoice")
                         ->where(["id" => $value['id'], "status" => 3, "is_del" => 0])
-                        ->update(["status" => $hpNo_item[$value['hpNo']]['status'], "updatetime" => $date, 'remark' => $hpNo_item[$value['hpNo']]['remark']]);
+                        ->update(["status" => $val['status'], "updatetime" => date("Y-m-d H:i:s"), 'remark' =>$val['remark']]);
                 }
-                $where = ['payNo' => $value['payNo'], "inv_status" => $value['inv_status'], "companyNo" => $companyNo, "status" => 2, "is_del" => 0];
-                $pay = Db::name("pay")->where($where)->update($payupdate);
-                if ($pay == false) throw new Exception("{$value['hpNo']}回票申请对账单状态更新失败");
-//                    $invIdArr[] = $value['id'];
+//                $where = ['payNo' => $value['payNo'], "inv_status" => $ $val['inv_status'], "companyNo" => $companyNo, "status" => 2, "is_del" => 0];
+                $pay = Db::name("pay")->where($payinfo)->update($payupdate);
+
+                if ($pay == false) {
+//                	echo Db::name("pay")->getLastSql();
+//	                var_dump($where,$payupdate);
+                	throw new Exception("{$value['hpNo']}回票申请对账单状态更新失败");
+                }
+
             }
-//            }
 
-            if ($pay_invoice_allow) Db::name("pay_invoice")->where(["id" => $pay_invoice_allow, "status" => 3, "is_del" => 0])->update(["status" => 4, "updatetime" => $date]);
+            if ($pay_invoice_allow) Db::name("pay_invoice")->where(["id" => $pay_invoice_allow, "status" => 3, "is_del" => 0])->update(["status" => 4, "updatetime" =>date("Y-m-d H:i:s")]);
 
 //            if ($update == false) throw new Exception("回票申请状态更新失败");
             Db::commit();

+ 1 - 0
config/log.php

@@ -26,6 +26,7 @@ return [
             'single'         => false,
             // 独立日志级别
             'apart_level'    => ["info"],
+             'file_size'   	=> 	1024*1024*20,
             // 最大日志文件数量
             'max_files'      => 0,
             // 使用JSON格式记录

+ 6 - 5
extend/TaxInvoice.php

@@ -192,17 +192,18 @@ class TaxInvoice {
 * @param $data
  * @return array|bool|float|int|mixed|stdClass|string|null
 */public function ReturnData($data){
-	\think\facade\Log::info("返回值:".json_encode($data,JSON_UNESCAPED_UNICODE));
+	$return =["code"=>0,"message"=>"fail"];
       if(key_exists("returnCode",$data['returnStateInfo'])){
          	if ($data['returnStateInfo']['returnCode']=='0000'){
          	$result= base64_decode($data['content']);
-            return json_decode($result,true);
+            $return = json_decode($result,true);
          	}else{
-				$returnMessage= base64_decode($data['returnStateInfo']['returnMessage']);
-            return ["code"=>$data['returnStateInfo']['returnCode'],"message"=>$returnMessage];
+			$returnMessage= base64_decode($data['returnStateInfo']['returnMessage']);
+            $return =["code"=>$data['returnStateInfo']['returnCode'],"message"=>$returnMessage];
          	}
         }
-         return ["code"=>0,"message"=>"fail"];
+        \think\facade\Log::info("返回值:".json_encode($return,JSON_UNESCAPED_UNICODE));
+         return $return;
     }
 
     /**