Ver Fonte

人事管理进场添加协议确定选项

haozi há 4 anos atrás
pai
commit
89845463e5

+ 11 - 1
app/Http/Controllers/UserDutyCheckController.php

@@ -168,6 +168,8 @@ class UserDutyCheckController extends Controller
     //打卡修改临时工劳务所信息并生成进场记录 AndMakeEnterRecord
     public function storeUpdateUserLaborCompanies(Request $request)
     {
+        $agree_sign=$request->input('agree_sign')??false;
+        if ($agree_sign===false)$request->offsetSet('agree_sign',null);
         $this->updateValidator($request)->validate();
         $importAndExportQRCodeType = $request->input('importAndExportQRCodeType');
         $mobile_phone = $request->input('mobile_phone');
@@ -196,6 +198,7 @@ class UserDutyCheckController extends Controller
         $updateValidator = Validator::make($request->input(), [
             'mobile_phone' => ['required', 'integer', 'digits:11'],
             'labor_company_id' => ['filled'],
+            'agree_sign' => ['filled'],
         ], [
             'filled' => ':attribute 不能为空',
             'required' => ':attribute 为必填项',
@@ -204,13 +207,17 @@ class UserDutyCheckController extends Controller
         ], [
             'mobile_phone' => '手机号',
             'labor_company_id' => '劳务所',
+            'agree_sign' => '协议勾选',
         ]);
         return $updateValidator;
     }
 
     //打卡创建临时工资料并生成进场记录
     public function storeUserDetail(Request $request)
-    {$this->validator($request)->validate();
+    {
+        $agree_sign=$request->input('agree_sign')??false;
+        if ($agree_sign===false)$request->offsetSet('agree_sign',null);
+        $this->validator($request)->validate();
         $importAndExportQRCodeType = $request->input('importAndExportQRCodeType');
         $mobile_phone = $request->input('mobile_phone');
         $full_name = $request->input('full_name');
@@ -258,6 +265,7 @@ class UserDutyCheckController extends Controller
             'mobile_phone' => ['required', 'integer', 'digits:11','unique:user_details,mobile_phone'],
             'identity_number' => ['filled', 'identity_cards', 'unique:user_details,identity_number'],
             'labor_company_id' => ['filled'],
+            'agree_sign' => ['filled'],
         ], [
             'unique' => ':attribute 已经存在,不能重复!',
             'filled' => ':attribute 不能为空',
@@ -270,6 +278,8 @@ class UserDutyCheckController extends Controller
             'mobile_phone' => '手机号',
             'identity_number' => '身份证号',
             'labor_company_id' => '劳务所',
+            'agree_sign' => '协议勾选',
+
         ]);
         return $validator;
     }

+ 1 - 1
app/LaborReportStatus.php

@@ -13,7 +13,7 @@ class LaborReportStatus extends Model
 
     use ModelTimeFormat;
     protected $fillable=[
-        'id','status','labor_report_id','created_at',
+        'id','status','labor_report_id','created_at','agree_sign',
     ];
 
 }

+ 1 - 0
app/UserDutyCheck.php

@@ -66,6 +66,7 @@ class UserDutyCheck extends Model
             'labor_report_id'=>$laborReport['id'],
             'status'=>'未审核',
             'created_at'=>$this['checked_at'],
+            'agree_sign'=>1,
         ]);
         $laborReportStatus->save();
         $laborReport['enter_number']=$laborReport->makeOrGetEnteringNumber();

+ 7 - 0
bootstrap/cache/packages.php

