From e67866d03dca220fe80aa790e28a6395f16d721a Mon Sep 17 00:00:00 2001
From: iLazaKnight <aldoazali@gmail.com>
Date: Fri, 1 Feb 2019 18:15:46 +0700
Subject: [PATCH] T7 - Membuat format unggah xlsx pada UI

---
 app/Http/Controllers/AddMemberController.php | 40 ++++++++++++++++++++
 resources/views/admin/addXLSX.blade.php      | 21 ++++++++++
 resources/views/inc/addmembertab.blade.php   | 10 +++--
 3 files changed, 68 insertions(+), 3 deletions(-)
 create mode 100644 resources/views/admin/addXLSX.blade.php

diff --git a/app/Http/Controllers/AddMemberController.php b/app/Http/Controllers/AddMemberController.php
index 300dca6..c480cb4 100644
--- a/app/Http/Controllers/AddMemberController.php
+++ b/app/Http/Controllers/AddMemberController.php
@@ -83,6 +83,46 @@ class AddMemberController extends Controller
         return redirect('/admin/members')->with('members', $members)->with('success', 'Members Imported');
     }
 
+    public function importXLSX(Request $request)
+    {
+        $array_members = collect();
+        if ($request->hasFile('list_members')) {
+            try {
+                $extension = $request->file('list_members')->getClientOriginalExtension();
+                if ($extension === 'xlsx') {
+                    $path = $request->file('list_members')->getRealPath();
+                    $data = Excel::load($path, function($reader) {})->get();
+                    if (!empty($data)) {
+                        foreach ($data as $key=>$value) {
+                            $member = Member::create([
+                                'nim' => $value->nim,
+                                'name' => $value->name,
+                                'email' => $value->email,
+                                'phone_number' => $value->phone_number,
+                                'interest' => 'none', 
+                                'company' => 'none',
+                            ]);
+                            $member->save();
+                            
+                            $member = Member::where('email', $value->email)->first();
+                            $array_members->push($member);
+                        }
+                    }
+                } else {
+                    return redirect('/admin/members')->with('error', 'Wrong File Extension');
+                }
+            } catch (Exception $e) {
+                return redirect('/admin/members')->with('error', $e->getMessage());
+            }
+        } else {
+            return redirect('/admin/members')->with('error','No XLSX file');
+        }
+
+        $members = Member::orderBy('name','asc')->paginate(20);
+        return redirect('/admin/members')->with('members', $members)->with('success', 'Members Imported');
+    }
+
+
     public function importMember(Request $request)
     {
         $this->validate($request, [
diff --git a/resources/views/admin/addXLSX.blade.php b/resources/views/admin/addXLSX.blade.php
new file mode 100644
index 0000000..7bcc829
--- /dev/null
+++ b/resources/views/admin/addXLSX.blade.php
@@ -0,0 +1,21 @@
+@extends('layouts.app')
+
+@section('content')
+	@include('inc.addmembertab')
+	<div class="addCSVForm">
+			{!! Form::open(['action' => ['AddMemberController@importXLSX'], 'method' => 'POST', 'enctype' => 'multipart/form-data']) !!}
+			<div class="form-group">
+					{{Form::label('list_members','Members')}}
+					{{Form::file('list_members',['class' => 'form-control-file'])}}
+			</div>
+			<br>
+			<br>
+			{{Form::hidden('_method', 'POST')}}
+			{{Form::submit('Submit', ['class' => 'btn btn-primary'])}}
+			<a onclick="return confirm('Are you sure you want to leave?')" class="btn btn-danger pull-right" href="/admin/members">
+				Cancel
+			</a>
+			{!! Form::close() !!}
+	</div>
+</div>
+@endsection
diff --git a/resources/views/inc/addmembertab.blade.php b/resources/views/inc/addmembertab.blade.php
index 9132c04..45ca8b7 100644
--- a/resources/views/inc/addmembertab.blade.php
+++ b/resources/views/inc/addmembertab.blade.php
@@ -1,8 +1,12 @@
 <nav class="nav nav-pills nav-justified">
-    <a class="nav-item nav-link active manualAdd" href="/admin/add">
+    <a class="nav-item nav-link active amanualAdd" href="/admin/add">
         <i class="addMenu">Add Manually</i>
         </a>
-    <a class="nav-item nav-link CSVAdd" href="/admin/addCSV">
+    <a class="nav-item nav-link aCSVAdd" href="/admin/addCSV">
         <i class="addMenu">Upload CSV</i>
+		</a>
+    <a class="nav-item nav-link XLSXAdd" href="/admin/addCSV">
+        <i class="addMenu">Upload XLSX</i>
     </a>
-</nav>
\ No newline at end of file
+    
+</nav>
-- 
GitLab