wugg 3 bulan lalu
induk
melakukan
9ace744bc0

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

@@ -27,6 +27,7 @@ class CheckTicket extends Command
     {
         $this->dateTime = date("Y-m-d H:i:s");
         if(Cache::get('checkTicketP')==1 || date("H")<12)return;
+         Cache::set('checkTicketP',1,1800);
         $this->output=$output;
         $ticket = $this->getTicket();
         while ($ticket->valid()) {
@@ -78,7 +79,7 @@ class CheckTicket extends Command
                 $this->changeFiled($data,$info);
             }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'],$result['data']['cyjgxx']);
         }else $this->faild($info['invNo'],'验票失败');
        }catch (\Exception $e){
             Db::rollback();
@@ -110,10 +111,10 @@ class CheckTicket extends Command
             'updatetime'=>$this->dateTime,
             ]);
         }
-        $info=InvoicePool::where(['invNo'=>$info['invNo']])->save(["status"=>4,"updatetime"=>$this->dateTime]);
-        if($info==false) throw new \Exception("更新发票状态失败");
+        $wq=InvoicePool::where(['invNo'=>$info['invNo']])->save(["status"=>4,"updatetime"=>$this->dateTime]);
+        if($wq==false) throw new \Exception("更新发票状态失败");
         \app\admin\model\Assoc::subOrder($info['invNo']);
-          if($info->is_comon==1)event('comonOrder',['invNo'=>$info['invNo'],'type'=>'inv']);
+          if($info['is_comon']==1)event('comonOrder',['invNo'=>$info['invNo'],'type'=>'inv']);
     }
     protected function itemFiled($detail){
 

+ 53 - 44
app/admin/controller/Export.php

@@ -223,9 +223,11 @@ 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]]];
-        if (($param['start'] != '') && ($param['end'] != '')) $where[] = ['a.trade_time', 'between', [$param['start'] . ' 00:00:00', $param['end'] . ' 23:59:59']];
+        $param = $this->request->only(['start' => '', 'end' => '','create_start' => '', 'create_end' => '', 'name' => '',
+        'bank' => '', 'status' => '', 'tradNo' => '', 'company' => '', 'userd_lower' => '', 'used_upper' => '',"logNo"=>"",
+        "orderCode"=>"","cxCode"=>"","pcCode"=>"","platform_type"=>"","relaNo"=>""], 'post', 'trim');
+        $where = [["b.is_del","=",0]];
+        if (($param['start'] != '') && ($param['end'] != '')) $where[] = ['b.addtime', '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'] . '%'];
@@ -234,55 +236,62 @@ class Export extends Base
         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']];
+        if($param["logNo"]!="") $where[] = ['b.logNo', 'like', '%'.$param['logNo'].'%'];
+        if($param["orderCode"]!="") $where[] = ['c.orderCode', 'like', '%'.$param['orderCode'].'%'];
+        if($param["cxCode"]!="") $where[] = ['d.cxCode', 'like', '%'.$param['cxCode'].'%'];
+        if($param["pcCode"]!="") $where[] = ['a.pcCode', 'like', '%'.$param['pcCode'].'%'];
+        if($param["platform_type"]!="") $where[] = ['d.platform_type', '=', $param['platform_type']];
 
         $status = [1 => '未认领', 2 => '部分认领', 3 => '全部认领'];//状态
         $b_status = [1 => '待审批', 2 => '审批通过', 3 => '审批驳回', 4 => '退款', 5 => '解除认领'];//认领审批状态
