Jelajahi Sumber

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

wugg 5 bulan lalu
induk
melakukan
0ab8c5beab

+ 23 - 12
app/admin/command/CheckInvoice.php

@@ -3,11 +3,19 @@ declare (strict_types = 1);
 
 namespace app\admin\command;
 
-use app\admin\model\CompanyInfo;use app\admin\model\InvoiceInfo;use app\admin\model\Pay;use app\admin\model\PayInvoice;use app\admin\model\SupplierInfo;use think\console\Command;
+use app\admin\model\CompanyInfo;
+use app\admin\model\InvoiceInfo;
+use app\admin\model\Pay;
+use app\admin\model\PayInvoice;
+use app\admin\model\SupplierInfo;
+use think\console\Command;
 use think\console\Input;
 use think\console\input\Argument;
 use think\console\input\Option;
-use think\console\Output;use think\facade\Cache;use think\facade\Config;use think\facade\Db;
+use think\console\Output;
+use think\facade\Cache;
+use think\facade\Config;
+use think\facade\Db;
 
 class CheckInvoice extends Command
 {
@@ -23,7 +31,7 @@ class CheckInvoice extends Command
         $this->setName('checkinvoice')
             ->setDescription('the checkinvoice command');
     }
-
+    // 执行
     protected function execute(Input $input, Output $output)
     {
         $this->datetime = date("Y-m-d");
@@ -40,23 +48,23 @@ class CheckInvoice extends Command
             $list->next();
         }
         Cache::set('checkInvoiceP',0);
-
     }
-
+    // 获取待验票列表
     protected  function getInvoice(){
         $list = PayInvoice::where([["status","in",[1,9]],["open_time","<",$this->datetime],["updatetime","<=",date("Y-m-d H:i:s")],['is_del',"=",0]])->cursor();
         foreach ($list as $item){
             yield $item;
         }
     }
-
+    // 验票
     protected function checkTicket($invoice){
         $pay = Pay::where(["payNo"=>$invoice['payNo'],"is_del"=>0,"status"=>2])->findOrEmpty();
         if(!$pay->isEmpty()){
-           if($pay->winv_fee<=0) return  PayInvoice::where(["id"=>$invoice['id']])->update(["status"=>8,"check_remark"=>"待开票金额不足","updatetime"=>date("Y-m-d H:i:s")]);
+           if($pay->winv_fee <= 0) return  PayInvoice::where(["id"=>$invoice['id']])->update(["status"=>8,"check_remark"=>"待开票金额不足","updatetime"=>date("Y-m-d H:i:s")]);
            $this->taxCheck($invoice);
         }
     }
+    // 验票
     protected function taxCheck($invoice){
         $invoiceConf=Config::get('invoice');
         $iinvoicenfo = $invoiceConf['91110113MA004JNJ28'];
@@ -73,12 +81,12 @@ class CheckInvoice extends Command
         try{
             if(isset($result['code']) && $result['code']=='0000' && isset($result['data']) && count($result['data'])>0){
                 if($result['data']['cyjg']=='0001'){
-                    $data= $result['data'];
+                     $data= $result['data'];
                      $this->changeFiled($data,$invoice);
                 }elseif (in_array($result['data']['cyjg'],['0002','1014'])){
                     $this->lastUpdate($invoice['id']);
                 }else $this->faild($invoice['id'],$result['data']['cyjgxx']);
-            }else $this->faild($invoice['id']);
+            }else $this->faild($invoice['id'],"验票失败");
         }catch (\Exception $e){
             Db::rollback();
            echo $e->getMessage();
@@ -123,10 +131,11 @@ class CheckInvoice extends Command
         $inv_fee=($pay->winv_fee <= $save['total'])?$pay->winv_fee:$save['total'];
         $pay->winv_fee = $pay->winv_fee - $inv_fee;
         $pay->inv_fee = $pay->inv_fee+$inv_fee;
-        $pay->save();
+       $up=$pay->save();
+       if($up==false) throw new \Exception("对账单更新失败");
         $buyerCode=CompanyInfo::getRegisterCode($pay->companyNo);
         $sellerCode=SupplierInfo::getRegisterCode($pay->supplierNo);
-        PayInvoice::where(["hpNo"=>$invoice['hpNo'],"status"=>1])->update([
+       $sa= PayInvoice::where(["hpNo"=>$invoice['hpNo'],"status"=>[1,9]])->update([
             "status"=>$pay->pay_type==1?11:2,
             "invStatus"=>$this->taxStatus[$data['zfbz']]??0,
             "check_remark"=>'',
@@ -137,7 +146,9 @@ class CheckInvoice extends Command
             "inv_subtotal_amount"=>$save['subtotal_amount'],
             "updatetime"=>date("Y-m-d H:i:s")
         ]);
-        InvoiceInfo::create($save);
+        if($sa==false) throw new \Exception("{$invoice['hpNo']}验票数据更新失败");
+        $cres=InvoiceInfo::create($save);
+        if($cres==false) throw new \Exception("{$invoice['hpNo']}验票数据写入失败");
     }
 
     protected function checkItem($detail){

+ 4 - 3
app/admin/command/CheckTicket.php

@@ -79,7 +79,7 @@ class CheckTicket extends Command
             }elseif (in_array($result['data']['cyjg'],['0002','1014'])){
                 $this->lastUpdate($info['invNo']);
             }else $this->faild($invoice['id'],$result['data']['cyjgxx']);
-        }else $this->faild($info['invNo']);
+        }else $this->faild($info['invNo'],'验票失败');
        }catch (\Exception $e){
             Db::rollback();
             echo $e->getMessage()."\r\n";
@@ -110,8 +110,9 @@ class CheckTicket extends Command
             'updatetime'=>$this->dateTime,
             ]);
         }
