wugg 2 years ago
parent
commit
b7c722206a
3 changed files with 132 additions and 49 deletions
  1. 43 17
      app/admin/controller/Export.php
  2. 25 10
      app/admin/controller/User.php
  3. 64 22
      app/command/Report.php

+ 43 - 17
app/admin/controller/Export.php

@@ -96,24 +96,50 @@ class Export extends BaseController
         $open_type = [1 => '金税开票', 2 => '金税线下', 3 => '纯线下'];//开票方式
         $inv_type = config('invoiceType.invoiceName');//开票种类(发票类型)
 
-        $list = Db::name('invoice_pool')
-            ->alias('a')
-            ->field('a.inv_out 卖方公司编码,a.inv_company 卖方公司名称,a.invNo 申请编号,f.department 申请部门,a.apply_name 申请人,b.buyer_title 发票买方公司名称,concat(b.buyer_code," ") 发票买方企业纳税识别号,b.buyer_addr 发票买方企业地址,b.buyer_mobile 发票买方企业联系方式,b.buyer_bank 发票买方企业收款银行,concat(b.buyer_bankNo," ") 发票买方企业财务账户,d.orderCode 公司订单号,b.buyer_title 订单企业客户,d.goodName 订单商品名,concat(g.inv_cat_code," ") 税收分类编码,g.inv_cat_name 税收分类名称,d.goodName 发票明细商品名称,CONCAT(d.catName,"*",d.goodName) 发票货物或应税劳务、服务名称,d.unitName 单位,d.goodNum 数量,d.goodPrice 单价,round(d.tax/100,2) 税率,d.totalPrice 总价,a.inv_type 开票种类,a.open_type 开票方式,a.remark 申请备注,c.remark 发票备注')
-            ->leftJoin('invoice_pool_info b', 'a.invNo=b.invNo')
-            ->leftJoin('invoice_ticket c', 'a.invNo=c.invNo AND c.type=0 AND c.status=1')
-            ->leftJoin('invoice_good d', 'd.invNo=a.invNo')
-            ->leftJoin('assoc e', 'e.viceCode=d.invNo AND e.orderCode=d.orderCode AND e.is_del=0')
-            ->leftJoin('qrd_info f', 'f.sequenceNo=e.orderCode')
-            ->leftJoin('good g', 'g.spuCode=d.goodNo')
-            ->withAttr('开票方式', function ($val) use ($open_type) {
-                return $open_type[$val] ?? '';
-            })->withAttr('开票种类', function ($val) use ($inv_type) {
-                return $inv_type[$val] ?? '';
-            })
-            ->where($where)
-            ->order('a.addtime desc')
-           ->cursor();
+       $list = Db::name('invoice_pool')
+		          ->alias('a')
+		          ->field('a.inv_out 卖方公司编码,
+		          a.inv_company 卖方公司名称,
+		          a.invNo 申请编号,
+		          f.department 申请部门,
+		          a.apply_name 申请人,
+		          b.buyer_title 发票买方公司名称,
+		          concat(b.buyer_code," ") 发票买方企业纳税识别号,
+		          b.buyer_addr 发票买方企业地址,
+		          b.buyer_mobile 发票买方企业联系方式,
+		          b.buyer_bank 发票买方企业收款银行,
+		          concat(b.buyer_bankNo," ") 发票买方企业财务账户,
+		          d.orderCode 公司订单号,
+		          b.buyer_title 订单企业客户,
+		          d.goodName 订单商品名,
+		          concat(g.inv_cat_code," ") 税收分类编码,
+		          g.inv_cat_name 税收分类名称,
+		          d.goodName 发票明细商品名称,
+		          CONCAT(d.catName,"*",d.goodName) 发票货物或应税劳务、服务名称,
+		          d.unitName 单位,
+		          d.goodNum 数量,
+		          d.goodPrice 单价,
+		          d.tax 税率,
+		          d.totalPrice 总价,
+		          a.inv_type 开票种类,
+		          a.open_type 开票方式,
+		          a.remark 申请备注,
+		          c.remark 发票备注')
+		          ->leftJoin('invoice_pool_info b', 'a.invNo=b.invNo')
+		          ->leftJoin('invoice_ticket c', 'a.invNo=c.invNo AND c.type=0 AND c.status=1')
+		          ->leftJoin('invoice_good d', 'd.invNo=a.invNo')
+		          ->leftJoin('assoc e', 'e.viceCode=d.invNo AND e.orderCode=d.orderCode AND e.is_del=0')
+		          ->leftJoin('qrd_info f', 'f.sequenceNo=e.orderCode')
+		          ->leftJoin('good g', 'g.spuCode=d.goodNo')
+		          ->where($where)
+		          ->order('a.addtime desc')
+		          ->cursor();
         foreach ($list as $value){
+        	$value["开票方式"] = $open_type[$value["开票方式"]] ?? '';
+			$value["开票种类"] = $inv_type[$value["开票种类"]] ?? '';
+			$value["付款银行单位账号"] .=' ';
+	        $value["认领企业"] =Db::name("customer_info")->where(["companyNo"=>$value["认领企业"]])->value("companyName","");
+
         	yield $value;
         }
     }