-
-        $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 付款银行单位名称,
-            a.trade_used 付款备注,
-            a.trade_time 交易时间,
-            a.tradNo 资金编号,
-            a.status 状态,
-            a.total_fee 收入金额,
-            a.balance 未认领金额,
-            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 认领创建人,
-            b.status 认领审批状态,
-            b.remark 驳回原因')
-            ->leftJoin('trade_pool b', 'b.tradNo=a.tradNo')
-            ->leftJoin('assoc c', 'c.viceCode=b.logNo')
-            ->leftJoin('qrd_info d', 'd.sequenceNo=c.orderCode')
-            ->where($where)
-            ->order('a.trade_time desc')
-           ->cursor();
+        $list = Db::name('trade')->alias('a')
+                ->leftJoin('trade_pool b', 'a.tradNo=b.tradNo and a.is_del=0')
+                ->leftjoin('trade_lib e', 'b.tradNo=e.tradNo')
+                ->leftJoin('assoc c', 'b.logNo=c.viceCode AND c.type = 2 and c.is_del=0')
+                ->leftJoin('qrd_info d', 'c.orderCode=d.sequenceNo and d.is_del=0')
+                ->field('a.companyNo 收款方公司编码,
+                       a.pcCode 资金批次号 ,
+                       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.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.platform_type 平台类型,
+                       d.platName 平台名称,
+                       d.poCode 平台编号,
+                       d.goodNo  商品SKU,
+                       d.goodName 产品名称,
+                       d.ownerName 资金创建人,
+                       c.apply_name 认领创建人,
+                       b.status 认领审批状态,
+                       b.remark 驳回原因')
+                ->where($where)
+                ->order('b.id desc')
+                ->cursor();
+        $platType= [1=>"toB",2=>"toC"];
         foreach ($list as $value){
             $value["付款银行单位账号"] .=' ';
             $value["认领企业"] =Db::name("customer_info")->where(["companyNo"=>$value["认领企业"]])->value("companyName","");
             $value['状态'] = $status[$value['状态']] ?? '';
             $value['认领审批状态'] = $b_status[$value['认领审批状态']] ?? '';
+            $value['平台类型'] = $platType[$value['平台类型']] ?? '';
         	yield $value;
         }
     }

+ 2 - 1
app/admin/listener/ComonQrd.php

@@ -29,7 +29,7 @@ class ComonQrd
 		}
 		if($event['type']=='rinv'){
 		    $this->returnInv($event);
-		    //$this->InvToPay($event,false);
+		    $this->InvToPay($event,false);
 		}
 		if($event['type']=='check')$this->checkPay($event);
     }
@@ -86,6 +86,7 @@ class ComonQrd
 		            		$qrd['pay_status'] = ($qrd['wpay_fee']==0 &&$item->pay_fee==0) ? 3:($qrd['apay_fee']==0?1:2);
 		            	}
 		            }else{
+		                if($item->pay_tag_fee==0) continue;
                         $tag_temp['tag_fee']= $payArr[$item->sequenceNo];
                         $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;

+ 24 - 15
app/admin/model/Assoc.php

@@ -17,8 +17,9 @@ class Assoc extends Model
     {
         $list = self::where(["viceCode"=>$invNo,"status"=>1,"type"=>"1"])->field("id,orderCode,cancel_fee")->select();
         if(!$list->isEmpty()){
-            $order= QrdInfo::whereIn("sequenceNo",$list->column("orderCode"))
-            ->column("id,sequenceNo,winv_fee,inv_fee,ainv_fee,invtime,inv_status,status,pay_status","sequenceNo");
+            try{
+                 $order= QrdInfo::whereIn('sequenceNo',$list->column('orderCode'))
+            ->column('id,sequenceNo,winv_fee,inv_fee,ainv_fee,invtime,inv_status,status,pay_status','sequenceNo');
             foreach ($list as $k=>$v){
                 if(!isset($order[$v['orderCode']])) throw new \Exception("订单{$v['orderCode']}未找到数据");
                 if($v['cancel_fee']>0){
@@ -27,13 +28,17 @@ class Assoc extends Model
                     }
                     $order[$v['orderCode']]['inv_fee']-=$v['cancel_fee'];
                     $order[$v['orderCode']]['ainv_fee']+=$v['cancel_fee'];
-                    $order[$v['orderCode']]['invtime']=date("Y-m-d H:i:s");
+                    $order[$v['orderCode']]['invtime']=date('Y-m-d H:i:s');
                     $order[$v['orderCode']]['inv_status']= $order[$v['orderCode']]['winv_fee']==0 &&$order[$v['orderCode']]['inv_fee']==0 ? 3 : 2;
                     $order[$v['orderCode']]['status']= $order[$v['orderCode']]['pay_status']==1 &&$order[$v['orderCode']]['inv_status']==1 ? 0 : 1;
                 }
             }
            (new QrdInfo())->saveAll($order);
-            self::where(["id"=>$list->column('id')])->save(['status'=>2,'assoc_time'=>date("Y-m-d H:i:s")]);
+            self::where(['id'=>$list->column('id')])->save(['status'=>2,'assoc_time'=>date('Y-m-d H:i:s')]);
+            }catch (\Exception $exception){
+                throw new \Exception($exception->getMessage());
+            }
+
         }
     }
     public static function addOrder($invNo)