-        InvoicePool::where(['invNo'=>$info['invNo']])->save(["status"=>4,"updatetime"=>$this->dateTime]);
-         \app\admin\model\Assoc::subOrder($info['invNo']);
+        $info=InvoicePool::where(['invNo'=>$info['invNo']])->save(["status"=>4,"updatetime"=>$this->dateTime]);
+        if($info==false) throw new \Exception("更新发票状态失败");
+        \app\admin\model\Assoc::subOrder($info['invNo']);
           if($info->is_comon==1)event('comonOrder',['invNo'=>$info['invNo'],'type'=>'inv']);
     }
     protected function itemFiled($detail){

+ 0 - 1
app/admin/controller/ComonOrder.php

@@ -548,7 +548,6 @@ class ComonOrder extends Base
         $platform = array_column($qrdinfo,'platform_type');
         if(count(array_unique($platform))!=1){
         	$this->error('订单平台类型不一致');
-//            return error_show(1004,'订单平台类型不一致');
         }
         foreach ($param['orderArr'] as $i=>$item){
         	if($valide->check($item)==false) $this->error($valide->getError());

+ 19 - 15
app/admin/controller/Export.php

@@ -139,14 +139,15 @@ class Export extends Base
 		          if(f.cxCode="",f.sequenceNo,f.cxCode) 销售主单号,
 		          f.goodPrice 商品单价')
 		          ->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('invoice_ticket c', 'a.invNo=c.invNo AND c.type=0 AND c.status=1 and c.is_del=0')
+		          ->leftJoin('invoice_good d', 'd.invNo=a.invNo and d.is_del=0')
 		          ->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('qrd_info f', 'f.sequenceNo=e.orderCode  and f.is_del=0')
 		          ->leftJoin('good g', 'g.spuCode=d.goodNo')
 		          ->where($where)
 		          ->order('a.addtime desc')
 		          ->cursor();
+       //echo  Db::name('invoice_pool')->getLastSql();die();
         foreach ($list as $value){
         	$value["开票方式"] = $open_type[$value["开票方式"]] ?? '';
 			$value["开票种类"] = $inv_type[$value["开票种类"]] ?? '';
@@ -223,15 +224,14 @@ class Export extends Base
     public function orderPayExport()
     {
         $param = $this->request->only(['start' => '', 'end' => '','create_start' => '', 'create_end' => '', 'name' => '', 'bank' => '', 'status' => '', 'tradNo' => '', 'company' => '', 'userd_lower' => '', 'used_upper' => ''], 'post', 'trim');
-        $where = [['a.is_del', '=', 0],['b.is_del', '=', 0],['d.is_del', '=', 0],['d.is_del', '=', 0],["c.type","=",
-        2],["c.status","in",[1,2]]];
+        $where = [['a.is_del', '=', 0],['b.is_del', '=', 0],['d.is_del', '=', 0],['d.is_del', '=', 0],["c.type","=",2],["c.status","in",[1,2]]];
         if (($param['start'] != '') && ($param['end'] != '')) $where[] = ['a.trade_time', 'between', [$param['start'] . ' 00:00:00', $param['end'] . ' 23:59:59']];
         if (($param['create_start'] != '') && ($param['create_end'] != '')) $where[] = ['b.addtime', 'between', [$param['create_start'] . ' 00:00:00', $param['create_end'] . ' 23:59:59']];
         if ($param['name'] != '') $where[] = ['a.trade_out', 'like', '%' . $param['name'] . '%'];
         if ($param['bank'] != '') $where[] = ['a.trade_bank', 'like', '%' . $param['bank'] . '%'];
-        if ($param['status'] != '') $where[] = ['a.status', '=', $param['status']];
+        if ($param['status'] != '') $where[] = ['b.status', '=', $param['status']];
         if ($param['tradNo'] != '') $where[] = ['a.tradNo', 'like', '%' . $param['tradNo'] . '%'];
-        if ($param['company'] != '') $where[] = ['a.companyNo', 'like', '%' . $param['company'] . '%'];
+        if ($param['company'] != '') $where[] = ['b.companyNo', 'like', '%' . $param['company'] . '%'];
         if ($param['userd_lower'] != '') $where[] = ['a.used_fee', '>=', $param['userd_lower']];
         if ($param['used_upper'] != '') $where[] = ['a.used_fee', '<=', $param['used_upper']];
 
@@ -240,7 +240,9 @@ class Export extends Base
 
         $list = Db::name('trade')
             ->alias('a')
+            ->leftJoin("trade_lib e","a.tradNo=e.tradNo")
             ->field('a.companyNo 收款方公司编码,
+            a.pcCode 资金批次号 ,
             a.trade_in 收款单位名称,
             a.trade_account 付款银行单位账号,
             a.trade_out 付款银行单位名称,
@@ -250,12 +252,21 @@ class Export extends Base
             a.status 状态,
             a.total_fee 收入金额,
             a.balance 未认领金额,
-            b.total_fee 已认领金额,
+            a.used_fee 已认领金额,
+            b.total_fee 资金认领金额,
             b.logNo 资金认领编号,
+            d.companyNo 业务公司编号,
+            d.companyName 业务公司名称,
             b.customerNo 认领企业,
+            if(a.trade_type=0,"自营","平台") as 资金回款类型, 
+            e.palt_po  平台采购PO,
+            b.relaNo 关联资金认领编号,
+            if(b.tag_type=0,"手动创建","自动创建") as 操作类型,
+            if(d.is_comon=1,"通用订单","自营订单") as 订单业务类型,
             c.orderCode 订单编号,
             d.cxCode 销售主单号,
             d.poCode 平台编号,
+            d.goodNo  商品SKU,
             d.goodName 产品名称,
             d.ownerName 资金创建人,
             c.apply_name 认领创建人,
@@ -297,19 +308,12 @@ class Export extends Base
 
         //资金认领状态
         $status = [1 => '待审批', 2 => '审批通过', 3 => '审批驳回', 4 => '已解除认领', 5 => '已取消认领'];
-
-//        $list = [];
-
         foreach ($data as $value) {
             $value['资金认领状态'] = $status[$value['资金认领状态']] ?? '';
             $value['确认单类型'] = $this->qrdSource[$value['确认单类型']] ?? '';
             $value['商品类型'] = $this->qrdType[$value['商品类型']] ?? '';
             yield $value;
         }
-//
-//        if (empty($list)) $list[] = ['导出数据为空' => ''];
-//
-//        excelExport('回款核销明细表', array_keys($list[0]), $list);
 
     }
 

+ 15 - 6
app/admin/controller/OrderPay.php

@@ -1135,22 +1135,31 @@ class OrderPay extends Base{
 
     public function exportTrade(){
     	$param = $this->request->param(["name"=>"","bank"=>'',"start"=>'',"end"=>'',"status"=>'',"tradNo"=>'',
-    	"companyNo"=>'',"total_lower"=>'','total_upper'=>''],"post","trim");
+    	"companyNo"=>'',"total_lower"=>'','total_upper'=>'','pcCode'=>''],"post","trim");
 		$condition=[["is_del","=",0]];
 		$param['name']==""?: $condition[]=["trade_out","like","%{$param['name']}%"];
 		$param['bank']==""?: $condition[]=['trade_bank','like',"%{$param['bank']}%"];;
 		$param['start']==""?: $condition[]=['trade_time','>=',startTime($param['start'])];
 		$param['end']==""?: $condition[]=['trade_time','<=',endTime($param['end'])];
 		$param['status']===""?: $condition[]=["status","=",$param['status']];
-		$param['tradNo']==""?: $condition[]=["tradNo","like","%{$param['tradNo']}%"];
+		$param['tradNo']==""?: $condition[]=["a.tradNo","like","%{$param['tradNo']}%"];
 		$param['companyNo']==""?: $condition[]=['companyNo','=',$param['companyNo']];
 		$param['total_lower']==""?: $condition[]=['total_fee','>=',$param['total_lower']];
 		$param['total_upper']==""?: $condition[]=['total_fee','<=',$param['total_upper']];
-		$list= \app\admin\model\Trade::where($condition)
-		->field(["tradNo","companyNo","trade_in",'trade_in_account','trade_time','total_fee','trade_bank',
-		'trade_account','trade_out','trade_used',"poCode","NdCode","customerName"])
+		$param['pcCode']==""?: $condition[]=['pcCode',"like","%{$param['pcCode']}%"];
+		$list= \app\admin\model\Trade::alias("a")
+		->where($condition)
+		->leftJoin("trade_lib b","a.tradNo=b.tradNo")
+		->field(["a.tradNo","companyNo","companyName","trade_in_code","trade_in",'trade_in_account','trade_time',
+		'total_fee',"if(trade_type=0,'自营','平台') plat","if(status=1,'未认领',if(status=2,'部分认领','已认领')) status",
+		"used_fee","balance",'trade_bank','trade_account','trade_out','trade_used',"poCode","NdCode","customerName",
+		"pcCode","palt_po","skuCode","goodName","goodNum","platPrice","plat_total","tax","cat_code","cat_name","comPrice",
+		"com_total","apply_name","addtime"])
 		->select();
-		$header = ["资金编号","收款方公司编码",'收款方公司名称','收款方账户','交易时间','收入金额','交易行名','对方账号','对方户名','交易用途','PO号','Nd号',"客户名称"];
+		$header = ["资金编号","业务公司编号","业务公司名称","收款方公司编码","收款方公司名称","收款方账户","交易时间","业务公司收入总价",
+		"回款类型","状态","已认领金额","未认领金额","客户付款银行","客户付款银行账号","客户付款银行户名","交易用途","客户PO","客户DN",
+		"客户机构名称","资金批次号","平台采购PO号","泰e购SKU","平台物料名称","产品数量","平台收入单价","平台收入总价","税率","类目编号",
+		"类目名称","业务公司收入单价","业务公司收入总价","创建人","创建时间"];
 		if($list->isEmpty()){
 			$header=["暂无数据"];
 		}

+ 6 - 5
app/admin/listener/ComonQrd.php

@@ -25,11 +25,11 @@ class ComonQrd
 		if($event['type']=='repay')$this->repayComon($event);
 		if($event['type']=='inv'){
 		    $this->invComon($event);
-		    $this->InvToPay($event);
+		    //$this->InvToPay($event);
 		}
 		if($event['type']=='rinv'){
 		    $this->returnInv($event);
-		    $this->InvToPay($event,false);
+		    //$this->InvToPay($event,false);
 		}
 		if($event['type']=='check')$this->checkPay($event);
     }
@@ -37,13 +37,13 @@ class ComonQrd
     public function InvToPay($data,$bool=True){
                 $invinfo =InvoicePool::with(["poolInfo"])->where(['invNo'=>$data['invNo']])->findOrEmpty();
             	if($invinfo->isEmpty())return;
-            	if($invinfo->buyer_code !=='911100006337468570')return;
+            	if($invinfo->buyer_code !='911100006337468570')return;
             	if($bool){
             		if($invinfo->status!=4 ||$invinfo->is_comon!=1 )return;
             		$assoc_status=2;
             	}else{
             		$assoc_status=3;
-            		if(in_array($invinfo->status,[5,6,7,8,9])||$invinfo->is_comon!=1 )return;
+            		if(!in_array($invinfo->status,[5,6,7,8,9])||$invinfo->is_comon!=1 )return;
             	}
 
             	$assoc = Assoc::where(["viceCode"=>$data['invNo'],"status"=>$assoc_status,"is_del"=>0,"type"=>1])->select();
@@ -90,7 +90,8 @@ class ComonQrd
                         $tag_fee = ($item->pay_tag_fee>$payArr[$item->sequenceNo])?$payArr[$item->sequenceNo]:$item->pay_tag_fee;
                         $qrd['pay_tag_fee']=$item->pay_tag_fee-$tag_fee;
                         $qrd['wpay_fee'] = $item->wpay_fee+$tag_fee;
-                        $qrd['pay_status'] = ($qrd['wpay_fee']==0  &&$item->pay_fee==0) ? 3:($qrd['apay_fee']==0?2:1);
+                        $qrd['pay_status'] = ($qrd['apay_fee']==0  &&$item->pay_fee==0) ? 1:2;
+                        if($qrd['pay_tag_fee']==0) $qrd['pay_tag']=0;
 		            }
 		            $qrdSave[]=$qrd;
 		            $tag[]=$tag_temp;