Selaa lähdekoodia

问题件 添加财务确认字段 添加 对应权限 权限控制 及 方法

ajun 5 vuotta sitten
vanhempi
commit
cc92be90a8

+ 16 - 0
app/Http/Controllers/OrderIssueController.php

@@ -746,4 +746,20 @@ class OrderIssueController extends Controller
         $service = app('OrderIssueService');
         return  $service->recoverOrderIssue($request['ids']);
     }
+
+    public function financeConfirmApi(Request $request)
+    {
+        if (!Gate::allows('订单管理-问题件-财务确认')) {
+            return ['success'=>false,'error'=>'没有对应权限'];
+        }
+        try {
+            $bool = OrderIssue::query()->whereIn('id', $request['ids'])->update(['finance_confirm' => '是']);
+            if($bool==false)return ['success'=>false,'error'=>'财务确认失败'];
+            app('LogService')->log(__METHOD__, __FUNCTION__,'财务确认'. json_encode($request->getContent()), Auth::user()['id']);
+            return ['success'=>true];
+        } catch (Exception $e) {
+            app('LogService')->log(__METHOD__,'Error'. __FUNCTION__,'财务确认 Error'. json_encode($request->getContent()).' || '.json_encode($e->getMessage()).' || '.json_encode($e->getTraceAsString()), Auth::user()['id']);
+            return ['success'=>false,'error'=>$e->getMessage()];
+        }
+    }
 }

+ 2 - 1
app/OrderIssue.php

@@ -16,7 +16,7 @@ class OrderIssue extends Model
         'order_id', 'created_at', 'rejected_bill_id', 'rejecting_status', 'result_explain','logistic_number_return',
         'situation_explain', 'order_issue_type_id', 'second_order_id', 'is_new_rejecting','second_client_no','second_logistic_number',
         'final_status', 'logistic_indemnity_money', 'logistic_express_remission', 'baoshi_indemnity_money', 'baoshi_express_remission', 'user_workgroup_id',
-        'custom_code','imported_status'];
+        'custom_code','imported_status','finance_confirm'];
     /*
      * second_client_no 二次客户订单号
      * second_logistic_number 二次运单号 【二次运单号可以单独存在,当二次客户订单号有对应的订单信息时,显示的是二次客户订单号对应的运单号,没有的话显示二次原单号】
@@ -27,6 +27,7 @@ class OrderIssue extends Model
      * custom_code  自定义订单号 客户客服自定义
      * imported_status 导入处理
      * 退回单号
+     * finance_confirm 财务确认
      */
     protected $appends = [
 //        'secondLogisticNumber',

+ 36 - 0
database/migrations/2020_11_18_142512_add_finance_confirm_to_order_issue_and_add_auth.php

@@ -0,0 +1,36 @@
+<?php
+
+use Illuminate\Database\Migrations\Migration;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\Schema;
+
+class AddFinanceConfirmToOrderIssueAndAddAuth extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::table('order_issues', function (Blueprint $table) {
+            //
+            $table->enum('finance_confirm',['是','否'])->default('否')->after('rejecting_status')->comment('财务确认');
+        });
+        \App\Authority::query()->create(['name'=>'订单管理-问题件-财务确认','alias_name'=>'订单管理-问题件-财务确认']);
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::table('order_issues', function (Blueprint $table) {
+            //
+            $table->dropColumn('finance_confirm');
+        });
+        \App\Authority::query()->where('name','订单管理-问题件-财务确认')->delete();
+    }
+}

+ 47 - 2
resources/views/order/issue/index.blade.php

@@ -50,7 +50,13 @@
                             导入处理
                         </button>
                     </span>
-
+                    @can('订单管理-问题件-财务确认')
+                    <span class="ml-1">
+                        <button type="button" class="btn btn-outline-dark btn-sm form-control-sm  tooltipTarget" @click="financeConfirm">
+                            财务确认
+                        </button>
+                    </span>
+                    @endcan
                 </div>
                 <table class="table table-sm table-striped table-bordered table-hover card-body p-0 m-0" style="background: #fff;@cannot('订单管理-问题件-客户不可见')min-width: 3000px;@else min-width: 1990px; @endcannot">
                     <tr class="tr-yellow" align="center" >
@@ -169,7 +175,10 @@
                                 <input class="checkItem" type="checkbox" :value="orderIssue.id" v-model="checkData">
                             </div>
                         </td>
-                        <td class="child-layer-1">@{{index+1}}</td>
+                        <td class="child-layer-1 text-nowrap">
+                            @{{index+1}}
+                            <span class="text-muted" v-if="orderIssue.finance_confirm === '是'">财务确认</span>
+                        </td>
                         <td class="child-layer-1">
                             @{{ orderIssue.id }}
                             @can('订单管理-问题件-编辑')
@@ -1443,6 +1452,42 @@
                         tempTip.setDuration(2000)
                         tempTip.show('处理导入出现异常'+error)
                     })
+                },
+                financeConfirm(){
+                    let _this= this
+                    if(this.checkData.length === 0){
+                        tempTip.setDuration(2000)
+                        tempTip.show('没有勾选内容')
+                        return;
+                    }
+                    if(!confirm('是否进行财务确认'))return;
+                    let data = {ids:this.checkData};
+                    tempTip.setDuration(9999);
+                    tempTip.waitingTip('处理中.......');
+                    axios.post('{{url('apiLocal/order/issue/financeConfirm')}}',data)
+                        .then(function(response){
+                            tempTip.cancelWaitingTip();
+                            if(response.data.success){
+                                tempTip.setDuration(2000);
+                                tempTip.showSuccess('确认成功');
+                                _this.orderIssuesEdit(data.ids,'finance_confirm','是');
+                            }else{
+                                tempTip.setDuration(2000);
+                                tempTip.show(response.data.error);
+                            }
+                        }).catch(function(error){
+                            tempTip.cancelWaitingTip();
+                            tempTip.setDuration(2000);
+                            tempTip.show(error);
+                    });
+
+                },
+                orderIssuesEdit(ids,column,value){
+                    this.orderIssues.forEach(function(item){
+                        if(ids.includes(item.id)){
+                            item[column] = value;
+                        }
+                    });
                 }
             }
         })

+ 1 - 0
routes/apiLocal.php

@@ -53,6 +53,7 @@ Route::group(['prefix' => 'order'], function () {
         Route::post('editSecondLogisticNumber','OrderIssueController@editSecondLogisticNumberApi');
         Route::post('importPasteData','OrderIssueController@importPasteDataApi');
         Route::match(['get','post'],'disposeImport','OrderIssueController@disposeImportApi');
+        Route::post('financeConfirm','OrderIssueController@financeConfirmApi');
 
          Route::group(['prefix'=>'onTop'],function(){
             Route::post('/store', 'OrderIssueOnTopController@apiStore');