@@ -86,17 +91,21 @@ class Assoc extends Model
 
     public static function CheckQrd($orderCode,&$data)
     {
-        $asscoinfo =self::where(['orderCode'=>$orderCode,'status'=>[1,2],'is_del'=>0])->column
-        	                    ('viceCode','type');
-         if(isset($asscoinfo[1])){
-            $pool = InvoicePool::where('invNo',$asscoinfo[1])->findOrEmpty();
-            $temp=['type'=>'结算销售单开票申请','username'=> $pool->apply_name,'orderCode'=>$asscoinfo[1],'companyName'=>$pool->inv_company];
-            $data[]=$temp;
+        $asscoinfo =self::where(['orderCode'=>$orderCode,'status'=>[1,2],'is_del'=>0])->column('viceCode,type');
+        if(!empty($asscoinfo)){
+             foreach ($asscoinfo as $k=>$v){
+            if($v['type']==1){
+                $pool = InvoicePool::where('invNo',$v['viceCode'])->findOrEmpty();
+                $temp=['type'=>'结算销售单开票申请','username'=> $pool->apply_name,'orderCode'=>$v['viceCode'],'companyName'=>$pool->inv_company];
+                $data[]=$temp;
+            }
+             if($v['type']==2){
+                $pool = TradePool::with(['company'])->where('logNo',$v['viceCode'])->findOrEmpty();
+                $temp=['type'=>'结算销售单资金认领','username'=> $pool->apply_name,'orderCode'=>$v['viceCode'],'companyName'=>$pool->companyName];
+                 $data[]=$temp;
+              }
+            }
         }
-         if(isset($asscoinfo[2])){
-            $pool = TradePool::with(["company"])->where('logNo',$asscoinfo[2])->findOrEmpty();
-            $temp=['type'=>'结算销售单资金认领','username'=> $pool->apply_name,'orderCode'=>$asscoinfo[2],'companyName'=>$pool->companyName];
-             $data[]=$temp;
-          }
+
     }
 }

+ 17 - 19
app/admin/model/InvoiceTicket.php

@@ -3,7 +3,8 @@ declare (strict_types = 1);
 
 namespace app\admin\model;
 