+ 25 - 10
app/admin/controller/User.php

@@ -37,26 +37,41 @@ class User extends BaseController{
         	if(!isset($saev['code'])||$saev['code']!=0){
 					throw new Exception($saev['message']);
         	}
+
 			if(!empty($post['companyArr'])){
+				$CompArr=[];
 				$is_delArr= array_column($post['companyArr'],"is_del");
 				foreach ($post['companyArr'] as &$item){
 					$company =Db::name("supplier_info")->where(["code"=>$item['companyCode']])->find();
 					$item['company_type'] = $company["type"]==3?2:1;
 					$res = Db::name("user_role")->where(["uid"=>$post['id'],"is_del"=>0,"companyNo"=>$item['companyCode']])->findOrEmpty();
 					if(!empty($res)){
-					if($item['is_del']==1){
-						if($item['is_main']==1 && in_array(0,$is_delArr)) throw new Exception("默认企业不可删除");
-						$re = Db::name("user_role")->where(["uid"=>$post['id'],"is_del"=>0,"companyNo"=>$item['companyCode']])
-						->update(["is_del"=>1,"is_main"=>0,"updatetime"=>date("Y-m-d H:i:s")]);
-						}else{
+						if($item['is_del']!=$res['is_del'] || $item['is_main']==$res['is_main']) $CompArr[]=$item;
+						if($item['is_del']==1){
+							if($item['is_main']==1 && in_array(0,$is_delArr)) throw new Exception("默认企业不可删除");
 							$re = Db::name("user_role")->where(["uid"=>$post['id'],"is_del"=>0,"companyNo"=>$item['companyCode']])
-							->update(["nickname"=>$post['nickname'],"is_main"=>$item['is_main'],"updatetime"=>date("Y-m-d H:i:s")]);
+							->update(["is_del"=>1,"is_main"=>0,"updatetime"=>date("Y-m-d H:i:s")]);
+							}else{
+							$re = Db::name("user_role")->where(["uid"=>$post['id'],"is_del"=>0,"companyNo"=>$item['companyCode']])
+								->update(["nickname"=>$post['nickname'],"is_main"=>$item['is_main'],"updatetime"=>date("Y-m-d H:i:s")]);
+							}
+							if($re==false)throw new Exception("关联企业保存失败");
+						}else{
+						$CompArr[]=$item;
+							$data=[
+								"uid"=>$post['id'],
+								"nickname"=>$post['nickname'],
+								"roleid"=>0,
+								"companyNo"=>$item['companyCode'],
+								"company_type"=>$item['company_type'],
+								"status"=>1,
+								"is_main"=>$item['is_main']
+								];
+							$instr=Db::name("user_role")->insert($data);
+							if($instr==false) throw new Exception("关联企业保存失败");
 						}
-						if($re==false)throw new Exception("关联企业保存失败");
-					}
-
 				}
-				$companyinfo = ["id"=>$post['id'],"company"=>$post['companyArr'],"token"=>$post['token']];
+				$companyinfo = ["id"=>$post['id'],"company"=>$CompArr,"token"=>$post['token']];
 				$companyset =setUserCompany($companyinfo);
 				if(!isset($companyset['code'])||$companyset['code']!=0){
 					throw new Exception($companyset['message']);

+ 64 - 22
app/command/Report.php

@@ -157,22 +157,45 @@ class Report extends Command
 
 		$list = Db::name('invoice_pool')
 		          ->alias('a')
-		          ->field('a.inv_out 卖方公司编码,a.inv_company 卖方公司名称,a.invNo 申请编号,f.department 申请部门,a.apply_name 申请人,b.buyer_title 发票买方公司名称,concat(b.buyer_code," ") 发票买方企业纳税识别号,b.buyer_addr 发票买方企业地址,b.buyer_mobile 发票买方企业联系方式,b.buyer_bank 发票买方企业收款银行,concat(b.buyer_bankNo," ") 发票买方企业财务账户,d.orderCode 公司订单号,b.buyer_title 订单企业客户,d.goodName 订单商品名,concat(g.inv_cat_code," ") 税收分类编码,g.inv_cat_name 税收分类名称,d.goodName 发票明细商品名称,CONCAT(d.catName,"*",d.goodName) 发票货物或应税劳务、服务名称,d.unitName 单位,d.goodNum 数量,d.goodPrice 单价,round(d.tax/100,2) 税率,d.totalPrice 总价,a.inv_type 开票种类,a.open_type 开票方式,a.remark 申请备注,c.remark 发票备注')
+		          ->field('a.inv_out 卖方公司编码,
+		          a.inv_company 卖方公司名称,
+		          a.invNo 申请编号,
+		          f.department 申请部门,
+		          a.apply_name 申请人,
+		          b.buyer_title 发票买方公司名称,
+		          concat(b.buyer_code," ") 发票买方企业纳税识别号,
+		          b.buyer_addr 发票买方企业地址,
+		          b.buyer_mobile 发票买方企业联系方式,
+		          b.buyer_bank 发票买方企业收款银行,
+		          concat(b.buyer_bankNo," ") 发票买方企业财务账户,
+		          d.orderCode 公司订单号,
+		          b.buyer_title 订单企业客户,
+		          d.goodName 订单商品名,
+		          concat(g.inv_cat_code," ") 税收分类编码,
+		          g.inv_cat_name 税收分类名称,
+		          d.goodName 发票明细商品名称,
+		          CONCAT(d.catName,"*",d.goodName) 发票货物或应税劳务、服务名称,
+		          d.unitName 单位,
+		          d.goodNum 数量,
+		          d.goodPrice 单价,
+		          d.tax 税率,
+		          d.totalPrice 总价,
+		          a.inv_type 开票种类,
+		          a.open_type 开票方式,
+		          a.remark 申请备注,
+		          c.remark 发票备注')
 		          ->leftJoin('invoice_pool_info b', 'a.invNo=b.invNo')
 		          ->leftJoin('invoice_ticket c', 'a.invNo=c.invNo AND c.type=0 AND c.status=1')
 		          ->leftJoin('invoice_good d', 'd.invNo=a.invNo')
 		          ->leftJoin('assoc e', 'e.viceCode=d.invNo AND e.orderCode=d.orderCode AND e.is_del=0')
 		          ->leftJoin('qrd_info f', 'f.sequenceNo=e.orderCode')
 		          ->leftJoin('good g', 'g.spuCode=d.goodNo')
-		          ->withAttr('开票方式', function ($val) use ($open_type) {
-			          return $open_type[$val] ?? '';
-		          })->withAttr('开票种类', function ($val) use ($inv_type) {
-				return $inv_type[$val] ?? '';
-			})
 		          ->where($where)
 		          ->order('a.addtime desc')
 		          ->cursor();
 		foreach ($list as $value){
+			$value["开票方式"] = $open_type[$value["开票方式"]] ?? '';
+			$value["开票种类"] = $inv_type[$value["开票种类"]] ?? '';
 			yield $value;
 		}
 	}
@@ -287,19 +310,39 @@ class Report extends Command
 
 		$list = Db::name('trade')
 		          ->alias('a')
-		          ->field('a.companyNo 收款方公司编码,a.trade_in 收款单位名称,a.trade_account 付款银行单位账号,a.trade_out 付款银行单位名称,a.trade_remark 付款备注,a.trade_time 交易时间,a.tradNo 资金编号,a.status 状态,a.total_fee 收入金额,a.balance 未认领金额,a.used_fee 已认领金额,b.logNo 资金认领编号,a.customerNo 认领企业,c.orderCode 订单编号,d.poCode 平台编号,d.goodName 产品名称,d.ownerName 资金创建人,c.apply_name 认领创建人,b.status 认领审批状态,b.remark 驳回原因')
+		          ->field('
+		          a.companyNo 收款方公司编码,
+		          a.trade_in 收款单位名称,
+		          a.trade_account 付款银行单位账号,
+		          a.trade_out 付款银行单位名称,
+		          a.trade_used 付款备注,
+		          a.trade_time 交易时间,
+		          a.tradNo 资金编号,
+		          a.status 状态,
+		          a.total_fee 收入金额,
+		          a.balance 未认领金额,
+		          a.used_fee 已认领金额,
+		          b.logNo 资金认领编号,
+		          a.customerNo 认领企业,
+		          c.orderCode 订单编号,
+		          d.poCode 平台编号,
+		          d.goodName 产品名称,
+		          d.ownerName 资金创建人,
+		          c.apply_name 认领创建人,
+		          b.status 认领审批状态,
+		          b.remark 驳回原因')
 		          ->leftJoin('trade_pool b', 'b.tradNo=a.tradNo')
 		          ->leftJoin('assoc c', 'c.viceCode=b.logNo and c.type=2 and c.status<>3')
 		          ->leftJoin('qrd_info d', 'd.sequenceNo=c.orderCode')
-		          ->withAttr('状态', function ($val) use ($status) {
-			          return $status[$val] ?? '';
-		          })->withAttr('认领审批状态', function ($val) use ($b_status) {
-				return $b_status[$val] ?? '';
-			})
 		          ->where($where)
 		          ->order('a.trade_time desc')
 		          ->cursor();
 		foreach ($list as $value){
+			$value['状态'] =  $status[$value['状态']] ?? '';
+			$value['认领审批状态'] =  $b_status[$value['认领审批状态']] ?? '';
+			$value["付款银行单位账号"] .=' ';
+	        $value["认领企业"] =Db::name("customer_info")->where(["companyNo"=>$value["认领企业"]])->value("companyName","");
+
 			yield $value;
 		}
 	}
@@ -505,11 +548,11 @@ class Report extends Command
             b.seller_title 销售方抬头,
             e.department 业务部门,
             e.ownerName 业务人员,
-           ifnull((SELECT goodNum from cfp_invoice_good w where w.invNo =a.invNo and w.orderCode=e.sequenceNo),"") 本次开票数量,
-            d.cancel_fee 本次开票金额,
+            m.goodNum 本次开票数量,
+            m.totalPrice 本次开票金额,
             c.open_date 本次开票时间,
             c.inv_number 发票号,
-            round(e.tax/100,2) 开票税点,
+            m.tax 开票税点,
             a.status 开票状态,
             e.customerName 客户名称,
             e.fundCode 财务核算码,
@@ -543,9 +586,10 @@ class Report extends Command
             ')
 		          ->leftJoin('invoice_pool_info b', 'b.invNo=a.invNo')
 		          ->leftJoin('invoice_ticket c', 'c.invNo=a.invNo and c.type=0 and c.status=1')
-		          ->leftJoin('assoc d', 'd.viceCode=a.invNo and d.type=1')
-		          ->leftJoin('qrd_info e', 'e.sequenceNo=d.orderCode')
-		          ->leftJoin('cgd_info f', 'f.qrdCode=d.orderCode')
+		          ->leftJoin("invoice_good m","m.invNo=a,invNo and m.invtype=0 and m.is_del=0")
+//		          ->leftJoin('assoc d', 'd.viceCode=a.invNo and d.type=1')
+		          ->leftJoin('qrd_info e', 'e.sequenceNo=m.orderCode')
+		          ->leftJoin('cgd_info f', 'e.cgdNo=d.orderCode')
 		          ->leftJoin('invoice_return g', 'g.invNo=a.invNo and g.status=2')
 		          ->where($where)
 		          ->order(['a.id' => 'desc'])
@@ -702,8 +746,6 @@ class Report extends Command
 					'本次回票税额' => $item['tax'] ?? '',
 					'回票税率' => $item['tax_rate'] ?? '',
 				]);
-				yield $list;
-
 			}
 		}
 //		return $list;
@@ -853,7 +895,7 @@ class Report extends Command
 	b.qrdSource 销售来源,
 	b.pay_source 支付渠道,
 	'' 活动类型,
-	a.th_qrdNo 订单编号,
+	b.sequenceNo 订单编号,
 	b.cxCode 销售订单编号,
 	c.bkCode 备库编号,
 	b.cgdNo 采购单号,
@@ -881,7 +923,7 @@ class Report extends Command
 	c.costPrice 工艺费,
 	c.deliveryPrice 物流费,
 	c.goodPrice 采购单价,
-	a.th_num * ifnull(c.goodPrice,0) 退货采购货款,
+	round(a.th_num * ifnull(c.goodPrice,b.total_origin_price/b.goodNum),2) 退货采购货款,
 	c.tax 采购税点,
 	c.supplierName 供应商名称,
 	f(b.isStock=1,'是','否') 是否库存,