wugg 1 년 전
부모
커밋
d0cbc2e7db
6개의 변경된 파일159개의 추가작업 그리고 21개의 파일을 삭제
  1. 1 0
      .gitignore
  2. 1 1
      app/admin/controller/InvCat.php
  3. 93 17
      app/admin/controller/OrderInv.php
  4. 38 0
      app/command/companyStats.php
  5. 25 2
      app/command/stat.php
  6. 1 1
      extend/.gitignore

+ 1 - 0
.gitignore

@@ -6,3 +6,4 @@
 /runtime
 /config
 /config/
+/extend

+ 1 - 1
app/admin/controller/InvCat.php

@@ -64,7 +64,7 @@ class InvCat extends BaseController{
 				if($tax!=0 && $invTag!=0){
 					return error_show(1004,"税率标识只能选择非零税率");
 				}
-				$addTax='';
+				$addTax=0;
 			}
 
             $data=[

+ 93 - 17
app/admin/controller/OrderInv.php

@@ -398,12 +398,6 @@ class OrderInv extends BaseController{
 						Db::rollback();
 	                    return error_show(1004,"开票商品信息未找到");
 					}
-//					$taxArr=array_column($goodinfo,"SL");
-//					if(count(array_unique($taxArr))>1){
-//						array_walk($goodinfo,function (&$v){
-//								$v['SL']='';
-//						});
-//					}
 						$data=[
 							"invNo"=>$invNo,
 							"KPLX"=>"0",
@@ -624,18 +618,100 @@ class OrderInv extends BaseController{
     	    "remark|审核备注"=>"max:255",
     	    ]);
     	if($valid->check($param)==false) return error_show(1004,$valid->getError());
-    	$list =Db::name("invoice_pool")->where(["invNo"=>$param['invNos'],"status"=>1,"is_del"=>0])->column("id");
+    	$list =Db::name("invoice_pool")->where(["invNo"=>$param['invNos'],"status"=>1,"is_del"=>0])->column("invNo,company_type,email,inv_value,inv_type,remark","invNo");
     	if(empty($list)) return error_show(1004,"未找到有效数据");
-		$up =Db::name("invoice_pool")
-		->where(["id"=>$list,"status"=>1,"is_del"=>0])
-		->update([
-			"status"=>$param['status'],
-			"open_type"=>$param['open_type'],
-			"exam_remark"=>$param['remark'],
-			"updatetime"=>date("Y-m-d H:i:s")
-			]);
-		if($up==false) return error_show(1004,"数据审核失败");
-		 return app_show(0,"数据审核成功");
+    	Db::startTrans();
+	    try {
+		    if($param['open_type']==1 && $param['status']==2){
+		    	$param['status']=3;
+		    	$interall=[];
+				foreach ($list as $key=>$value){
+					$invpoolinfo =Db::name("invoice_pool_info")->where(["invNo"=>$key])->findOrEmpty();
+					if(empty($invpoolinfo)){
+						Db::rollback();
+						return error_show(1004,"开票信息未找到");
+					}
+					$goodinfo =Db::name("invoice_good")
+					             ->where(["invNo"=>$key,"is_del"=>0])
+					             ->field("0 as FPHXZ,
+									catNo  as SPBM,
+									id as ZXBM,
+									is_discount as YHZCBS,
+									if(inv_tag=0,'',inv_tag) as  LSLBS,
+									addTax	as ZZSTSGL,
+									goodName as XMMC,
+									specInfo as GGXH,
+									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)){
+						throw  new \Exception("开票商品信息未找到");
+					}
+					$data=[
+						"invNo"=>$key,
+						"KPLX"=>"0",
+						"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"=>$value['company_type'],
+						"GMFSJH"=>"",
+						"GMFDZYX"=>$value['email'],
+						"KPR"=>$invpoolinfo['drawer'],
+						"SKR"=>$invpoolinfo['payee'],
+						"FHR"=>$invpoolinfo['reviewer'],
+						"QDBZ"=>"0",
+						"JSHJ"=>$value['inv_value'],
+						"HJJE"=>"0",
+						"HJSE"=>"0",
+						"BZ"=>$value['remark'],
+						"DDMXXX"=>json_encode($goodinfo,JSON_UNESCAPED_UNICODE),
+						"FPLXDM"=>$this->kingInvoice[$value['inv_type']],
+						"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")
+					];
+					$interall[]=$data;
+				}
+
+			    $invoice=Db::name("invoice_interface")->insertAll($interall);
+			    if($invoice==false){
+				    throw  new \Exception("开票信息生成失败");
+			    }
+
+		    }
+		    $up =Db::name("invoice_pool")
+		           ->where(["invNo"=>array_keys($list),"status"=>1,"is_del"=>0])
+		           ->update([
+			           "status"=>$param['status'],
+			           "open_type"=>$param['open_type'],
+			           "exam_remark"=>$param['remark'],
+			           "updatetime"=>date("Y-m-d H:i:s")
+		           ]);
+		    if($up==false) throw  new \Exception("数据批量审核失败");
+		    Db::commit();
+		    return app_show(0,"数据审核成功");
+	    }catch (\Exception $e){
+	    	Db::rollback();
+		    return error_show(1004,$e->getMessage());
+	    }
     }
     /**
     * 发票废弃使用

+ 38 - 0
app/command/companyStats.php

@@ -45,6 +45,7 @@ class companyStats extends Command
     	$date=date("Y-m-d");
     	$d=Db::name("depart_company")->where(["companyNo"=>$supplierNo,"day_time"=>$date])->column("*","type");
     	$temp=[];
+
 		$total =Db::name("qrd_info")
 		->where(["companyNo"=>$supplierNo,"is_del"=>0,"cxCode"=>""])
 		->whereDay("createdTime",$date)
@@ -63,6 +64,8 @@ class companyStats extends Command
 			"th_total"=>$day_thtotal['th_total']??0,
 			"addtime"=>date("Y-m-d H:i:s")
 			];
+
+
 		$total_cx =Db::name("qrd_info")
 		->where(["companyNo"=>$supplierNo,"is_del"=>0])
 		->where("cxCode","<>","")
@@ -84,6 +87,7 @@ class companyStats extends Command
 			"th_total"=>$day_thtotal_cx['th_total']??0,
 			"addtime"=>date("Y-m-d H:i:s")
 			];
+
 		$cgd=$this->cgdData($sup['relation_code'],$date);
 		if(isset($d[3]))Db::name("depart_company")->where($d[3])->save(["sale_total"=>$cgd['cgd_total'],
 		"th_total"=>$cgd['cgd_thtotal']]);
@@ -96,6 +100,18 @@ class companyStats extends Command
 			"th_total"=>$cgd['cgd_thtotal'],
 			"addtime"=>date("Y-m-d H:i:s")
 			];
+		$cgdtotal = $this->cgdTotal($supplierNo,$date);
+		if(isset($d[4]))Db::name("depart_company")->where($d[4])->save(["sale_total"=>$cgdtotal['cgd_total'],
+		"th_total"=>$cgdtotal['th_cgd']]);
+		else $temp[]=[
+			"companyNo"=>$supplierNo,
+			"companyName"=>$sup['name']??"",
+			"type"=>4,
+			"day_time"=>$date,
+			"sale_total"=>$cgdtotal['cgd_total'],
+			"th_total"=>$cgdtotal['th_cgd'],
+			"addtime"=>date("Y-m-d H:i:s")
+			];
 		if(!empty($temp))Db::name("depart_company")->insertAll($temp);
 
     }
@@ -119,4 +135,26 @@ class companyStats extends Command
 	    ->field("sum(a.th_num*b.goodPrice) as th_total")->findOrEmpty();
 		return ["cgd_total"=>$total['total']??0,"cgd_thtotal"=>$day_thtotal['th_total']??0];
     }
+
+
+    	/**
+	 * @param $sup
+	 * @param $date
+	 * @return array
+	 */
+    private function cgdTotal($companyNo,$date): array
+    {
+
+			$day_total =Db::name("qrd_info")->alias("a")
+			->leftJoin('cgd_info b', 'b.sequenceNo=a.cgdNo and b.is_del=0')
+			->where([["a.is_del","=",0],['a.companyNo',"=",$companyNo]])
+		    ->whereDay("a.createdTime",$date)
+		    ->sum(Db::raw("(ifnull(b.totalPrice,if(a.total_origin_price=0,a.total_plan_price,a.total_origin_price))+ifnull(b.th_fee,0))"));
+		$day_thtotal=Db::name("th_source")->alias("a")
+		               ->leftJoin("qrd_info b","a.th_qrdNo=b.sequenceNo or a.th_qrdNo=b.cxCode")
+		               ->leftJoin('cgd_info c', 'c.sequenceNo=b.cgdNo and c.is_del=0')
+		               ->where([['b.companyNo',"=",$companyNo]])
+		               ->whereDay("a.createtime",$date)->sum(Db::raw('a.th_num*ifnull(c.goodPrice,0)'));
+		return ["cgd_total"=>$day_total,"th_cgd"=>$day_thtotal];
+    }
 }

