wuggemail@foxmail.com 3 ヶ月 前
コミット
b3a2ec8e14

+ 2 - 2
app/cxinv/command/MakeSeal.php

@@ -97,11 +97,11 @@ class MakeSeal extends Command
                   'fz_id'=>$row['id'],
               ];
           }
-          if($item['type']==3|| $item['type']==1|| $item['type']==5){
+          if($item['type']==3|| $item['type']==1|| $item['type']==5|| $item['type']==7){
               $list[$item['product_id']]['balance_num']=bcadd($list[$item['product_id']]['balance_num'],$item['num'],8);
               $list[$item['product_id']]['in_num']=bcadd($list[$item['product_id']]['in_num'],$item['num'],8);
           }
-          if($item['type']==4|| $item['type']==2|| $item['type']==6){
+          if($item['type']==4|| $item['type']==2|| $item['type']==6|| $item['type']==8){
               $list[$item['product_id']]['balance_num']=bcsub($list[$item['product_id']]['balance_num'],$item['num'],8);
               $list[$item['product_id']]['out_num']=bcadd($list[$item['product_id']]['out_num'],$item['num'],8);
           }

+ 29 - 1
app/cxinv/controller/FinancialCancel.php

@@ -2,8 +2,10 @@
 
 namespace app\cxinv\controller;
 
+use app\cxinv\model\FinancialCheck;
 use app\cxinv\model\FinancialTz;
 use app\cxinv\model\FinancialManager;
+use app\cxinv\model\ProductFz;
 use think\App;
 
 class FinancialCancel extends Base
@@ -28,10 +30,36 @@ class FinancialCancel extends Base
                 $ManagerInfo=FinancialManager::where('id',$v)->findOrEmpty();
                 if($ManagerInfo->isEmpty()) return error("[$v]订单数据不存在");
                 if($ManagerInfo->status!=2 && $ManagerInfo->status!=3) return error("[$v]订单数据状态不正确");
+                if($ManagerInfo->type==1||$ManagerInfo->type==3){
+                    //校验账期是否封账
+                    $company_code=$ManagerInfo->buyer_code;
+                }else{
+                    $company_code=$ManagerInfo->seller_code;
+                }
+
+                $fz = ProductFz::where('company_code',$company_code)->where('fz_date',$ManagerInfo->fz_date)->findOrEmpty();
+                if($fz->isEmpty()) return error("[$v]账期数据不存在");
+                if($fz->status!=0) return error("[$v]账期数据状态已封账/未解封");
+                if($ManagerInfo->status==3){
+                    $TzInfo=FinancialTz::where('manager_id',$v)->findOrEmpty();
+                    if(!$TzInfo->isEmpty()){
+                        if($TzInfo->status!=4) return error("[$v]计提数据单子未处理");
+                    }
+
+                }
             }else{
-                $TzInfo=FinancialTz::where('id',$v)->findOrEmpty();
+                $TzInfo=FinancialTz::with(['FinancialManager'])->where('id',$v)->findOrEmpty();
                 if($TzInfo->isEmpty()) return error("[$v]计提数据不存在");
                 if($TzInfo->status!=1 && $TzInfo->status!=2) return error("[$v]计提数据状态不正确");
+                if($TzInfo->status==2){
+                    $fz = ProductFz::where('company_code',$TzInfo->FinancialManager->seller_code)->where('fz_date',$TzInfo->fz_date)->findOrEmpty();
+                    if($fz->isEmpty()) return error("[$v]账期数据不存在");
+                    if($fz->status!=0) return error("[$v]账期数据状态已封账/未解封");
+                }
+                if($TzInfo->is_checkOrder==1){
+                    $check=FinancialCheck::where('code',$TzInfo->ktCode)->findOrEmpty();
+                    if(!$check->isEmpty()) return error("[$v]调整单未删除,请先处理关联调整单");
+                }
             }
             $create[]=[
                 'type'=>$params['type'],

+ 1 - 1
app/cxinv/model/FinancialCancel.php

@@ -10,7 +10,7 @@ class FinancialCancel extends Base
   protected $schema = [
       'id' => 'bigint',
       'item_id' => 'bigint',
-      'type' => 'tinyint',
+      'type' => 'tinyint', //1 出入库 2计提处理
       'remark' => 'varchar',
       'apply_id' => 'int',
       'apply_name' => 'varchar',

+ 1 - 1
app/cxinv/model/FinancialManager.php

@@ -11,7 +11,7 @@ class FinancialManager extends Base{
         'id'=>'int',//主键,自动递增
         'code'=>'string',//订单或记录的唯一标识符
         'invoiceCode'=>'string',//订单或记录的唯一标识符
-        'type'=>'int',//记录类型 1入库2出库 3入库红冲 4 出库红冲
+        'type'=>'int',//记录类型 1入库 2出库 3入库红冲 4 出库红冲
         'source'=>'int',//数据来源,1结算 2 线下订单
         'channel'=>'int',//渠道 1订单导入 2 非订单商品导入 3 c端无发票导入
         'seller_code'=>'string',//卖方代码