ajun 4 роки тому
батько
коміт
bde4d882ad

+ 2 - 46
app/Http/Controllers/WorkOrderProcessLogController.php

@@ -10,41 +10,6 @@ use Illuminate\Support\Facades\Gate;
 
 class WorkOrderProcessLogController extends Controller
 {
-    public function index()
-    {
-        //
-    }
-
-    public function create()
-    {
-        //
-    }
-
-    public function store(Request $request)
-    {
-        //
-    }
-
-    public function show(WorkOrderProcessLog $workOrderProcessLog)
-    {
-        //
-    }
-
-    public function edit(WorkOrderProcessLog $workOrderProcessLog)
-    {
-        //
-    }
-
-    public function update(Request $request, WorkOrderProcessLog $workOrderProcessLog)
-    {
-        //
-    }
-
-    public function destroy(WorkOrderProcessLog $workOrderProcessLog)
-    {
-        //
-    }
-
     public function logisticStoreApi(Request $request, WorkOrderProcessLogService $service): array
     {
         if (Gate::denies('订单管理-工单处理-承运商编辑')) return ['success' => false, 'message' => '没有对应的编辑权限'];
@@ -52,12 +17,7 @@ class WorkOrderProcessLogController extends Controller
             return ['success' => false, 'message' => '对应处理日志已存在'];
         }
         try {
-            $params = $request->all();
-            $params['creator_id'] = Auth::user()['id'];
-            $params['type'] = '2';
-            $log = WorkOrderProcessLog::query()->create($params);
-            $log->workOrder()->update(['work_order_status' => '3']);
-            $log->loadMissing('creator');
+            $log = $service->createLogisticProcessLog($request->all());
             return ['success' => true, 'data' => $log];
         } catch (\Exception $e) {
             return ['success' => false, 'message' => '添加处理信息失败'];
@@ -71,11 +31,7 @@ class WorkOrderProcessLogController extends Controller
         if ($service->hasBaoShiProcessLog($request->input('work_order_id'))) {
             return ['success' => false, 'message' => '对应处理日志已存在'];
         }
-        $params = $request->all();
-        $params['creator_id'] = Auth::user()['id'];
-        $params['type'] = 1;
-        $log = WorkOrderProcessLog::query()->create($params);
-        $log->loadMissing('creator');
+        $log = $service->createBaoShiProcessLog($request->all());
         return ['success' => true, 'data' => $log];
     }
 

+ 25 - 0
app/Services/WorkOrderProcessLogService.php

@@ -4,6 +4,7 @@ namespace App\Services;
 
 use App\Traits\ServiceAppAop;
 use App\WorkOrderProcessLog;
+use Illuminate\Support\Facades\Auth;
 
 class WorkOrderProcessLogService
 {
@@ -24,4 +25,28 @@ class WorkOrderProcessLogService
             ->where('work_order_id', $workOrderId)
             ->where('type', '1')->exists();
     }
+
+    public function createLogisticProcessLog($params)
+    {
+        $params['creator_id'] = Auth::user()['id'];
+        $params['type'] = '2';
+
+        // 赔偿方
+        if ($params['is_indemnity'] == '1') $params['indemnitor']  = '2';
+        else $params['indemnitor']  = '1';
+
+        $log = WorkOrderProcessLog::query()->create($params);
+        $log->workOrder()->update(['work_order_status' => '3']);
+        $log->loadMissing('creator');
+        return $log;
+    }
+
+    public function createBaoShiProcessLog($params)
+    {
+        $params['creator_id'] = Auth::user()['id'];
+        $params['type'] = 1;
+        $log = WorkOrderProcessLog::query()->create($params);
+        $log->loadMissing('creator');
+        return $log;
+    }
 }

+ 6 - 0
app/WorkOrderProcessLog.php

@@ -16,6 +16,7 @@ class WorkOrderProcessLog extends Model
         'work_order_id',  // 工单
         'type',           // 处理类型 0 无 1宝时 2 承运商
         'is_indemnity',   // 是否赔偿 0 无 1是 2否
+        'indemnitor',   // 赔偿人 0 无 1宝时 2承运商
         'indemnity',      // 赔偿金
         'creator_id',     // 创建人
         'remark',         // 描述
@@ -32,6 +33,11 @@ class WorkOrderProcessLog extends Model
             '是' => 1,
             '否' => 2,
         ],