@@ -1,4 +1,11 @@
 <?php return array (
+  'beyondcode/laravel-dump-server' => 
+  array (
+    'providers' => 
+    array (
+      0 => 'BeyondCode\\DumpServer\\DumpServerServiceProvider',
+    ),
+  ),
   'facade/ignition' => 
   array (
     'providers' => 

+ 38 - 36
bootstrap/cache/services.php

@@ -23,24 +23,25 @@
     19 => 'Illuminate\\Translation\\TranslationServiceProvider',
     20 => 'Illuminate\\Validation\\ValidationServiceProvider',
     21 => 'Illuminate\\View\\ViewServiceProvider',
-    22 => 'Facade\\Ignition\\IgnitionServiceProvider',
-    23 => 'Fideloper\\Proxy\\TrustedProxyServiceProvider',
-    24 => 'Intervention\\Image\\ImageServiceProvider',
-    25 => 'Laravel\\Horizon\\HorizonServiceProvider',
-    26 => 'Laravel\\Ui\\UiServiceProvider',
-    27 => 'Maatwebsite\\Excel\\ExcelServiceProvider',
-    28 => 'Carbon\\Laravel\\ServiceProvider',
-    29 => 'NunoMaduro\\Collision\\Adapters\\Laravel\\CollisionServiceProvider',
-    30 => 'Oursdreams\\Export\\ExportServiceProvider',
-    31 => 'Overtrue\\LaravelPinyin\\ServiceProvider',
-    32 => 'Te7aHoudini\\LaravelTrix\\LaravelTrixServiceProvider',
-    33 => 'Yajra\\Oci8\\Oci8ServiceProvider',
-    34 => 'App\\Providers\\AppServiceProvider',
-    35 => 'App\\Providers\\AuthServiceProvider',
-    36 => 'App\\Providers\\BroadcastServiceProvider',
-    37 => 'App\\Providers\\EventServiceProvider',
-    38 => 'App\\Providers\\HorizonServiceProvider',
-    39 => 'App\\Providers\\RouteServiceProvider',
+    22 => 'BeyondCode\\DumpServer\\DumpServerServiceProvider',
+    23 => 'Facade\\Ignition\\IgnitionServiceProvider',
+    24 => 'Fideloper\\Proxy\\TrustedProxyServiceProvider',
+    25 => 'Intervention\\Image\\ImageServiceProvider',
+    26 => 'Laravel\\Horizon\\HorizonServiceProvider',
+    27 => 'Laravel\\Ui\\UiServiceProvider',
+    28 => 'Maatwebsite\\Excel\\ExcelServiceProvider',
+    29 => 'Carbon\\Laravel\\ServiceProvider',
+    30 => 'NunoMaduro\\Collision\\Adapters\\Laravel\\CollisionServiceProvider',
+    31 => 'Oursdreams\\Export\\ExportServiceProvider',
+    32 => 'Overtrue\\LaravelPinyin\\ServiceProvider',
+    33 => 'Te7aHoudini\\LaravelTrix\\LaravelTrixServiceProvider',
+    34 => 'Yajra\\Oci8\\Oci8ServiceProvider',
+    35 => 'App\\Providers\\AppServiceProvider',
+    36 => 'App\\Providers\\AuthServiceProvider',
+    37 => 'App\\Providers\\BroadcastServiceProvider',
+    38 => 'App\\Providers\\EventServiceProvider',
+    39 => 'App\\Providers\\HorizonServiceProvider',
+    40 => 'App\\Providers\\RouteServiceProvider',
   ),
   'eager' => 
   array (
@@ -54,24 +55,25 @@
     7 => 'Illuminate\\Pagination\\PaginationServiceProvider',
     8 => 'Illuminate\\Session\\SessionServiceProvider',
     9 => 'Illuminate\\View\\ViewServiceProvider',
-    10 => 'Facade\\Ignition\\IgnitionServiceProvider',
-    11 => 'Fideloper\\Proxy\\TrustedProxyServiceProvider',
-    12 => 'Intervention\\Image\\ImageServiceProvider',
-    13 => 'Laravel\\Horizon\\HorizonServiceProvider',
-    14 => 'Laravel\\Ui\\UiServiceProvider',
-    15 => 'Maatwebsite\\Excel\\ExcelServiceProvider',
-    16 => 'Carbon\\Laravel\\ServiceProvider',
-    17 => 'NunoMaduro\\Collision\\Adapters\\Laravel\\CollisionServiceProvider',
-    18 => 'Oursdreams\\Export\\ExportServiceProvider',
-    19 => 'Overtrue\\LaravelPinyin\\ServiceProvider',
-    20 => 'Te7aHoudini\\LaravelTrix\\LaravelTrixServiceProvider',
-    21 => 'Yajra\\Oci8\\Oci8ServiceProvider',
-    22 => 'App\\Providers\\AppServiceProvider',
-    23 => 'App\\Providers\\AuthServiceProvider',
-    24 => 'App\\Providers\\BroadcastServiceProvider',
-    25 => 'App\\Providers\\EventServiceProvider',
-    26 => 'App\\Providers\\HorizonServiceProvider',
-    27 => 'App\\Providers\\RouteServiceProvider',
+    10 => 'BeyondCode\\DumpServer\\DumpServerServiceProvider',
+    11 => 'Facade\\Ignition\\IgnitionServiceProvider',
+    12 => 'Fideloper\\Proxy\\TrustedProxyServiceProvider',
+    13 => 'Intervention\\Image\\ImageServiceProvider',
+    14 => 'Laravel\\Horizon\\HorizonServiceProvider',
+    15 => 'Laravel\\Ui\\UiServiceProvider',
+    16 => 'Maatwebsite\\Excel\\ExcelServiceProvider',
+    17 => 'Carbon\\Laravel\\ServiceProvider',
+    18 => 'NunoMaduro\\Collision\\Adapters\\Laravel\\CollisionServiceProvider',
+    19 => 'Oursdreams\\Export\\ExportServiceProvider',
+    20 => 'Overtrue\\LaravelPinyin\\ServiceProvider',
+    21 => 'Te7aHoudini\\LaravelTrix\\LaravelTrixServiceProvider',
+    22 => 'Yajra\\Oci8\\Oci8ServiceProvider',
+    23 => 'App\\Providers\\AppServiceProvider',
+    24 => 'App\\Providers\\AuthServiceProvider',
+    25 => 'App\\Providers\\BroadcastServiceProvider',
+    26 => 'App\\Providers\\EventServiceProvider',
+    27 => 'App\\Providers\\HorizonServiceProvider',
+    28 => 'App\\Providers\\RouteServiceProvider',
   ),
   'deferred' => 
   array (

+ 32 - 0
database/migrations/2021_10_26_093551_add_agree_sign_column_to_labor_report_status_table.php

@@ -0,0 +1,32 @@
+<?php
+
+use Illuminate\Database\Migrations\Migration;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\Schema;
+
+class AddAgreeSignColumnToLaborReportStatusTable extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::table('labor_report_statuses', function (Blueprint $table) {
+            $table->tinyInteger("agree_sign")->default(0)->comment("同意协议标记");
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::table('labor_report_statuses', function (Blueprint $table) {
+            $table->dropColumn("agree_sign");
+        });
+    }
+}

BIN
public/images/QRCodeIMG/4.png


+ 21 - 0
resources/views/personnel/checking-in/_protocol.blade.php

@@ -0,0 +1,21 @@
+<div class="modal " id="protocol" tabindex="-1" >
+    <div class="modal-dialog modal-lg">
+        <div class="modal-content">
+            <div class="modal-body text-center">
+                <h3>临时工处罚管理条例</h3>
+                <p>1.由于违规操作给公司造成经济损失的,则全额赔偿;</p>
+                <p>2.违反公司规章制度的,按公司《奖惩管理制度》相关条例规定处理;</p>
+                <p>3.在未向部门领导报备的情况下,私自离岗 10 分钟以上 30 分钟以下的,则扣罚工时 2 小时;</p>
+                <p>4.作业 2 小时内私自离厂者,则不计算工时;</p>
+                <p>5.工作效率低下,达不到生产定额被退回的,给予 50 元的处罚,从临时工费用中代扣除。</p>
+                <p>6.临时工未归还公司发放的物品,根据物品采购的价格从临时工费用中代扣除。</p>
+                <p>7.临时工已报备但离岗时间超过 10 分钟低于 20 分钟的,扣 1 小时工时。</p>
+                <p class="text-info"> 以上为临时工处罚管理条例,请您仔细阅读,如无异议,请勾选“同意”进行下一步。</p>
+            </div>
+            <div class="modal-footer">
+                <button type="button" class="btn btn-secondary" data-dismiss="modal" @click="refuseChecked()">拒绝</button>
+                <button type="button" class="btn btn-primary" data-dismiss="modal" @click="agreeSign()">已阅</button>
+            </div>
+        </div>
+    </div>
+</div>

+ 37 - 1
resources/views/personnel/checking-in/createUserDetail.blade.php

@@ -6,7 +6,7 @@
     <link href="{{ mix('css/app.css') }}" rel="stylesheet">
 </head>
 <body>
-<div class="card col-md-8 offset-md-2 mt-5">
+<div class="card col-md-8 offset-md-2 mt-5" id="list">
     <div class="card-body">
         <form method="POST" action="{{url('personnel/checking-in/userDutyCheck/storeUserDetail')}}">
             @csrf
@@ -73,12 +73,48 @@
                     @enderror
                 </div>
             </div>
+            <div class="form-group row">
+                <label for="labor_company_id" class="form-check-label col-3 pull-left">相关协议:</label>
+                <div class="col-8">
+                    <span class="text-info" @click="showWord()">《临时工处罚管理条例》</span><br>
+                    <input type="checkbox" name="agree_sign" id="is_checked" value="1"
+                           class="@error('agree_sign') is-invalid @enderror"></input>我已仔细阅读协议,一定遵守
+                    @error('agree_sign')
+                    <span class="invalid-feedback" role="alert">
+                    <strong>{{ $message }}</strong>
+                    </span>
+                    @enderror
+                </div>
+            </div>
             <input type="hidden" name="importAndExportQRCodeType" value="{{ old('importAndExportQRCodeType',$importAndExportQRCodeType)}}" >
             <div class="form-group row pt-3">
                 <button type="submit" class="col-8 offset-3 btn btn-success">登记</button>
             </div>
         </form>
     </div>
+    @include('personnel.checking-in._protocol')
 </div>
 </body>
+<script src="{{ mix('js/app.js') }}"></script>
+<script>
+    let vue =new Vue({
+        el: '#list',
+        data: {
+
+        },
+        methods:{
+            showWord(){
+                $('#protocol').modal('show');
+            },
+            agreeSign(){
+                document.getElementById('is_checked').checked=true;
+                document.getElementById('is_checked').value=1;
+            },
+            refuseChecked(){
+                document.getElementById('is_checked').checked=false;
+                document.getElementById('is_checked').value='';
+            },
+        },
+    });
+</script>
 </html>

+ 37 - 2
resources/views/personnel/checking-in/updateUserLaborCompanies.blade.php

@@ -6,7 +6,7 @@
     <link href="{{ mix('css/app.css') }}" rel="stylesheet">
 </head>
 <body>
-<div class="card col-md-8 offset-md-2 mt-5">
+<div class="card col-md-8 offset-md-2 mt-5" id="list">
     <div class="card-body">
         <form method="POST" action="{{url('personnel/checking-in/userDutyCheck/storeUpdateUserLaborCompanies')}}">
             @csrf
@@ -37,13 +37,48 @@
                 @enderror
                 </div>
             </div>
-
+            <div class="form-group row">
+                <label for="labor_company_id" class="form-check-label col-3 pull-left">相关协议:</label>
+                <div class="col-8">
+                    <span class="text-info" @click="showWord()">《临时工处罚管理条例》</span><br>
+                    <input type="checkbox" name="agree_sign" id="is_checked" value="1"
+                           class="@error('agree_sign') is-invalid @enderror"></input>我已仔细阅读协议,一定遵守
+                    @error('agree_sign')
+                    <span class="invalid-feedback" role="alert">
+                    <strong>{{ $message }}</strong>
+                    </span>
+                    @enderror
+                </div>
+            </div>
             <input hidden name="importAndExportQRCodeType" value="{{ old('importAndExportQRCodeType',$importAndExportQRCodeType)}}">
             <div class="form-group row pt-4">
                 <button type="submit" class="col-5 offset-3 btn btn-success">提交</button>
             </div>
         </form>
     </div>
+    @include('personnel.checking-in._protocol')
 </div>
 </body>
+<script src="{{ mix('js/app.js') }}"></script>
+<script>
+    let vue =new Vue({
+        el: '#list',
+        data: {
+
+        },
+        methods:{
+            showWord(){
+                $('#protocol').modal('show');
+            },
+            agreeSign(){
+                document.getElementById('is_checked').checked=true;
+                document.getElementById('is_checked').value=1;
+            },
+            refuseChecked(){
+                document.getElementById('is_checked').checked=false;
+                document.getElementById('is_checked').value='';
+            },
+        },
+    });
+</script>
 </html>