-use think\facade\Log;use think\Model;
+use think\facade\Log;
+use think\Model;
 
 /**
  * @mixin \think\Model
@@ -17,28 +18,25 @@ class InvoiceTicket extends Model
       return json_encode($v,JSON_UNESCAPED_UNICODE);
     }
     public static function onAfterWrite(Model $model){
-        log::info('InvoiceInfo::OnAfterWrite'.json_encode($model->toArray()));
-        $pay = Pay::where(['payNo'=>$model->payNo])->findOrEmpty();
-        if(!$pay->isEmpty() && $pay->is_comon!=1){
-            if($model->status==1 && !empty($model->item_list)){
-                          (new  InvoiceItem)->saveAll(array_map(function ($item)use($model) {
+        Log::info('InvoiceInfo::OnAfterWrite'.json_encode($model->toArray()));
+            if($model->status==1 && !empty($model['item'])){
+                (new  InvoiceItem)->saveAll(array_map(function ($item)use($model) {
                               return [
-                                  'invoiceCode'=>$model->hpNo,
+                                  'invoiceCode'=>$model->invNo,
                                   'order_type'=>1,
-                                  'good_name'=>$item['name'],
-                                  'unit'=>$item['unit'],
-                                  'num'=>$item['quantity'],
-                                  'unit_price'=>$item['unit_price'],
-                                  'amount'=>$item['amount'],
-                                  'tax_amount'=>$item['tax'],
-                                  'tax'=>$item['tax_rate'],
-                                  'cat_code'=>$item['license_plate_number'],
+                                  'good_name'=>$item['XMMC'],
+                                  'unit'=>$item['DW'],
+                                  'num'=>$item['SPSL'],
+                                  'specinfo'=>$item['GGXH'],
+                                  'unit_price'=>$item['DJ'],
+                                  'amount'=>$item['JE'],
+                                  'tax_amount'=>$item['SE'],
+                                  'tax'=>$item['SL'],
+                                  'cat_code'=>$item['SPBM'],
                                   'total_amount'=>bcadd($item['amount'],$item['tax'],2),
                                   'balance_amount'=>bcadd($item['amount'],$item['tax'],2),
                               ];
-                          },$model->item_list));
-                       }
-        }
-
+               },$model['item']));
+            }
    }
 }

+ 5 - 6
app/command/handleCxData.php

@@ -315,7 +315,7 @@ class handleCxData extends command
 						if($data['cgdNo']!=''){
 								Db::name('cgd_info')->where(['sequenceNo'=>$data['cgdNo']])->update
 								(['qrdSend'=>$data['send_status']]);
-							}
+						}
 					
 				    }
 				    else {
@@ -337,10 +337,8 @@ class handleCxData extends command
 					    $exists_cgd=Db::name('cgd_info')
 					                  ->whereIn('sequenceNo' , $data['cgdNo'])
 					                  ->field('id,status')->findOrEmpty();
-					    $data['qrdSend'] = Db::name('qrd_info')->where(['cgdNo'=>$data['cgdNo']])->value
-					    ('sendStatus',1);
+					    $data['qrdSend'] = Db::name('qrd_info')->where(['cgdNo'=>$data['cgdNo']])->value('sendStatus',1);
 					    if (!empty($exists_cgd)) {
-
 						    //未对账,更新
 						    if ($exists_cgd['status'] == 0) {
 
@@ -405,6 +403,7 @@ class handleCxData extends command
 									      'sendType'=>$data['send_type'] ,//发货方式',
 									      'bkCreater'=>$data['bkcreater'] ,//备库申请人',
 									      'sendStatus'=>$data['send_status'] ,//发货状态',
+									      'qrdSend'=>($data['is_stock']==1 ||isset($data['mainCode'])) ?$data['send_status']:$data['qrdSend'] ,
 									      'wsendNum'=>$data['wsend_num'] ,//未发货数量',
 									      'sendNum'=>$data['send_num'] ,//已发货数量',
 									      'wareHouse'=>$data['wsm_code'] ,//仓库名称',
@@ -476,7 +475,7 @@ class handleCxData extends command
 									      'sendType'=>$data['send_type'] ,//发货方式',
 									      'bkCreater'=>$data['bkcreater'] ,//备库申请人',
 									      'sendStatus'=>$data['send_status'] ,//发货状态',
-									      'qrdSend'=>$data['qrdSend'] ,//发货状态',
+									      'qrdSend'=>($data['is_stock']==1 ||isset($data['mainCode']))?$data['send_status']:$data['qrdSend'] ,//发货状态',
 									      'wsendNum'=>$data['wsend_num'] ,//未发货数量',
 									      'sendNum'=>$data['send_num'] ,//已发货数量',
 									      'wareHouse'=>$data['wsm_code'] ,//仓库名称',
@@ -558,7 +557,7 @@ class handleCxData extends command
 							    'sendType'=>$data['send_type'] ,//发货方式',
 							    'bkCreater'=>$data['bkcreater'] ,//备库申请人',
 							    'sendStatus'=>$data['send_status'] ,//发货状态',
-							    'qrdSend'=>$data['qrdSend'] ,
+							    'qrdSend'=>($data['is_stock']==1 ||isset($data['mainCode'])) ?$data['send_status']:$data['qrdSend'] ,
 							    'wsendNum'=>$data['wsend_num'] ,//未发货数量',
 							    'sendNum'=>$data['send_num'] ,//已发货数量',
 							    'wareHouse'=>$data['wsm_code'] ,//仓库名称',