+ 25 - 2
app/command/stat.php

@@ -29,15 +29,19 @@ class stat extends Command
 		$company= Db::connect("mysql_sys")->name("business")->where(["companyNo"=>$companyNo])->column
 		("company","companyNo");
 		foreach ($depart as $itmeid=>$depart_name){
-			$ist=Db::name("depart_everyday")->where(["depart_id"=>$itmeid,'companyNo'=>$companyNo,"day_time"=>$date])
-			                                ->findOrEmpty();
+			$ist=Db::name("depart_everyday")
+			->where(["depart_id"=>$itmeid,'companyNo'=>$companyNo,"day_time"=>$date])
+			->findOrEmpty();
 			$uidArr =getUidByDepartId($itmeid);
 			$sale=$this->GetData($uidArr,$companyNo,$date);
+			$cgd=$this->GetCgd($uidArr,$companyNo,$date);
 			$zy=$this->GetData($uidArr,$companyNo,$date,1);
 			$channel=$this->GetData($uidArr,$companyNo,$date,2);
 			if($ist){
 				$ist['sale_total']=$sale['sale_total']??0;
 				$ist['th_total']=$sale['th_total']??0;
+				$ist['cgd_total']=$cgd['cgd_total']??0;
+				$ist['cgd_th_total']=$cgd['th_cgd']??0;
 				$ist['zy_sale_total']=$zy['sale_total']-$zy['th_total'];
 				$ist['channel_sale_total']=$channel['sale_total']-$channel['th_total'];
 			}else{
@@ -47,6 +51,8 @@ class stat extends Command
 					"day_time"=>date("Y-m-d"),
 					"sale_total"=>$sale['sale_total']??0,
 					"th_total"=>$sale['th_total']??0,
+					"cgd_total"=>$cgd['cgd_total']??0,
+					"cgd_th_total"=>$cgd['th_cgd']??0,
 					"zy_sale_total"=>$zy['sale_total']-$zy['th_total'],
 					"channel_sale_total"=>$channel['sale_total']-$channel['th_total'],
 					"companyNo"=>$companyNo,
@@ -83,4 +89,21 @@ class stat extends Command
 		               ->whereDay("a.createtime",$date)->sum(Db::raw('a.th_num*b.goodPrice'));
 		return ["sale_total"=>$day_total,"th_total"=>$day_thtotal];
 	}
+
+	 public function GetCgd($uid,$companyNo,$date){
+			$where=[];
+			$day_total =Db::name("qrd_info")->alias("a")
+			->leftJoin('cgd_info b', 'b.sequenceNo=a.cgdNo and b.is_del=0')
+			->where([["a.ownerid","in",$uid],["a.is_del","=",0],['a.companyNo',"=",$companyNo]])
+		    ->whereDay("a.createdTime",$date)
+		    ->where($where)
+		    ->sum(Db::raw("(ifnull(b.totalPrice,if(a.total_origin_price=0,a.total_plan_price,a.total_origin_price))+ifnull(b.th_fee,0))"));
+		$day_thtotal=Db::name("th_source")->alias("a")
+		               ->leftJoin("qrd_info b","a.th_qrdNo=b.sequenceNo or a.th_qrdNo=b.cxCode")
+		               ->leftJoin('cgd_info c', 'c.sequenceNo=b.cgdNo and c.is_del=0')
+		               ->where([["b.ownerid","in",$uid],['b.companyNo',"=",$companyNo]])
+		               ->where($where)
+		               ->whereDay("a.createtime",$date)->sum(Db::raw('a.th_num*ifnull(c.goodPrice,0)'));
+		return ["cgd_total"=>$day_total,"th_cgd"=>$day_thtotal];
+	 }
 }

+ 1 - 1
extend/.gitignore

@@ -1,2 +1,2 @@
-
+*
 !.gitignore