Explorar el Código

添加处理日志的时候将赔偿价格同步到问题件

ajun hace 4 años
padre
commit
e0ea08eb4d
Se han modificado 2 ficheros con 30 adiciones y 0 borrados
  1. 20 0
      app/Services/WorkOrderProcessLogService.php
  2. 10 0
      app/WorkOrderProcessLog.php

+ 20 - 0
app/Services/WorkOrderProcessLogService.php

@@ -51,6 +51,7 @@ class WorkOrderProcessLogService
         $params['type'] = '2';
         $log = WorkOrderProcessLog::query()->create($params);
         $log->workOrder()->update(['work_order_status' => '3']);
+        $this->syncOrderIssueIndemnity($log);
         $log->loadMissing('creator');
         return $log;
     }
@@ -76,7 +77,26 @@ class WorkOrderProcessLogService
         $params['type'] = 1;
         if ($params['is_indemnity'] == 2) $params['indemnity'] = 0;
         $log = WorkOrderProcessLog::query()->create($params);
+        $this->syncOrderIssueIndemnity($log);
         $log->loadMissing('creator');
         return $log;
     }
+
+    public function syncOrderIssueIndemnity($log)
+    {
+        if ($log->is_indemnity == '否') return;
+        $orderIssue = $log->workOrder->orderIssue;
+        if ($log->isBaoShiLog()) {
+            if ($log->indemnitor == '宝时'){
+                if ($orderIssue->baoshi_indemnity_money) return ;
+                $orderIssue->update(['baoshi_indemnity_money'=>$log->indemnity]);
+            } else if ($log->indemnitor == '承运商'){
+                if ($orderIssue->logistic_indemnity_money) return ;
+                $orderIssue->update(['logistic_indemnity_money'=>$log->indemnity]);
+            }
+        } else if ($log->isLogisticLog()){
+            if ($orderIssue->logistic_indemnity_money) return ;
+            $orderIssue->update(['logistic_indemnity_money'=>$log->indemnity]);
+        }
+    }
 }

+ 10 - 0
app/WorkOrderProcessLog.php

@@ -105,4 +105,14 @@ class WorkOrderProcessLog extends Model
     {
         return $this->belongsTo(User::class);
     }
+
+    public function isLogisticLog(): bool
+    {
+        return $this->type == "承运商";
+    }
+
+    public function isBaoShiLog(): bool
+    {
+        return $this->type == "宝时";
+    }
 }