+        'indemnitor'=> [
+            '' => 0,
+            '宝时' => 1,
+            '承运商' => 2,
+        ],
     ];
 
     function __construct(array $attributes = [])

+ 1 - 0
database/migrations/2021_09_24_110630_create_work_order_process_logs_table.php

@@ -17,6 +17,7 @@ class CreateWorkOrderProcessLogsTable extends Migration
             $table->id();
             $table->integer('work_order_id')->index()->comment('工单');
             $table->tinyInteger('type')->index()->comment('类型 0无 1宝时 2承运商');
+            $table->tinyInteger('indemnitor')->index()->comment('赔偿方 0无 1宝时 2承运商');
             $table->tinyInteger('is_indemnity')->comment('是否赔偿 0无 1是 2否');
             $table->decimal('indemnity',11,3)->comment('赔偿金额');
             $table->integer('creator_id')->comment('创建人');

+ 20 - 2
resources/views/order/workOrder/_edit_process_log.blade.php

@@ -27,10 +27,28 @@
                         </div>
                     </div>
                 </div>
-
+                {{-- 宝时处理 确认赔偿方 --}}
+                {{--赔偿金额--}}
+                <div class="form-group row" v-show="processLog['is_indemnity'] === '1' &&  processLog.type === 1">
+                    <label for="process-log-indemnity" class="text-primary col-sm-2 col-form-label text-right">赔偿方</label>
+                    <div class="col-sm-10">
+                        <div class="custom-control custom-radio">
+                            <input type="radio" id="indemnitor-baoshi" name="indemnitor" class="custom-control-input"
+                                   value="1"
+                                   v-model="processLog['indemnitor']">
+                            <label class="custom-control-label" for="indemnitor-baoshi">宝时</label>
+                        </div>
+                        <div class="custom-control custom-radio">
+                            <input type="radio" id="indemnitor-logistic" name="indemnitor" class="custom-control-input"
+                                   value="2"
+                                   v-model="processLog['indemnitor']">
+                            <label class="custom-control-label" for="indemnitor-logistic">承运商</label>
+                        </div>
+                    </div>
+                </div>
                 {{--描述--}}
                 <div class="form-group row" v-show="processLog['is_indemnity'] === '2'">
-                    <label for="process-log-remark" class="text-primary col-sm-2 col-form-label text-right ">不赔偿理由</label>
+                    <label for="process-log-remark" class="text-primary col-sm-2 col-form-label text-right ">理由</label>
                     <div class="col-sm-10">
                         <textarea name="process-log-remark" id="process-log-remark" cols="30" rows="5" class="form-control"
                                   v-model="processLog.remark" ref="process-log-remark"></textarea>

+ 8 - 0
resources/views/order/workOrder/index.blade.php

@@ -297,6 +297,7 @@
                     is_indemnity:null, // 是否赔偿
                     indemnity:null,  // 金额
                     remark:null,
+                    indemnitor:null, // 赔偿方
                 },
                 workOrderStatus:['信息未填写','信息已填写','快递已处理', '工单完成'],
                 selectOrderPackage: null,
@@ -753,6 +754,7 @@
                     this.processLog.indemnity = null;
                     this.processLog.is_indemnity = null;
                     this.processLog.remark = null;
+                    this.processLog.indemnitor = null;
                     $("#work-order-process-log-modal").modal('show');
                 },
                 storeLogisticProcessLog(){
@@ -790,6 +792,7 @@
                         'work_order_id':this.processLog.work_order_id,
                         'is_indemnity':this.processLog.is_indemnity,
                         'remark':this.processLog.remark,
+                        indemnitor:this.processLog.indemnitor,
                     };
                     if(!this.verifiedProcessLog())return;
                     window.tempTip.setDuration(9999);
@@ -837,6 +840,10 @@
                         window.tempTip.show('选择处理方式');
                         return false;
                     }
+                    if (this.processLog.type === 1 && this.processLog.indemnitor == null){
+                        window.tempTip.show('指定赔偿方');
+                        return false;
+                    }
                     if(this.processLog.is_indemnity === '1'){
                         if (!this.processLog.indemnity ){
                             window.tempTip.show('填写赔偿金额');
@@ -848,6 +855,7 @@
                             return false;
                         }
                     }
+
                     return true;
                 }
             },