wugg 2 yıl önce
ebeveyn
işleme
ef0b553016

+ 15 - 8
app/admin/command/GetOrderInfoAndInvoiceInfo.php

@@ -25,16 +25,25 @@ class GetOrderInfoAndInvoiceInfo extends Command
 		$data = $this->GetData();
 		foreach ($data as $value){
 			if($value['status']==1){
-
 				$res=$this->GetOrderInfo($value);
 			}
 			if($value['status']==2){
-				Db::name("invoice_pool")->where(["invNo"=>$value['invNo'],"is_del"=>0])->update(["status"=>2,"updatetime"=>date("Y-m-d H:i:s")]);
+				if($value['KPLX']==1){
+					Db::name("invoice_red")->where(["invRed"=>$value['invNo'],"is_del"=>0])->update(["status"=>4,"updatetime"=>date("Y-m-d H:i:s")]);
+				}else{
+					Db::name("invoice_pool")->where(["invNo"=>$value['invNo'],"is_del"=>0])->update(["status"=>2,"updatetime"=>date("Y-m-d H:i:s")]);
+				}
 				$this->insertTicket($value['result'],$value['invNo']);
 				Db::name("invoice_interface")->where($value)->update(["is_check"=>1,"updatetime"=>date("Y-m-d H:i:s")]);
 			}
 			if($value['status']==3 || $value['status']==4){
-				Db::name("invoice_pool")->where(["invNo"=>$value['invNo'],"is_del"=>0])->update(["status"=>4,"updatetime"=>date("Y-m-d H:i:s")]);
+				if($value['KPLX']==1){
+					Db::name("invoice_red")->where(["invRed"=>$value['invNo'],"is_del"=>0])->update(["status"=>6,"updatetime"=>date("Y-m-d H:i:s")]);
+
+				}else{
+					Db::name("invoice_pool")->where(["invNo"=>$value['invNo'],"is_del"=>0])->update(["status"=>4,"updatetime"=>date("Y-m-d H:i:s")]);
+
+				}
 				Db::name("invoice_interface")->where($value)->update(["is_check"=>1,"updatetime"=>date("Y-m-d H:i:s")]);
 			}
 		}
@@ -54,14 +63,13 @@ class GetOrderInfoAndInvoiceInfo extends Command
     	$tax =new \TaxInvoice($invoice['appKey'],$invoice['appSecret'],'911101050628285328');
 		$result=$tax->GetOrderInfoAndInvoiceInfo($order['XHFSBH'],$order['DDQQLSH']);
 		if($result['ZTDM'] && $result['ZTDM']=='000000'){
-
 			foreach ($result['DDFPZXX'] as $value){
 				$zt=$value['DDFPXX']['DDZT'];
 				$ztxx=$value['DDFPXX']['DDZTXX'];
 				if($zt=='030000'){
 					$data= $value['DDFPXX'];
 					$data['itemlist'] = $value['DDMXXX'];
-					$this->updateGood($value['DDMXXX'],$order['invNo']);
+					if($data['KPLX']==0)$this->updateGood($value['DDMXXX'],$order['invNo']);
 					$exit= json_encode($data,JSON_UNESCAPED_UNICODE);
 					Db::name("invoice_interface")->where(["DDQQLSH"=>$value['DDFPXX']['DDQQLSH']])->update(["status"=>2,"result"=>$exit,"remark"=>$ztxx,"updatetime"=>date("Y-m-d H:i:s")]);
 				}
@@ -87,7 +95,6 @@ class GetOrderInfoAndInvoiceInfo extends Command
 				$invinfo["status"]=1;
 				$invinfo["addtime"]=date("Y-m-d H:i:s");
 			}
-
 			$invinfo["inv_type"]=$json['FPLXDM'];
 			$invinfo["type"]=$json['KPLX'];
 			$invinfo["inv_code"]=$json['FPDM'];
@@ -121,8 +128,8 @@ class GetOrderInfoAndInvoiceInfo extends Command
     private function updateGood($data,$invNo){
 			if(empty($data))return;
 			foreach ($data as $value){
-				if($value['GGXH']!=''){
-				$invinfo =Db::name("invoice_good")->where(["invNo"=>$invNo,"orderCode"=>$value['GGXH'],'is_del'=>0])->findOrEmpty();
+				if($value['ZXBM']!=''){
+				$invinfo =Db::name("invoice_good")->where(["invNo"=>$invNo,"id"=>$value['ZXBM'],'is_del'=>0])->findOrEmpty();
 				if(empty($invinfo)) continue;
 				$invinfo['goodPrice'] = $value['DJ'];
 				$invinfo['totalPrice'] = $value['JE'];

+ 16 - 11
app/admin/controller/OrderInv.php

@@ -1008,7 +1008,7 @@ class OrderInv extends BaseController{
 		];
 		$goodinfo =Db::name("invoice_good")
             		->where(["invNo"=>$invNo,"is_del"=>0])
-            		->field("6 as FPHXZ, 
+            		->field("0 as FPHXZ, 
 									catNo  as SPBM,
 									id as ZXBM,
 									is_discount as YHZCBS,
@@ -1019,14 +1019,15 @@ class OrderInv extends BaseController{
 									'' as SPSL,
 									'' as DJ,
 									(-totalPrice) as JE,
-									1 HSBZ,
+									0 HSBZ,
 									tax as SL,
 									-taxPrice as SE")->select()->toArray();
 					if(empty($goodinfo)){
 						Db::rollback();
 	                    return error_show(1004,"开票商品信息未找到");
 					}
-	    $len =array_unique(array_column($goodinfo,'SL'));
+		if(count($goodinfo)>8){
+			$len =array_unique(array_column($goodinfo,'SL'));
 	    $qdmx=["FPHXZ"=>6,
 		    "SPBM"=>'',
 		    "XMMC"=>"详见对应正数发票及清单",
@@ -1037,10 +1038,15 @@ class OrderInv extends BaseController{
 		    "SPSL"=>'',
 		    "DJ"=>'',
 		    "JE"=>sprintf("%01.2f", (array_sum(array_column($goodinfo,'JE')))),
-		    "HSBZ"=>'1',
+		    "HSBZ"=>'0',
 		    "SL"=>count($len)>1?'':$len[0],
 		    "SE"=>sprintf("%01.2f",array_sum(array_column($goodinfo,'SE'))),
-	    ];
+	        ];
+		}else
+			{
+				$qdmx=$goodinfo;
+			}
+
 		$info=[
 			"SQBSCQQLSH"=>randomkeys(26).date("YmdHis"),
 			"YYSBZ"=> "0000000000", //营业税标志
@@ -1053,7 +1059,7 @@ class OrderInv extends BaseController{
 			"XHFMC"=>$ticket['seller_title'],
 			"GMFSBH"=>$ticket['buyer_id'],
 			 "GMFMC"=> $ticket['buyer_title'],
-			 "HJJE"=> "-".$ticket['inv_total'],//合计金额(不含 税)
+			 "HJJE"=> "-".$ticket['inv_subtotal'],//合计金额(不含 税)
 			 "HJSE"=>"-".$ticket['tax_fee'],//合计税额
 			 "SQSM"=>"1100000000", //申请说明
 			 "XXBTSBS"=>"0",//0: 正常;1:成品油发票,涉及销售数量 变更(销货退回、开票有误等原因);2: 成品油发票,仅涉及销售金额变更(销 售折让);3:机动车发票,仅涉及销售数
@@ -1080,7 +1086,7 @@ class OrderInv extends BaseController{
 			"XHFMC"=>$ticket['seller_title'],
 			"GMFSBH"=>$ticket['buyer_id'],
 			 "GMFMC"=> $ticket['buyer_title'],
-			 "HJJE"=> "-".$ticket['inv_total'],//合计金额(不含 税)
+			 "HJJE"=> "-".$ticket['inv_subtotal'],//合计金额(不含 税)
 			 "HJSE"=>"-".$ticket['tax_fee'],//合计税额
 			 "SQSM"=>"1100000000", //申请说明
 			 "XXBTSBS"=>"0",
@@ -1168,7 +1174,7 @@ class OrderInv extends BaseController{
 									'' as SPSL,
 									'' as DJ,
 									(-totalPrice) as JE,
-									1 HSBZ,
+									0 HSBZ,
 									tax as SL,
 									-taxPrice as SE")
 									->select()->toArray();
@@ -1205,14 +1211,13 @@ class OrderInv extends BaseController{
 			"XHFMC"=>$ticket['seller_title'],
 			"GMFSBH"=>$ticket['buyer_id'],
 			 "GMFMC"=> $ticket['buyer_title'],
-			 "HJJE"=> "-".$ticket['inv_total'],//合计金额(不含 税)
+			 "HJJE"=> "-".$ticket['inv_subtotal'],//合计金额(不含 税)
 			 "HJSE"=>"-".$ticket['tax_fee'],//合计税额
 			 "SQSM"=>"1100000000", //申请说明
 			 "XXBTSBS"=>"0",//0: 正常;1:成品油发票,涉及销售数量 变更(销货退回、开票有误等原因);2: 成品油发票,仅涉及销售金额变更(销 售折让);3:机动车发票,仅涉及销售数
 //量变更(销货退回、开票有误等原因);4: 机动车发票,仅涉及销售金额变更(销 售折让)
 		];
 		$redticketList[]=["HZSQDTXX"=>$info,"DDMXXX"=>$qdmx];
-		$qdmx['HSBZ']=1;
 		$data=[
 			'invNo'=>$value['invNo'],
 			"invRed"=>makeNo("IRE"),
@@ -1233,7 +1238,7 @@ class OrderInv extends BaseController{
 			"XHFMC"=>$ticket['seller_title'],
 			"GMFSBH"=>$ticket['buyer_id'],
 			 "GMFMC"=> $ticket['buyer_title'],
-			 "HJJE"=> "-".$ticket['inv_total'],//合计金额(不含 税)
+			 "HJJE"=> "-".$ticket['inv_subtotal'],//合计金额(不含 税)
 			 "HJSE"=>"-".$ticket['tax_fee'],//合计税额
 			 "SQSM"=>"1100000000", //申请说明
 			 "XXBTSBS"=>"0",