diff --git a/.env.example b/.env.example
index d058c34ef2272f8e73d9fd190679a99d7a6549c6..2f8a96b9afe53714b3e472fcec65739f7d937fd6 100644
--- a/.env.example
+++ b/.env.example
@@ -7,11 +7,11 @@ APP_URL=http://localhost
 LOG_CHANNEL=stack
 
 DB_CONNECTION=mysql
-DB_HOST=127.0.0.1
+DB_HOST=remotemysql.com
 DB_PORT=3306
-DB_DATABASE=homestead
-DB_USERNAME=homestead
-DB_PASSWORD=secret
+DB_DATABASE=RPmAaYlhQt
+DB_USERNAME=RPmAaYlhQt
+DB_PASSWORD=QJcEXd7kOH
 
 BROADCAST_DRIVER=log
 CACHE_DRIVER=file
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 382348a3f2034affbea4e5e6c70aa19ce281efce..356f94173d598c24334eb6f2320eb919f1339c1b 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,9 +1,11 @@
 image: php:7-stretch
 
 before_script:
-  - curl -sL https://deb.nodesource.com/setup_10.x | bash - 
-  - apt-get install -y nodejs zip unzip git
-  - apt-get update
+  - curl -sL https://deb.nodesource.com/setup_10.x | bash -
+  - apt-get update 
+  - apt-get install -y nodejs zip unzip git libpng-dev
+  - docker-php-ext-install gd
+  - docker-php-ext-install pdo pdo_mysql mysqli
   - curl --show-error --silent https://getcomposer.org/installer | php
   - php composer.phar install
   - npm install
@@ -15,19 +17,13 @@ stages:
 
 test:
   stage: test
-  cache:
-    key: build-cache
-    paths:
-    - node_modules/
-    - vendor/
   script:
     - cp .env.example .env
     - php artisan key:generate
+    - php artisan migrate:refresh --seed
     - vendor/bin/phpunit -v --coverage-text
 
 staging:
   stage: staging
-  cache:
-    key: build-cache
   script:
     - echo "staging running"
diff --git a/app/Constants/Links.php b/app/Constants/Links.php
index 6b212ec58ff413526069902a040939798ca3cdaa..e1b51899c58f7de5d61d780b6bd4d45589de69e0 100644
--- a/app/Constants/Links.php
+++ b/app/Constants/Links.php
@@ -19,6 +19,7 @@ class Links {
   const LINK_PEMDA_KABUPATEN = "/rekap/kabupaten"."/{id_kabupaten}";
   
   const LINK_PROVINSI_SWAKELOLA = "/rekap/provinsi/satker"."/{id_satker}"."/swakelola";
+  
   const LINK_KOTA_SWAKELOLA = "/rekap/kota"."/{id_kota}"."/satker"."/{id_satker}"."/swakelola";
   const LINK_KABUPATEN_SWAKELOLA = "/rekap/kabupaten"."/{id_kabupaten}"."/satker"."/{id_satker}"."/swakelola";
   const LINK_PEMDA_PROVINSI_PENYEDIA = "/rekap/provinsi/penyedia";
@@ -38,8 +39,24 @@ class Links {
   const LINK_KABUPATEN_PENYEDIA_SWAKELOLA = "/rekap/kabupaten"."/{id_kabupaten}"."/satker"."/{id_satker}"."/swakelola/penyedia-swakelola";
 
   const LINK_UNDUH_PAKET_RUP = "/unduh/paketRUP";
-  const LINK_UNDUH_PAKET_RUP_PDF = "/unduh/paketRUP/download";
+  const LINK_UNDUH_PAKET_RUP_PDF = "/unduh/paketRUP/{satker}/download";
   const LINK_UNDUH_MATERI = "/unduh/materi";
+
+  const LINK_MODAL_SWAKELOLA = "/modal/swakelola"."/{id_paket}";
+  const LINK_MODAL_PENYEDIA = "/modal/penyedia"."/{id_paket}";
+  const LINK_MODAL_PENYEDIA_SWAKELOLA = "/modal/penyediaSwakelola"."/{id_paket}";
+  const LINK_BERITA = "/berita";
+
+  const LOGOUT = "/logout";
+  const LINK_CARI_PAKET = "/search";
+
+  const LINK_FIND_PAKET = "/findsearch"."/{tahun_anggaran}"."/{keyword}"."/{jenisPengadaan}"."/{metodePengadaan}";
+  const LINK_STATUS_PAKET = "/status";
+  const LINK_UMUMKAN_PAKET = "/status/pengumuman"."/{id_paket}";
+  const LINK_KLASIFIKASI_PAKET = "/status/klasifikasi"."/{id_paket}"."/{status}"."/{jenis_paket}";
+  const LINK_JENIS_PAKET = "/status/jenispaket"."/{kode_rup}";
+
+  const LINK_MODAL_CARI_PAKET = "/modal/search"."/{id_paket}";
 }
 
 ?>
\ No newline at end of file
diff --git a/app/Helper/PaketPDFHelper.php b/app/Helper/PaketPDFHelper.php
index c3d83f963e631ded4481e50b1c606ac363af2493..8a4f4329b3a5378d02339eba0845497c691c0337 100644
--- a/app/Helper/PaketPDFHelper.php
+++ b/app/Helper/PaketPDFHelper.php
@@ -3,7 +3,7 @@ namespace App\Helper;
 
 use \Mpdf\Mpdf;
 use \Mpdf\HTMLParserMode;
-use App\Util\Paket;
+use App\Util\PaketClass;
 use App\Util\Info;
 
 class PaketPDFHelper {
@@ -88,7 +88,7 @@ class PaketPDFHelper {
           <th>Sumber Dana</th>
           <th>Lokasi</th>
           <th >Keterangan</th>
-          <th>Pemilihan Penyehia</th>
+          <th>Pemilihan Penyedia</th>
           <th>Pagu</th>
         </tr>
       </thead>
@@ -117,23 +117,7 @@ class PaketPDFHelper {
     return $paketTableHTML;
   }
 
-  private static function generatePaketMock(){
-    $pakets = [];
-    $paket = new Paket("Diklat Kepemimpinan Tingkat III(Pengiriman)", "20312436", "Makan Minum Peserta,Panitia dan Pengajar Diklat,Seminar, Pelatihan,Lokakarya dan Sejenisnyaeselon III atau setara", "APBD", "Cimahi (Kota)", "Volume:1820 porsi <br> TKDN: Ya <br> Makan pagi, snack pagi,makan siang, snack sore, makan malam dan penyediaan air minum", "Tender", "263.900.000");
-    array_push($pakets, $paket);
-    array_push($pakets, $paket);
-    array_push($pakets, $paket);
-    array_push($pakets, $paket);
-    array_push($pakets, $paket);
-    array_push($pakets, $paket);
-    array_push($pakets, $paket);
-    array_push($pakets, $paket);
-    array_push($pakets, $paket);
-
-    return $pakets;
-  }
-
-  public static function generatePaketPDF($satker, $type, $pakets){
+  public static function generatePaketPDF($satker, $opd, $pa, $paketPenyedia, $paketPenyediaDraf, $paketSwakelolaDraf, $paketSwakelola, $paketPenyediaSwakelola, $paketPenyediaSwakelolaDraf){
     $mpdf = new Mpdf(['format' => 'Legal-L'] );
 
     $bootstrap = file_get_contents("https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/css/bootstrap.min.css");
@@ -145,8 +129,7 @@ class PaketPDFHelper {
     $mpdf->WriteHTML('<br><br><br>');
     $mpdf->WriteHTML('<h1 align="center">TAHUN ANGGARAN: 2019</h1>');
 
-    $info = new Info("Pemerintah Daerah Provinsi Jawa Barat", "Badan Pengembangan Sumber Daya Manusia Provinsi JawaBarat", "Dr. H. MUHAMMAD SOLIHIN, M.Si <br>
-    196304091989091001");
+    $info = new Info($opd, $satker->nama, $pa);
     $overviewHTML = PaketPDFHelper::generateOverviewHTML($info);
     $mpdf->WriteHTML($overviewHTML);
     // Output a PDF file directly to the browser
@@ -155,14 +138,14 @@ class PaketPDFHelper {
     $mpdf->WriteHTML('<h2>1. Paket Penyedia </h2>');
     // Paket penyedia terumumkan 
     $mpdf->WriteHTML('<h3>1.1. Paket Penyedia Terumumkan</h3>');
-    $pakets = PaketPDFHelper::generatePaketMock();
-    $paketHTML = PaketPDFHelper::generatePaketTable($pakets, "penyedia");
+    // $pakets = PaketPDFHelper::generatePaketMock();
+    $paketHTML = PaketPDFHelper::generatePaketTable($paketPenyedia, "penyedia");
     $mpdf->WriteHTML($paketHTML);
-
+    $mpdf->WriteHTML('<br>');
     // Draft paket penyedia
     $mpdf->WriteHTML('<h3>1.2. Draft Paket Penyedia</h3>');
     // $pakets = PaketPDFHelper::generatePaketMock();
-    $paketHTML = PaketPDFHelper::generatePaketTable($pakets, "penyedia");
+    $paketHTML = PaketPDFHelper::generatePaketTable($paketPenyediaDraf, "penyedia");
     $mpdf->WriteHTML($paketHTML);
 
     $mpdf->AddPage();
@@ -170,14 +153,14 @@ class PaketPDFHelper {
     $mpdf->WriteHTML('<h2>2. Paket Swakelola </h2>');
     // Swakelola terumumkan
     $mpdf->WriteHTML('<h3>2.1. Paket Swakelola Terumumkan</h3>');
-    $pakets = PaketPDFHelper::generatePaketMock();
-    $paketHTML = PaketPDFHelper::generatePaketTable($pakets, "swakelola");
+    // $pakets = PaketPDFHelper::generatePaketMock();
+    $paketHTML = PaketPDFHelper::generatePaketTable($paketSwakelola, "swakelola");
     $mpdf->WriteHTML($paketHTML);
-
+    $mpdf->WriteHTML('<br>');
     // Swakelola terumumkan
     $mpdf->WriteHTML('<h3>2.2. Draft Paket Swakelola</h3>');
-    $pakets = PaketPDFHelper::generatePaketMock();
-    $paketHTML = PaketPDFHelper::generatePaketTable($pakets, "swakelola");
+    // $pakets = PaketPDFHelper::generatePaketMock();
+    $paketHTML = PaketPDFHelper::generatePaketTable($paketSwakelolaDraf, "swakelola");
     $mpdf->WriteHTML($paketHTML);
 
     $mpdf->AddPage();
@@ -185,14 +168,15 @@ class PaketPDFHelper {
     $mpdf->WriteHTML('<h2>3. Paket Penyedia Dalam Swakelola </h2>');
     // Swakelola terumumkan
     $mpdf->WriteHTML('<h3>3.1. Paket Penyedia Dalam Swakelola Terumumkan</h3>');
-    $pakets = PaketPDFHelper::generatePaketMock();
-    $paketHTML = PaketPDFHelper::generatePaketTable($pakets, "penyedia");
+    // $pakets = PaketPDFHelper::generatePaketMock();
+    $paketHTML = PaketPDFHelper::generatePaketTable($paketPenyediaSwakelola, "penyedia");
     $mpdf->WriteHTML($paketHTML);
+    $mpdf->WriteHTML('<br>');
 
     // Swakelola terumumkan
     $mpdf->WriteHTML('<h3>2.2. Draft Paket Penyedia Dalam Swakelola</h3>');
-    $pakets = PaketPDFHelper::generatePaketMock();
-    $paketHTML = PaketPDFHelper::generatePaketTable($pakets, "penyediaa");
+    // $pakets = PaketPDFHelper::generatePaketMock();
+    $paketHTML = PaketPDFHelper::generatePaketTable($paketPenyediaSwakelolaDraf, "penyediaa");
     $mpdf->WriteHTML($paketHTML);
 
     $mpdf->Output();
diff --git a/app/Helper/RekapHelper.php b/app/Helper/RekapHelper.php
index 4c44202fb0e929f4b58f6e2df6377c822708bd65..e494426fdae01fedc9dbd1c69deef558397c297c 100644
--- a/app/Helper/RekapHelper.php
+++ b/app/Helper/RekapHelper.php
@@ -19,7 +19,7 @@ class RekapHelper {
   public static function getPaketPenyediaSummary($kldis){
     $kldiSummary = new RekapSummary(0, 0);
     foreach($kldis as $kldi){
-      $paketKldi = $kldi->getPaket();
+      $paketKldi = $kldi->getPaketPenyedia();
       $summary = RekapHelper::calculatePaketSummary($paketKldi);
       $kldiSummary->sumPagu += $summary->sumPagu;
       $kldiSummary->countPaket += $summary->countPaket;
@@ -27,12 +27,21 @@ class RekapHelper {
     return $kldiSummary;
   }
 
-  public static function getPaketSwakelolaSummary(){
-    $sumPagu = 0;
-    $countPaket = 0;
-    // TODO: CARI PAKET SWAKELOLA
-    $summary = new RekapSummary($sumPagu, $countPaket);
-    return $summary;
+  public static function getPaketSwakelolaSummary($kldis){
+    // $sumPagu = 0;
+    // $countPaket = 0;
+    // // TODO: CARI PAKET SWAKELOLA
+    // $summary = new RekapSummary($sumPagu, $countPaket);
+    // return $summary;
+    $kldiSummary = new RekapSummary(0, 0);
+    foreach($kldis as $kldi){
+      $paketKldi = $kldi->getPaketSwakelola();
+      $summary = RekapHelper::calculatePaketSummary($paketKldi);
+      $kldiSummary->sumPagu += $summary->sumPagu;
+      $kldiSummary->countPaket += $summary->countPaket;
+    }
+    return $kldiSummary;
+    
   }
 
   public static function getSummaryTotal($rekaps){
diff --git a/app/Http/Controllers/Auth/ForgotPasswordController.php b/app/Http/Controllers/Auth/ForgotPasswordController.php
deleted file mode 100644
index 6a247fefd088bae6baae483aa27872517393f5fe..0000000000000000000000000000000000000000
--- a/app/Http/Controllers/Auth/ForgotPasswordController.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-
-namespace App\Http\Controllers\Auth;
-
-use App\Http\Controllers\Controller;
-use Illuminate\Foundation\Auth\SendsPasswordResetEmails;
-
-class ForgotPasswordController extends Controller
-{
-    /*
-    |--------------------------------------------------------------------------
-    | Password Reset Controller
-    |--------------------------------------------------------------------------
-    |
-    | This controller is responsible for handling password reset emails and
-    | includes a trait which assists in sending these notifications from
-    | your application to your users. Feel free to explore this trait.
-    |
-    */
-
-    use SendsPasswordResetEmails;
-
-    /**
-     * Create a new controller instance.
-     *
-     * @return void
-     */
-    public function __construct()
-    {
-        $this->middleware('guest');
-    }
-}
diff --git a/app/Http/Controllers/Auth/LoginController.php b/app/Http/Controllers/Auth/LoginController.php
index b2ea669a0d282114a7875ffe769da416a0c7f18e..191b2b6fe3d413f7b79d13dd40d5e387512f6ff2 100644
--- a/app/Http/Controllers/Auth/LoginController.php
+++ b/app/Http/Controllers/Auth/LoginController.php
@@ -25,7 +25,7 @@ class LoginController extends Controller
      *
      * @var string
      */
-    protected $redirectTo = '/home';
+    protected $redirectTo = '/';
 
     /**
      * Create a new controller instance.
diff --git a/app/Http/Controllers/Auth/RegisterController.php b/app/Http/Controllers/Auth/RegisterController.php
index 85b9057a0eff20766a539ec7a26925aebcd96f92..ebc88fc81af614febe19e9d3c385e583b30cc0c8 100644
--- a/app/Http/Controllers/Auth/RegisterController.php
+++ b/app/Http/Controllers/Auth/RegisterController.php
@@ -2,11 +2,11 @@
 
 namespace App\Http\Controllers\Auth;
 
-use App\User;
 use App\Http\Controllers\Controller;
 use Illuminate\Support\Facades\Hash;
 use Illuminate\Support\Facades\Validator;
 use Illuminate\Foundation\Auth\RegistersUsers;
+use App\Model\User;
 
 class RegisterController extends Controller
 {
@@ -28,7 +28,7 @@ class RegisterController extends Controller
      *
      * @var string
      */
-    protected $redirectTo = '/home';
+    protected $redirectTo = '/';
 
     /**
      * Create a new controller instance.
@@ -67,6 +67,7 @@ class RegisterController extends Controller
             'name' => $data['name'],
             'email' => $data['email'],
             'password' => Hash::make($data['password']),
+            'role' => strtolower($data['role']),
         ]);
     }
 }
diff --git a/app/Http/Controllers/CariPaket/CariPaketController.php b/app/Http/Controllers/CariPaket/CariPaketController.php
new file mode 100644
index 0000000000000000000000000000000000000000..3674cfab7c9d10391237b885e0beabaeb6201412
--- /dev/null
+++ b/app/Http/Controllers/CariPaket/CariPaketController.php
@@ -0,0 +1,100 @@
+<?php
+
+namespace App\Http\Controllers\CariPaket;
+
+use App\Http\Controllers\Controller;
+use App\Model\Penyedia;
+use App\Model\Paket;
+use App\Model\Satker;
+use App\Model\Pengadaan;
+use App\Model\PaketPenyedia;
+use App\Model\PaketPenyediaSwakelola;
+use App\Model\PaketSwakelola;
+use App\Util\CariPaket;
+use Illuminate\Http\Request;
+
+class CariPaketController extends Controller
+{
+
+    public function showAllPaket(){
+      $tahun = [];
+      $jenisP = [];
+      $metodeP = [];
+
+      $paketData = Paket::with(['penyedia', 'kldi', 'satker', 'pengadaan'])
+       ->join('m_penyedia', 'm_penyedia.id', '=', 't_paket_all.m_penyedia_id')
+       ->join('m_satker', 'm_satker.id', '=', 't_paket_all.m_satker_id')
+       ->join('m_pengadaan', 'm_pengadaan.id', '=', 't_paket_all.m_pengadaan_id')
+       ->select('t_paket_all.*', 'm_penyedia.nama as metode', 'm_satker.nama as namaSatker', 'm_pengadaan.nama as jenisPengadaan')   
+       -> get();
+
+      $paketP = PaketPenyedia::with(['penyedia', 'kldi', 'satker', 'pengadaan'])
+      ->join('m_penyedia', 'm_penyedia.id', '=', 't_paket.m_penyedia_id')
+      ->join('m_satker', 'm_satker.id', '=', 't_paket.m_satker_id')
+      ->join('m_pengadaan', 'm_pengadaan.id', '=', 't_paket.m_pengadaan_id')
+      ->select('t_paket.*', 'm_penyedia.nama as metode', 'm_satker.nama as namaSatker', 'm_pengadaan.nama as jenisPengadaan')   
+      -> get();
+
+      $spakets = PaketSwakelola::with(['penyedia', 'kldi', 'satker', 'pengadaan'])
+      ->join('m_penyedia', 'm_penyedia.id', '=', 's_paket.m_penyedia_id')
+      ->join('m_satker', 'm_satker.id', '=', 's_paket.m_satker_id')
+      ->join('m_pengadaan', 'm_pengadaan.id', '=', 's_paket.m_pengadaan_id')
+      ->select('s_paket.*', 'm_penyedia.nama as metode', 'm_satker.nama as namaSatker', 'm_pengadaan.nama as jenisPengadaan')   
+      -> get();
+
+      $spaketpenyedia = PaketPenyediaSwakelola::with(['penyedia', 'kldi', 'satker', 'pengadaan'])
+      ->join('m_penyedia', 'm_penyedia.id', '=', 's_paket_penyedia.m_penyedia_id')
+      ->join('m_satker', 'm_satker.id', '=', 's_paket_penyedia.m_satker_id')
+      ->join('m_pengadaan', 'm_pengadaan.id', '=', 's_paket_penyedia.m_pengadaan_id')
+      ->select('s_paket_penyedia.*', 'm_penyedia.nama as metode', 'm_satker.nama as namaSatker', 'm_pengadaan.nama as jenisPengadaan')   
+      -> get();
+
+      $tahunAnggarans = Paket::distinct()->get(['tahun_anggaran']);
+      foreach($tahunAnggarans as $tahunAnggaran){
+        array_push($tahun, $tahunAnggaran);
+      }
+      
+      $pengadaans = Pengadaan::distinct()->get(['nama']);
+      foreach($pengadaans as $pengadaan){
+        array_push($jenisP, $pengadaan);
+      }
+
+      $metodes = Penyedia::distinct()->get(['nama']);
+      foreach($metodes as $metode){
+        array_push($metodeP, $metode);
+      }
+
+      $data = [];
+
+      // $namaPaket, $pagu, $metodePemilihanPenyedia, $sumberDana
+      foreach ($paketData as $datum) {
+        $paketAll = new CariPaket($datum -> nama, $datum -> pagu, $datum->tahun_anggaran, $datum -> jenisPengadaan,
+                                      $datum -> metode, $datum -> tahun_anggaran, 
+                                      $datum -> m_kldi_id, $datum -> namaSatker, $datum -> lokasi, $datum -> pid);
+        array_push($data, $paketAll);
+      }
+
+      foreach ($paketP as $datum) {
+        $paketPAll = new CariPaket($datum -> nama, $datum -> pagu, $datum->tahun_anggaran, $datum -> jenisPengadaan,
+                                      $datum -> metode, $datum -> tahun_anggaran, 
+                                      $datum -> m_kldi_id, $datum -> namaSatker, $datum -> lokasi, $datum -> pid);
+        array_push($data, $paketPAll);
+      }
+
+      foreach ($spakets as $datum) {
+        $Spaket = new CariPaket($datum -> nama, $datum -> pagu, $datum->tahun_anggaran, $datum -> jenisPengadaan,
+                                      $datum -> metode, $datum -> tahun_anggaran, 
+                                      $datum -> m_kldi_id, $datum -> namaSatker, $datum -> lokasi, $datum -> pid);
+        array_push($data, $Spaket);
+      }
+
+      foreach ($spaketpenyedia as $datum) {
+        $Spaketp = new CariPaket($datum -> nama, $datum -> pagu, $datum->tahun_anggaran, $datum -> jenisPengadaan,
+                                      $datum -> metode, $datum -> tahun_anggaran, 
+                                      $datum -> m_kldi_id, $datum -> namaSatker, $datum -> lokasi, $datum -> pid);
+        array_push($data, $Spaketp);
+      }
+
+      return response()->json(['dataPaket' => $data, 'tahun' => $tahun, 'pengadaan' => $jenisP, 'metode' => $metodeP]);
+    }
+}
diff --git a/app/Http/Controllers/CariPaket/FindPaketController.php b/app/Http/Controllers/CariPaket/FindPaketController.php
new file mode 100644
index 0000000000000000000000000000000000000000..043911a3d09840d6f2b3cf62972f82de63802aa8
--- /dev/null
+++ b/app/Http/Controllers/CariPaket/FindPaketController.php
@@ -0,0 +1,109 @@
+<?php
+
+namespace App\Http\Controllers\CariPaket;
+
+use App\Http\Controllers\Controller;
+use App\Model\Penyedia;
+use App\Model\Paket;
+use App\Model\Satker;
+use App\Model\Pengadaan;
+use App\Model\PaketPenyedia;
+use App\Model\PaketPenyediaSwakelola;
+use App\Model\PaketSwakelola;
+use App\Util\CariPaket;
+use Illuminate\Http\Request;
+
+class FindPaketController extends Controller
+{
+
+    public function findPaket($tahunA, $keyword, $jenisP, $metode){
+      $metodeP = [];
+      $keyword = str_replace('%20', ' ', $keyword);
+      $jenisP = str_replace('%20', ' ', $jenisP);
+      $metode = str_replace('%20', ' ', $metode);
+
+      $paketData = Paket::with(['penyedia', 'kldi', 'satker', 'pengadaan'])
+       ->join('m_penyedia', 'm_penyedia.id', '=', 't_paket_all.m_penyedia_id')
+       ->join('m_satker', 'm_satker.id', '=', 't_paket_all.m_satker_id')
+       ->join('m_pengadaan', 'm_pengadaan.id', '=', 't_paket_all.m_pengadaan_id')
+       ->select('t_paket_all.*', 'm_penyedia.nama as metode', 'm_satker.nama as namaSatker', 'm_pengadaan.nama as jenisPengadaan')   
+       -> get();
+
+      $paketP = PaketPenyedia::with(['penyedia', 'kldi', 'satker', 'pengadaan'])
+      ->join('m_penyedia', 'm_penyedia.id', '=', 't_paket.m_penyedia_id')
+      ->join('m_satker', 'm_satker.id', '=', 't_paket.m_satker_id')
+      ->join('m_pengadaan', 'm_pengadaan.id', '=', 't_paket.m_pengadaan_id')
+      ->select('t_paket.*', 'm_penyedia.nama as metode', 'm_satker.nama as namaSatker', 'm_pengadaan.nama as jenisPengadaan')   
+      -> get();
+
+      $spakets = PaketSwakelola::with(['penyedia', 'kldi', 'satker', 'pengadaan'])
+      ->join('m_penyedia', 'm_penyedia.id', '=', 's_paket.m_penyedia_id')
+      ->join('m_satker', 'm_satker.id', '=', 's_paket.m_satker_id')
+      ->join('m_pengadaan', 'm_pengadaan.id', '=', 's_paket.m_pengadaan_id')
+      ->select('s_paket.*', 'm_penyedia.nama as metode', 'm_satker.nama as namaSatker', 'm_pengadaan.nama as jenisPengadaan')   
+      -> get();
+
+      $spaketpenyedia = PaketPenyediaSwakelola::with(['penyedia', 'kldi', 'satker', 'pengadaan'])
+      ->join('m_penyedia', 'm_penyedia.id', '=', 's_paket_penyedia.m_penyedia_id')
+      ->join('m_satker', 'm_satker.id', '=', 's_paket_penyedia.m_satker_id')
+      ->join('m_pengadaan', 'm_pengadaan.id', '=', 's_paket_penyedia.m_pengadaan_id')
+      ->select('s_paket_penyedia.*', 'm_penyedia.nama as metode', 'm_satker.nama as namaSatker', 'm_pengadaan.nama as jenisPengadaan')   
+      -> get();
+
+      $data = [];
+
+      // $namaPaket, $pagu, $metodePemilihanPenyedia, $sumberDana
+      foreach ($paketData as $datum) {
+        $paketAll = new CariPaket($datum -> nama, $datum -> pagu, $datum->tahun_anggaran, $datum -> jenisPengadaan,
+                                      $datum -> metode, $datum -> tahun_anggaran, 
+                                      $datum -> m_kldi_id, $datum -> namaSatker, $datum -> lokasi, $datum -> pid);
+        array_push($data, $paketAll);
+      }
+
+      foreach ($paketP as $datum) {
+        $paketPAll = new CariPaket($datum -> nama, $datum -> pagu, $datum->tahun_anggaran, $datum -> jenisPengadaan,
+                                      $datum -> metode, $datum -> tahun_anggaran, 
+                                      $datum -> m_kldi_id, $datum -> namaSatker, $datum -> lokasi, $datum -> pid);
+        array_push($data, $paketPAll);
+      }
+
+      foreach ($spakets as $datum) {
+        $Spaket = new CariPaket($datum -> nama, $datum -> pagu, $datum->tahun_anggaran, $datum -> jenisPengadaan,
+                                      $datum -> metode, $datum -> tahun_anggaran, 
+                                      $datum -> m_kldi_id, $datum -> namaSatker, $datum -> lokasi, $datum -> pid);
+        array_push($data, $Spaket);
+      }
+
+      foreach ($spaketpenyedia as $datum) {
+        $Spaketp = new CariPaket($datum -> nama, $datum -> pagu, $datum->tahun_anggaran, $datum -> jenisPengadaan,
+                                      $datum -> metode, $datum -> tahun_anggaran, 
+                                      $datum -> m_kldi_id, $datum -> namaSatker, $datum -> lokasi, $datum -> pid);
+        array_push($data, $Spaketp);
+      }
+      $result = [];
+
+      if (($keyword == '') and ($jenisP == 'Semua') and ($metode == 'Semua')){
+        foreach ($data as $d){
+          if ($d->$tahun == $tahunA){
+            array_push($result, $d);
+          }
+        }
+        return response()->json(['result' => $result]);
+      } else {
+        if ($jenisP == 'Semua'){
+          $jenisP = '';
+        }
+
+        if ($metode == 'Semua'){
+          $metode = '';
+        }
+
+        foreach ($data as $d){
+          if (strpos($d->paket, $keyword) and ($d->$tahun == $tahunA) and strpos($d->$jenisPengadaan,$jenisP) and strpos($d->$metode,$metode))
+            array_push($result, $d);
+        }
+      }
+      
+      return response()->json(['dataPaket' => $result]);
+    }
+}
diff --git a/app/Http/Controllers/CariPaket/ModalCariPaketController.php b/app/Http/Controllers/CariPaket/ModalCariPaketController.php
new file mode 100644
index 0000000000000000000000000000000000000000..50876171332dea1017be57363a6e4f0b427578a3
--- /dev/null
+++ b/app/Http/Controllers/CariPaket/ModalCariPaketController.php
@@ -0,0 +1,103 @@
+<?php
+
+namespace App\Http\Controllers\CariPaket;
+
+
+use App\Http\Controllers\Controller;
+use App\Constants\Links;
+use App\Model\Paket;
+use App\Model\PaketPenyedia;
+use App\Model\PaketSwakelola;
+use App\Model\PaketPenyediaSwakelola;
+use App\Model\Satker;
+use App\Model\KLDI;
+use App\Model\Kota;
+use App\Model\Kabupaten;
+use App\Model\Pengadaan;
+use App\Model\Penyedia;
+use App\Util\CariPaketClass;
+use Illuminate\Http\Request;
+
+class ModalCariPaketController extends Controller
+{
+
+    public function showDetailPaket($id_paket){
+        $paket = Paket:://find($id_paket);
+        where('t_paket_all.pid', $id_paket)
+        ->select('t_paket_all.*')   
+        -> get()->first();
+
+        if(empty($paket)){
+            $paket = PaketPenyedia:://find($id_paket);
+            where('t_paket.pid', $id_paket)
+            ->select('t_paket.*')   
+            -> get()->first();
+        }
+
+        if(empty($paket)){
+            $paket = PaketSwakelola:://find($id_paket);
+            where('s_paket.pid', $id_paket)
+            ->select('s_paket.*')   
+            -> get()->first();  
+        }
+
+        if(empty($paket)){
+            $paket = PaketPenyediaSwakelola:://find($id_paket);
+            where('s_paket_penyedia.pid', $id_paket)
+            ->select('s_paket_penyedia.*')   
+            -> get()->first();   
+        }
+
+        if(!empty($paket)){
+            
+            $satker = Satker::find($paket -> m_satker_id);
+            $kldi = KLDI::find($paket -> m_kldi_id);
+            if ($kldi -> type_id == 1) {
+                $kldiName = 'Pemerintah Daerah Provinsi Jawa Barat';
+                $kota_kabupaten = '-';
+            }
+            else if ($kldi -> type_id == 2) {
+                $kldiName = Kota::where('m_kldi_id', $kldi -> id) -> first() -> nama;
+                $kota_kabupaten = $kldiName;
+            }
+            else if ($kldi -> type_id == 3) {
+                $kldiName = Kabupaten::where('m_kldi_id', $kldi -> id) -> first() -> nama;
+                $kota_kabupaten = $kldiName;
+            }
+            $provinsi = "Jawa Barat";
+            $pengadaanName = Pengadaan::find($paket -> m_pengadaan_id) -> nama;
+            $penyediaName = Penyedia::find($paket -> m_penyedia_id) -> nama;
+
+            // belom ada di db
+            $dalamNegeri = "-";
+            $usahaKecil = "-";
+            $DIPA_DPA = "-";
+            $klpd = $kldiName;
+            $mak = "-";
+            $paguSumberDana = $paket -> pagu;
+            $totalSumberDana = $paket -> pagu;
+            $bulanKebutuhan = $paket -> created_at;
+
+            // create sumber dana
+            $sumberDana["nama"] = $paket -> sumber_dana;
+            $sumberDana["mak"] = $mak;
+            $sumberDana["TA"] = "-";
+            $sumberDana["pagu"] = $paguSumberDana;
+            $sumberDana["klpd"] = $klpd;
+
+            $nama = $paket -> nama;
+            $satkerNama = $satker -> nama;
+            $paketModal = new CariPaketClass($id_paket, $nama, $kldiName, $satkerNama,
+            $paket -> tahun_anggaran, $provinsi, $kota_kabupaten, $paket -> lokasi, $paket -> volume,
+            $paket -> deskripsi, $paket -> d_spesifikasi_teknis, $dalamNegeri, $usahaKecil, $DIPA_DPA,
+            $sumberDana, $totalSumberDana, $pengadaanName, $paket -> pagu, $penyediaName, $bulanKebutuhan,
+            $paket -> d_end_work, $paket -> d_start_work, $paket -> d_end, $paket -> d_start, $paket -> updated_at );  
+        
+                
+            return response()->json(['paket' => $paketModal]);
+
+        }
+            
+
+    }
+}
diff --git a/app/Http/Controllers/PemdaPenyedia/PemdaPenyediaKabupatenController.php b/app/Http/Controllers/PemdaPenyedia/PemdaPenyediaKabupatenController.php
index f9df10ed35f223a8128b60fae42f15e1f1926911..4db97a110c27c16516acd0fc812dae879d83fe95 100644
--- a/app/Http/Controllers/PemdaPenyedia/PemdaPenyediaKabupatenController.php
+++ b/app/Http/Controllers/PemdaPenyedia/PemdaPenyediaKabupatenController.php
@@ -4,7 +4,7 @@ namespace App\Http\Controllers\PemdaPenyedia;
 
 use App\Http\Controllers\Controller;
 use App\Model\Penyedia;
-use App\Model\Paket;
+use App\Model\PaketPenyedia;
 use App\Model\Type;
 use App\Model\KLDI;
 use App\Model\Satker;
@@ -38,7 +38,7 @@ class PemdaPenyediaKabupatenController extends Controller
             $typeID = $type -> id;
         }
 
-        $paketData = Paket::with(['penyedia', 'kldi'])
+        $paketData = PaketPenyedia::with(['penyedia', 'kldi'])
         ->join('m_penyedia', 'm_penyedia.id', '=', 't_paket.m_penyedia_id')
         ->join('m_kldi', 'm_kldi.id', '=', 't_paket.m_kldi_id')
         ->where('m_kldi.type_id', $typeID)
@@ -60,7 +60,7 @@ class PemdaPenyediaKabupatenController extends Controller
                 $satkerName = $satker -> nama;
             }
 
-            $paketPenyediaKabupaten = new PemdaPenyediaDaerah($satkerName, $datum -> nama, $datum -> pagu,
+            $paketPenyediaKabupaten = new PemdaPenyediaDaerah($datum -> id, $satkerName, $datum -> nama, $datum -> pagu,
                                                         $datum -> metode, $datum -> sumber_dana);
             array_push($data, $paketPenyediaKabupaten);
         }
diff --git a/app/Http/Controllers/PemdaPenyedia/PemdaPenyediaKotaController.php b/app/Http/Controllers/PemdaPenyedia/PemdaPenyediaKotaController.php
index 612972e6390381889d312fe9ea5bec27ea5796f1..b92cb45d1d3f10e682f816411c3a51af4cec9416 100644
--- a/app/Http/Controllers/PemdaPenyedia/PemdaPenyediaKotaController.php
+++ b/app/Http/Controllers/PemdaPenyedia/PemdaPenyediaKotaController.php
@@ -4,7 +4,7 @@ namespace App\Http\Controllers\PemdaPenyedia;
 
 use App\Http\Controllers\Controller;
 use App\Model\Penyedia;
-use App\Model\Paket;
+use App\Model\PaketPenyedia;
 use App\Model\Type;
 use App\Model\KLDI;
 use App\Model\Satker;
@@ -19,10 +19,10 @@ class PemdaPenyediaKotaController extends Controller
         // join
 
         // get kode kldi kota
+        $kotaName = '';
         $kota = Kota::find($id_kota);
         if (empty($kota)) {
             $kldi = 0;
-            $kotaName = '';
          }
          else {
             $kldi = $kota -> m_kldi_id;
@@ -38,7 +38,7 @@ class PemdaPenyediaKotaController extends Controller
             $typeID = $type -> id;
         }
 
-        $paketData = Paket::with(['penyedia', 'kldi'])
+        $paketData = PaketPenyedia::with(['penyedia', 'kldi'])
         ->join('m_penyedia', 'm_penyedia.id', '=', 't_paket.m_penyedia_id')
         ->join('m_kldi', 'm_kldi.id', '=', 't_paket.m_kldi_id')
         ->where('m_kldi.type_id', $typeID)
@@ -52,19 +52,17 @@ class PemdaPenyediaKotaController extends Controller
         foreach ($paketData as $datum) {
             // get nama satker
             $satker = Satker::find($datum -> m_satker_id);
-
-            if (empty($satker)) {
-                $satkerName = '';
-            }
-            else {
+            
+            $satkerName = '';
+            if (!empty($satker)) {
                 $satkerName = $satker -> nama;
             }
 
-            $paketPenyediaKota = new PemdaPenyediaDaerah($satkerName, $datum -> nama, $datum -> pagu,
+            $paketPenyediaKota = new PemdaPenyediaDaerah($datum -> id, $satkerName, $datum -> nama, $datum -> pagu,
                                                         $datum -> metode, $datum -> sumber_dana);
             array_push($data, $paketPenyediaKota);
         }
 
-        return response()->json(['paketPenyedia' => $data, 'title'=> $satkerName]);
+        return response()->json(['paketPenyedia' => $data, 'title'=> $kotaName]);
     }
 }
diff --git a/app/Http/Controllers/PemdaPenyedia/PemdaPenyediaProvinsiController.php b/app/Http/Controllers/PemdaPenyedia/PemdaPenyediaProvinsiController.php
index 5e8fd4c56e9181285e48099569721a4aa1b8f0a6..4c0cf3dc9eafdbc5e0bcb424f5c9c40ec5bb1ac5 100644
--- a/app/Http/Controllers/PemdaPenyedia/PemdaPenyediaProvinsiController.php
+++ b/app/Http/Controllers/PemdaPenyedia/PemdaPenyediaProvinsiController.php
@@ -4,7 +4,7 @@ namespace App\Http\Controllers\PemdaPenyedia;
 
 use App\Http\Controllers\Controller;
 use App\Model\Penyedia;
-use App\Model\Paket;
+use App\Model\PaketPenyedia;
 use App\Model\Type;
 use App\Model\KLDI;
 use App\Model\Satker;
@@ -27,7 +27,7 @@ class PemdaPenyediaProvinsiController extends Controller
             $typeID = $type -> id;
         }
 
-        $paketData = Paket::with(['penyedia', 'kldi'])
+        $paketData = PaketPenyedia::with(['penyedia', 'kldi'])
         ->join('m_penyedia', 'm_penyedia.id', '=', 't_paket.m_penyedia_id')
         ->join('m_kldi', 'm_kldi.id', '=', 't_paket.m_kldi_id')
         ->where('m_kldi.type_id', $typeID)
@@ -48,7 +48,7 @@ class PemdaPenyediaProvinsiController extends Controller
                 $satkerName = $satker -> nama;
             }
             
-            $paketPenyediaProvinsi = new PemdaPenyediaDaerah($satkerName, $datum -> nama, $datum -> pagu,
+            $paketPenyediaProvinsi = new PemdaPenyediaDaerah($datum -> id, $satkerName, $datum -> nama, $datum -> pagu,
                                                         $datum -> metode, $datum -> sumber_dana);
             array_push($data, $paketPenyediaProvinsi);
         }
diff --git a/app/Http/Controllers/PemdaPenyediaSwakelola/PemdaPenyediaSwakelolaKabupatenController.php b/app/Http/Controllers/PemdaPenyediaSwakelola/PemdaPenyediaSwakelolaKabupatenController.php
index 787b1ddff9edd362628b5ffcee0d18196dbdb1cf..b929c78b403f7bc00886952c7fcd7ca302b2fa9f 100644
--- a/app/Http/Controllers/PemdaPenyediaSwakelola/PemdaPenyediaSwakelolaKabupatenController.php
+++ b/app/Http/Controllers/PemdaPenyediaSwakelola/PemdaPenyediaSwakelolaKabupatenController.php
@@ -1,15 +1,67 @@
 <?php
 
-namespace App\Http\Controllers\PemdaSwakelola;
+namespace App\Http\Controllers\PemdaPenyediaSwakelola;
 
 use App\Http\Controllers\Controller;
-use App\Util\PemdaSwakelolaDaerah;
+use App\Util\PemdaPenyediaSwakelolaDaerah;
+use App\Model\PaketPenyediaSwakelola;
+use App\Model\KLDI;
+use App\Model\Type;
+use App\Model\Penyedia;
+use App\Model\Satker;
+use App\Model\Kabupaten;
 use Illuminate\Http\Request;
 
-class PemdaSwakelolaKabupatenController extends Controller
+class PemdaPenyediaSwakelolaKabupatenController extends Controller
 {
 
     public function showKabupaten($id_kabupaten){
-        return view('pemdaPenyediaSwakelola.pemdaKabupaten');
+        $kabupaten = Kabupaten::find($id_kabupaten);
+        if (empty($kabupaten)) {
+            $kldi = 0;
+            $kabupatenName = '';
+         }
+         else {
+            $kldi = $kabupaten -> m_kldi_id;
+            $kabupatenName = $kabupaten -> nama;
+         }
+
+        // get type kabupaten
+        $type = Type::where('name', 'Kabupaten') -> first();
+
+        $typeID = 0;
+
+        if (!empty($type)) {
+            $typeID = $type -> id;
+        }
+
+        $paketData = PaketPenyediaSwakelola::with(['penyedia', 'kldi'])
+        ->join('m_penyedia', 'm_penyedia.id', '=', 's_paket_penyedia.m_penyedia_id')
+        ->join('m_kldi', 'm_kldi.id', '=', 's_paket_penyedia.m_kldi_id')
+        ->where('m_kldi.type_id', $typeID)
+        ->where('m_kldi.id', $kldi)
+        ->select('s_paket_penyedia.*', 'm_penyedia.nama as metode')   
+        -> get();
+
+        $data = [];
+        
+        // $satuanKerja, $namaPaket, $pagu, $metodePemilihanPenyedia, $sumberDana
+        foreach ($paketData as $datum) {
+            // get nama satker
+            $satker = Satker::find($datum -> m_satker_id);
+
+            if (empty($satker)) {
+                $satkerName = '';
+            }
+            else {
+                $satkerName = $satker -> nama;
+            }
+
+            $paketSwakelolaKabupaten = new PemdaPenyediaSwakelolaDaerah($datum -> id, $satkerName, $datum -> nama, $datum -> pagu,
+                                        $datum->tahun_anggaran, $datum -> metode, $datum -> sumber_dana);
+            array_push($data, $paketSwakelolaKabupaten);
+        }
+
+        return response()->json(['paket' => $data, 'title'=> $kabupatenName]);
     }
 }
diff --git a/app/Http/Controllers/PemdaPenyediaSwakelola/PemdaPenyediaSwakelolaKotaController.php b/app/Http/Controllers/PemdaPenyediaSwakelola/PemdaPenyediaSwakelolaKotaController.php
index 9b8888a04e1aa88171a41e2f844144f4f4c3d401..8cbc478edd7c05034abef5c44c317a2591e634f0 100644
--- a/app/Http/Controllers/PemdaPenyediaSwakelola/PemdaPenyediaSwakelolaKotaController.php
+++ b/app/Http/Controllers/PemdaPenyediaSwakelola/PemdaPenyediaSwakelolaKotaController.php
@@ -1,16 +1,69 @@
 <?php
 
-namespace App\Http\Controllers\PemdaSwakelola;
+namespace App\Http\Controllers\PemdaPenyediaSwakelola;
 
 use App\Http\Controllers\Controller;
-use App\Util\PemdaSwakelolaDaerah;
+use App\Util\PemdaPenyediaSwakelolaDaerah;
+use App\Model\PaketPenyediaSwakelola;
+use App\Model\KLDI;
+use App\Model\Type;
+use App\Model\Penyedia;
+use App\Model\Satker;
+use App\Model\Provinsi;
+use App\Model\Kota;
 use Illuminate\Http\Request;
 
-class PemdaSwakelolaKotaController extends Controller
+class PemdaPenyediaSwakelolaKotaController extends Controller
 {
 
     public function showKota($id_kota){
 
-        return view('pemdaPenyediaSwakelola.pemdaKota');
+        $kotaName = '';
+        $kota = Kota::find($id_kota);
+        if (empty($kota)) {
+            $kldi = 0;
+        }
+        else {
+            $kldi = $kota -> m_kldi_id;
+            $kotaName = $kota -> nama;
+        }
+
+        // get type kota
+        $type = Type::where('name', 'Kota') -> first();
+
+        $typeID = 0;
+
+        if (!empty($type)) {
+            $typeID = $type -> id;
+        }
+
+        $paketData = PaketPenyediaSwakelola::with(['penyedia', 'kldi'])
+        ->join('m_penyedia', 'm_penyedia.id', '=', 's_paket_penyedia.m_penyedia_id')
+        ->join('m_kldi', 'm_kldi.id', '=', 's_paket_penyedia.m_kldi_id')
+        ->where('m_kldi.type_id', $typeID)
+        ->where('m_kldi.id', $kldi)
+        ->select('s_paket_penyedia.*', 'm_penyedia.nama as metode')   
+        -> get();
+
+        $data = [];
+        
+        // $satuanKerja, $namaPaket, $pagu, $metodePemilihanPenyedia, $sumberDana
+        foreach ($paketData as $datum) {
+            // get nama satker
+            $satker = Satker::find($datum -> m_satker_id);
+
+            if (empty($satker)) {
+                $satkerName = '';
+            }
+            else {
+                $satkerName = $satker -> nama;
+            }
+
+            $paketSwakelolaKota = new PemdaPenyediaSwakelolaDaerah($datum -> id, $satkerName, $datum -> nama, $datum -> pagu,
+                                        $datum->tahun_anggaran, $datum -> metode, $datum -> sumber_dana);
+            array_push($data, $paketSwakelolaKota);
+        }
+
+        return response()->json(['paket' => $data, 'title'=> $kotaName]);
     }
 }
diff --git a/app/Http/Controllers/PemdaPenyediaSwakelola/PemdaPenyediaSwakelolaProvinsiController.php b/app/Http/Controllers/PemdaPenyediaSwakelola/PemdaPenyediaSwakelolaProvinsiController.php
index deb0cf23ee2c6fa62e3a47fbdca75f44b5d4cfbf..be64ce72408c0a21518731698b4984f39c5daf5b 100644
--- a/app/Http/Controllers/PemdaPenyediaSwakelola/PemdaPenyediaSwakelolaProvinsiController.php
+++ b/app/Http/Controllers/PemdaPenyediaSwakelola/PemdaPenyediaSwakelolaProvinsiController.php
@@ -1,16 +1,71 @@
 <?php
 
-namespace App\Http\Controllers\PemdaSwakelola;
+namespace App\Http\Controllers\PemdaPenyediaSwakelola;
 
 use App\Http\Controllers\Controller;
-use App\Util\PemdaSwakelolaDaerah;
+use App\Util\PemdaPenyediaSwakelolaDaerah;
+use App\Model\PaketPenyediaSwakelola;
+use App\Model\KLDI;
+use App\Model\Type;
+use App\Model\Penyedia;
+use App\Model\Satker;
+use App\Model\Provinsi;
 use Illuminate\Http\Request;
 
-class PemdaSwakelolaProvinsiController extends Controller
+class PemdaPenyediaSwakelolaProvinsiController extends Controller
 {
 
     public function showProvinsi(){
+        $type = Type::where('name', 'Provinsi') -> first();
 
-        return view('pemdaPenyediaSwakelola.pemdaProvinsi');
+        $typeID = 0;
+
+        if (!empty($type)) {
+            $typeID = $type -> id;
+        }
+
+        $paketData = PaketPenyediaSwakelola::with(['penyedia', 'kldi'])
+        ->join('m_penyedia', 'm_penyedia.id', '=', 's_paket_penyedia.m_penyedia_id')
+        ->join('m_kldi', 'm_kldi.id', '=', 's_paket_penyedia.m_kldi_id')
+        ->where('m_kldi.type_id', $typeID)
+        ->select('s_paket_penyedia.*', 'm_penyedia.nama as metode')   
+        -> get();
+
+        $data = [];
+        
+        // $satuanKerja, $namaPaket, $pagu, $metodePemilihanPenyedia, $sumberDana
+        foreach ($paketData as $datum) {
+            // get nama satker
+            $satker = Satker::find($datum -> m_satker_id);
+
+            if (empty($satker)) {
+                $satkerName = '';
+            }
+            else {
+                $satkerName = $satker -> nama;
+            }
+            
+            $paketPenyediaSwakelolaProvinsi = new PemdaPenyediaSwakelolaDaerah($datum -> id, $satkerName, $datum -> nama, $datum -> pagu,
+                                                        $datum->tahun_anggaran, $datum -> metode, $datum -> sumber_dana);
+            array_push($data, $paketPenyediaSwakelolaProvinsi);
+        }
+
+        // get nama provinsi
+        $kldi = KLDI::where('type_id', $typeID) -> first();
+
+        if (empty($kldi)) {
+            $provinsiName = '';
+        }
+        else {
+        $provinsi = Provinsi::where('m_kldi_id', $kldi -> id) -> first();
+        if (empty($provinsi)) {
+            $provinsiName = '';
+        }
+        else {
+            $provinsiName = $provinsi -> nama;
+        }
+        }
+
+        return response()->json(['paket' => $data, 'title'=> $satkerName]);
     }
 }
diff --git a/app/Http/Controllers/PemdaSwakelola/PemdaSwakelolaKabupatenController.php b/app/Http/Controllers/PemdaSwakelola/PemdaSwakelolaKabupatenController.php
index df1b5e6ebb5fb46ee377b1c502328334111a81a3..d75706f43f6fb0869482004f5f2629b7e7f222f5 100644
--- a/app/Http/Controllers/PemdaSwakelola/PemdaSwakelolaKabupatenController.php
+++ b/app/Http/Controllers/PemdaSwakelola/PemdaSwakelolaKabupatenController.php
@@ -3,6 +3,11 @@
 namespace App\Http\Controllers\PemdaSwakelola;
 
 use App\Http\Controllers\Controller;
+use App\Model\PaketSwakelola;
+use App\Model\Type;
+use App\Model\KLDI;
+use App\Model\Satker;
+use App\Model\Kabupaten;
 use App\Util\PemdaSwakelolaDaerah;
 use Illuminate\Http\Request;
 
@@ -11,45 +16,50 @@ class PemdaSwakelolaKabupatenController extends Controller
 
     public function showKabupaten($id_kabupaten){
 
-        $data = Array (
-            "0" => Array (
-                "no" => "1",
-                "satuanKerja" => "BIRO HUKUM DAN HAM SETDA PROVINSI JAWA BARAT",
-                "kegiatan" => "Pemberdayaan Jaringan Dokumentasi dan Informasi Hukum",
-                "pagu" => "356.500.000",
-                "sumberDana" => "APBD"
-            ),
-            "1" => Array (
-                "no" => "2",
-                "satuanKerja" => "DINAS PERHUBUNGAN PROVINSI JAWA BARAT",
-                "kegiatan" => "Kegiatan Pengelolaaan Website Dinas Perhubungan Provinsi Jawa Barat",
-                "pagu" => "161.200.000",
-                "sumberDana" => "APBD"
-            ),
-            "2" => Array (
-                "no" => "3",
-                "satuanKerja" => "DINAS PERHUBUNGAN PROVINSI JAWA BARAT",
-                "kegiatan" => "Swakelola Kegiatan Revitalisasi Sarana Dan Prasarana Terminal Tipe B di Wilayah IV",
-                "pagu" => "14.900.000",
-                "sumberDana" => "APBD"
-            ),
-            "3" => Array (
-                "no" => "4",
-                "satuanKerja" => "DINAS PERHUBUNGAN PROVINSI JAWA BARAT",
-                "kegiatan" => "Swakelola Kegiatan Penyediaan Pemeliharaan Kendaraan Dinas UPTD Pengelolaan Prasarana Perhubungan LLAJ Wilayah IV",
-                "pagu" => "200.198.000",
-                "sumberDana" => "APBD"
-            ),
-            "4" => Array (
-                "no" => "5",
-                "satuanKerja" => "DINAS PERHUBUNGAN PROVINSI JAWA BARAT",
-                "kegiatan" => "Swakelola Kegiatan Penyediaan Jasa Keamanan dan Kebersihan UPTD Pengelolaan Prasarana Perhubungan Wilayah IV",
-                "pagu" => "683.266.403",
-                "sumberDana" => "APBD"
-            )
-        );
+        $kabupaten = Kabupaten::find($id_kabupaten);
+        if (empty($kabupaten)) {
+            $kldi = 0;
+            $kabupatenName = '';
+         }
+         else {
+            $kldi = $kabupaten -> m_kldi_id;
+            $kabupatenName = $kabupaten -> nama;
+         }
+
+        // get type kabupaten
+        $type = Type::where('name', 'Kabupaten') -> first();
+
+        $typeID = 0;
+
+        if (!empty($type)) {
+            $typeID = $type -> id;
+        }
+
+        $paketData = PaketSwakelola::
+        join('m_kldi', 'm_kldi.id', '=', 's_paket.m_kldi_id')
+        ->where('m_kldi.type_id', $typeID)
+        ->where('m_kldi.id', $kldi)
+        ->select('s_paket.*')   
+        -> get();
+
+        $data = [];
         
-        $kabupatenName = "BANDUNG";
+        // $satuanKerja, $namaPaket, $pagu, $metodePemilihanPenyedia, $sumberDana
+        foreach ($paketData as $datum) {
+            // get nama satker
+            $satker = Satker::find($datum -> m_satker_id);
+
+            if (empty($satker)) {
+                $satkerName = '';
+            }
+            else {
+                $satkerName = $satker -> nama;
+            }
+
+            $paketSwakelolaKabupaten = new PemdaSwakelolaDaerah($datum -> id, $satkerName, $datum -> nama, $datum -> pagu,
+                                                        $datum -> sumber_dana);
+            array_push($data, $paketSwakelolaKabupaten);
+        }
 
         return response()->json(['paketSwakelola' => $data, 'subtitle'=> $kabupatenName]);
     }
diff --git a/app/Http/Controllers/PemdaSwakelola/PemdaSwakelolaKotaController.php b/app/Http/Controllers/PemdaSwakelola/PemdaSwakelolaKotaController.php
index 5fccd7a67a7f0b7324d146773ca57e50de667bba..d4bc1bca0656ab7abe722e215674ce4c7c347a90 100644
--- a/app/Http/Controllers/PemdaSwakelola/PemdaSwakelolaKotaController.php
+++ b/app/Http/Controllers/PemdaSwakelola/PemdaSwakelolaKotaController.php
@@ -3,53 +3,66 @@
 namespace App\Http\Controllers\PemdaSwakelola;
 
 use App\Http\Controllers\Controller;
+use App\Model\PaketSwakelola;
+use App\Model\Type;
+use App\Model\KLDI;
+use App\Model\Satker;
+use App\Model\Kota;
 use App\Util\PemdaSwakelolaDaerah;
 use Illuminate\Http\Request;
 
+
 class PemdaSwakelolaKotaController extends Controller
 {
 
     public function showKota($id_kota){
 
-        $data = Array (
-            "0" => Array (
-                "no" => "1",
-                "satuanKerja" => "BIRO HUKUM DAN HAM SETDA PROVINSI JAWA BARAT",
-                "kegiatan" => "Pemberdayaan Jaringan Dokumentasi dan Informasi Hukum",
-                "pagu" => "356.500.000",
-                "sumberDana" => "APBD"
-            ),
-            "1" => Array (
-                "no" => "2",
-                "satuanKerja" => "DINAS PERHUBUNGAN PROVINSI JAWA BARAT",
-                "kegiatan" => "Kegiatan Pengelolaaan Website Dinas Perhubungan Provinsi Jawa Barat",
-                "pagu" => "161.200.000",
-                "sumberDana" => "APBD"
-            ),
-            "2" => Array (
-                "no" => "3",
-                "satuanKerja" => "DINAS PERHUBUNGAN PROVINSI JAWA BARAT",
-                "kegiatan" => "Swakelola Kegiatan Revitalisasi Sarana Dan Prasarana Terminal Tipe B di Wilayah IV",
-                "pagu" => "14.900.000",
-                "sumberDana" => "APBD"
-            ),
-            "3" => Array (
-                "no" => "4",
-                "satuanKerja" => "DINAS PERHUBUNGAN PROVINSI JAWA BARAT",
-                "kegiatan" => "Swakelola Kegiatan Penyediaan Pemeliharaan Kendaraan Dinas UPTD Pengelolaan Prasarana Perhubungan LLAJ Wilayah IV",
-                "pagu" => "200.198.000",
-                "sumberDana" => "APBD"
-            ),
-            "4" => Array (
-                "no" => "5",
-                "satuanKerja" => "DINAS PERHUBUNGAN PROVINSI JAWA BARAT",
-                "kegiatan" => "Swakelola Kegiatan Penyediaan Jasa Keamanan dan Kebersihan UPTD Pengelolaan Prasarana Perhubungan Wilayah IV",
-                "pagu" => "683.266.403",
-                "sumberDana" => "APBD"
-            )
-        );
+        // get kode kldi kota
+        $kotaName = '';
+        $kota = Kota::find($id_kota);
+        if (empty($kota)) {
+            $kldi = 0;
+         }
+         else {
+            $kldi = $kota -> m_kldi_id;
+            $kotaName = $kota -> nama;
+         }
+
+        // get type kota
+        $type = Type::where('name', 'Kota') -> first();
+
+        $typeID = 0;
+
+        if (!empty($type)) {
+            $typeID = $type -> id;
+        }
+
+        $paketData = PaketSwakelola::
+        join('m_kldi', 'm_kldi.id', '=', 's_paket.m_kldi_id')
+        ->where('m_kldi.type_id', $typeID)
+        ->where('m_kldi.id', $kldi)
+        ->select('s_paket.*')   
+        -> get();
+
+        $data = [];
         
-        $kotaName = "BANDUNG";
+        // $satuanKerja, $namaPaket, $pagu, $metodePemilihanPenyedia, $sumberDana
+        foreach ($paketData as $datum) {
+            // get nama satker
+            $satker = Satker::find($datum -> m_satker_id);
+
+            if (empty($satker)) {
+                $satkerName = '';
+            }
+            else {
+                $satkerName = $satker -> nama;
+            }
+
+            $paketSwakelolaKota = new PemdaSwakelolaDaerah($datum -> id, $satkerName, $datum -> nama, $datum -> pagu,
+                                                        $datum -> sumber_dana);
+            array_push($data, $paketSwakelolaKota);
+        }
+
 
         return response()->json(['paketSwakelola' => $data, 'subtitle'=> $kotaName]);
     }
diff --git a/app/Http/Controllers/PemdaSwakelola/PemdaSwakelolaProvinsiController.php b/app/Http/Controllers/PemdaSwakelola/PemdaSwakelolaProvinsiController.php
index e690359025a2fdec4240e5bbabbd343e0ff22582..12a3097d0ea80962f8eb0f76792e5e5a62f119d7 100644
--- a/app/Http/Controllers/PemdaSwakelola/PemdaSwakelolaProvinsiController.php
+++ b/app/Http/Controllers/PemdaSwakelola/PemdaSwakelolaProvinsiController.php
@@ -3,54 +3,68 @@
 namespace App\Http\Controllers\PemdaSwakelola;
 
 use App\Http\Controllers\Controller;
+use App\Model\PaketSwakelola;
+use App\Model\Type;
+use App\Model\KLDI;
+use App\Model\Satker;
+use App\Model\Provinsi;
 use App\Util\PemdaSwakelolaDaerah;
 use Illuminate\Http\Request;
 
+
 class PemdaSwakelolaProvinsiController extends Controller
 {
 
     public function showProvinsi(){
 
-        $data = Array (
-            "0" => Array (
-                "no" => "1",
-                "satuanKerja" => "BIRO HUKUM DAN HAM SETDA PROVINSI JAWA BARAT",
-                "kegiatan" => "Pemberdayaan Jaringan Dokumentasi dan Informasi Hukum",
-                "pagu" => "356.500.000",
-                "sumberDana" => "APBD"
-            ),
-            "1" => Array (
-                "no" => "2",
-                "satuanKerja" => "DINAS PERHUBUNGAN PROVINSI JAWA BARAT",
-                "kegiatan" => "Kegiatan Pengelolaaan Website Dinas Perhubungan Provinsi Jawa Barat",
-                "pagu" => "161.200.000",
-                "sumberDana" => "APBD"
-            ),
-            "2" => Array (
-                "no" => "3",
-                "satuanKerja" => "DINAS PERHUBUNGAN PROVINSI JAWA BARAT",
-                "kegiatan" => "Swakelola Kegiatan Revitalisasi Sarana Dan Prasarana Terminal Tipe B di Wilayah IV",
-                "pagu" => "14.900.000",
-                "sumberDana" => "APBD"
-            ),
-            "3" => Array (
-                "no" => "4",
-                "satuanKerja" => "DINAS PERHUBUNGAN PROVINSI JAWA BARAT",
-                "kegiatan" => "Swakelola Kegiatan Penyediaan Pemeliharaan Kendaraan Dinas UPTD Pengelolaan Prasarana Perhubungan LLAJ Wilayah IV",
-                "pagu" => "200.198.000",
-                "sumberDana" => "APBD"
-            ),
-            "4" => Array (
-                "no" => "5",
-                "satuanKerja" => "DINAS PERHUBUNGAN PROVINSI JAWA BARAT",
-                "kegiatan" => "Swakelola Kegiatan Penyediaan Jasa Keamanan dan Kebersihan UPTD Pengelolaan Prasarana Perhubungan Wilayah IV",
-                "pagu" => "683.266.403",
-                "sumberDana" => "APBD"
-            )
-        );
+        // get type provinsi
+        $type = Type::where('name', 'Provinsi') -> first();
+
+        $typeID = 0;
+
+        if (!empty($type)) {
+            $typeID = $type -> id;
+        }
+
+        $paketData = PaketSwakelola::
+        join('m_kldi', 'm_kldi.id', '=', 's_paket.m_kldi_id')
+        ->where('m_kldi.type_id', $typeID)
+        ->select('s_paket.*')   
+        -> get();
+
+        $data = [];
         
-        $provinsiName = "JAWA BARAT";
+        // $satuanKerja, $namaPaket, $pagu, $metodePemilihanPenyedia, $sumberDana
+        foreach ($paketData as $datum) {
+            // get nama satker
+            $satker = Satker::find($datum -> m_satker_id);
+
+            if (empty($satker)) {
+                $satkerName = '';
+            }
+            else {
+                $satkerName = $satker -> nama;
+            }
+            
+            $paketSwakelolaProvinsi = new PemdaSwakelolaDaerah($datum -> id, $satkerName, $datum -> nama, $datum -> pagu, $datum -> sumber_dana);
+            array_push($data, $paketSwakelolaProvinsi);
+        }
+
+        // get nama provinsi
+         $kldi = KLDI::where('type_id', $typeID) -> first();
 
+         if (empty($kldi)) {
+             $provinsiName = '';
+         }
+         else {
+            $provinsi = Provinsi::where('m_kldi_id', $kldi -> id) -> first();
+            if (empty($provinsi)) {
+                $provinsiName = '';
+            }
+            else {
+                $provinsiName = $provinsi -> nama;
+            }
+         }
         return response()->json(['paketSwakelola' => $data, 'subtitle'=> $provinsiName]);
     }
 }
diff --git a/app/Http/Controllers/Penyedia/PenyediaKabupatenController.php b/app/Http/Controllers/Penyedia/PenyediaKabupatenController.php
index 42268d7936f44423924111d60c14e48efc6ea142..5ab7b53a90185c54986798db4fa31488b3314929 100644
--- a/app/Http/Controllers/Penyedia/PenyediaKabupatenController.php
+++ b/app/Http/Controllers/Penyedia/PenyediaKabupatenController.php
@@ -4,7 +4,7 @@ namespace App\Http\Controllers\Penyedia;
 
 use App\Http\Controllers\Controller;
 use App\Model\Penyedia;
-use App\Model\Paket;
+use App\Model\PaketPenyedia;
 use App\Model\Satker;
 use App\Model\Kabupaten;
 use App\Util\PenyediaDaerah;
@@ -25,7 +25,7 @@ class PenyediaKabupatenController extends Controller
             $kldi = $kabupaten -> m_kldi_id;
          }
 
-         $paketData = Paket::with(['penyedia', 'kldi'])
+         $paketData = PaketPenyedia::with(['penyedia', 'kldi'])
          ->join('m_penyedia', 'm_penyedia.id', '=', 't_paket.m_penyedia_id')
          ->join('m_satker', 'm_satker.id', '=', 't_paket.m_satker_id')
          ->where('t_paket.m_satker_id', $id_satker)
@@ -37,7 +37,7 @@ class PenyediaKabupatenController extends Controller
         
         // $namaPaket, $pagu, $metodePemilihanPenyedia, $sumberDana
         foreach ($paketData as $datum) {
-            $paketPenyediaKabupaten = new PenyediaDaerah($datum -> nama, $datum -> pagu,
+            $paketPenyediaKabupaten = new PenyediaDaerah($datum -> id, $datum -> nama, $datum -> pagu,
                                                         $datum -> metode, $datum -> sumber_dana);
             array_push($data, $paketPenyediaKabupaten);
         }
diff --git a/app/Http/Controllers/Penyedia/PenyediaKotaController.php b/app/Http/Controllers/Penyedia/PenyediaKotaController.php
index 34a8e9e529fb343bdee4b2a0fafe7b4ded90eb8a..db8f74df4c87b8c760e84637e4634f2682530da0 100644
--- a/app/Http/Controllers/Penyedia/PenyediaKotaController.php
+++ b/app/Http/Controllers/Penyedia/PenyediaKotaController.php
@@ -4,7 +4,7 @@ namespace App\Http\Controllers\Penyedia;
 
 use App\Http\Controllers\Controller;
 use App\Model\Penyedia;
-use App\Model\Paket;
+use App\Model\PaketPenyedia;
 use App\Model\Satker;
 use App\Model\Kota;
 use App\Util\PenyediaDaerah;
@@ -25,7 +25,7 @@ class PenyediaKotaController extends Controller
             $kldi = $kota -> m_kldi_id;
          }
 
-         $paketData = Paket::with(['penyedia', 'kldi'])
+         $paketData = PaketPenyedia::with(['penyedia', 'kldi'])
          ->join('m_penyedia', 'm_penyedia.id', '=', 't_paket.m_penyedia_id')
          ->join('m_satker', 'm_satker.id', '=', 't_paket.m_satker_id')
          ->where('t_paket.m_satker_id', $id_satker)
@@ -37,7 +37,7 @@ class PenyediaKotaController extends Controller
         
         // $namaPaket, $pagu, $metodePemilihanPenyedia, $sumberDana
         foreach ($paketData as $datum) {
-            $paketPenyediaKota = new PenyediaDaerah($datum -> nama, $datum -> pagu,
+            $paketPenyediaKota = new PenyediaDaerah($datum -> id, $datum -> nama, $datum -> pagu,
                                                         $datum -> metode, $datum -> sumber_dana);
             array_push($data, $paketPenyediaKota);
         }
diff --git a/app/Http/Controllers/Penyedia/PenyediaModalController.php b/app/Http/Controllers/Penyedia/PenyediaModalController.php
new file mode 100644
index 0000000000000000000000000000000000000000..1a269843bc2cfdfe7ad431f659c9eb7259bfe622
--- /dev/null
+++ b/app/Http/Controllers/Penyedia/PenyediaModalController.php
@@ -0,0 +1,67 @@
+<?php
+
+namespace App\Http\Controllers\Penyedia;
+
+use App\Http\Controllers\Controller;
+use App\Constants\Links;
+use App\Model\PaketPenyedia;
+use App\Model\Satker;
+use App\Model\KLDI;
+use App\Model\Kota;
+use App\Model\Kabupaten;
+use App\Model\Pengadaan;
+use App\Model\Penyedia;
+use App\Util\PaketPenyediaClass;
+use Illuminate\Http\Request;
+
+class PenyediaModalController extends Controller
+{
+    public function showDetailPaket($id_paket) {
+
+        $paket = PaketPenyedia::find($id_paket);
+        $satker = Satker::find($paket -> m_satker_id);
+        $kldi = KLDI::find($paket -> m_kldi_id);
+        if ($kldi -> type_id == 1) {
+            $kldiName = 'Pemerintah Daerah Provinsi Jawa Barat';
+            $kota_kabupaten = '-';
+        }
+        else if ($kldi -> type_id == 2) {
+            $kldiName = Kota::where('m_kldi_id', $kldi -> id) -> first() -> nama;
+            $kota_kabupaten = $kldiName;
+        }
+        else if ($kldi -> type_id == 3) {
+            $kldiName = Kabupaten::where('m_kldi_id', $kldi -> id) -> first() -> nama;
+            $kota_kabupaten = $kldiName;
+        }
+
+        $provinsi = "Jawa Barat";
+        $pengadaanName = Pengadaan::find($paket -> m_pengadaan_id) -> nama;
+        $penyediaName = Penyedia::find($paket -> m_penyedia_id) -> nama;
+
+        // belom ada di db
+        $dalamNegeri = "-";
+        $usahaKecil = "-";
+        $DIPA_DPA = "-";
+        $klpd = $kldiName;
+        $mak = "-";
+        $paguSumberDana = $paket -> pagu;
+        $totalSumberDana = $paket -> pagu;
+        $bulanKebutuhan = $paket -> created_at;
+
+        // create sumber dana
+        $sumberDana["nama"] = $paket -> sumber_dana;
+        $sumberDana["mak"] = $mak;
+        $sumberDana["TA"] = "-";
+        $sumberDana["pagu"] = $paguSumberDana;
+        $sumberDana["klpd"] = $klpd;
+
+        // asumsi id_paket = rup
+        $paketModalPenyedia = new PaketPenyediaClass($id_paket, $paket -> nama, $kldiName, $satker -> nama,
+            $paket -> tahun_anggaran, $provinsi, $kota_kabupaten, $paket -> lokasi, $paket -> volume,
+            $paket -> deskripsi, $paket -> d_spesifikasi_teknis, $dalamNegeri, $usahaKecil, $DIPA_DPA,
+            $sumberDana, $totalSumberDana, $pengadaanName, $paket -> pagu, $penyediaName, $bulanKebutuhan,
+            $paket -> d_end_work, $paket -> d_start_work, $paket -> d_end, $paket -> d_start, $paket -> updated_at );  
+            
+        return response()->json(['paket' => $paketModalPenyedia]);
+    }
+}
diff --git a/app/Http/Controllers/Penyedia/PenyediaProvinsiController.php b/app/Http/Controllers/Penyedia/PenyediaProvinsiController.php
index e7f0091b758d7b4a645d45ff48757d26472bddc6..605a9a1b5ddf702ec81e9fd46d66af9e4d19b9e4 100644
--- a/app/Http/Controllers/Penyedia/PenyediaProvinsiController.php
+++ b/app/Http/Controllers/Penyedia/PenyediaProvinsiController.php
@@ -4,7 +4,7 @@ namespace App\Http\Controllers\Penyedia;
 
 use App\Http\Controllers\Controller;
 use App\Model\Penyedia;
-use App\Model\Paket;
+use App\Model\PaketPenyedia;
 use App\Model\KLDI;
 use App\Model\Satker;
 use App\Util\PenyediaDaerah;
@@ -16,7 +16,7 @@ class PenyediaProvinsiController extends Controller
     public function showProvinsi($id_satker){
         // join
 
-        $paketData = Paket::with(['penyedia', 'kldi'])
+        $paketData = PaketPenyedia::with(['penyedia', 'kldi'])
         ->join('m_penyedia', 'm_penyedia.id', '=', 't_paket.m_penyedia_id')
         ->join('m_satker', 'm_satker.id', '=', 't_paket.m_satker_id')
         ->where('t_paket.m_satker_id', $id_satker)
@@ -27,7 +27,7 @@ class PenyediaProvinsiController extends Controller
         
         // $namaPaket, $pagu, $metodePemilihanPenyedia, $sumberDana
         foreach ($paketData as $datum) {
-            $paketPenyediaProvinsi = new PenyediaDaerah($datum -> nama, $datum -> pagu,
+            $paketPenyediaProvinsi = new PenyediaDaerah($datum -> id, $datum -> nama, $datum -> pagu,
                                                         $datum -> metode, $datum -> sumber_dana);
             array_push($data, $paketPenyediaProvinsi);
         }
diff --git a/app/Http/Controllers/PenyediaSwakelola/PenyediaSwakelolaKabupatenController.php b/app/Http/Controllers/PenyediaSwakelola/PenyediaSwakelolaKabupatenController.php
index ed8aba03ac34b7085139b6e389a16a92f74f45cb..2971495a9e5820c23462775fff2e58579275b5d1 100644
--- a/app/Http/Controllers/PenyediaSwakelola/PenyediaSwakelolaKabupatenController.php
+++ b/app/Http/Controllers/PenyediaSwakelola/PenyediaSwakelolaKabupatenController.php
@@ -1,15 +1,53 @@
 <?php
 
-namespace App\Http\Controllers\Swakelola;
+namespace App\Http\Controllers\PenyediaSwakelola;
 
 use App\Http\Controllers\Controller;
-use App\Util\SwakelolaDaerah;
+use App\Util\PenyediaSwakelolaDaerah;
+use App\Model\PaketPenyediaSwakelola;
+use App\Model\Kabupaten;
+use App\Model\Satker;
+use App\Model\KLDI;
 use Illuminate\Http\Request;
 
-class SwakelolaKabupatenController extends Controller
+class PenyediaSwakelolaKabupatenController extends Controller
 {
 
     public function showKabupaten($id_kabupaten, $id_satker){
-    	return view('swakelola.kabupaten');
+    	$kabupaten = Kabupaten::find($id_kabupaten);
+        if (empty($kabupaten)) {
+            $kldi = 0;
+         }
+         else {
+            $kldi = $kabupaten -> m_kldi_id;
+         }
+
+         $paketData = PaketPenyediaSwakelola::with(['penyedia', 'kldi'])
+         ->join('m_satker', 'm_satker.id', '=', 's_paket_penyedia.m_satker_id')
+         ->join('m_penyedia', 'm_penyedia.id', '=', 's_paket_penyedia.m_penyedia_id')
+         ->where('s_paket_penyedia.m_satker_id', $id_satker)
+         ->where('s_paket_penyedia.m_kldi_id', $kldi)
+         ->select('s_paket_penyedia.*', 'm_penyedia.nama as metode')   
+         -> get();
+
+        $data = [];
+        
+        // $namaPaket, $pagu, $metodePemilihanPenyedia, $sumberDana
+        foreach ($paketData as $datum) {
+            $paketPenyediaKabupaten = new PenyediaSwakelolaDaerah($datum -> id, $datum -> nama, $datum -> nama, 
+                                                        $datum -> pagu, $datum->metode, $datum -> sumber_dana);
+            array_push($data, $paketPenyediaKabupaten);
+        }
+
+        // get name of satker
+        $satker = Satker::find($id_satker);
+        if (empty($satker)) {
+            $satkerName = '';
+         }
+         else {
+            $satkerName = $satker -> nama;
+         }
+
+        return response()->json(['paket' => $data, 'subtitle'=> $satkerName]);
     }
 }
diff --git a/app/Http/Controllers/PenyediaSwakelola/PenyediaSwakelolaKotaController.php b/app/Http/Controllers/PenyediaSwakelola/PenyediaSwakelolaKotaController.php
index cda022c73d5cd4690ceb1d4d7aea8c326d811132..e99fe43fa3b7935cf6a25b9f25c296839414f79e 100644
--- a/app/Http/Controllers/PenyediaSwakelola/PenyediaSwakelolaKotaController.php
+++ b/app/Http/Controllers/PenyediaSwakelola/PenyediaSwakelolaKotaController.php
@@ -1,15 +1,53 @@
 <?php
 
-namespace App\Http\Controllers\Swakelola;
+namespace App\Http\Controllers\PenyediaSwakelola;
 
 use App\Http\Controllers\Controller;
-use App\Util\SwakelolaDaerah;
+use App\Util\PenyediaSwakelolaDaerah;
+use App\Model\PaketPenyediaSwakelola;
+use App\Model\Satker;
+use App\Model\KLDI;
+use App\Model\Kota;
 use Illuminate\Http\Request;
 
-class SwakelolaKotaController extends Controller
+class PenyediaSwakelolaKotaController extends Controller
 {
 
     public function showKota($id_kota, $id_satker){
-    	return view('penyediaSwakelola.kota');
+    	$kota = Kota::find($id_kota);
+        if (empty($kota)) {
+            $kldi = 0;
+         }
+         else {
+            $kldi = $kota -> m_kldi_id;
+         }
+
+         $paketData = PaketPenyediaSwakelola::with(['penyedia', 'kldi'])
+         ->join('m_satker', 'm_satker.id', '=', 's_paket_penyedia.m_satker_id')
+         ->join('m_penyedia', 'm_penyedia.id', '=', 's_paket_penyedia.m_penyedia_id')
+         ->where('s_paket_penyedia.m_satker_id', $id_satker)
+         ->where('s_paket_penyedia.m_kldi_id', $kldi)
+         ->select('s_paket_penyedia.*', 'm_penyedia.nama as metode')   
+         -> get();
+
+        $data = [];
+        
+        // $namaPaket, $pagu, $metodePemilihanPenyedia, $sumberDana
+        foreach ($paketData as $datum) {
+            $paketPenyediaKota = new PenyediaSwakelolaDaerah($datum -> id, $datum -> nama, $datum -> nama, 
+                                                    $datum -> pagu, $datum->metode, $datum -> sumber_dana);
+            array_push($data, $paketPenyediaKota);
+        }
+
+        // get name of satker
+        $satker = Satker::find($id_satker);
+        if (empty($satker)) {
+            $satkerName = '';
+        }
+        else {
+        $satkerName = $satker -> nama;
+        }
+
+        return response()->json(['paket' => $data, 'subtitle'=> $satkerName]);
     }
 }
diff --git a/app/Http/Controllers/PenyediaSwakelola/PenyediaSwakelolaModalController.php b/app/Http/Controllers/PenyediaSwakelola/PenyediaSwakelolaModalController.php
new file mode 100644
index 0000000000000000000000000000000000000000..4ac7623b39ff3fe8aaa8463ef23bd576d7ed16d5
--- /dev/null
+++ b/app/Http/Controllers/PenyediaSwakelola/PenyediaSwakelolaModalController.php
@@ -0,0 +1,67 @@
+<?php
+
+namespace App\Http\Controllers\PenyediaSwakelola;
+
+use App\Http\Controllers\Controller;
+use App\Constants\Links;
+use App\Model\PaketPenyediaSwakelola;
+use App\Model\Satker;
+use App\Model\KLDI;
+use App\Model\Kota;
+use App\Model\Kabupaten;
+use App\Model\Pengadaan;
+use App\Model\Penyedia;
+use App\Util\PaketPenyediaSwakelolaClass;
+use Illuminate\Http\Request;
+
+class PenyediaSwakelolaModalController extends Controller
+{
+    public function showDetailPaket($id_paket) {
+
+        $paket = PaketPenyediaSwakelola::find($id_paket);
+        $satker = Satker::find($paket -> m_satker_id);
+        $kldi = KLDI::find($paket -> m_kldi_id);
+        if ($kldi -> type_id == 1) {
+            $kldiName = 'Pemerintah Daerah Provinsi Jawa Barat';
+            $kota_kabupaten = '-';
+        }
+        else if ($kldi -> type_id == 2) {
+            $kldiName = Kota::where('m_kldi_id', $kldi -> id) -> first() -> nama;
+            $kota_kabupaten = $kldiName;
+        }
+        else if ($kldi -> type_id == 3) {
+            $kldiName = Kabupaten::where('m_kldi_id', $kldi -> id) -> first() -> nama;
+            $kota_kabupaten = $kldiName;
+        }
+
+        $provinsi = "Jawa Barat";
+        $pengadaanName = Pengadaan::find($paket -> m_pengadaan_id) -> nama;
+        $penyediaName = Penyedia::find($paket -> m_penyedia_id) -> nama;
+
+        // belom ada di db
+        $dalamNegeri = "-";
+        $usahaKecil = "-";
+        $DIPA_DPA = "-";
+        $klpd = $kldiName;
+        $mak = "-";
+        $paguSumberDana = $paket -> pagu;
+        $totalSumberDana = $paket -> pagu;
+        $bulanKebutuhan = $paket -> created_at;
+
+        // create sumber dana
+        $sumberDana["nama"] = $paket -> sumber_dana;
+        $sumberDana["mak"] = $mak;
+        $sumberDana["TA"] = "-";
+        $sumberDana["pagu"] = $paguSumberDana;
+        $sumberDana["klpd"] = $klpd;
+
+        // asumsi id_paket = rup
+        $paketModalPenyediaSwakelola = new PaketPenyediaSwakelolaClass($id_paket, $paket -> nama, $kldiName, $satker -> nama,
+            $paket -> tahun_anggaran, $provinsi, $kota_kabupaten, $paket -> lokasi, $paket -> volume,
+            $paket -> deskripsi, $paket -> d_spesifikasi_teknis, $dalamNegeri, $usahaKecil, $DIPA_DPA,
+            $sumberDana, $totalSumberDana, $pengadaanName, $paket -> pagu, $penyediaName, $bulanKebutuhan,
+            $paket -> d_end_work, $paket -> d_start_work, $paket -> d_end, $paket -> d_start, $paket -> updated_at );  
+            
+        return response()->json(['paket' => $paketModalPenyediaSwakelola]);
+    }
+}
diff --git a/app/Http/Controllers/PenyediaSwakelola/PenyediaSwakelolaProvinsiController.php b/app/Http/Controllers/PenyediaSwakelola/PenyediaSwakelolaProvinsiController.php
index 6127818502a0d62a3ae3a68407e80bd2f534f716..c9741b7f016930ecd56f1d513947a11f505de89e 100644
--- a/app/Http/Controllers/PenyediaSwakelola/PenyediaSwakelolaProvinsiController.php
+++ b/app/Http/Controllers/PenyediaSwakelola/PenyediaSwakelolaProvinsiController.php
@@ -1,15 +1,43 @@
 <?php
 
-namespace App\Http\Controllers\Swakelola;
+namespace App\Http\Controllers\PenyediaSwakelola;
 
 use App\Http\Controllers\Controller;
-use App\Util\SwakelolaDaerah;
+use App\Util\PenyediaSwakelolaDaerah;
+use App\Model\PaketPenyediaSwakelola;
+use App\Model\Satker;
 use Illuminate\Http\Request;
 
-class SwakelolaProvinsiController extends Controller
+class PenyediaSwakelolaProvinsiController extends Controller
 {
 
     public function showProvinsi($id_satker){
-        return view('penyediaSwakelola.provinsi');
+        
+        $paketData = PaketPenyediaSwakelola::with(['penyedia', 'kldi'])
+        ->join('m_satker', 'm_satker.id', '=', 's_paket_penyedia.m_satker_id')
+        ->join('m_penyedia', 'm_penyedia.id', '=', 's_paket_penyedia.m_penyedia_id')
+        ->where('s_paket_penyedia.m_satker_id', $id_satker)
+        ->select('s_paket_penyedia.*', 'm_penyedia.nama as metode')   
+        -> get();
+
+        $data = [];
+        
+        // $namaPaket, $pagu, $metodePemilihanPenyedia, $sumberDana
+        foreach ($paketData as $datum) {
+            $paketPenyediaSwakelolaProvinsi = new PenyediaSwakelolaDaerah($datum -> id, $datum -> kegiatan, $datum -> nama, 
+                                                        $datum -> pagu, $datum->metode, $datum -> sumber_dana);
+            array_push($data, $paketPenyediaSwakelolaProvinsi);
+        }
+
+        // get name of satker
+        $satker = Satker::find($id_satker);
+        if (empty($satker)) {
+            $satkerName = '';
+        }
+        else {
+        $satkerName = $satker -> nama;
+        }
+
+        return response()->json(['paket' => $data, 'subtitle'=> $satkerName]);
     }
 }
diff --git a/app/Http/Controllers/Rekap/DetailRekapController.php b/app/Http/Controllers/Rekap/DetailRekapController.php
index 754fd7c95a01b4d461f271603055ab4f9f992cbc..d8667c8788890464d21f7b432e551599bcb3d829 100644
--- a/app/Http/Controllers/Rekap/DetailRekapController.php
+++ b/app/Http/Controllers/Rekap/DetailRekapController.php
@@ -23,10 +23,10 @@ class DetailRekapController extends Controller
         
         //count paket yang satkers id = satker
         foreach ($satkers as $satker) {
-            $paketBySatker = $satker->getPaket();
-            // $totalPaketBySatker = RekapHelper::calculatePaketSummary($paketBySatker);
-            $satkerPenyedia = RekapHelper::calculatePaketSummary($paketBySatker);
-            $satkerSwakelola = new RekapSummary(0,0);
+            $paketBySatkerPenyedia = $satker->getPaketPenyedia();
+            $paketBySatkerSwakelola = $satker->getPaketSwakelola();
+            $satkerPenyedia = RekapHelper::calculatePaketSummary($paketBySatkerPenyedia);
+            $satkerSwakelola = RekapHelper::calculatePaketSummary($paketBySatkerSwakelola);
             
             $paketSatker = new Rekap($satker->nama, $satkerPenyedia, $satkerSwakelola,
                                     '',
@@ -47,10 +47,10 @@ class DetailRekapController extends Controller
     
         //count paket yang satkers id = satker
         foreach ($satkers as $satker) {
-            $paketBySatker = $satker->getPaket();
-            // $totalPaketBySatker = RekapHelper::calculatePaketSummary($paketBySatker);
-            $satkerPenyedia = RekapHelper::calculatePaketSummary($paketBySatker);
-            $satkerSwakelola = new RekapSummary(0,0);
+            $paketBySatkerPenyedia = $satker->getPaketPenyedia();
+            $paketBySatkerSwakelola = $satker->getPaketSwakelola();
+            $satkerPenyedia = RekapHelper::calculatePaketSummary($paketBySatkerPenyedia);
+            $satkerSwakelola = RekapHelper::calculatePaketSummary($paketBySatkerSwakelola);
             
 
             $linkPenyedia = str_replace('{id_satker}', $satker->id, Links::LINK_KOTA_PENYEDIA);
@@ -79,10 +79,10 @@ class DetailRekapController extends Controller
     
         //count paket yang satkers id = satker
         foreach ($satkers as $satker) {
-            $paketBySatker = $satker->getPaket();
-            // $totalPaketBySatker = RekapHelper::calculatePaketSummary($paketBySatker);
-            $satkerPenyedia = RekapHelper::calculatePaketSummary($paketBySatker);
-            $satkerSwakelola = new RekapSummary(0,0);
+            $paketBySatkerPenyedia = $satker->getPaketPenyedia();
+            $paketBySatkerSwakelola = $satker->getPaketSwakelola();
+            $satkerPenyedia = RekapHelper::calculatePaketSummary($paketBySatkerPenyedia);
+            $satkerSwakelola = RekapHelper::calculatePaketSummary($paketBySatkerSwakelola);
 
             $linkPenyedia = str_replace('{id_satker}', $satker->id, Links::LINK_KABUPATEN_PENYEDIA);
             $linkSwakelola = str_replace('{id_satker}', $satker->id, Links::LINK_KABUPATEN_SWAKELOLA);
diff --git a/app/Http/Controllers/Rekap/KabupatenController.php b/app/Http/Controllers/Rekap/KabupatenController.php
index a35b2b9f169a19a9cb62e7aa30b6b6179999ec9a..6d70fc121bd32363215db730119cd753c10d58f2 100644
--- a/app/Http/Controllers/Rekap/KabupatenController.php
+++ b/app/Http/Controllers/Rekap/KabupatenController.php
@@ -19,8 +19,8 @@ class KabupatenController extends Controller
 
         foreach($kabupatens as $kabupaten){
             $namaKabupaten = $kabupaten->nama;
-            $paketPenyediaKabupaten = RekapHelper::calculatePaketSummary($kabupaten->getPaket());
-            $paketSwakelolaKabupaten = new RekapSummary(0,0);
+            $paketPenyediaKabupaten = RekapHelper::calculatePaketSummary($kabupaten->getPaketPenyedia());
+            $paketSwakelolaKabupaten = RekapHelper::calculatePaketSummary($kabupaten->getPaketSwakelola());
             $rekapKabupaten = new Rekap(
                 $namaKabupaten, 
                 $paketPenyediaKabupaten, 
diff --git a/app/Http/Controllers/Rekap/KotaController.php b/app/Http/Controllers/Rekap/KotaController.php
index 68fa921c723e1c1d9d0b2a75c85868b6b7495278..2084d456d17d9d357c4a1a6b765803e93043cb9c 100644
--- a/app/Http/Controllers/Rekap/KotaController.php
+++ b/app/Http/Controllers/Rekap/KotaController.php
@@ -19,8 +19,8 @@ class KotaController extends Controller
 
         foreach($kotas as $kota){
             $namaKota = $kota->nama;
-            $paketPenyediaKota = RekapHelper::calculatePaketSummary($kota->getPaket());
-            $paketSwakelolaKota = new RekapSummary(0,0);
+            $paketPenyediaKota = RekapHelper::calculatePaketSummary($kota->getPaketPenyedia());
+            $paketSwakelolaKota = RekapHelper::calculatePaketSummary($kota->getPaketSwakelola());
             $rekapKota = new Rekap(
                 $namaKota,
                 $paketPenyediaKota, 
diff --git a/app/Http/Controllers/Status/KlasifikasiController.php b/app/Http/Controllers/Status/KlasifikasiController.php
new file mode 100644
index 0000000000000000000000000000000000000000..1a22b8aaa838a55814d65cb5efcc8384383abeb1
--- /dev/null
+++ b/app/Http/Controllers/Status/KlasifikasiController.php
@@ -0,0 +1,27 @@
+<?php
+
+namespace App\Http\Controllers\Status;
+
+use App\Http\Controllers\Controller;
+use App\Model\Paket;
+use Illuminate\Http\Request;
+
+class KlasifikasiController extends Controller {
+    public function changeStatus($id_paket, $status, $jenis_paket) {
+        Paket::where('id', $id_paket)
+        ->update(['status' => $status+1, 'jenis_paket_id' => (int)$jenis_paket]);
+
+        return response()->json(['status' => 200]);
+    }
+
+    public function getJenisPaket($kodeRUP) {
+        $paket = Paket::where('pid', $kodeRUP)->first();
+        if (empty($paket)) {
+            $jenis_paket_id = 0;
+         }
+         else {
+            $jenis_paket_id = $paket->jenis_paket_id;
+         }
+        return response()->json(['jenis_paket' => $jenis_paket_id]);
+    }
+}
diff --git a/app/Http/Controllers/Status/PengumumanController.php b/app/Http/Controllers/Status/PengumumanController.php
new file mode 100644
index 0000000000000000000000000000000000000000..1770ba0f5f1f708f97ec8b319c0c11cef7c6cbbb
--- /dev/null
+++ b/app/Http/Controllers/Status/PengumumanController.php
@@ -0,0 +1,94 @@
+<?php
+
+namespace App\Http\Controllers\Status;
+
+use App\Http\Controllers\Controller;
+use App\Model\Paket;
+use App\Model\PaketPenyedia;
+use App\Model\PaketSwakelola;
+use App\Model\PaketPenyediaSwakelola;
+use Illuminate\Http\Request;
+
+class PengumumanController extends Controller
+{
+    public function classifyPaket($id_paket) {
+        $data = Paket::find($id_paket);
+
+        if ($data->jenis_paket_id == 1) {
+            $paket = new PaketPenyedia;
+            $paket->file_pemenang = $data->file_pemenang;
+        }
+        else if ($data->jenis_paket_id == 2) {
+            $paket = new PaketSwakelola;
+        }
+        else if ($data->jenis_paket_id == 3) {
+            $paket = new PaketPenyediaSwakelola;
+            $paket->file_pemenang = $data->file_pemenang;
+        }
+        $paket->pid = $data->pid;
+        $paket->nama = $data->nama;
+        $paket->kegiatan = $data->kegiatan;
+        $paket->lokasi = $data->lokasi;
+        $paket->volume = $data->volume;
+        $paket->sumber_dana = $data->sumber_dana;
+        $paket->d_start = $data->d_start;
+        $paket->d_end = $data->d_end;
+        $paket->d_start_work = $data->d_start_work;
+        $paket->d_end_work = $data->d_end_work;
+        $paket->pagu = $data->pagu;
+        $paket->tahun_anggaran = $data->tahun_anggaran;
+        $paket->deskripsi = $data->deskripsi;
+        $paket->m_satker_id = $data->m_satker_id;
+        $paket->m_pengadaan_id = $data->m_pengadaan_id;
+        $paket->m_penyedia_id = $data->m_penyedia_id;
+        $paket->m_belanja_id = $data->m_belanja_id;
+        $paket->m_pokja_id = $data->m_pokja_id;
+        $paket->users_id = $data->users_id;
+        $paket->m_kldi_id = $data->m_kldi_id;
+        $paket->id_ulp = $data->id_ulp;
+        $paket->hps = $data->hps;
+        $paket->d_usulan = $data->d_usulan;
+        $paket->d_ket_usulan = $data->d_ket_usulan;
+        $paket->d_kerangka = $data->d_kerangka;
+        $paket->d_ket_kerangka = $data->d_ket_kerangka;
+        $paket->d_spesifikasi_teknis = $data->d_spesifikasi_teknis;
+        $paket->d_ket_spesifikasi_teknis = $data->d_ket_spesifikasi_teknis;
+        $paket->d_hps = $data->d_hps;
+        $paket->d_ket_hps = $data->d_ket_hps;
+        $paket->d_rancangan_kontrak = $data->d_rancangan_kontrak;
+        $paket->d_ket_rancangan_kontrak = $data->d_ket_rancangan_kontrak;
+        $paket->d_printscreen_sirup = $data->d_printscreen_sirup;
+        $paket->d_ket_printscreen_sirup = $data->d_ket_printscreen_sirup;
+        $paket->d_copy_dpa = $data->d_copy_dpa;
+        $paket->d_ket_copy_dpa = $data->d_ket_copy_dpa;
+        $paket->d_stat = $data->d_stat;
+        $paket->d_keterangan = $data->d_keterangan;
+        $paket->id_user_ulp = $data->id_user_ulp;
+        $paket->rev_usulan = $data->rev_usulan;
+        $paket->rev_kerangka = $data->rev_kerangka;
+        $paket->rev_teknis = $data->rev_teknis;
+        $paket->rev_hps = $data->rev_hps;
+        $paket->rev_kontrak = $data->rev_kontrak;
+        $paket->rev_sirup = $data->rev_sirup;
+        $paket->rev_copy = $data->rev_copy;
+        $paket->catatan_revisi = $data->catatan_revisi;
+        $paket->id_ketua = $data->id_ketua;
+        $paket->id_sekretaris = $data->id_sekretaris;
+        $paket->id_anggota = $data->id_anggota;
+        $paket->id_anggota2 = $data->id_anggota2;
+        $paket->id_anggota3 = $data->id_anggota3;
+        $paket->id_anggota4 = $data->id_anggota4;
+        $paket->id_anggota5 = $data->id_anggota5;
+        $paket->id_anggota6 = $data->id_anggota6;
+        $paket->id_anggota7 = $data->id_anggota7;
+        $paket->sk_panitia = $data->sk_panitia;
+        $paket->created_at = $data->created_at;
+        $paket->updated_at = $data->updated_at;
+        $paket->save();
+
+        $data->delete();
+
+        return response()->json(['status' => 200]);
+
+    }
+}
\ No newline at end of file
diff --git a/app/Http/Controllers/Status/StatusController.php b/app/Http/Controllers/Status/StatusController.php
new file mode 100644
index 0000000000000000000000000000000000000000..2556aa54306b8df94a160e9f80c931db339a7152
--- /dev/null
+++ b/app/Http/Controllers/Status/StatusController.php
@@ -0,0 +1,54 @@
+<?php
+
+namespace App\Http\Controllers\Status;
+
+use App\Http\Controllers\Controller;
+use App\Model\Paket;
+use App\Model\PaketPenyedia;
+use App\Model\PaketSwakelola;
+use App\Model\PaketPenyediaSwakelola;
+use App\Util\PaketClass;
+use Illuminate\Http\Request;
+
+class StatusController extends Controller
+{
+
+    public function showPaket(){
+        $pakets = Paket::get();
+
+        $paketClasses = [];
+        foreach ($pakets as $paketDatum){
+            $paket = new PaketClass($paketDatum->id, $paketDatum->kegiatan, $paketDatum->pid,
+                $paketDatum->nama, $paketDatum->sumber_dana, $paketDatum->lokasi, $paketDatum->deskripsi, 
+                $paketDatum->penyedia->nama, $paketDatum->pagu, $paketDatum->d_start_work, $paketDatum->status);
+            array_push($paketClasses, $paket);
+        }
+
+        // append paket penyedia, swakelola, penyedia swakelola dg status 4 (sudah diumumkan)
+        $pakets = PaketPenyedia::get();
+        foreach ($pakets as $paketDatum){
+            $paket = new PaketClass($paketDatum->id, $paketDatum->kegiatan, $paketDatum->pid,
+                $paketDatum->nama, $paketDatum->sumber_dana, $paketDatum->lokasi, $paketDatum->deskripsi, 
+                $paketDatum->penyedia->nama, $paketDatum->pagu, $paketDatum->d_start_work, '4');
+            array_push($paketClasses, $paket);
+        }
+
+        $pakets = PaketSwakelola::get();
+        foreach ($pakets as $paketDatum){
+            $paket = new PaketClass($paketDatum->id, $paketDatum->kegiatan, $paketDatum->pid,
+                $paketDatum->nama, $paketDatum->sumber_dana, $paketDatum->lokasi, $paketDatum->deskripsi, 
+                $paketDatum->penyedia->nama, $paketDatum->pagu, $paketDatum->d_start_work, '4');
+            array_push($paketClasses, $paket);
+        }
+
+        $pakets = PaketPenyediaSwakelola::get();
+        foreach ($pakets as $paketDatum){
+            $paket = new PaketClass($paketDatum->id, $paketDatum->kegiatan, $paketDatum->pid,
+                $paketDatum->nama, $paketDatum->sumber_dana, $paketDatum->lokasi, $paketDatum->deskripsi, 
+                $paketDatum->penyedia->nama, $paketDatum->pagu, $paketDatum->d_start_work, '4');
+            array_push($paketClasses, $paket);
+        }
+
+        return response()->json(['paket' => $paketClasses]);
+    }
+}
\ No newline at end of file
diff --git a/app/Http/Controllers/Swakelola/SwakelolaKabupatenController.php b/app/Http/Controllers/Swakelola/SwakelolaKabupatenController.php
index 41fd409739f33eba890bc44e921c48b6708a8066..8e23530fdd5a9470298e61dd8bd018f03b0e01bd 100644
--- a/app/Http/Controllers/Swakelola/SwakelolaKabupatenController.php
+++ b/app/Http/Controllers/Swakelola/SwakelolaKabupatenController.php
@@ -3,6 +3,9 @@
 namespace App\Http\Controllers\Swakelola;
 
 use App\Http\Controllers\Controller;
+use App\Model\PaketSwakelola;
+use App\Model\Satker;
+use App\Model\Kabupaten;
 use App\Util\SwakelolaDaerah;
 use Illuminate\Http\Request;
 
@@ -10,45 +13,40 @@ class SwakelolaKabupatenController extends Controller
 {
 
     public function showKabupaten($id_kabupaten, $id_satker){
-        $data = Array (
-            "0" => Array (
-                "no" => "1",
-                "kegiatan" => "Pengadaan Peralatan Kantor BKD Provinsi Jawa Barat",
-                "paket" => "Honorarium Pengadaan Barang dan Jasa",
-                "pagu" => "4.100.000",
-                "sumberDana" => "APBD"
-            ),
-            "1" => Array (
-                "no" => "2",
-                "kegiatan" => "Penyusunan Dokumen Perencanaan BKD",
-                "paket" => "Honorarium Pengadaan Barang dan Jasa",
-                "pagu" => "2.300.000",
-                "sumberDana" => "APBD"
-            ),
-            "2" => Array (
-                "no" => "3",
-                "kegiatan" => "Pengadaan Peralatan Kantor BKD Provinsi Jawa Barat",
-                "paket" => "Belanja Asesoris Komputer",
-                "pagu" => "7.737.571",
-                "sumberDana" => "APBD"
-            ),
-            "3" => Array (
-                "no" => "4",
-                "kegiatan" => "Penyusunan Dokumen Perencanaan BKD",
-                "paket" => "Belanja Alat Tulis Kantor",
-                "pagu" => "5.497.076",
-                "sumberDana" => "APBD"
-            ),
-            "4" => Array (
-                "no" => "5",
-                "kegiatan" => "Penyusunan Dokumen Perencanaan BKD",
-                "paket" => "Belanja Jasa Profesi",
-                "pagu" => "569.330.000",
-                "sumberDana" => "APBD"
-            )
-        );
+        // join
+
+        // get kode kldi kabupaten
+        $kabupaten = Kabupaten::find($id_kabupaten);
+        if (empty($kabupaten)) {
+            $kldi = 0;
+         }
+         else {
+            $kldi = $kabupaten -> m_kldi_id;
+         }
+
+        $paketData = PaketSwakelola::
+          where('s_paket.m_satker_id', $id_satker)
+         ->where('s_paket.m_kldi_id', $kldi)
+         ->select('s_paket.*')   
+         -> get();
+
+        $data = [];
         
-        $satkerName = "Satuan Kerja";
+        // $namaPaket, $pagu, $metodePemilihanPenyedia, $sumberDana
+        foreach ($paketData as $datum) {
+            $paketSwakelolaKabupaten = new SwakelolaDaerah($datum -> id, $datum -> kegiatan, $datum -> nama,
+                                                        $datum -> pagu, $datum -> sumber_dana);
+            array_push($data, $paketSwakelolaKabupaten);
+        }
+
+        // get name of satker
+        $satker = Satker::find($id_satker);
+        if (empty($satker)) {
+            $satkerName = '';
+         }
+         else {
+            $satkerName = $satker -> nama;
+         }
 
         return response()->json(['paketSwakelola' => $data, 'subtitle'=> $satkerName]);
     }
diff --git a/app/Http/Controllers/Swakelola/SwakelolaKotaController.php b/app/Http/Controllers/Swakelola/SwakelolaKotaController.php
index 1a90126dc2d55f520a49c0af94a04784b74e5c49..abb59a6eff4f4eaf6a8301c298d48e0278f6e258 100644
--- a/app/Http/Controllers/Swakelola/SwakelolaKotaController.php
+++ b/app/Http/Controllers/Swakelola/SwakelolaKotaController.php
@@ -3,6 +3,9 @@
 namespace App\Http\Controllers\Swakelola;
 
 use App\Http\Controllers\Controller;
+use App\Model\PaketSwakelola;
+use App\Model\Satker;
+use App\Model\Kota;
 use App\Util\SwakelolaDaerah;
 use Illuminate\Http\Request;
 
@@ -10,45 +13,40 @@ class SwakelolaKotaController extends Controller
 {
 
     public function showKota($id_kota, $id_satker){
-        $data = Array (
-            "0" => Array (
-                "no" => "1",
-                "kegiatan" => "Pengadaan Peralatan Kantor BKD Provinsi Jawa Barat",
-                "paket" => "Honorarium Pengadaan Barang dan Jasa",
-                "pagu" => "4.100.000",
-                "sumberDana" => "APBD"
-            ),
-            "1" => Array (
-                "no" => "2",
-                "kegiatan" => "Penyusunan Dokumen Perencanaan BKD",
-                "paket" => "Honorarium Pengadaan Barang dan Jasa",
-                "pagu" => "2.300.000",
-                "sumberDana" => "APBD"
-            ),
-            "2" => Array (
-                "no" => "3",
-                "kegiatan" => "Pengadaan Peralatan Kantor BKD Provinsi Jawa Barat",
-                "paket" => "Belanja Asesoris Komputer",
-                "pagu" => "7.737.571",
-                "sumberDana" => "APBD"
-            ),
-            "3" => Array (
-                "no" => "4",
-                "kegiatan" => "Penyusunan Dokumen Perencanaan BKD",
-                "paket" => "Belanja Alat Tulis Kantor",
-                "pagu" => "5.497.076",
-                "sumberDana" => "APBD"
-            ),
-            "4" => Array (
-                "no" => "5",
-                "kegiatan" => "Penyusunan Dokumen Perencanaan BKD",
-                "paket" => "Belanja Jasa Profesi",
-                "pagu" => "569.330.000",
-                "sumberDana" => "APBD"
-            )
-        );
-
-        $satkerName = "Satuan Kerja";
+        // join
+
+        // get kode kldi kabupaten
+        $kota = Kota::find($id_kota);
+        if (empty($kota)) {
+            $kldi = 0;
+         }
+         else {
+            $kldi = $kota -> m_kldi_id;
+         }
+
+         $paketData = PaketSwakelola::
+          where('s_paket.m_satker_id', $id_satker)
+         ->where('s_paket.m_kldi_id', $kldi)
+         ->select('s_paket.*')   
+         -> get();
+
+        $data = [];
+        
+        // $namaPaket, $pagu, $metodePemilihanPenyedia, $sumberDana
+        foreach ($paketData as $datum) {
+            $paketSwakelolaKota = new SwakelolaDaerah($datum -> id, $datum -> kegiatan, $datum -> nama,
+                                                        $datum -> pagu, $datum -> sumber_dana);
+            array_push($data, $paketSwakelolaKota);
+        }
+
+        // get name of satker
+        $satker = Satker::find($id_satker);
+        if (empty($satker)) {
+            $satkerName = '';
+         }
+         else {
+            $satkerName = $satker -> nama;
+         }
 
         return response()->json(['paketSwakelola' => $data, 'subtitle'=> $satkerName]);
     }
diff --git a/app/Http/Controllers/Swakelola/SwakelolaModalController.php b/app/Http/Controllers/Swakelola/SwakelolaModalController.php
new file mode 100644
index 0000000000000000000000000000000000000000..3d53893e7f1d0c8a19c080bad07af513559ce049
--- /dev/null
+++ b/app/Http/Controllers/Swakelola/SwakelolaModalController.php
@@ -0,0 +1,73 @@
+<?php
+
+namespace App\Http\Controllers\Swakelola;
+
+use App\Http\Controllers\Controller;
+use App\Constants\Links;
+use App\Model\Paket;
+use App\Model\Satker;
+use App\Model\KLDI;
+use App\Model\Kota;
+use App\Model\Kabupaten;
+use App\Model\PaketSwakelola;
+use App\Util\PaketSwakelolaClass;
+use Illuminate\Http\Request;
+
+class SwakelolaModalController extends Controller
+{
+    public function showDetailPaket($id_paket) {
+        $rup = $id_paket;
+        $paket = PaketSwakelola::find($id_paket);
+        $satkerAll = Satker::find($paket -> m_satker_id);
+        $satker = $satkerAll->nama;
+
+        $kldiAll = KLDI::find($paket -> m_kldi_id);
+        if ($kldiAll -> type_id == 1) {
+            $kldi = 'Pemerintah Daerah Provinsi Jawa Barat';
+            $kota = '-';
+        } else if ($kldiAll -> type_id == 2) {
+            $kldi = Kota::where('m_kldi_id', $kldiAll->id) -> first() -> nama;
+            $kota = $kldi;
+        }
+        else if ($kldiAll -> type_id == 3) {
+            $kldi = Kabupaten::where('m_kldi_id', $kldiAll->id) -> first() -> nama;
+            $kota = $kldi;
+        }
+        $provinsi = "Jawa Barat";
+        $nama = $paket->nama;
+        $tahun = $paket->tahun_anggaran;
+        $lokasi = $paket->lokasi;
+        $deskripsi = $paket->deskripsi;
+        $volume = $paket->volume; 
+        $sumberDana["nama"] = $paket->sumber_dana;
+        $sumberDana["mak"] = "-";   //belum ada di db
+        $sumberDana["pagu"] = $paket->pagu; 
+        $sumberDana["klpd"] = $kldi;
+        $totalSumberDana = $paket -> pagu; //asumsi 
+        $awalKerja = $paket->d_start_work;
+        $akhirKerja = $paket->d_end_work;
+
+        $paketSwakelola = new PaketSwakelolaClass($rup, $nama, $kldi, $satker, $tahun, 
+        $provinsi, $kota, $lokasi, $volume, $deskripsi, $sumberDana, $totalSumberDana, 
+        $awalKerja, $akhirKerja);
+
+        return response()->json(['paket' => $paketSwakelola]);
+    }
+    
+    // public function showDetailPaket() {
+    //     return response()->json(['paket'=> ['rup' => '19062504', 
+    //     'nama'=>'Honorarium Pengadaan Barang dan Jasa', 
+    //     'kldi' => 'Pemerintah Daerah Provinsi Jawa Barat',
+    //     'satker' => 'BADAN KEPEGAWAIAN DAERAH PROVINSI JAWA BARAT',
+    //     'tahun' => '2019',
+    //     'provinsi' => 'Jawa Barat',
+    //     'kota' => 'Bandung (Kota)',
+    //     'lokasi' => 'Jl. Ternate No. 2 Bandung',
+    //     'volume' => '2 Paket',
+    //     'deskripsi' => 'Honorarium Pengadaan Barang dan Jasa pengadaan langsung',
+    //     'sumberDana' => ['sumberDana' => 'APBD','klpd' => 'Pemerintah Daerah Provinsi Jawa Barat','mak' => '5.2.1.01.02','pagu' => '4100000'], 
+    //     'totalSumberDana' => '4100000',
+    //     'awalKerja' => 'Maret 2019',
+    //     'akhirKerja' => 'Maret 2019']]);
+    // }
+}
diff --git a/app/Http/Controllers/Swakelola/SwakelolaProvinsiController.php b/app/Http/Controllers/Swakelola/SwakelolaProvinsiController.php
index 2be7da8a47cf929141b4620ca19ad5c79de42dff..a8b3b2646428a8c4f3019d179fefd1772833e290 100644
--- a/app/Http/Controllers/Swakelola/SwakelolaProvinsiController.php
+++ b/app/Http/Controllers/Swakelola/SwakelolaProvinsiController.php
@@ -3,6 +3,9 @@
 namespace App\Http\Controllers\Swakelola;
 
 use App\Http\Controllers\Controller;
+use App\Model\PaketSwakelola;
+use App\Model\Satker;
+use App\Model\KLDI;
 use App\Util\SwakelolaDaerah;
 use Illuminate\Http\Request;
 
@@ -10,44 +13,29 @@ class SwakelolaProvinsiController extends Controller
 {
 
     public function showProvinsi($id_satker){
-        $data = Array (
-            "0" => Array (
-                "no" => "1",
-                "kegiatan" => "Pengadaan Peralatan Kantor BKD Provinsi Jawa Barat",
-                "paket" => "Honorarium Pengadaan Barang dan Jasa",
-                "pagu" => "4.100.000",
-                "sumberDana" => "APBD"
-            ),
-            "1" => Array (
-                "no" => "2",
-                "kegiatan" => "Penyusunan Dokumen Perencanaan BKD",
-                "paket" => "Honorarium Pengadaan Barang dan Jasa",
-                "pagu" => "2.300.000",
-                "sumberDana" => "APBD"
-            ),
-            "2" => Array (
-                "no" => "3",
-                "kegiatan" => "Pengadaan Peralatan Kantor BKD Provinsi Jawa Barat",
-                "paket" => "Belanja Asesoris Komputer",
-                "pagu" => "7.737.571",
-                "sumberDana" => "APBD"
-            ),
-            "3" => Array (
-                "no" => "4",
-                "kegiatan" => "Penyusunan Dokumen Perencanaan BKD",
-                "paket" => "Belanja Alat Tulis Kantor",
-                "pagu" => "5.497.076",
-                "sumberDana" => "APBD"
-            ),
-            "4" => Array (
-                "no" => "5",
-                "kegiatan" => "Penyusunan Dokumen Perencanaan BKD",
-                "paket" => "Belanja Jasa Profesi",
-                "pagu" => "569.330.000",
-                "sumberDana" => "APBD"
-            )
-        );
-        $satkerName = "Satuan Kerja";
+        // join
+
+        $paketData = PaketSwakelola:: 
+         where('s_paket.m_satker_id', $id_satker)
+         ->select('s_paket.*')   
+         -> get();
+
+        $data = [];
+        
+        // $namaPaket, $pagu, $metodePemilihanPenyedia, $sumberDana
+        foreach ($paketData as $datum) {
+            $paketSwakelolaProvinsi = new SwakelolaDaerah($datum -> id, $datum -> kegiatan, $datum -> nama, $datum -> pagu, $datum -> sumber_dana);
+            array_push($data, $paketSwakelolaProvinsi);
+        }
+
+        // get name of satker
+        $satker = Satker::find($id_satker);
+        if (empty($satker)) {
+            $satkerName = '';
+        }
+        else {
+            $satkerName = $satker -> nama;
+        }
 
         return response()->json(['paketSwakelola' => $data, 'subtitle'=> $satkerName]);
     }
diff --git a/app/Http/Controllers/Unduh/MateriController.php b/app/Http/Controllers/Unduh/MateriController.php
new file mode 100644
index 0000000000000000000000000000000000000000..874af423ef02beb1217b8b188b462c8e3192243d
--- /dev/null
+++ b/app/Http/Controllers/Unduh/MateriController.php
@@ -0,0 +1,35 @@
+<?php
+
+namespace App\Http\Controllers\Unduh;
+
+use App\Http\Controllers\Controller;
+use App\Util\UnduhMateri;
+use Illuminate\Http\Request;
+
+class MateriController extends Controller
+{
+
+    public function showMateri(){
+    	$data = Array (
+            "0" => Array (
+                "no" => "1",
+                "judul" =>"Diseminasi Aplikasi Monev",
+                "subJudul" => "Diseminasi Aplikasi Monev",
+                "kategori" => "File Diseminasi",
+                "deskripsi" => "Surat Undangan Diseminasi",
+                "filename" => "DISEMINASI MONEV ( 5 TEMPAT TERBARU ).pdf",
+                "filelink" => "/file/DISEMINASI MONEV ( 5 TEMPAT TERBARU ).pdf",
+            ),
+            "1" => Array (
+                "no" => "2",
+                "judul" => "Panduan Aplikasi SiRUP v 2.3",
+                "subJudul" => "Manual User",
+                "kategori" => "Panduan",
+                "deskripsi" => "User Manual Untuk Pengguna Aplikasi SiRUP versi 2.3",
+                "filename" => "Tata cara penggunaan aplikasi sirup versi 2.3_6+SKDEPUTI.pdf",
+                "filelink" => "/file/Tata cara penggunaan aplikasi sirup versi 2.3_6 SKDEPUTI.pdf",
+            )
+        );        
+        return response()->json(['result' => $data]);
+    }
+}
diff --git a/app/Http/Controllers/Unduh/PaketRUPController.php b/app/Http/Controllers/Unduh/PaketRUPController.php
index 5f3c6b96a538500dd99d798d2dda77fad4c2349f..58b00a1c471963bb31872cae1de5bf34eddf0774 100644
--- a/app/Http/Controllers/Unduh/PaketRUPController.php
+++ b/app/Http/Controllers/Unduh/PaketRUPController.php
@@ -3,8 +3,8 @@
 namespace App\Http\Controllers\Unduh;
 
 use App\Http\Controllers\Controller;
-use App\Model\Paket as PaketModel;
-use App\Util\Paket;
+use App\Model\PaketPenyedia as PaketModel;
+use App\Util\PaketClass;
 use App\Model\Satker;
 use App\Helper\PaketPDFHelper;
 use Illuminate\Http\Request;
@@ -16,34 +16,50 @@ class PaketRUPController extends Controller
       $result = [];
       $tahun = [];
 
-      foreach($satkers as $satker){
-        $namaSatker = $satker->nama;
-        array_push($result, $namaSatker);
-      }
-
       $tahunAnggarans = PaketModel::distinct()->get(['tahun_anggaran']);
       foreach($tahunAnggarans as $tahunAnggaran){
         array_push($tahun, $tahunAnggaran);
       }
       
-      return response()->json(['result' => $result, 'tahun' => $tahun]);
+      return response()->json(['result' => $satkers, 'tahun' => $tahun]);
     }
-    
-    public function generatePDF(Request $request){
-      $satkerId = $request->satker;
-      $satker = Satker::find($satkerId)->first();
-      $type = $satker->kldi->type;
-      $penyedia = $satker->penyedia;
-      $pakets = []; 
-
-      foreach ($satker->getPaket() as $paketDatum){
-        $paket = new Paket($paketDatum->kegiatan, $paketDatum->pid, $paketDatum->nama, $paketDatum->sumber_dana, $paketDatum->lokasi, $paketDatum->keterangan, $penyedia, $paketDatum->pagu);
-        array_push($pakets, $paket);
+
+    private function createPaketClass($pakets){
+      $paketClasses = [];
+      foreach ($pakets as $paketDatum){
+        $paket = new PaketClass($paketDatum->id, $paketDatum->kegiatan, $paketDatum->pid, $paketDatum->nama, $paketDatum->sumber_dana, $paketDatum->lokasi, $paketDatum->deskripsi, $paketDatum->penyedia->nama, $paketDatum->pagu);
+        array_push($paketClasses, $paket);
+      }
+      return $paketClasses;
+    }
+
+    private function createPaketDrafClass($pakets, $type){
+      $paketClasses = [];
+      foreach ($pakets as $paketDatum){
+        if ($paketDatum->jenisPaket->id == $type){
+          $paket = new PaketClass($paketDatum->id, $paketDatum->kegiatan, $paketDatum->pid, $paketDatum->nama, $paketDatum->sumber_dana, $paketDatum->lokasi, $paketDatum->deskripsi, $paketDatum->penyedia->nama, $paketDatum->pagu);
+          array_push($paketClasses, $paket);
+        }
       }
+      return $paketClasses;
+    }
 
-      // var_dump($satker);
-      // var_dump($type->name);
+    public function generatePDF(Request $request){
+      $satkerId = intval($request->satker);
+      $satker = Satker::find($satkerId);
+      $opd = $satker->kldi->type->name;
+      
+      $drafPakets = $satker->paketDraf;
+      $paketPenyediaDraf = $this->createPaketDrafClass($drafPakets, 1);
+      $paketSwakelolaDraf = $this->createPaketDrafClass($drafPakets, 2);
+      $paketPenyediaSwakelolaDraf = $this->createPaketDrafClass($drafPakets, 3);
+      
 
-      PaketPDFHelper::generatePaketPDF($satker, $type, $pakets);
+      $paketPenyedia = $this->createPaketClass($satker->paket);
+      $paketSwakelola = $this->createPaketClass($satker->paketSwakelola);
+      $paketPenyediaSwakelola = $this->createPaketClass($satker->paketPenyediaSwakelola);
+      
+      PaketPDFHelper::generatePaketPDF($satker, $opd, "Dr. H. MUHAMMAD SOLIHIN, M.Si <br>
+      196304091989091001", $paketPenyedia, $paketPenyediaDraf, $paketSwakelola,$paketSwakelolaDraf, $paketPenyediaSwakelola,$paketPenyediaSwakelolaDraf);
     }
 }
diff --git a/app/Http/Controllers/UnduhMateri.php b/app/Http/Controllers/UnduhMateri.php
deleted file mode 100644
index 380b4903987f75349a6ea1a7b88a9132224cb1b8..0000000000000000000000000000000000000000
--- a/app/Http/Controllers/UnduhMateri.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-
-namespace App\Http\Controllers;
-
-use App\Http\Controllers\Controller;
-use App\Util\UnduhMateri;
-use Illuminate\Http\Request;
-
-class UnduhMateriController extends Controller
-{
-
-    public function showMateri(){
-    	return view('unduhMateri');
-    }
-}
diff --git a/app/Http/Middleware/PAMiddleware.php b/app/Http/Middleware/PAMiddleware.php
new file mode 100644
index 0000000000000000000000000000000000000000..ac9315c64f7f437e2d0f97b86c9a4ca0eaa72266
--- /dev/null
+++ b/app/Http/Middleware/PAMiddleware.php
@@ -0,0 +1,23 @@
+<?php
+
+namespace App\Http\Middleware;
+
+use Closure;
+
+class PAMiddleware
+{
+    /**
+     * Handle an incoming request.
+     *
+     * @param  \Illuminate\Http\Request  $request
+     * @param  \Closure  $next
+     * @return mixed
+     */
+    public function handle($request, Closure $next)
+    {
+        if (!$request->user()){
+            return new Response(view('home'));
+        }
+        return $next($request);
+    }
+}
diff --git a/app/Model/JenisPaket.php b/app/Model/JenisPaket.php
new file mode 100644
index 0000000000000000000000000000000000000000..db73b56cf4d9a7feaf24b49707a61c1d0986b870
--- /dev/null
+++ b/app/Model/JenisPaket.php
@@ -0,0 +1,10 @@
+<?php
+
+namespace App\Model;
+
+use Illuminate\Database\Eloquent\Model;
+
+class JenisPaket extends Model
+{
+    protected $table = 'jenis_paket';
+}
diff --git a/app/Model/KLDI.php b/app/Model/KLDI.php
index 7f7db179fda72561b8e986ba1ca24e57f337c79d..065065b3f72d30b0a8664dc455c31c9de366e9d2 100644
--- a/app/Model/KLDI.php
+++ b/app/Model/KLDI.php
@@ -8,8 +8,11 @@ class KLDI extends Model
 {
     protected $table = 'm_kldi';
     
-    public function paket(){
-        return $this->hasMany('App\Model\Paket', 'm_kldi_id');
+    public function paketPenyedia(){
+        return $this->hasMany('App\Model\PaketPenyedia', 'm_kldi_id');
+    }
+    public function paketSwakelola(){
+        return $this->hasMany('App\Model\PaketSwakelola', 'm_kldi_id');
     }
     public function satker(){
         return $this->hasMany('App\Model\Satker', 'm_kldi_id');
diff --git a/app/Model/Kabupaten.php b/app/Model/Kabupaten.php
index 83fce235eaf460217e3ea5bac016bd5ce37f3ca8..7bff12653f49d61ab991534e2e201267e5aa5668 100644
--- a/app/Model/Kabupaten.php
+++ b/app/Model/Kabupaten.php
@@ -12,8 +12,12 @@ class Kabupaten extends Model
         return $this->belongsTo('App\Model\KLDI', 'm_kldi_id');
     }
 
-    public function getPaket(){
-        return $this->kldi->paket;
+    public function getPaketPenyedia(){
+        return $this->kldi->paketPenyedia;
+    }
+
+    public function getPaketSwakelola(){
+        return $this->kldi->paketSwakelola;
     }
 
     public function getSatker(){
diff --git a/app/Model/Kota.php b/app/Model/Kota.php
index 9d422b4bd82476656ec23cf6258a72ab089dae1e..0a0b518e6cc8e04b0a4344c18afbc703e89060f1 100644
--- a/app/Model/Kota.php
+++ b/app/Model/Kota.php
@@ -10,11 +10,14 @@ class Kota extends Model
 
     public function kldi(){
         return $this->belongsTo('App\Model\KLDI', 'm_kldi_id');
-}
+    }
 
-    // retrieve paket from kldi
-    public function getPaket(){
-        return $this->kldi->paket;
+    public function getPaketPenyedia(){
+        return $this->kldi->paketPenyedia;
+    }
+
+    public function getPaketSwakelola(){
+        return $this->kldi->paketSwakelola;
     }
 
     // retrieve paket from kldi
diff --git a/app/Model/Paket.php b/app/Model/Paket.php
index d0c3b1c479e24abe431db800241c5c1db357adab..636eeda48e9c17f143787f392d484834113be9b6 100644
--- a/app/Model/Paket.php
+++ b/app/Model/Paket.php
@@ -6,16 +6,20 @@ use Illuminate\Database\Eloquent\Model;
 
 class Paket extends Model
 {
-    protected $table = 't_paket';
+    protected $table = 't_paket_all';
 
     public function satker() {
         return $this->belongsTo('App\Model\Satker', 'm_satker_id');
     }
 
-    public function getPaket(){
-        return $this->kldi->paket;
+    public function getPaketPenyedia(){
+        return $this->kldi->paketPenyedia;
     }
 
+    public function getPaketSwakelola(){
+        return $this->kldi->paketSwakelola;
+    }
+    
     public function penyedia() {
         return $this->belongsTo('App\Model\Penyedia', 'm_penyedia_id');
     }
@@ -24,6 +28,14 @@ class Paket extends Model
         return $this->belongsTo('App\Model\KLDI', 'm_kldi_id');
     }
 
+    public function pengadaan() {
+        return $this->belongsTo('App\Model\Pengadaan', 'm_pengadaan_id');
+    }
+
+    public function jenisPaket() {
+        return $this->belongsTo('App\Model\JenisPaket', 'jenis_paket_id');
+    }
+    
     public function getType() {
         return $this->kldi->type;
     }
diff --git a/app/Model/PaketPenyedia.php b/app/Model/PaketPenyedia.php
new file mode 100644
index 0000000000000000000000000000000000000000..b26100656be41311a0389a50eff931fba900180b
--- /dev/null
+++ b/app/Model/PaketPenyedia.php
@@ -0,0 +1,38 @@
+<?php
+
+namespace App\Model;
+
+use Illuminate\Database\Eloquent\Model;
+
+class PaketPenyedia extends Model
+{
+    protected $table = 't_paket';
+
+    public function satker() {
+        return $this->belongsTo('App\Model\Satker', 'm_satker_id');
+    }
+
+    public function getPaketPenyedia(){
+        return $this->kldi->paketPenyedia;
+    }
+
+    public function getPaketSwakelola(){
+        return $this->kldi->paketSwakelola;
+    }
+
+    public function penyedia() {
+        return $this->belongsTo('App\Model\Penyedia', 'm_penyedia_id');
+    }
+
+    public function pengadaan() {
+        return $this->belongsTo('App\Model\Pengadaan', 'm_pengadaan_id');
+    }
+    
+    public function kldi() {
+        return $this->belongsTo('App\Model\KLDI', 'm_kldi_id');
+    }
+
+    public function getType() {
+        return $this->kldi->type;
+    }
+}
diff --git a/app/Model/S_Paket_Penyedia.php b/app/Model/PaketPenyediaSwakelola.php
similarity index 61%
rename from app/Model/S_Paket_Penyedia.php
rename to app/Model/PaketPenyediaSwakelola.php
index adb94917c6a2b164851d2e45b64da4bc4ffad401..b4ba58b26ac98a6c310ad08d73e3216779cb25e1 100644
--- a/app/Model/S_Paket_Penyedia.php
+++ b/app/Model/PaketPenyediaSwakelola.php
@@ -4,7 +4,7 @@ namespace App\Model;
 
 use Illuminate\Database\Eloquent\Model;
 
-class S_Paket_Penyedia extends Model
+class PaketPenyediaSwakelola extends Model
 {
     protected $table = 's_paket_penyedia';
 
@@ -13,9 +13,12 @@ class S_Paket_Penyedia extends Model
         return $this->belongsTo('App\Model\Satker', 'm_satker_id');
     }
 
-    public function getPaket()
-    {
-        return $this->kldi->paket;
+    public function getPaketPenyedia(){
+        return $this->kldi->paketPenyedia;
+    }
+
+    public function getPaketSwakelola(){
+        return $this->kldi->paketSwakelola;
     }
 
     public function penyedia()
@@ -28,6 +31,10 @@ class S_Paket_Penyedia extends Model
         return $this->belongsTo('App\Model\KLDI', 'm_kldi_id');
     }
 
+    public function pengadaan() {
+        return $this->belongsTo('App\Model\Pengadaan', 'm_pengadaan_id');
+    }
+
     public function getType()
     {
         return $this->kldi->type;
diff --git a/app/Model/S_Paket.php b/app/Model/PaketSwakelola.php
similarity index 61%
rename from app/Model/S_Paket.php
rename to app/Model/PaketSwakelola.php
index f557ddbf805fdc4884db725d7a3b811d5b1c0354..1c47d0f702b6a01bebed1b94cd8578abaa246629 100644
--- a/app/Model/S_Paket.php
+++ b/app/Model/PaketSwakelola.php
@@ -4,7 +4,7 @@ namespace App\Model;
 
 use Illuminate\Database\Eloquent\Model;
 
-class S_Paket extends Model
+class PaketSwakelola extends Model
 {
     protected $table = 's_paket';
 
@@ -13,9 +13,12 @@ class S_Paket extends Model
         return $this->belongsTo('App\Model\Satker', 'm_satker_id');
     }
 
-    public function getPaket()
-    {
-        return $this->kldi->paket;
+    public function getPaketPenyedia(){
+        return $this->kldi->paketPenyedia;
+    }
+
+    public function getPaketSwakelola(){
+        return $this->kldi->paketSwakelola;
     }
 
     public function penyedia()
@@ -28,6 +31,10 @@ class S_Paket extends Model
         return $this->belongsTo('App\Model\KLDI', 'm_kldi_id');
     }
 
+    public function pengadaan() {
+        return $this->belongsTo('App\Model\Pengadaan', 'm_pengadaan_id');
+    }
+
     public function getType()
     {
         return $this->kldi->type;
diff --git a/app/Model/Penyedia.php b/app/Model/Penyedia.php
index e129ee411e6b765df46efcb198d88dabc01e5aa2..1b5a43c4694fd609680ce4ccb77f2e2b8754c17a 100644
--- a/app/Model/Penyedia.php
+++ b/app/Model/Penyedia.php
@@ -9,7 +9,7 @@ class Penyedia extends Model
     protected $table = 'm_penyedia';
 
     public function paket(){
-        return $this->hasMany('App\Model\Paket');
+        return $this->hasMany('App\Model\PaketPenyedia');
     }
 
 }
diff --git a/app/Model/Provinsi.php b/app/Model/Provinsi.php
index 848ed0872f2e7050ed79e4daf78e5abb5aadd74e..cc293c327bf3cea2dcd61ac2b8d1edd598337db3 100644
--- a/app/Model/Provinsi.php
+++ b/app/Model/Provinsi.php
@@ -12,7 +12,11 @@ class Provinsi extends Model
         return $this->belongsTo('App\Model\KLDI', 'm_kldi_id');
     }
 
-    public function getPaket(){
-        return $this->kldi->paket;
+    public function getPaketPenyedia(){
+        return $this->kldi->paketPenyedia;
+    }
+
+    public function getPaketSwakelola(){
+        return $this->kldi->paketSwakelola;
     }
 }
diff --git a/app/Model/Satker.php b/app/Model/Satker.php
index 88ecbaf8b04ecb315904b4522b4caf8274bd10c3..4ee20ddceb99f0c1f7ab70dde5ba99033016beb4 100644
--- a/app/Model/Satker.php
+++ b/app/Model/Satker.php
@@ -9,6 +9,18 @@ class Satker extends Model
     protected $table = 'm_satker';
 
     public function paket() {
+        return $this->hasMany('App\Model\PaketPenyedia', 'm_satker_id');
+    }
+
+    public function paketSwakelola(){
+        return $this->hasMany('App\Model\PaketSwakelola', 'm_satker_id');
+    }
+
+    public function paketPenyediaSwakelola(){
+        return $this->hasMany('App\Model\PaketPenyediaSwakelola', 'm_satker_id');
+    }
+
+    public function paketDraf(){
         return $this->hasMany('App\Model\Paket', 'm_satker_id');
     }
 
@@ -16,7 +28,11 @@ class Satker extends Model
         return $this->belongsTo('App\Model\KLDI', 'm_kldi_id');
     }
 
-    public function getPaket(){
-        return $this->paket;
+    public function getPaketPenyedia(){
+        return $this->kldi->paketPenyedia;
+    }
+
+    public function getPaketSwakelola(){
+        return $this->kldi->paketSwakelola;
     }
 }
diff --git a/app/Model/User.php b/app/Model/User.php
index bae3385c0f0f2a9addcbd95e65d93ea09f08c90a..2d8d9dd220edc4eee565886980739a0133ac2855 100644
--- a/app/Model/User.php
+++ b/app/Model/User.php
@@ -16,7 +16,7 @@ class User extends Authenticatable
      * @var array
      */
     protected $fillable = [
-        'name', 'email', 'password',
+        'name', 'email', 'password','role'
     ];
 
     /**
diff --git a/app/Providers/AuthServiceProvider.php b/app/Providers/AuthServiceProvider.php
index 0acc984bae1780b5275383064eeed1e480f391a1..2a24176a7436af5fce56a40b75fb5eb347109e24 100644
--- a/app/Providers/AuthServiceProvider.php
+++ b/app/Providers/AuthServiceProvider.php
@@ -25,6 +25,12 @@ class AuthServiceProvider extends ServiceProvider
     {
         $this->registerPolicies();
 
-        //
+        Gate::define('pa', function($user) {
+            return $user->role == 'pa';
+        });
+
+        Gate::define('ppk', function($user){
+            return $user->role == 'ppk';
+        });
     }
 }
diff --git a/app/Util/CariPaket.php b/app/Util/CariPaket.php
new file mode 100644
index 0000000000000000000000000000000000000000..7f37b3b01015ae6f58b8b4fc7d669bdd932cd17c
--- /dev/null
+++ b/app/Util/CariPaket.php
@@ -0,0 +1,36 @@
+<?php
+
+namespace App\Util;
+
+class CariPaket 
+{
+    public $no;
+    public $paket;
+    public $pagu;
+    public $jenisPengadaan;
+    public $metode;
+    public $pemilihan;
+    public $kldi;
+    public $satuanKerja;
+    public $lokasi;
+    public $id;
+
+    public static $count = 0; 
+
+    function __construct($paket, $pagu, $tahun, $jenisPengadaan, $metode, $pemilihan, $kldi, $satuanKerja, $lokasi, $id) {
+      CariPaket::$count++;
+      $this->no = CariPaket::$count;
+      $this->paket = $paket;
+      $this->pagu = $pagu;
+      $this->tahun = $tahun;
+      $this->jenisPengadaan = $jenisPengadaan;
+      $this->metode = $metode;
+      $this->pemilihan = $pemilihan;
+      $this->kldi = $kldi;
+      $this->satuanKerja = $satuanKerja;
+      $this->lokasi = $lokasi;
+      $this->id = $id;
+    }
+}
+
+?>
\ No newline at end of file
diff --git a/app/Util/CariPaketClass.php b/app/Util/CariPaketClass.php
new file mode 100644
index 0000000000000000000000000000000000000000..309386b6a6991f30e95ec3309e3b2b00034a929b
--- /dev/null
+++ b/app/Util/CariPaketClass.php
@@ -0,0 +1,77 @@
+<?php
+
+namespace App\Util;
+
+class CariPaketClass 
+{
+    public $rup;
+    public $nama;
+    public $kldi;
+    public $satker;
+    public $tahun;
+    public $provinsi;
+    public $kota_kabupaten;
+    public $lokasi;
+    public $volume;
+    public $deskripsi;
+/**
+ *  tambahan 
+ */
+    public $spesifikasi;
+    public $dalamNegeri;
+    public $usahaKecil;
+    public $DIPA_DPA;
+
+ /**
+  * tambahan
+  */
+    public $sumberDana;
+    public $totalSumberDana;
+
+    // tambahin beberapa dibawah
+    public $jenisPengadaan;
+    public $pagu;
+    public $pemilihanPenyedia;
+    public $bulanKebutuhan;
+    public $pekerjaanAkhir;
+    public $pekerjaanMulai;
+    public $pemilihanAkhir;
+    public $pemilihanMulai;
+    public $tanggalPerbaharui;
+
+	public static $count = 0; // gak tau buat apa dari swakelola
+
+    function __construct($rup, $nama, $kldi, $satker, $tahun, $provinsi, $kota_kabupaten, $lokasi, $volume, $deskripsi,
+    $spesifikasi, $dalamNegeri, $usahaKecil, $DIPA_DPA, $sumberDana, $totalSumberDana,
+    $jenisPengadaan, $pagu, $pemilihanPenyedia, $bulanKebutuhan, $pekerjaanAkhir, $pekerjaanMulai,
+    $pemilihanAkhir, $pemilihanMulai, $tanggalPerbaharui){
+        $this->rup = $rup;
+        $this->nama = $nama;
+        $this->kldi = $kldi;
+        $this->satker = $satker;
+        $this->tahun = $tahun;
+        $this->provinsi = $provinsi;
+        $this->kota_kabupaten = $kota_kabupaten;
+        $this->lokasi = $lokasi;
+        $this->volume = $volume;
+        $this->deskripsi = $deskripsi;
+        $this->spesifikasi = $spesifikasi;
+        $this->dalamNegeri = $dalamNegeri;
+        $this->usahaKecil = $usahaKecil;
+        $this->DIPA_DPA = $DIPA_DPA;
+        $this->sumberDana = $sumberDana;
+        $this->totalSumberDana = $totalSumberDana;
+        $this->jenisPengadaan = $jenisPengadaan;
+        $this->pagu = $pagu;
+        $this->pemilihanPenyedia = $pemilihanPenyedia;
+        $this->bulanKebutuhan = $bulanKebutuhan;
+        $this->pekerjaanAkhir = $pekerjaanAkhir;
+        $this->pekerjaanMulai = $pekerjaanMulai;
+        $this->pemilihanAkhir = $pemilihanAkhir;
+        $this->pemilihanMulai = $pemilihanMulai;
+        $this->tanggalPerbaharui = $tanggalPerbaharui;
+    }
+    
+}
+
+?>
\ No newline at end of file
diff --git a/app/Util/Paket.php b/app/Util/PaketClass.php
similarity index 57%
rename from app/Util/Paket.php
rename to app/Util/PaketClass.php
index 4136b986e938488d4dafafc8c3a65c4d9cbb195e..b3e52e661db01099acb8e48e2644e9ff179b0b55 100644
--- a/app/Util/Paket.php
+++ b/app/Util/PaketClass.php
@@ -2,9 +2,10 @@
 
 namespace App\Util;
 
-class Paket 
+class PaketClass 
 {
     public $no;
+    public $idPaket;
     public $kegiatan;
     public $kodeRUP;
     public $namaPaket;
@@ -13,10 +14,15 @@ class Paket
     public $keterangan;
     public $pemilihanPenyedia;
     public $pagu;
+    public $mulaiPekerjaan;
+    public $status;
 
     public static $count = 0; 
 
-    function __construct($kegiatan, $kodeRUP, $namaPaket, $sumberDana, $lokasi, $keterangan, $pemilihanPenyedia, $pagu) {
+    function __construct($idPaket, $kegiatan, $kodeRUP, $namaPaket, $sumberDana, $lokasi, $keterangan, $pemilihanPenyedia, $pagu, $mulaiPekerjaan='', $status='') {
+      PaketClass::$count++;
+      $this->no = PaketClass::$count;
+      $this->idPaket = $idPaket;
       $this->kegiatan = $kegiatan;
       $this->kodeRUP = $kodeRUP;
       $this->namaPaket = $namaPaket;
@@ -25,6 +31,8 @@ class Paket
       $this->sumberDana = $sumberDana;
       $this->pemilihanPenyedia = $pemilihanPenyedia;
       $this->pagu = $pagu;
+      $this->mulaiPekerjaan = $mulaiPekerjaan;
+      $this->status=$status;
     }
 }
 
diff --git a/app/Util/PaketPenyediaClass.php b/app/Util/PaketPenyediaClass.php
new file mode 100644
index 0000000000000000000000000000000000000000..332ace32421a5a28435525b19a7f1460efec4401
--- /dev/null
+++ b/app/Util/PaketPenyediaClass.php
@@ -0,0 +1,74 @@
+<?php
+
+namespace App\Util;
+
+class PaketPenyediaClass
+{
+    public $no;
+	public $rup;
+	public $nama;
+	public $kldi;
+	public $satker;
+    public $tahun;
+    public $provinsi;
+    public $kota_kabupaten;
+    public $lokasi;
+    public $volume;
+    public $deskripsi;
+
+    public $spesifikasi;
+    public $dalamNegeri;
+    public $usahaKecil;
+    public $DIPA_DPA;
+
+    public $sumberDana;
+    public $totalSumberDana;
+
+    public $jenisPengadaan;
+    public $pagu;
+    public $pemilihanPenyedia;
+    public $bulanKebutuhan;
+    public $pekerjaanAkhir;
+    public $pekerjaanMulai;
+    public $pemilihanAkhir;
+    public $pemilihanMulai;
+    public $tanggalPerbaharui;
+
+	public static $count = 0;
+
+    function __construct($rup, $nama, $kldi, $satker, $tahun, $provinsi, $kota_kabupaten, $lokasi, $volume, $deskripsi,
+    $spesifikasi, $dalamNegeri, $usahaKecil, $DIPA_DPA, $sumberDana, $totalSumberDana,
+    $jenisPengadaan, $pagu, $pemilihanPenyedia, $bulanKebutuhan, $pekerjaanAkhir, $pekerjaanMulai,
+    $pemilihanAkhir, $pemilihanMulai, $tanggalPerbaharui){
+        PaketPenyediaClass::$count++;
+        $this->no = PaketPenyediaClass::$count;
+        $this->rup = $rup;
+        $this->nama = $nama;
+        $this->kldi = $kldi;
+        $this->satker = $satker;
+        $this->tahun = $tahun;
+        $this->provinsi = $provinsi;
+        $this->kota_kabupaten = $kota_kabupaten;
+        $this->lokasi = $lokasi;
+        $this->volume = $volume;
+        $this->deskripsi = $deskripsi;
+        $this->spesifikasi = $spesifikasi;
+        $this->dalamNegeri = $dalamNegeri;
+        $this->usahaKecil = $usahaKecil;
+        $this->DIPA_DPA = $DIPA_DPA;
+        $this->sumberDana = $sumberDana;
+        $this->totalSumberDana = $totalSumberDana;
+        $this->jenisPengadaan = $jenisPengadaan;
+        $this->pagu = $pagu;
+        $this->pemilihanPenyedia = $pemilihanPenyedia;
+        $this->bulanKebutuhan = $bulanKebutuhan;
+        $this->pekerjaanAkhir = $pekerjaanAkhir;
+        $this->pekerjaanMulai = $pekerjaanMulai;
+        $this->pemilihanAkhir = $pemilihanAkhir;
+        $this->pemilihanMulai = $pemilihanMulai;
+        $this->tanggalPerbaharui = $tanggalPerbaharui;
+    }
+
+}
+
+?>
\ No newline at end of file
diff --git a/app/Util/PaketPenyediaSwakelolaClass.php b/app/Util/PaketPenyediaSwakelolaClass.php
new file mode 100644
index 0000000000000000000000000000000000000000..4baff74727f8776ac69dc0e2c5a4e00b2d7589d2
--- /dev/null
+++ b/app/Util/PaketPenyediaSwakelolaClass.php
@@ -0,0 +1,79 @@
+<?php
+
+namespace App\Util;
+
+class PaketPenyediaSwakelolaClass
+{
+    public $no;
+	public $rup;
+	public $nama;
+	public $kldi;
+	public $satker;
+    public $tahun;
+    public $provinsi;
+    public $kota_kabupaten;
+    public $lokasi;
+    public $volume;
+    public $deskripsi;
+/**
+ *  tambahan 
+ */
+    public $spesifikasi;
+    public $dalamNegeri;
+    public $usahaKecil;
+    public $DIPA_DPA;
+
+ /**
+  * tambahan
+  */
+    public $sumberDana;
+    public $totalSumberDana;
+
+    // tambahin beberapa dibawah
+    public $jenisPengadaan;
+    public $pagu;
+    public $pemilihanPenyedia;
+    public $bulanKebutuhan;
+    public $pekerjaanAkhir;
+    public $pekerjaanMulai;
+    public $pemilihanAkhir;
+    public $pemilihanMulai;
+    public $tanggalPerbaharui;
+
+	public static $count = 0; // gak tau buat apa dari swakelola
+
+    function __construct($rup, $nama, $kldi, $satker, $tahun, $provinsi, $kota_kabupaten, $lokasi, $volume, $deskripsi,
+    $spesifikasi, $dalamNegeri, $usahaKecil, $DIPA_DPA, $sumberDana, $totalSumberDana,
+    $jenisPengadaan, $pagu, $pemilihanPenyedia, $bulanKebutuhan, $pekerjaanAkhir, $pekerjaanMulai,
+    $pemilihanAkhir, $pemilihanMulai, $tanggalPerbaharui){
+        PaketPenyediaSwakelolaClass::$count++;
+        $this->no = PaketPenyediaSwakelolaClass::$count;
+        $this->rup = $rup;
+        $this->nama = $nama;
+        $this->kldi = $kldi;
+        $this->satker = $satker;
+        $this->tahun = $tahun;
+        $this->provinsi = $provinsi;
+        $this->kota_kabupaten = $kota_kabupaten;
+        $this->lokasi = $lokasi;
+        $this->volume = $volume;
+        $this->deskripsi = $deskripsi;
+        $this->spesifikasi = $spesifikasi;
+        $this->dalamNegeri = $dalamNegeri;
+        $this->usahaKecil = $usahaKecil;
+        $this->DIPA_DPA = $DIPA_DPA;
+        $this->sumberDana = $sumberDana;
+        $this->totalSumberDana = $totalSumberDana;
+        $this->jenisPengadaan = $jenisPengadaan;
+        $this->pagu = $pagu;
+        $this->pemilihanPenyedia = $pemilihanPenyedia;
+        $this->bulanKebutuhan = $bulanKebutuhan;
+        $this->pekerjaanAkhir = $pekerjaanAkhir;
+        $this->pekerjaanMulai = $pekerjaanMulai;
+        $this->pemilihanAkhir = $pemilihanAkhir;
+        $this->pemilihanMulai = $pemilihanMulai;
+        $this->tanggalPerbaharui = $tanggalPerbaharui;
+    }
+}
+
+?>
\ No newline at end of file
diff --git a/app/Util/PaketSwakelola.php b/app/Util/PaketSwakelola.php
new file mode 100644
index 0000000000000000000000000000000000000000..9be73539c88625fff9d74edb1bdde9ba8b9e2371
--- /dev/null
+++ b/app/Util/PaketSwakelola.php
@@ -0,0 +1,50 @@
+<?php
+
+namespace App\Util;
+
+class PaketSwakelola
+{
+    public $no;
+	public $rup;
+	public $nama;
+	public $kldi;
+	public $satker;
+    public $tahun;
+    public $provinsi;
+    public $kota;
+    public $lokasi;
+    public $volume;
+    public $deskripsi;
+    public $sumberDana;
+    public $klpd;
+    public $mak;
+    public $pagu;
+    public $totalSumberDana;
+    public $awalKerja;
+    public $akhirKerja;
+
+	function __construct($rup, $nama, $kldi, $satker, $tahun, $provinsi, $kota, $lokasi, $volume, $deskripsi, $sumberDana, $totalSumberDana, $awalKerja, $akhirKerja){
+        PaketSwakelola::$count++;
+        $this->no = PaketSwakelola::$count;
+        $this->rup = $rup;
+        $this-> nama = $nama;
+        $this->kldi = $kldi;
+        $this->satker = $satker;
+        $this->tahun = $tahun;
+        $this->provinsi = $provinsi;
+        $this->kota = $kota;            
+        $this->lokasi = $lokasi;    
+        $this->volume = $volume;
+        $this->deskripsi = $this->deskripsi;    
+        $this->sumberDana = $sumberDana;    
+        $this->totalSumberDana = $totalSumberDana;  
+        $this->awalKerja = $awalKerja;  
+        $this->akhirKerja = $akhirKerja;    
+    }
+    
+    // private function calculateTotal($sumberDana) {
+       
+    // }
+}
+
+?>
\ No newline at end of file
diff --git a/app/Util/PaketSwakelolaClass.php b/app/Util/PaketSwakelolaClass.php
new file mode 100644
index 0000000000000000000000000000000000000000..79426d5987598f9e07289b1c47596ba62f1c0852
--- /dev/null
+++ b/app/Util/PaketSwakelolaClass.php
@@ -0,0 +1,53 @@
+<?php
+
+namespace App\Util;
+
+class PaketSwakelolaClass
+{
+    public $no;
+	public $rup;
+	public $nama;
+	public $kldi;
+	public $satker;
+    public $tahun;
+    public $provinsi;
+    public $kota;
+    public $lokasi;
+    public $volume;
+    public $deskripsi;
+    public $sumberDana;
+    public $klpd;
+    public $mak;
+    public $pagu;
+    public $totalSumberDana;
+    public $awalKerja;
+    public $akhirKerja;
+
+    public static $count = 0; 
+
+    
+	function __construct($rup, $nama, $kldi, $satker, $tahun, $provinsi, $kota, $lokasi, $volume, $deskripsi, $sumberDana, $totalSumberDana, $awalKerja, $akhirKerja){
+        PaketSwakelolaClass::$count++;
+        $this->no = PaketSwakelolaClass::$count;
+        $this->rup = $rup;
+        $this-> nama = $nama;
+        $this->kldi = $kldi;
+        $this->satker = $satker;
+        $this->tahun = $tahun;
+        $this->provinsi = $provinsi;
+        $this->kota = $kota;            
+        $this->lokasi = $lokasi;    
+        $this->volume = $volume;
+        $this->deskripsi = $this->deskripsi;    
+        $this->sumberDana = $sumberDana;    
+        $this->totalSumberDana = $totalSumberDana;  
+        $this->awalKerja = $awalKerja;  
+        $this->akhirKerja = $akhirKerja;    
+    }
+    
+    // private function calculateTotal($sumberDana) {
+       
+    // }
+}
+
+?>
\ No newline at end of file
diff --git a/app/Util/PemdaPenyediaDaerah.php b/app/Util/PemdaPenyediaDaerah.php
index 5b356f31020244a223def5d5d94ce021c41b3fb7..4b283bc2cc99729057730df6d742e0aa974410dd 100644
--- a/app/Util/PemdaPenyediaDaerah.php
+++ b/app/Util/PemdaPenyediaDaerah.php
@@ -5,6 +5,7 @@ namespace App\Util;
 class PemdaPenyediaDaerah 
 {
     public $no;
+    public $idPaket;
     public $satuanKerja;
     public $namaPaket;
     public $pagu;
@@ -13,9 +14,10 @@ class PemdaPenyediaDaerah
 
     public static $count = 0; 
 
-    function __construct($satuanKerja, $namaPaket, $pagu, $metodePemilihanPenyedia, $sumberDana) {
+    function __construct($idPaket, $satuanKerja, $namaPaket, $pagu, $metodePemilihanPenyedia, $sumberDana) {
       PemdaPenyediaDaerah::$count++;
       $this->no = PemdaPenyediaDaerah::$count;
+      $this->idPaket = $idPaket;
       $this->satuanKerja = $satuanKerja;
       $this->namaPaket = $namaPaket;
       $this->pagu = $pagu;
diff --git a/app/Util/PemdaPenyediaSwakelolaDaerah.php b/app/Util/PemdaPenyediaSwakelolaDaerah.php
index 247f637a5d35a2c8eb00503a9b20a9f26d330646..9f5575c4071ab0bb921d8c1ad608e6932e7d519f 100644
--- a/app/Util/PemdaPenyediaSwakelolaDaerah.php
+++ b/app/Util/PemdaPenyediaSwakelolaDaerah.php
@@ -6,19 +6,21 @@ class PemdaPenyediaSwakelolaDaerah
 {
 	public $no;
 	public $satuanKerja;
-	public $paket;
+	public $namaPaket;
 	public $pagu;
 	public $waktuPemilihan;
 	public $metodePemilihan;
 	public $sumberDana;
+	public $idPaket;
 
 	public static $count = 0;
 
-	function __construct($satuanKerja, $paket ,$pagu, $waktuPemilihan, $metodePemilihan, $sumberDana){
+	function __construct($idPaket, $satuanKerja, $paket ,$pagu, $waktuPemilihan, $metodePemilihan, $sumberDana){
 		PemdaPenyediaSwakelolaDaerah::$count++;
 		$this->no = PemdaPenyediaSwakelolaDaerah::$count;
+		$this->idPaket = $idPaket;
 		$this->satuanKerja = $satuanKerja;
-		$this->paket = $paket;
+		$this->namaPaket = $paket;
 		$this->pagu = $pagu;
 		$this->waktuPemilihan = $waktuPemilihan;
 		$this->metodePemilihan = $metodePemilihan;
diff --git a/app/Util/PemdaSwakelolaDaerah.php b/app/Util/PemdaSwakelolaDaerah.php
index f94bcb0a8ecb58e05cc85d694025ce8d3fdaa48f..7527e5a32bdcaa013d7a65bb736b469821b7143d 100644
--- a/app/Util/PemdaSwakelolaDaerah.php
+++ b/app/Util/PemdaSwakelolaDaerah.php
@@ -12,8 +12,9 @@ class PemdaSwakelolaDaerah
 
 	public static $count = 0;
 
-	function __construct($satuanKerja, $kegiatan, $pagu, $sumberDana){
+	function __construct($id, $satuanKerja, $kegiatan, $pagu, $sumberDana){
 		PemdaSwakelolaDaerah::$count++;
+		$this->idPaket = $id;
 		$this->no = PemdaSwakelolaDaerah::$count;
 		$this->satuanKerja = $satuanKerja;
 		$this->kegiatan = $kegiatan;
diff --git a/app/Util/PenyediaDaerah.php b/app/Util/PenyediaDaerah.php
index ed988832494c2c8c8a3a587751563acb3438a9ad..78d3b4f31a6b36b0fa7071adc9e3b91b9e334e12 100644
--- a/app/Util/PenyediaDaerah.php
+++ b/app/Util/PenyediaDaerah.php
@@ -5,6 +5,7 @@ namespace App\Util;
 class PenyediaDaerah 
 {
     public $no;
+    public $idPaket;
     public $namaPaket;
     public $pagu;
     public $metodePemilihanPenyedia;
@@ -12,9 +13,10 @@ class PenyediaDaerah
 
     public static $count = 0; 
 
-    function __construct($namaPaket, $pagu, $metodePemilihanPenyedia, $sumberDana) {
+    function __construct($idPaket, $namaPaket, $pagu, $metodePemilihanPenyedia, $sumberDana) {
       PenyediaDaerah::$count++;
       $this->no = PenyediaDaerah::$count;
+      $this->idPaket = $idPaket;
       $this->namaPaket = $namaPaket;
       $this->pagu = $pagu;
       $this->metodePemilihanPenyedia = $metodePemilihanPenyedia;
diff --git a/app/Util/PenyediaSwakelolaDaerah.php b/app/Util/PenyediaSwakelolaDaerah.php
index 88ea990ba10dd58cfef7345b96ad74dcbc68c33c..48ae7a84282947d2a42d6a3be06d466ee76529bc 100644
--- a/app/Util/PenyediaSwakelolaDaerah.php
+++ b/app/Util/PenyediaSwakelolaDaerah.php
@@ -5,19 +5,23 @@ namespace App\Util;
 class PenyediaSwakelolaDaerah
 {
 	public $no;
-	public $kegiatan;
+	public $namaPaket;
 	public $paket;
 	public $pagu;
 	public $sumberDana;
+	public $metode;
+	public $idPaket;
 
 	public static $count = 0;
 
-	function __construct($kegiatan, $paket, $pagu, $sumberDana){
+	function __construct($idPaket, $namaPaket, $paket, $pagu, $metode, $sumberDana){
 		PenyediaSwakelolaDaerah::$count++;
 		$this->no = PenyediaSwakelolaDaerah::$count;
-		$this->kegiatan = $kegiatan;
+		$this->namaPaket = $namaPaket;
+		$this->idPaket = $idPaket;
 		$this->paket = $paket;
 		$this->pagu = $pagu;
+		$this->metode = $metode;
 		$this->sumberDana = $sumberDana;
 	}
 }
diff --git a/app/Util/SumberDana.php b/app/Util/SumberDana.php
new file mode 100644
index 0000000000000000000000000000000000000000..7723cdb1a5c4c7ad45d0bdf52bc9fea656a3b6b8
--- /dev/null
+++ b/app/Util/SumberDana.php
@@ -0,0 +1,20 @@
+<?php
+
+namespace App\Util;
+
+class SumberDana
+{
+  public $sumberDana;
+  public $klpd;
+  public $mak;
+  public $pagu;
+  
+  function __construct($sumberDana, $klpd, $mak, $pagu) {
+        $this->sumberDana = $sumberDana;
+        $this->$klpd = $klpd;
+        $this->mak = $mak;
+        $this->pagu = $pagu;
+  }
+}
+
+?>
diff --git a/app/Util/SwakelolaDaerah.php b/app/Util/SwakelolaDaerah.php
index 638003ccfb699599bc67073958621ca418797290..7041906825cc3e71bff397d241d4fa076f7520fb 100644
--- a/app/Util/SwakelolaDaerah.php
+++ b/app/Util/SwakelolaDaerah.php
@@ -5,16 +5,19 @@ namespace App\Util;
 class SwakelolaDaerah
 {
 	public $no;
+	public $idPaket;
 	public $kegiatan;
 	public $paket;
 	public $pagu;
+	public $metode;
 	public $sumberDana;
 
 	public static $count = 0;
 
-	function __construct($kegiatan, $paket, $pagu, $sumberDana){
+	function __construct($idPaket, $kegiatan, $paket, $pagu, $sumberDana){
 		SwakelolaDaerah::$count++;
 		$this->no = SwakelolaDaerah::$count;
+		$this->idPaket = $idPaket;
 		$this->kegiatan = $kegiatan;
 		$this->paket = $paket;
 		$this->pagu = $pagu;
diff --git a/app/Util/UnduhMateri.php b/app/Util/UnduhMateri.php
index f9e971d3a2ee2762f20f298fb45be01656b449dd..572eeb35eab5d1a1338f501780be1c4ebf0742f7 100644
--- a/app/Util/UnduhMateri.php
+++ b/app/Util/UnduhMateri.php
@@ -9,18 +9,20 @@ class UnduhMateri
 	public $subjudul;
 	public $kategori;
 	public $deskripsi;
-	public $file;
+	public $filename;
+	public $filelink;
 
 	public static $count = 0;
 
-	function __construct($judul, $subjudul, $kategori, $deskripsi, $file){
+	function __construct($judul, $subjudul, $kategori, $deskripsi, $filename, $filelink){
 		UnduhMateri::$count++;
 		$this->no = UnduhMateri::$count;
 		$this->judul = $judul;
 		$this->subjudul = $subjudul;
 		$this->kategori = $kategori;
 		$this->deskripsi = $deskripsi;
-		$this->file = $file;
+		$this->filename = $filename;
+		$this->filelink = $filelink;
 	}
 }
 
diff --git a/config/auth.php b/config/auth.php
index 897dc826167c268c3e9a55b5f36a3cbdf3235ddb..947f7206e29713ca51094f69350c5e89879bffb3 100644
--- a/config/auth.php
+++ b/config/auth.php
@@ -68,7 +68,7 @@ return [
     'providers' => [
         'users' => [
             'driver' => 'eloquent',
-            'model' => App\User::class,
+            'model' => App\Model\User::class,
         ],
 
         // 'users' => [
diff --git a/database/migrations/2014_10_12_000000_create_users_table.php b/database/migrations/2014_10_12_000000_create_users_table.php
index 4a3ba472383f22d901f1cbb639554e775b1f988c..b1993d3820208627d53adf4a98c3807a6317ac2f 100644
--- a/database/migrations/2014_10_12_000000_create_users_table.php
+++ b/database/migrations/2014_10_12_000000_create_users_table.php
@@ -19,6 +19,7 @@ class CreateUsersTable extends Migration
             $table->string('email')->unique();
             $table->timestamp('email_verified_at')->nullable();
             $table->string('password');
+            $table->enum('role', ['pa', 'ppk']);
             $table->rememberToken();
             $table->timestamps();
         });
diff --git a/database/migrations/2019_03_21_042553_create_t_paket_penyedia_table.php b/database/migrations/2019_03_21_042553_create_t_paket_penyedia_table.php
index be3f232a6c9239b448cf51cf48fcbbc51008d16a..56fc6f29e4a09f8343edd5ff67cc5e817c3d44f2 100644
--- a/database/migrations/2019_03_21_042553_create_t_paket_penyedia_table.php
+++ b/database/migrations/2019_03_21_042553_create_t_paket_penyedia_table.php
@@ -13,7 +13,7 @@ class CreateTPaketPenyediaTable extends Migration
      */
     public function up()
     {
-        Schema::create('t_paket_penyedia', function (Blueprint $table) {
+        Schema::create('t_paket', function (Blueprint $table) {
             $table->bigIncrements('id');
             $table->unsignedBigInteger('pid')->unique();
             $table->string('nama');
@@ -92,6 +92,6 @@ class CreateTPaketPenyediaTable extends Migration
      */
     public function down()
     {
-        Schema::dropIfExists('t_paket_penyedia');
+        Schema::dropIfExists('t_paket');
     }
 }
diff --git a/database/migrations/2019_04_20_204220_create_jenis_paket_table.php b/database/migrations/2019_04_20_204220_create_jenis_paket_table.php
new file mode 100644
index 0000000000000000000000000000000000000000..20cc1db189dcaed9865ff87b744eb7cca21656a2
--- /dev/null
+++ b/database/migrations/2019_04_20_204220_create_jenis_paket_table.php
@@ -0,0 +1,32 @@
+<?php
+
+use Illuminate\Support\Facades\Schema;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Database\Migrations\Migration;
+
+class CreateJenisPaketTable extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::create('jenis_paket', function (Blueprint $table) {
+            $table->bigIncrements('id');
+            $table->string('name')->unique()->nullable();
+            $table->timestamps();
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::dropIfExists('jenis_paket');
+    }
+}
diff --git a/database/migrations/2019_04_20_204225_create_t_paket_all_table.php b/database/migrations/2019_04_20_204225_create_t_paket_all_table.php
new file mode 100644
index 0000000000000000000000000000000000000000..78eb86af262c75d9aa9f54260ab22aab2e286565
--- /dev/null
+++ b/database/migrations/2019_04_20_204225_create_t_paket_all_table.php
@@ -0,0 +1,100 @@
+<?php
+
+use Illuminate\Support\Facades\Schema;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Database\Migrations\Migration;
+
+class CreateTPaketAllTable extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::create('t_paket_all', function (Blueprint $table) {
+            $table->bigIncrements('id');
+            $table->unsignedBigInteger('pid')->unique();
+            $table->string('nama');
+            $table->string('kegiatan');
+            $table->string('lokasi');
+            $table->string('volume');
+            $table->string('sumber_dana');
+            $table->date('d_start');
+            $table->date('d_end');
+            $table->date('d_start_work');
+            $table->date('d_end_work');
+            $table->integer('pagu');
+            $table->string('tahun_anggaran');
+            $table->string('deskripsi');
+            $table->unsignedBigInteger('m_satker_id');
+            $table->foreign('m_satker_id')->references('id')->on('m_satker');
+            $table->unsignedBigInteger('m_pengadaan_id');
+            $table->foreign('m_pengadaan_id')->references('id')->on('m_pengadaan');
+            $table->unsignedBigInteger('m_penyedia_id');
+            $table->foreign('m_penyedia_id')->references('id')->on('m_penyedia');
+            $table->unsignedBigInteger('m_belanja_id');
+            $table->foreign('m_belanja_id')->references('id')->on('m_belanja');
+            $table->unsignedBigInteger('m_pokja_id');
+            $table->foreign('m_pokja_id')->references('id')->on('m_pokja');
+            $table->unsignedBigInteger('users_id');
+            $table->foreign('users_id')->references('id')->on('users');
+            $table->unsignedBigInteger('m_kldi_id');
+            $table->foreign('m_kldi_id')->references('id')->on('m_kldi');
+            $table->unsignedBigInteger('id_ulp');
+            $table->integer('hps');
+            $table->string('d_usulan')->nullable();
+            $table->string('d_ket_usulan')->nullable();
+            $table->string('d_kerangka')->nullable();
+            $table->string('d_ket_kerangka')->nullable();
+            $table->string('d_spesifikasi_teknis')->nullable();
+            $table->string('d_ket_spesifikasi_teknis')->nullable();
+            $table->string('d_hps')->nullable();
+            $table->string('d_ket_hps')->nullable();
+            $table->string('d_rancangan_kontrak')->nullable();
+            $table->string('d_ket_rancangan_kontrak')->nullable();
+            $table->string('d_printscreen_sirup')->nullable();
+            $table->string('d_ket_printscreen_sirup')->nullable();
+            $table->string('d_copy_dpa')->nullable();
+            $table->string('d_ket_copy_dpa')->nullable();
+            $table->enum('d_stat', ['Created', 'Verifikasi', 'Revisi', 'Process', 'waitPOKJA', 'Aktif', 'Rejected', 'Approved', 'Closed', 'Pending'])->nullable();
+            $table->string('d_keterangan')->nullable();
+            $table->unsignedBigInteger('id_user_ulp')->nullable();
+            $table->tinyInteger('rev_usulan')->nullable();
+            $table->tinyInteger('rev_kerangka')->nullable();
+            $table->tinyInteger('rev_teknis')->nullable();
+            $table->tinyInteger('rev_hps')->nullable();
+            $table->tinyInteger('rev_kontrak')->nullable();
+            $table->tinyInteger('rev_sirup')->nullable();
+            $table->tinyInteger('rev_copy')->nullable();
+            $table->string('catatan_revisi')->nullable();
+            $table->unsignedBigInteger('id_ketua')->nullable();
+            $table->unsignedBigInteger('id_sekretaris')->nullable();
+            $table->unsignedBigInteger('id_anggota')->nullable();
+            $table->unsignedBigInteger('id_anggota2')->nullable();
+            $table->unsignedBigInteger('id_anggota3')->nullable();
+            $table->unsignedBigInteger('id_anggota4')->nullable();
+            $table->unsignedBigInteger('id_anggota5')->nullable();
+            $table->unsignedBigInteger('id_anggota6')->nullable();
+            $table->unsignedBigInteger('id_anggota7')->nullable();
+            $table->string('sk_panitia')->nullable();
+            $table->enum('file_pemenang', ['Y','N'])->nullable();
+            $table->enum('status', [1, 2, 3, 4]);
+	    $table->unsignedBigInteger('jenis_paket_id');
+	    $table->foreign('jenis_paket_id')->references('id')->on('jenis_paket');
+            $table->timestamps();
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::dropIfExists('t_paket_all');
+    }
+}
+
diff --git a/database/seeds/DatabaseSeeder.php b/database/seeds/DatabaseSeeder.php
index 91cb6d1c2dede4151cd947c27d31f2faa7ab5a8b..f957f303b2d05f3405364a03e526299f21844383 100644
--- a/database/seeds/DatabaseSeeder.php
+++ b/database/seeds/DatabaseSeeder.php
@@ -1,6 +1,22 @@
 <?php
 
 use Illuminate\Database\Seeder;
+use App\Model\Type;
+use App\Model\KLDI;
+use App\Model\Provinsi;
+use App\Model\Kabupaten;
+use App\Model\Kota;
+use App\Model\Penyedia;
+use App\Model\Pengadaan;
+use App\Model\Satker;
+use App\Model\Belanja;
+use App\Model\Pokja;
+use App\Model\JenisPaket;
+use App\Model\Paket;
+use App\Model\PaketPenyedia;
+use App\Model\PaketSwakelola;
+use App\Model\PaketPenyediaSwakelola;
+use App\Model\User;
 
 class DatabaseSeeder extends Seeder
 {
@@ -11,6 +27,284 @@ class DatabaseSeeder extends Seeder
      */
     public function run()
     {
-        // $this->call(UsersTableSeeder::class);
+        $this->call([
+            UserSeeder::class,
+            TypeSeeder::class,
+            KLDISeeder::class,
+            ProvinsiSeeder::class,
+            KotaSeeder::class,
+            KabupatenSeeder::class,
+            PenyediaSeeder::class,
+            PengadaanSeeder::class,
+            SatkerSeeder::class,
+            BelanjaSeeder::class,
+            PokjaSeeder::class,
+            JenisPaketSeeder::class,
+            PaketSeeder::class,
+            PaketPenyediaSeeder::class,
+            PaketSwakelolaSeeder::class,
+            PaketPenyediaSwakelolaSeeder::class,
+            ]);
+    }
+}
+
+class TypeSeeder extends Seeder {
+
+    public function run()
+    {
+        Type::create(['name' => 'Provinsi']);
+        Type::create(['name' => 'Kota']);
+        Type::create(['name' => 'Kabupaten']);
+    }
+}
+
+class UserSeeder extends Seeder {
+
+    public function run()
+    {
+        User::create(['name' => 'test', 'email'=>'test@gmail.com', 'password'=>'test', 'role'=>'pa']);
+        User::create(['name' => 'test2', 'email'=>'test2@gmail.com', 'password'=>'test2', 'role'=>'ppk']);
+    }
+}
+
+class KLDISeeder extends Seeder {
+
+    public function run()
+    {
+        KLDI::create(['type_id' => 1]);
+        KLDI::create(['type_id' => 2]);
+        KLDI::create(['type_id' => 2]);
+        KLDI::create(['type_id' => 3]);
+        KLDI::create(['type_id' => 3]);
+    }
+}
+
+class ProvinsiSeeder extends Seeder {
+
+    public function run()
+    {
+        Provinsi::create(['m_kldi_id' => 1, 'nama'=> 'Pemerintah Daerah Provinsi Jawa Barat']);
+        
+    }
+}
+
+class KotaSeeder extends Seeder {
+    public function run(){
+        Kota::create(['m_kldi_id' => 2, 'nama'=> 'Pemerintah Daerah Kota Bandung']);
+        Kota::create(['m_kldi_id' => 3, 'nama'=> 'Pemerintah Daerah Kota Cirebon']);
+    }
+}
+
+class KabupatenSeeder extends Seeder {
+    public function run(){
+        Kabupaten::create(['m_kldi_id' => 4, 'nama'=> 'Pemerintah Daerah Kabupaten Bandung']);
+        Kabupaten::create(['m_kldi_id' => 5, 'nama'=> 'Pemerintah Daerah Kabupaten Majalengka']);
+    }
+}
+
+class PenyediaSeeder extends Seeder {
+
+    public function run()
+    {
+        Penyedia::create(['pid' => 8, 'nama'=> 'Pengadaan Langsung', 'stat'=>'Y']);
+        Penyedia::create(['pid' => 9, 'nama'=> 'e-Purchasing','stat'=>'Y']);
+        Penyedia::create(['pid' => 7, 'nama'=> 'Penunjukan Langsung','stat'=>'Y']);
+        Penyedia::create(['pid' => 2, 'nama'=> 'Lelang Sederhana','stat'=>'Y']);
+        Penyedia::create(['pid' => 1, 'nama'=> 'Lelang Umum','stat'=>'Y']);
+        Penyedia::create(['pid' => 6, 'nama'=> 'Pemilihan Langsung','stat'=>'Y']);
+        Penyedia::create(['pid' => 11, 'nama'=> 'Kontes','stat'=>'Y']);
+        Penyedia::create(['pid' => 5, 'nama'=> 'Seleksi Sederhana','stat'=>'Y']);
+        Penyedia::create(['pid' => 4, 'nama'=> 'Seleksi Umum','stat'=>'Y']);
+        Penyedia::create(['pid' => 12, 'nama'=> 'Lelang Cepat','stat'=>'Y']);
+        Penyedia::create(['pid' => 11, 'nama'=> 'Pemerintah Daerah Kabupaten Majalengka','stat'=>'Y']);
+    }
+}
+
+class PengadaanSeeder extends Seeder {
+
+    public function run()
+    {
+        Pengadaan::create(['pid' => 1, 'nama'=> 'Barang', 'stat'=>'Y']);
+        Pengadaan::create(['pid' => 4, 'nama'=> 'Jasa Lainnya','stat'=>'Y']);
+        Pengadaan::create(['pid' => 2, 'nama'=> 'Pekerjaan','stat'=>'Y']);
+        Pengadaan::create(['pid' => 3, 'nama'=> 'Jasa Konsultasi','stat'=>'Y']);
+    }
+}
+
+class SatkerSeeder extends Seeder {
+
+    public function run()
+    {
+        Satker::create(['m_kldi_id' => 1, 'nama'=> 'DINAS KOMUNIKASI DAN INFORMATIKA PROVINSI JAWA BARAT']);
+        Satker::create(['m_kldi_id' => 1, 'nama'=> 'BADAN PENDAPATAN DAERAH PROVINSI JAWA BARAT']);
+        Satker::create(['m_kldi_id' => 2, 'nama'=> 'BADAN KESATUAN BANGSA DAN POLITIK']);
+        Satker::create(['m_kldi_id' => 2, 'nama'=> 'DINAS PERHUBUNGAN']);
+        Satker::create(['m_kldi_id' => 4, 'nama'=> 'SEKRETARIAT DAERAH']);
+        Satker::create(['m_kldi_id' => 4, 'nama'=> 'DINAS PERPUSTAKAAN DAN KEARSIPAN']);
+    }
+}
+
+class BelanjaSeeder extends Seeder {
+
+    public function run()
+    {
+        Belanja::create(['name' =>'Barang/jasa']);
+    }
+}
+
+class PokjaSeeder extends Seeder {
+
+    public function run()
+    {
+        Pokja::create(['pid' => '123-456-789','nama'=>'Pokja Satu','alamat'=>'Alamat', 'stat'=>'Y']);
+        Pokja::create(['pid' => '122-333-444','nama'=>'Pokja Dua','alamat'=>'Alamat', 'stat'=>'Y']);
+    }
+}
+
+class PaketPenyediaSeeder extends Seeder {
+
+    public function run()
+    {        
+        PaketPenyedia::create(['pid'=>10000, 'nama'=>'Belanja Jasa Keamanan', 'kegiatan'=>'Penyediaan Jasa Kemanan dan Kebersihan Beserta Peralatannya-ASN', 'lokasi'=>'Jl. Ahmad Yani No. 21 Garut', 'volume'=>'1 Paket', 'sumber_dana'=>'APBD', 'd_start'=>'2018-03-01', 'd_end'=>'2018-03-01', 'd_start_work'=>'2018-04-01', 'd_end_work'=>'2018-12-01', 'pagu' =>'199980000', 'tahun_anggaran'=>'2018', 'deskripsi'=>'Belanja Jasa Keamanan Dalam', 'm_satker_id'=>1, 'm_pengadaan_id'=>2, 'm_penyedia_id'=>1, 'm_belanja_id'=>1, 'm_pokja_id'=>1, 'users_id'=>1, 'm_kldi_id'=>1, 'id_ulp'=>0, 'hps'=>0]);
+
+        PaketPenyedia::create(['pid'=>10001, 'nama'=>'Belanja PULPEN', 'kegiatan'=>'Penyediaan Jasa Kemanan dan Kebersihan Beserta Peralatannya-ASN', 'lokasi'=>'Jl. Ahmad Yani No. 21 Garut', 'volume'=>'1 Paket', 'sumber_dana'=>'APBD', 'd_start'=>'2018-03-01', 'd_end'=>'2018-03-01', 'd_start_work'=>'2018-04-01', 'd_end_work'=>'2018-12-01', 'pagu' =>'80000', 'tahun_anggaran'=>'2018', 'deskripsi'=>'Belanja Jasa Keamanan Dalam', 'm_satker_id'=>1, 'm_pengadaan_id'=>2, 'm_penyedia_id'=>2, 'm_belanja_id'=>1, 'm_pokja_id'=>1, 'users_id'=>1, 'm_kldi_id'=>1, 'id_ulp'=>0, 'hps'=>0]);
+        
+        PaketPenyedia::create(['pid'=>10002, 'nama'=>'Belanja PULPEN', 'kegiatan'=>'Penyediaan Jasa Kemanan dan Kebersihan Beserta Peralatannya-ASN', 'lokasi'=>'Jl. Ahmad Yani No. 21 Garut', 'volume'=>'1 Paket', 'sumber_dana'=>'APBD', 'd_start'=>'2018-03-01', 'd_end'=>'2018-03-01', 'd_start_work'=>'2018-04-01', 'd_end_work'=>'2018-12-01', 'pagu' =>'199980000', 'tahun_anggaran'=>'2018', 'deskripsi'=>'Belanja Jasa Keamanan Dalam', 'm_satker_id'=>1, 'm_pengadaan_id'=>2, 'm_penyedia_id'=>3, 'm_belanja_id'=>1, 'm_pokja_id'=>1, 'users_id'=>1, 'm_kldi_id'=>1, 'id_ulp'=>0, 'hps'=>0]);
+
+        PaketPenyedia::create(['pid'=>10003, 'nama'=>'Belanja ayam gorenggggg', 'kegiatan'=>'Penyediaan Jasa Kemanan dan Kebersihan Beserta Peralatannya-ASN', 'lokasi'=>'Jl. Ahmad Yani No. 21 Garut', 'volume'=>'1 Paket', 'sumber_dana'=>'APBD', 'd_start'=>'2018-03-01', 'd_end'=>'2018-03-01', 'd_start_work'=>'2018-04-01', 'd_end_work'=>'2018-12-01', 'pagu' =>'199980000', 'tahun_anggaran'=>'2018', 'deskripsi'=>'Belanja Jasa Keamanan Dalam', 'm_satker_id'=>2, 'm_pengadaan_id'=>2, 'm_penyedia_id'=>1, 'm_belanja_id'=>1, 'm_pokja_id'=>1, 'users_id'=>1, 'm_kldi_id'=>1, 'id_ulp'=>0, 'hps'=>0]);
+
+        PaketPenyedia::create(['pid'=>10004, 'nama'=>'Belanja es teh manis', 'kegiatan'=>'Penyediaan Jasa Kemanan dan Kebersihan Beserta Peralatannya-ASN', 'lokasi'=>'Jl. Ahmad Yani No. 21 Garut', 'volume'=>'1 Paket', 'sumber_dana'=>'APBD', 'd_start'=>'2018-03-01', 'd_end'=>'2018-03-01', 'd_start_work'=>'2018-04-01', 'd_end_work'=>'2018-12-01', 'pagu' =>'80000', 'tahun_anggaran'=>'2018', 'deskripsi'=>'Belanja Jasa Keamanan Dalam', 'm_satker_id'=>2, 'm_pengadaan_id'=>2, 'm_penyedia_id'=>3, 'm_belanja_id'=>1, 'm_pokja_id'=>1, 'users_id'=>1, 'm_kldi_id'=>1, 'id_ulp'=>0, 'hps'=>0]);
+
+        PaketPenyedia::create(['pid'=>10005, 'nama'=>'Belanja buku', 'kegiatan'=>'Penyediaan Jasa Kemanan dan Kebersihan Beserta Peralatannya-ASN', 'lokasi'=>'Jl. Ahmad Yani No. 21 Garut', 'volume'=>'1 Paket', 'sumber_dana'=>'APBD', 'd_start'=>'2018-03-01', 'd_end'=>'2018-03-01', 'd_start_work'=>'2018-04-01', 'd_end_work'=>'2018-12-01', 'pagu' =>'999', 'tahun_anggaran'=>'2018', 'deskripsi'=>'Belanja Jasa Keamanan Dalam', 'm_satker_id'=>2, 'm_pengadaan_id'=>2, 'm_penyedia_id'=>1, 'm_belanja_id'=>1, 'm_pokja_id'=>1, 'users_id'=>1, 'm_kldi_id'=>1, 'id_ulp'=>0, 'hps'=>0]);
+
+        PaketPenyedia::create(['pid'=>10006, 'nama'=>'Belanja Topi', 'kegiatan'=>'Penyediaan Jasa Kemanan dan Kebersihan Beserta Peralatannya-ASN', 'lokasi'=>'Jl. Ahmad Yani No. 21 Garut', 'volume'=>'1 Paket', 'sumber_dana'=>'APBD', 'd_start'=>'2018-03-01', 'd_end'=>'2018-03-01', 'd_start_work'=>'2018-04-01', 'd_end_work'=>'2018-12-01', 'pagu' =>'199980000', 'tahun_anggaran'=>'2018', 'deskripsi'=>'Belanja Jasa Keamanan Dalam', 'm_satker_id'=>3, 'm_pengadaan_id'=>2, 'm_penyedia_id'=>1, 'm_belanja_id'=>1, 'm_pokja_id'=>1, 'users_id'=>1, 'm_kldi_id'=>2, 'id_ulp'=>0, 'hps'=>0]);
+
+        PaketPenyedia::create(['pid'=>10007, 'nama'=>'Belanja Meja', 'kegiatan'=>'Penyediaan Jasa Kemanan dan Kebersihan Beserta Peralatannya-ASN', 'lokasi'=>'Jl. Ahmad Yani No. 21 Garut', 'volume'=>'1 Paket', 'sumber_dana'=>'APBD', 'd_start'=>'2018-03-01', 'd_end'=>'2018-03-01', 'd_start_work'=>'2018-04-01', 'd_end_work'=>'2018-12-01', 'pagu' =>'80000', 'tahun_anggaran'=>'2018', 'deskripsi'=>'Belanja Jasa Keamanan Dalam', 'm_satker_id'=>3, 'm_pengadaan_id'=>2, 'm_penyedia_id'=>2, 'm_belanja_id'=>1, 'm_pokja_id'=>1, 'users_id'=>1, 'm_kldi_id'=>2, 'id_ulp'=>0, 'hps'=>0]);
+
+        PaketPenyedia::create(['pid'=>10008, 'nama'=>'Belanja HP', 'kegiatan'=>'Penyediaan Jasa Kemanan dan Kebersihan Beserta Peralatannya-ASN', 'lokasi'=>'Jl. Ahmad Yani No. 21 Garut', 'volume'=>'1 Paket', 'sumber_dana'=>'APBD', 'd_start'=>'2018-03-01', 'd_end'=>'2018-03-01', 'd_start_work'=>'2018-04-01', 'd_end_work'=>'2018-12-01', 'pagu' =>'999', 'tahun_anggaran'=>'2018', 'deskripsi'=>'Belanja Jasa Keamanan Dalam', 'm_satker_id'=>3, 'm_pengadaan_id'=>2, 'm_penyedia_id'=>3, 'm_belanja_id'=>1, 'm_pokja_id'=>1, 'users_id'=>1, 'm_kldi_id'=>2, 'id_ulp'=>0, 'hps'=>0]);
+
+        PaketPenyedia::create(['pid'=>10009, 'nama'=>'Belanja HP', 'kegiatan'=>'Penyediaan Jasa Kemanan dan Kebersihan Beserta Peralatannya-ASN', 'lokasi'=>'Jl. Ahmad Yani No. 21 Garut', 'volume'=>'1 Paket', 'sumber_dana'=>'APBD', 'd_start'=>'2018-03-01', 'd_end'=>'2018-03-01', 'd_start_work'=>'2018-04-01', 'd_end_work'=>'2018-12-01', 'pagu' =>'199980000', 'tahun_anggaran'=>'2018', 'deskripsi'=>'Belanja Jasa Keamanan Dalam', 'm_satker_id'=>4, 'm_pengadaan_id'=>2, 'm_penyedia_id'=>1, 'm_belanja_id'=>1, 'm_pokja_id'=>1, 'users_id'=>1, 'm_kldi_id'=>2, 'id_ulp'=>0, 'hps'=>0]);
+
+        PaketPenyedia::create(['pid'=>10010, 'nama'=>'Belanja jeruk', 'kegiatan'=>'Penyediaan Jasa Kemanan dan Kebersihan Beserta Peralatannya-ASN', 'lokasi'=>'Jl. Ahmad Yani No. 21 Garut', 'volume'=>'1 Paket', 'sumber_dana'=>'APBD', 'd_start'=>'2018-03-01', 'd_end'=>'2018-03-01', 'd_start_work'=>'2018-04-01', 'd_end_work'=>'2018-12-01', 'pagu' =>'80000', 'tahun_anggaran'=>'2018', 'deskripsi'=>'Belanja Jasa Keamanan Dalam', 'm_satker_id'=>4, 'm_pengadaan_id'=>2, 'm_penyedia_id'=>3, 'm_belanja_id'=>1, 'm_pokja_id'=>1, 'users_id'=>1, 'm_kldi_id'=>2, 'id_ulp'=>0, 'hps'=>0]);
+
+        PaketPenyedia::create(['pid'=>10011, 'nama'=>'Belanja mainan', 'kegiatan'=>'Penyediaan Jasa Kemanan dan Kebersihan Beserta Peralatannya-ASN', 'lokasi'=>'Jl. Ahmad Yani No. 21 Garut', 'volume'=>'1 Paket', 'sumber_dana'=>'APBD', 'd_start'=>'2018-03-01', 'd_end'=>'2018-03-01', 'd_start_work'=>'2018-04-01', 'd_end_work'=>'2018-12-01', 'pagu' =>'999', 'tahun_anggaran'=>'2018', 'deskripsi'=>'Belanja Jasa Keamanan Dalam', 'm_satker_id'=>4, 'm_pengadaan_id'=>2, 'm_penyedia_id'=>1, 'm_belanja_id'=>1, 'm_pokja_id'=>1, 'users_id'=>1, 'm_kldi_id'=>2, 'id_ulp'=>0, 'hps'=>0]);
+
+        PaketPenyedia::create(['pid'=>10012, 'nama'=>'Belanja snack', 'kegiatan'=>'Penyediaan Jasa Kemanan dan Kebersihan Beserta Peralatannya-ASN', 'lokasi'=>'Jl. Ahmad Yani No. 21 Garut', 'volume'=>'1 Paket', 'sumber_dana'=>'APBD', 'd_start'=>'2018-03-01', 'd_end'=>'2018-03-01', 'd_start_work'=>'2018-04-01', 'd_end_work'=>'2018-12-01', 'pagu' =>'199980000', 'tahun_anggaran'=>'2018', 'deskripsi'=>'Belanja Jasa Keamanan Dalam', 'm_satker_id'=>5, 'm_pengadaan_id'=>2, 'm_penyedia_id'=>1, 'm_belanja_id'=>1, 'm_pokja_id'=>1, 'users_id'=>1, 'm_kldi_id'=>4, 'id_ulp'=>0, 'hps'=>0]);
+
+        PaketPenyedia::create(['pid'=>10013, 'nama'=>'Belanja baterai', 'kegiatan'=>'Penyediaan Jasa Kemanan dan Kebersihan Beserta Peralatannya-ASN', 'lokasi'=>'Jl. Ahmad Yani No. 21 Garut', 'volume'=>'1 Paket', 'sumber_dana'=>'APBD', 'd_start'=>'2018-03-01', 'd_end'=>'2018-03-01', 'd_start_work'=>'2018-04-01', 'd_end_work'=>'2018-12-01', 'pagu' =>'199980000', 'tahun_anggaran'=>'2018', 'deskripsi'=>'Belanja Jasa Keamanan Dalam', 'm_satker_id'=>5, 'm_pengadaan_id'=>2, 'm_penyedia_id'=>2, 'm_belanja_id'=>1, 'm_pokja_id'=>1, 'users_id'=>1, 'm_kldi_id'=>4, 'id_ulp'=>0, 'hps'=>0]);
+
+        PaketPenyedia::create(['pid'=>10014, 'nama'=>'Belanja internet', 'kegiatan'=>'Penyediaan Jasa', 'lokasi'=>'Jl. TEST', 'volume'=>'1 Paket', 'sumber_dana'=>'APBD', 'd_start'=>'2018-03-01', 'd_end'=>'2018-03-01', 'd_start_work'=>'2018-04-01', 'd_end_work'=>'2018-12-01', 'pagu' =>'199980000', 'tahun_anggaran'=>'2018', 'deskripsi'=>'Belanja Jasa Keamanan Dalam', 'm_satker_id'=>5, 'm_pengadaan_id'=>2, 'm_penyedia_id'=>3, 'm_belanja_id'=>1, 'm_pokja_id'=>1, 'users_id'=>1, 'm_kldi_id'=>4, 'id_ulp'=>0, 'hps'=>0]);
+
+        PaketPenyedia::create(['pid'=>10015, 'nama'=>'Belanja lampu', 'kegiatan'=>'Penyediaan Jasa Kemanan dan Kebersihan Beserta Peralatannya-ASN', 'lokasi'=>'Jl. Ahmad Yani No. 21 Garut', 'volume'=>'1 Paket', 'sumber_dana'=>'APBD', 'd_start'=>'2018-03-01', 'd_end'=>'2018-03-01', 'd_start_work'=>'2018-04-01', 'd_end_work'=>'2018-12-01', 'pagu' =>'199980000', 'tahun_anggaran'=>'2018', 'deskripsi'=>'Belanja Jasa Keamanan Dalam', 'm_satker_id'=>6, 'm_pengadaan_id'=>2, 'm_penyedia_id'=>1, 'm_belanja_id'=>1, 'm_pokja_id'=>1, 'users_id'=>1, 'm_kldi_id'=>4, 'id_ulp'=>0, 'hps'=>0]);
+
+        PaketPenyedia::create(['pid'=>10016, 'nama'=>'Belanja laptop', 'kegiatan'=>'Penyediaan Jasa Kemanan dan Kebersihan Beserta Peralatannya-ASN', 'lokasi'=>'Jl. Ahmad Yani No. 21 Garut', 'volume'=>'1 Paket', 'sumber_dana'=>'APBD', 'd_start'=>'2018-03-01', 'd_end'=>'2018-03-01', 'd_start_work'=>'2018-04-01', 'd_end_work'=>'2018-12-01', 'pagu' =>'80000', 'tahun_anggaran'=>'2018', 'deskripsi'=>'Belanja Jasa Keamanan Dalam', 'm_satker_id'=>6, 'm_pengadaan_id'=>2, 'm_penyedia_id'=>3, 'm_belanja_id'=>1, 'm_pokja_id'=>1, 'users_id'=>1, 'm_kldi_id'=>4, 'id_ulp'=>0, 'hps'=>0]);
+
+        PaketPenyedia::create(['pid'=>10017, 'nama'=>'Belanja yoyo', 'kegiatan'=>'Penyediaan Jasa', 'lokasi'=>'Jl. TEST', 'volume'=>'1 Paket', 'sumber_dana'=>'APBD', 'd_start'=>'2018-03-01', 'd_end'=>'2018-03-01', 'd_start_work'=>'2018-04-01', 'd_end_work'=>'2018-12-01', 'pagu' =>'999', 'tahun_anggaran'=>'2018', 'deskripsi'=>'Belanja Jasa Keamanan Dalam', 'm_satker_id'=>6, 'm_pengadaan_id'=>2, 'm_penyedia_id'=>1, 'm_belanja_id'=>1, 'm_pokja_id'=>1, 'users_id'=>1, 'm_kldi_id'=>4, 'id_ulp'=>0, 'hps'=>0]);
+    }
+}
+
+class PaketSwakelolaSeeder extends Seeder {
+
+    public function run()
+    {  
+	PaketSwakelola::create(['pid'=>20000, 'nama'=>'Honorarium Pengadaan Barang dan Jasa 1', 'kegiatan'=>'Pengadaan Peralatan Kantor BKD Provinsi Jawa Barat', 'lokasi'=>'Jl. TEST', 'volume'=>'1 Paket', 'sumber_dana'=>'APBD', 'd_start'=>'2018-03-01', 'd_end'=>'2018-03-01', 'd_start_work'=>'2018-04-01', 'd_end_work'=>'2018-12-01', 'pagu' =>'20001000', 'tahun_anggaran'=>'2019', 'deskripsi'=>'Pengadaan Barang dan Jasa', 'm_satker_id'=>1, 'm_pengadaan_id'=>2, 'm_penyedia_id'=>1, 'm_belanja_id'=>1, 'm_pokja_id'=>1, 'users_id'=>1, 'm_kldi_id'=>1, 'id_ulp'=>0, 'hps'=>0]);
+
+	PaketSwakelola::create(['pid'=>20001, 'nama'=>'Honorarium Pengadaan Barang Jasa 2', 'kegiatan'=>'Penyusunan Dokumen Perencanaan BKD', 'lokasi'=>'Jl. Ahmad Yani No. 11', 'volume'=>'1 Paket', 'sumber_dana'=>'APBD', 'd_start'=>'2018-03-01', 'd_end'=>'2018-03-01', 'd_start_work'=>'2018-04-01', 'd_end_work'=>'2018-12-01', 'pagu' =>'80000', 'tahun_anggaran'=>'2018', 'deskripsi'=>'Belanja Jasa Keamanan Dalam', 'm_satker_id'=>1, 'm_pengadaan_id'=>2, 'm_penyedia_id'=>2, 'm_belanja_id'=>1, 'm_pokja_id'=>1, 'users_id'=>1, 'm_kldi_id'=>1, 'id_ulp'=>0, 'hps'=>0]);
+        
+        PaketSwakelola::create(['pid'=>20002, 'nama'=>'Honorarium Pengadaan Barang Jasa 3', 'kegiatan'=>'Pemberdayaan Jaringan Dokumentasi dan Informasi Hukum', 'lokasi'=>'Jl. Ahmad Yani No. 21 Garut', 'volume'=>'1 Paket', 'sumber_dana'=>'APBD', 'd_start'=>'2018-03-01', 'd_end'=>'2018-03-01', 'd_start_work'=>'2018-04-01', 'd_end_work'=>'2018-12-01', 'pagu' =>'199980000', 'tahun_anggaran'=>'2018', 'deskripsi'=>'Belanja Jasa Keamanan Dalam', 'm_satker_id'=>1, 'm_pengadaan_id'=>2, 'm_penyedia_id'=>3, 'm_belanja_id'=>1, 'm_pokja_id'=>1, 'users_id'=>1, 'm_kldi_id'=>1, 'id_ulp'=>0, 'hps'=>0]);
+
+        PaketSwakelola::create(['pid'=>20003, 'nama'=>'Konsumsi Rapat Akbar', 'kegiatan'=>'Rapat Akbar', 'lokasi'=>'Jl. Ahmad Yani No. 21 Garut', 'volume'=>'1 Paket', 'sumber_dana'=>'APBD', 'd_start'=>'2018-03-01', 'd_end'=>'2018-03-01', 'd_start_work'=>'2018-04-01', 'd_end_work'=>'2018-12-01', 'pagu' =>'1980000', 'tahun_anggaran'=>'2018', 'deskripsi'=>'Belanja Jasa Keamanan Dalam', 'm_satker_id'=>2, 'm_pengadaan_id'=>2, 'm_penyedia_id'=>1, 'm_belanja_id'=>1, 'm_pokja_id'=>1, 'users_id'=>1, 'm_kldi_id'=>1, 'id_ulp'=>0, 'hps'=>0]);
+
+        PaketSwakelola::create(['pid'=>20004, 'nama'=>'Sewa Hotel', 'kegiatan'=>'Seminar SIRUP', 'lokasi'=>'Jl. Ahmad Yani No. 21 Garut', 'volume'=>'1 Paket', 'sumber_dana'=>'APBD', 'd_start'=>'2018-03-01', 'd_end'=>'2018-03-01', 'd_start_work'=>'2018-04-01', 'd_end_work'=>'2018-12-01', 'pagu' =>'80000', 'tahun_anggaran'=>'2018', 'deskripsi'=>'Belanja Jasa Keamanan Dalam', 'm_satker_id'=>2, 'm_pengadaan_id'=>2, 'm_penyedia_id'=>3, 'm_belanja_id'=>1, 'm_pokja_id'=>1, 'users_id'=>1, 'm_kldi_id'=>1, 'id_ulp'=>0, 'hps'=>0]);
+
+        PaketSwakelola::create(['pid'=>20005, 'nama'=>'Belanja ATK', 'kegiatan'=>'Pembelian Tahunan', 'lokasi'=>'Jl. Ahmad Yani No. 21 Garut', 'volume'=>'1 Paket', 'sumber_dana'=>'APBD', 'd_start'=>'2018-03-01', 'd_end'=>'2018-03-01', 'd_start_work'=>'2018-04-01', 'd_end_work'=>'2018-12-01', 'pagu' =>'999', 'tahun_anggaran'=>'2018', 'deskripsi'=>'Belanja Jasa Keamanan Dalam', 'm_satker_id'=>2, 'm_pengadaan_id'=>2, 'm_penyedia_id'=>1, 'm_belanja_id'=>1, 'm_pokja_id'=>1, 'users_id'=>1, 'm_kldi_id'=>1, 'id_ulp'=>0, 'hps'=>0]);
+
+        PaketSwakelola::create(['pid'=>20006, 'nama'=>'Perjalanan Dinas ke Jakarta', 'kegiatan'=>'Seminar', 'lokasi'=>'Jl. Ahmad Yani No. 21 Garut', 'volume'=>'1 Paket', 'sumber_dana'=>'APBD', 'd_start'=>'2018-03-01', 'd_end'=>'2018-03-01', 'd_start_work'=>'2018-04-01', 'd_end_work'=>'2018-12-01', 'pagu' =>'199980000', 'tahun_anggaran'=>'2018', 'deskripsi'=>'Belanja Jasa Keamanan Dalam', 'm_satker_id'=>3, 'm_pengadaan_id'=>2, 'm_penyedia_id'=>1, 'm_belanja_id'=>1, 'm_pokja_id'=>1, 'users_id'=>1, 'm_kldi_id'=>2, 'id_ulp'=>0, 'hps'=>0]);
+
+        PaketSwakelola::create(['pid'=>20007, 'nama'=>'Perjalanan Dinas ke Bandung', 'kegiatan'=>'Workshop', 'lokasi'=>'Jl. Ahmad Yani No. 21 Garut', 'volume'=>'1 Paket', 'sumber_dana'=>'APBD', 'd_start'=>'2018-03-01', 'd_end'=>'2018-03-01', 'd_start_work'=>'2018-04-01', 'd_end_work'=>'2018-12-01', 'pagu' =>'80000', 'tahun_anggaran'=>'2018', 'deskripsi'=>'Belanja Jasa Keamanan Dalam', 'm_satker_id'=>3, 'm_pengadaan_id'=>2, 'm_penyedia_id'=>2, 'm_belanja_id'=>1, 'm_pokja_id'=>1, 'users_id'=>1, 'm_kldi_id'=>2, 'id_ulp'=>0, 'hps'=>0]);
+
+        PaketSwakelola::create(['pid'=>20008, 'nama'=>'Perjalanan Dinas ke Bali', 'kegiatan'=>'Pelatihan', 'lokasi'=>'Jl. Ahmad Yani No. 21 Garut', 'volume'=>'1 Paket', 'sumber_dana'=>'APBD', 'd_start'=>'2018-03-01', 'd_end'=>'2018-03-01', 'd_start_work'=>'2018-04-01', 'd_end_work'=>'2018-12-01', 'pagu' =>'999', 'tahun_anggaran'=>'2018', 'deskripsi'=>'Belanja Jasa Keamanan Dalam', 'm_satker_id'=>3, 'm_pengadaan_id'=>2, 'm_penyedia_id'=>3, 'm_belanja_id'=>1, 'm_pokja_id'=>1, 'users_id'=>1, 'm_kldi_id'=>2, 'id_ulp'=>0, 'hps'=>0]);
+
+        PaketSwakelola::create(['pid'=>20009, 'nama'=>'Belanja Mouse', 'kegiatan'=>'Penyediaan Barang Komputer', 'lokasi'=>'Jl. Ahmad Yani No. 21 Garut', 'volume'=>'1 Paket', 'sumber_dana'=>'APBD', 'd_start'=>'2018-03-01', 'd_end'=>'2018-03-01', 'd_start_work'=>'2018-04-01', 'd_end_work'=>'2018-12-01', 'pagu' =>'199980000', 'tahun_anggaran'=>'2018', 'deskripsi'=>'Belanja Jasa Keamanan Dalam', 'm_satker_id'=>4, 'm_pengadaan_id'=>2, 'm_penyedia_id'=>1, 'm_belanja_id'=>1, 'm_pokja_id'=>1, 'users_id'=>1, 'm_kldi_id'=>2, 'id_ulp'=>0, 'hps'=>0]);
+
+        PaketSwakelola::create(['pid'=>20010, 'nama'=>'Belanja Speaker', 'kegiatan'=>'Penyediaan Barang Komputer', 'lokasi'=>'Jl. Ahmad Yani No. 21 Garut', 'volume'=>'1 Paket', 'sumber_dana'=>'APBD', 'd_start'=>'2018-03-01', 'd_end'=>'2018-03-01', 'd_start_work'=>'2018-04-01', 'd_end_work'=>'2018-12-01', 'pagu' =>'80000', 'tahun_anggaran'=>'2018', 'deskripsi'=>'Belanja Jasa Keamanan Dalam', 'm_satker_id'=>4, 'm_pengadaan_id'=>2, 'm_penyedia_id'=>3, 'm_belanja_id'=>1, 'm_pokja_id'=>1, 'users_id'=>1, 'm_kldi_id'=>2, 'id_ulp'=>0, 'hps'=>0]);
+
+        PaketSwakelola::create(['pid'=>20011, 'nama'=>'Belanja Keyboard', 'kegiatan'=>'Penyediaan Barang Komputer', 'lokasi'=>'Jl. Ahmad Yani No. 21 Garut', 'volume'=>'1 Paket', 'sumber_dana'=>'APBD', 'd_start'=>'2018-03-01', 'd_end'=>'2018-03-01', 'd_start_work'=>'2018-04-01', 'd_end_work'=>'2018-12-01', 'pagu' =>'999', 'tahun_anggaran'=>'2018', 'deskripsi'=>'Belanja Jasa Keamanan Dalam', 'm_satker_id'=>4, 'm_pengadaan_id'=>2, 'm_penyedia_id'=>1, 'm_belanja_id'=>1, 'm_pokja_id'=>1, 'users_id'=>1, 'm_kldi_id'=>2, 'id_ulp'=>0, 'hps'=>0]);
+
+        PaketSwakelola::create(['pid'=>20012, 'nama'=>'Belanja Snack', 'kegiatan'=>'Rapat Akbar', 'lokasi'=>'Jl. Ahmad Yani No. 21 Garut', 'volume'=>'1 Paket', 'sumber_dana'=>'APBD', 'd_start'=>'2018-03-01', 'd_end'=>'2018-03-01', 'd_start_work'=>'2018-04-01', 'd_end_work'=>'2018-12-01', 'pagu' =>'199980000', 'tahun_anggaran'=>'2018', 'deskripsi'=>'Belanja Jasa Keamanan Dalam', 'm_satker_id'=>5, 'm_pengadaan_id'=>2, 'm_penyedia_id'=>1, 'm_belanja_id'=>1, 'm_pokja_id'=>1, 'users_id'=>1, 'm_kldi_id'=>4, 'id_ulp'=>0, 'hps'=>0]);
+
+        PaketSwakelola::create(['pid'=>20013, 'nama'=>'Honor Tim', 'kegiatan'=>'Pelatihan SIRUP LKPP', 'lokasi'=>'Jl. Ahmad Yani No. 21 Garut', 'volume'=>'1 Paket', 'sumber_dana'=>'APBD', 'd_start'=>'2018-03-01', 'd_end'=>'2018-03-01', 'd_start_work'=>'2018-04-01', 'd_end_work'=>'2018-12-01', 'pagu' =>'199980000', 'tahun_anggaran'=>'2018', 'deskripsi'=>'Belanja Jasa Keamanan Dalam', 'm_satker_id'=>5, 'm_pengadaan_id'=>2, 'm_penyedia_id'=>2, 'm_belanja_id'=>1, 'm_pokja_id'=>1, 'users_id'=>1, 'm_kldi_id'=>4, 'id_ulp'=>0, 'hps'=>0]);
+
+        PaketSwakelola::create(['pid'=>20014, 'nama'=>'Operational Kendaraan Dinas', 'kegiatan'=>'Perjalanan Dinas', 'lokasi'=>'Jl. TEST', 'volume'=>'1 Paket', 'sumber_dana'=>'APBD', 'd_start'=>'2018-03-01', 'd_end'=>'2018-03-01', 'd_start_work'=>'2018-04-01', 'd_end_work'=>'2018-12-01', 'pagu' =>'199980000', 'tahun_anggaran'=>'2018', 'deskripsi'=>'Belanja Jasa Keamanan Dalam', 'm_satker_id'=>5, 'm_pengadaan_id'=>2, 'm_penyedia_id'=>3, 'm_belanja_id'=>1, 'm_pokja_id'=>1, 'users_id'=>1, 'm_kldi_id'=>4, 'id_ulp'=>0, 'hps'=>0]);
+
+        PaketSwakelola::create(['pid'=>20015, 'nama'=>'Belanja Bensin', 'kegiatan'=>'Perjalanan Dinas', 'lokasi'=>'Jl. Ahmad Yani No. 21 Garut', 'volume'=>'1 Paket', 'sumber_dana'=>'APBD', 'd_start'=>'2018-03-01', 'd_end'=>'2018-03-01', 'd_start_work'=>'2018-04-01', 'd_end_work'=>'2018-12-01', 'pagu' =>'199980000', 'tahun_anggaran'=>'2018', 'deskripsi'=>'Belanja Jasa Keamanan Dalam', 'm_satker_id'=>6, 'm_pengadaan_id'=>2, 'm_penyedia_id'=>1, 'm_belanja_id'=>1, 'm_pokja_id'=>1, 'users_id'=>1, 'm_kldi_id'=>4, 'id_ulp'=>0, 'hps'=>0]);
+
+        PaketSwakelola::create(['pid'=>20016, 'nama'=>'Belanja konsumsi dan snack', 'kegiatan'=>'Pertemuan Para Ketua Dinas', 'lokasi'=>'Jl. Ahmad Yani No. 21 Garut', 'volume'=>'1 Paket', 'sumber_dana'=>'APBD', 'd_start'=>'2018-03-01', 'd_end'=>'2018-03-01', 'd_start_work'=>'2018-04-01', 'd_end_work'=>'2018-12-01', 'pagu' =>'80000', 'tahun_anggaran'=>'2018', 'deskripsi'=>'Belanja Jasa Keamanan Dalam', 'm_satker_id'=>6, 'm_pengadaan_id'=>2, 'm_penyedia_id'=>3, 'm_belanja_id'=>1, 'm_pokja_id'=>1, 'users_id'=>1, 'm_kldi_id'=>4, 'id_ulp'=>0, 'hps'=>0]);
+
+        PaketSwakelola::create(['pid'=>20017, 'nama'=>'Perjalanan Dinas ke Semarang', 'kegiatan'=>'Rapat', 'lokasi'=>'Jl. TEST', 'volume'=>'1 Paket', 'sumber_dana'=>'APBD', 'd_start'=>'2018-03-01', 'd_end'=>'2018-03-01', 'd_start_work'=>'2018-04-01', 'd_end_work'=>'2018-12-01', 'pagu' =>'999', 'tahun_anggaran'=>'2018', 'deskripsi'=>'Belanja Jasa Keamanan Dalam', 'm_satker_id'=>6, 'm_pengadaan_id'=>2, 'm_penyedia_id'=>1, 'm_belanja_id'=>1, 'm_pokja_id'=>1, 'users_id'=>1, 'm_kldi_id'=>4, 'id_ulp'=>0, 'hps'=>0]);
+    }
+}
+
+class PaketPenyediaSwakelolaSeeder extends Seeder {
+
+    public function run()
+    {  
+	PaketPenyediaSwakelola::create(['pid'=>30000, 'nama'=>'Beli Air', 'kegiatan'=>'Penyediaan Jasa Kemanan dan Kebersihan Beserta Peralatannya-ASN', 'lokasi'=>'Jl. TEST', 'volume'=>'1 Paket', 'sumber_dana'=>'APBD', 'd_start'=>'2018-03-01', 'd_end'=>'2018-03-01', 'd_start_work'=>'2018-04-01', 'd_end_work'=>'2018-12-01', 'pagu' =>'20001000', 'tahun_anggaran'=>'2019', 'deskripsi'=>'Pengadaan Barang dan Jasa', 'm_satker_id'=>1, 'm_pengadaan_id'=>2, 'm_penyedia_id'=>1, 'm_belanja_id'=>1, 'm_pokja_id'=>1, 'users_id'=>1, 'm_kldi_id'=>1, 'id_ulp'=>0, 'hps'=>0]);
+
+	PaketPenyediaSwakelola::create(['pid'=>30001, 'nama'=>'Beli Pisang', 'kegiatan'=>'Penyediaan Jasa Kemanan dan Kebersihan Beserta Peralatannya-ASN', 'lokasi'=>'Jl. Ahmad Yani No. 11', 'volume'=>'1 Paket', 'sumber_dana'=>'APBD', 'd_start'=>'2018-03-01', 'd_end'=>'2018-03-01', 'd_start_work'=>'2018-04-01', 'd_end_work'=>'2018-12-01', 'pagu' =>'80000', 'tahun_anggaran'=>'2018', 'deskripsi'=>'Belanja Jasa Keamanan Dalam', 'm_satker_id'=>1, 'm_pengadaan_id'=>2, 'm_penyedia_id'=>2, 'm_belanja_id'=>1, 'm_pokja_id'=>1, 'users_id'=>1, 'm_kldi_id'=>1, 'id_ulp'=>0, 'hps'=>0]);
+        
+        PaketPenyediaSwakelola::create(['pid'=>30002, 'nama'=>'Beli Penggaris', 'kegiatan'=>'Pemberdayaan Jaringan Dokumentasi dan Informasi Hukum', 'lokasi'=>'Jl. Ahmad Yani No. 21 Garut', 'volume'=>'1 Paket', 'sumber_dana'=>'APBD', 'd_start'=>'2018-03-01', 'd_end'=>'2018-03-01', 'd_start_work'=>'2018-04-01', 'd_end_work'=>'2018-12-01', 'pagu' =>'199980000', 'tahun_anggaran'=>'2018', 'deskripsi'=>'Belanja Jasa Keamanan Dalam', 'm_satker_id'=>1, 'm_pengadaan_id'=>2, 'm_penyedia_id'=>3, 'm_belanja_id'=>1, 'm_pokja_id'=>1, 'users_id'=>1, 'm_kldi_id'=>1, 'id_ulp'=>0, 'hps'=>0]);
+
+        PaketPenyediaSwakelola::create(['pid'=>30003, 'nama'=>'Beli Baju', 'kegiatan'=>'Rapat Akbar', 'lokasi'=>'Jl. Ahmad Yani No. 21 Garut', 'volume'=>'1 Paket', 'sumber_dana'=>'APBD', 'd_start'=>'2018-03-01', 'd_end'=>'2018-03-01', 'd_start_work'=>'2018-04-01', 'd_end_work'=>'2018-12-01', 'pagu' =>'1980000', 'tahun_anggaran'=>'2018', 'deskripsi'=>'Belanja Jasa Keamanan Dalam', 'm_satker_id'=>2, 'm_pengadaan_id'=>2, 'm_penyedia_id'=>1, 'm_belanja_id'=>1, 'm_pokja_id'=>1, 'users_id'=>1, 'm_kldi_id'=>1, 'id_ulp'=>0, 'hps'=>0]);
+
+        PaketPenyediaSwakelola::create(['pid'=>30004, 'nama'=>'Beli Charger', 'kegiatan'=>'Seminar SIRUP', 'lokasi'=>'Jl. Ahmad Yani No. 21 Garut', 'volume'=>'1 Paket', 'sumber_dana'=>'APBD', 'd_start'=>'2018-03-01', 'd_end'=>'2018-03-01', 'd_start_work'=>'2018-04-01', 'd_end_work'=>'2018-12-01', 'pagu' =>'80000', 'tahun_anggaran'=>'2018', 'deskripsi'=>'Belanja Jasa Keamanan Dalam', 'm_satker_id'=>2, 'm_pengadaan_id'=>2, 'm_penyedia_id'=>3, 'm_belanja_id'=>1, 'm_pokja_id'=>1, 'users_id'=>1, 'm_kldi_id'=>1, 'id_ulp'=>0, 'hps'=>0]);
+
+        PaketPenyediaSwakelola::create(['pid'=>30005, 'nama'=>'Beli Jaket', 'kegiatan'=>'Pembelian Tahunan', 'lokasi'=>'Jl. Ahmad Yani No. 21 Garut', 'volume'=>'1 Paket', 'sumber_dana'=>'APBD', 'd_start'=>'2018-03-01', 'd_end'=>'2018-03-01', 'd_start_work'=>'2018-04-01', 'd_end_work'=>'2018-12-01', 'pagu' =>'999', 'tahun_anggaran'=>'2018', 'deskripsi'=>'Belanja Jasa Keamanan Dalam', 'm_satker_id'=>2, 'm_pengadaan_id'=>2, 'm_penyedia_id'=>1, 'm_belanja_id'=>1, 'm_pokja_id'=>1, 'users_id'=>1, 'm_kldi_id'=>1, 'id_ulp'=>0, 'hps'=>0]);
+
+        PaketPenyediaSwakelola::create(['pid'=>30006, 'nama'=>'Beli Map', 'kegiatan'=>'Seminar', 'lokasi'=>'Jl. Ahmad Yani No. 21 Garut', 'volume'=>'1 Paket', 'sumber_dana'=>'APBD', 'd_start'=>'2018-03-01', 'd_end'=>'2018-03-01', 'd_start_work'=>'2018-04-01', 'd_end_work'=>'2018-12-01', 'pagu' =>'199980000', 'tahun_anggaran'=>'2018', 'deskripsi'=>'Belanja Jasa Keamanan Dalam', 'm_satker_id'=>3, 'm_pengadaan_id'=>2, 'm_penyedia_id'=>1, 'm_belanja_id'=>1, 'm_pokja_id'=>1, 'users_id'=>1, 'm_kldi_id'=>2, 'id_ulp'=>0, 'hps'=>0]);
+
+        PaketPenyediaSwakelola::create(['pid'=>30007, 'nama'=>'Beli Kertas 1 Rim', 'kegiatan'=>'Workshop', 'lokasi'=>'Jl. Ahmad Yani No. 21 Garut', 'volume'=>'1 Paket', 'sumber_dana'=>'APBD', 'd_start'=>'2018-03-01', 'd_end'=>'2018-03-01', 'd_start_work'=>'2018-04-01', 'd_end_work'=>'2018-12-01', 'pagu' =>'80000', 'tahun_anggaran'=>'2018', 'deskripsi'=>'Belanja Jasa Keamanan Dalam', 'm_satker_id'=>3, 'm_pengadaan_id'=>2, 'm_penyedia_id'=>2, 'm_belanja_id'=>1, 'm_pokja_id'=>1, 'users_id'=>1, 'm_kldi_id'=>2, 'id_ulp'=>0, 'hps'=>0]);
+
+        PaketPenyediaSwakelola::create(['pid'=>30008, 'nama'=>'Beli Tinta', 'kegiatan'=>'Penyediaan Jasa Kemanan dan Kebersihan Beserta Peralatannya-ASN', 'lokasi'=>'Jl. Ahmad Yani No. 21 Garut', 'volume'=>'1 Paket', 'sumber_dana'=>'APBD', 'd_start'=>'2018-03-01', 'd_end'=>'2018-03-01', 'd_start_work'=>'2018-04-01', 'd_end_work'=>'2018-12-01', 'pagu' =>'999', 'tahun_anggaran'=>'2018', 'deskripsi'=>'Belanja Jasa Keamanan Dalam', 'm_satker_id'=>3, 'm_pengadaan_id'=>2, 'm_penyedia_id'=>3, 'm_belanja_id'=>1, 'm_pokja_id'=>1, 'users_id'=>1, 'm_kldi_id'=>2, 'id_ulp'=>0, 'hps'=>0]);
+
+        PaketPenyediaSwakelola::create(['pid'=>30009, 'nama'=>'Beli Tiket Kereta untuk Rapat', 'kegiatan'=>'Penyediaan Jasa Kemanan dan Kebersihan Beserta Peralatannya-ASN', 'lokasi'=>'Jl. Ahmad Yani No. 21 Garut', 'volume'=>'1 Paket', 'sumber_dana'=>'APBD', 'd_start'=>'2018-03-01', 'd_end'=>'2018-03-01', 'd_start_work'=>'2018-04-01', 'd_end_work'=>'2018-12-01', 'pagu' =>'199980000', 'tahun_anggaran'=>'2018', 'deskripsi'=>'Belanja Jasa Keamanan Dalam', 'm_satker_id'=>4, 'm_pengadaan_id'=>2, 'm_penyedia_id'=>1, 'm_belanja_id'=>1, 'm_pokja_id'=>1, 'users_id'=>1, 'm_kldi_id'=>2, 'id_ulp'=>0, 'hps'=>0]);
+
+        PaketPenyediaSwakelola::create(['pid'=>30010, 'nama'=>'Beli Umbul-Umbul', 'kegiatan'=>'Penyediaan Jasa Kemanan dan Kebersihan Beserta Peralatannya-ASN', 'lokasi'=>'Jl. Ahmad Yani No. 21 Garut', 'volume'=>'1 Paket', 'sumber_dana'=>'APBD', 'd_start'=>'2018-03-01', 'd_end'=>'2018-03-01', 'd_start_work'=>'2018-04-01', 'd_end_work'=>'2018-12-01', 'pagu' =>'80000', 'tahun_anggaran'=>'2018', 'deskripsi'=>'Belanja Jasa Keamanan Dalam', 'm_satker_id'=>4, 'm_pengadaan_id'=>2, 'm_penyedia_id'=>3, 'm_belanja_id'=>1, 'm_pokja_id'=>1, 'users_id'=>1, 'm_kldi_id'=>2, 'id_ulp'=>0, 'hps'=>0]);
+
+        PaketPenyediaSwakelola::create(['pid'=>30011, 'nama'=>'Beli Pamflet', 'kegiatan'=>'Penyediaan Jasa Kemanan dan Kebersihan Beserta Peralatannya-ASN', 'lokasi'=>'Jl. Ahmad Yani No. 21 Garut', 'volume'=>'1 Paket', 'sumber_dana'=>'APBD', 'd_start'=>'2018-03-01', 'd_end'=>'2018-03-01', 'd_start_work'=>'2018-04-01', 'd_end_work'=>'2018-12-01', 'pagu' =>'999', 'tahun_anggaran'=>'2018', 'deskripsi'=>'Belanja Jasa Keamanan Dalam', 'm_satker_id'=>4, 'm_pengadaan_id'=>2, 'm_penyedia_id'=>1, 'm_belanja_id'=>1, 'm_pokja_id'=>1, 'users_id'=>1, 'm_kldi_id'=>2, 'id_ulp'=>0, 'hps'=>0]);
+
+        PaketPenyediaSwakelola::create(['pid'=>30012, 'nama'=>'Belanja Souvenir', 'kegiatan'=>'Penyediaan Jasa Kemanan dan Kebersihan Beserta Peralatannya-ASN', 'lokasi'=>'Jl. Ahmad Yani No. 21 Garut', 'volume'=>'1 Paket', 'sumber_dana'=>'APBD', 'd_start'=>'2018-03-01', 'd_end'=>'2018-03-01', 'd_start_work'=>'2018-04-01', 'd_end_work'=>'2018-12-01', 'pagu' =>'199980000', 'tahun_anggaran'=>'2018', 'deskripsi'=>'Belanja Jasa Keamanan Dalam', 'm_satker_id'=>5, 'm_pengadaan_id'=>2, 'm_penyedia_id'=>1, 'm_belanja_id'=>1, 'm_pokja_id'=>1, 'users_id'=>1, 'm_kldi_id'=>4, 'id_ulp'=>0, 'hps'=>0]);
+
+        PaketPenyediaSwakelola::create(['pid'=>30013, 'nama'=>'Nasi Prasmanan', 'kegiatan'=>'Penyediaan Jasa Kemanan dan Kebersihan Beserta Peralatannya-ASN', 'lokasi'=>'Jl. Ahmad Yani No. 21 Garut', 'volume'=>'1 Paket', 'sumber_dana'=>'APBD', 'd_start'=>'2018-03-01', 'd_end'=>'2018-03-01', 'd_start_work'=>'2018-04-01', 'd_end_work'=>'2018-12-01', 'pagu' =>'199980000', 'tahun_anggaran'=>'2018', 'deskripsi'=>'Belanja Jasa Keamanan Dalam', 'm_satker_id'=>5, 'm_pengadaan_id'=>2, 'm_penyedia_id'=>2, 'm_belanja_id'=>1, 'm_pokja_id'=>1, 'users_id'=>1, 'm_kldi_id'=>4, 'id_ulp'=>0, 'hps'=>0]);
+
+        PaketPenyediaSwakelola::create(['pid'=>30014, 'nama'=>'Belanja Pengadaan', 'kegiatan'=>'Penyediaan Jasa Kemanan dan Kebersihan Beserta Peralatannya-ASN', 'lokasi'=>'Jl. TEST', 'volume'=>'1 Paket', 'sumber_dana'=>'APBD', 'd_start'=>'2018-03-01', 'd_end'=>'2018-03-01', 'd_start_work'=>'2018-04-01', 'd_end_work'=>'2018-12-01', 'pagu' =>'199980000', 'tahun_anggaran'=>'2018', 'deskripsi'=>'Belanja Jasa Keamanan Dalam', 'm_satker_id'=>5, 'm_pengadaan_id'=>2, 'm_penyedia_id'=>3, 'm_belanja_id'=>1, 'm_pokja_id'=>1, 'users_id'=>1, 'm_kldi_id'=>4, 'id_ulp'=>0, 'hps'=>0]);
+
+        PaketPenyediaSwakelola::create(['pid'=>30015, 'nama'=>'Snack', 'kegiatan'=>'Penyediaan Jasa Kemanan dan Kebersihan Beserta Peralatannya-ASN', 'lokasi'=>'Jl. Ahmad Yani No. 21 Garut', 'volume'=>'1 Paket', 'sumber_dana'=>'APBD', 'd_start'=>'2018-03-01', 'd_end'=>'2018-03-01', 'd_start_work'=>'2018-04-01', 'd_end_work'=>'2018-12-01', 'pagu' =>'199980000', 'tahun_anggaran'=>'2018', 'deskripsi'=>'Belanja Jasa Keamanan Dalam', 'm_satker_id'=>6, 'm_pengadaan_id'=>2, 'm_penyedia_id'=>1, 'm_belanja_id'=>1, 'm_pokja_id'=>1, 'users_id'=>1, 'm_kldi_id'=>4, 'id_ulp'=>0, 'hps'=>0]);
+
+        PaketPenyediaSwakelola::create(['pid'=>30016, 'nama'=>'Belanja Jasa Service', 'kegiatan'=>'Penyediaan Jasa Kemanan dan Kebersihan Beserta Peralatannya-ASN', 'lokasi'=>'Jl. Ahmad Yani No. 21 Garut', 'volume'=>'1 Paket', 'sumber_dana'=>'APBD', 'd_start'=>'2018-03-01', 'd_end'=>'2018-03-01', 'd_start_work'=>'2018-04-01', 'd_end_work'=>'2018-12-01', 'pagu' =>'80000', 'tahun_anggaran'=>'2018', 'deskripsi'=>'Belanja Jasa Keamanan Dalam', 'm_satker_id'=>6, 'm_pengadaan_id'=>2, 'm_penyedia_id'=>3, 'm_belanja_id'=>1, 'm_pokja_id'=>1, 'users_id'=>1, 'm_kldi_id'=>4, 'id_ulp'=>0, 'hps'=>0]);
+
+        PaketPenyediaSwakelola::create(['pid'=>30017, 'nama'=>'Belanja Perangko', 'kegiatan'=>'Penyediaan Jasa Kemanan dan Kebersihan Beserta Peralatannya-ASN', 'lokasi'=>'Jl. TEST', 'volume'=>'1 Paket', 'sumber_dana'=>'APBD', 'd_start'=>'2018-03-01', 'd_end'=>'2018-03-01', 'd_start_work'=>'2018-04-01', 'd_end_work'=>'2018-12-01', 'pagu' =>'999', 'tahun_anggaran'=>'2018', 'deskripsi'=>'Belanja Jasa Keamanan Dalam', 'm_satker_id'=>6, 'm_pengadaan_id'=>2, 'm_penyedia_id'=>1, 'm_belanja_id'=>1, 'm_pokja_id'=>1, 'users_id'=>1, 'm_kldi_id'=>4, 'id_ulp'=>0, 'hps'=>0]);
+    }
+}
+
+class PaketSeeder extends Seeder {
+
+    public function run()
+    { 
+	Paket::create(['pid'=>40000, 'nama'=>'Sewa Gedung', 'kegiatan'=>'Seminar SIRUP', 'lokasi'=>'Jl. Ahmad Yani No. 21 Garut', 'volume'=>'1 Paket', 'sumber_dana'=>'APBD', 'd_start'=>'2018-03-01', 'd_end'=>'2018-03-01', 'd_start_work'=>'2018-04-01', 'd_end_work'=>'2018-12-01', 'pagu' =>'80000', 'tahun_anggaran'=>'2018', 'deskripsi'=>'Belanja Jasa Keamanan Dalam', 'm_satker_id'=>2, 'm_pengadaan_id'=>2, 'm_penyedia_id'=>3, 'm_belanja_id'=>1, 'm_pokja_id'=>1, 'users_id'=>1, 'm_kldi_id'=>1, 'id_ulp'=>0, 'hps'=>0, 'jenis_paket_id'=>4]);
+	Paket::create(['pid'=>40001, 'nama'=>'Belanja Sarung', 'kegiatan'=>'Penyediaan Jasa Kemanan dan Kebersihan Beserta Peralatannya-ASN', 'lokasi'=>'Jl. TEST', 'volume'=>'1 Paket', 'sumber_dana'=>'APBD', 'd_start'=>'2018-03-01', 'd_end'=>'2018-03-01', 'd_start_work'=>'2018-04-01', 'd_end_work'=>'2018-12-01', 'pagu' =>'999', 'tahun_anggaran'=>'2018', 'deskripsi'=>'Belanja Jasa Keamanan Dalam', 'm_satker_id'=>6, 'm_pengadaan_id'=>2, 'm_penyedia_id'=>1, 'm_belanja_id'=>1, 'm_pokja_id'=>1, 'users_id'=>1, 'm_kldi_id'=>4, 'id_ulp'=>0, 'hps'=>0, 'jenis_paket_id'=>4]);
+	Paket::create(['pid'=>40002, 'nama'=>'Beli Galon', 'kegiatan'=>'Penyediaan Jasa Kemanan dan Kebersihan Beserta Peralatannya-ASN', 'lokasi'=>'Jl. TEST', 'volume'=>'1 Paket', 'sumber_dana'=>'APBD', 'd_start'=>'2018-03-01', 'd_end'=>'2018-03-01', 'd_start_work'=>'2018-04-01', 'd_end_work'=>'2018-12-01', 'pagu' =>'20001000', 'tahun_anggaran'=>'2019', 'deskripsi'=>'Pengadaan Barang dan Jasa', 'm_satker_id'=>1, 'm_pengadaan_id'=>2, 'm_penyedia_id'=>1, 'm_belanja_id'=>1, 'm_pokja_id'=>1, 'users_id'=>1, 'm_kldi_id'=>1, 'id_ulp'=>0, 'hps'=>0, 'jenis_paket_id'=>4]);
+        Paket::create(['pid'=>40003, 'nama'=>'Belanja Selimut', 'kegiatan'=>'Pelatihan SIRUP LKPP', 'lokasi'=>'Jl. Ahmad Yani No. 21 Garut', 'volume'=>'1 Paket', 'sumber_dana'=>'APBD', 'd_start'=>'2018-03-01', 'd_end'=>'2018-03-01', 'd_start_work'=>'2018-04-01', 'd_end_work'=>'2018-12-01', 'pagu' =>'199980000', 'tahun_anggaran'=>'2018', 'deskripsi'=>'Belanja Jasa Keamanan Dalam', 'm_satker_id'=>5, 'm_pengadaan_id'=>2, 'm_penyedia_id'=>2, 'm_belanja_id'=>1, 'm_pokja_id'=>1, 'users_id'=>1, 'm_kldi_id'=>4, 'id_ulp'=>0, 'hps'=>0, 'jenis_paket_id'=>4]);
+    }
+}
+
+class JenisPaketSeeder extends Seeder {
+
+    public function run()
+    {
+        JenisPaket::create(['name' => 'penyedia']);
+        JenisPaket::create(['name' => 'swakelola']);
+        JenisPaket::create(['name' => 'penyedia swakelola']); 
+        JenisPaket::create(['name' => null]);
     }
 }
diff --git a/package-lock.json b/package-lock.json
index 1830b954de4a25d6e9a6e5f6a31c6f98d170c6f1..d8e47d60fc9867ee1bc2946c3b7d5828b7874f19 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -3765,12 +3765,14 @@
                 "balanced-match": {
                     "version": "1.0.0",
                     "bundled": true,
-                    "dev": true
+                    "dev": true,
+                    "optional": true
                 },
                 "brace-expansion": {
                     "version": "1.1.11",
                     "bundled": true,
                     "dev": true,
+                    "optional": true,
                     "requires": {
                         "balanced-match": "^1.0.0",
                         "concat-map": "0.0.1"
@@ -3785,17 +3787,20 @@
                 "code-point-at": {
                     "version": "1.1.0",
                     "bundled": true,
-                    "dev": true
+                    "dev": true,
+                    "optional": true
                 },
                 "concat-map": {
                     "version": "0.0.1",
                     "bundled": true,
-                    "dev": true
+                    "dev": true,
+                    "optional": true
                 },
                 "console-control-strings": {
                     "version": "1.1.0",
                     "bundled": true,
-                    "dev": true
+                    "dev": true,
+                    "optional": true
                 },
                 "core-util-is": {
                     "version": "1.0.2",
@@ -3912,7 +3917,8 @@
                 "inherits": {
                     "version": "2.0.3",
                     "bundled": true,
-                    "dev": true
+                    "dev": true,
+                    "optional": true
                 },
                 "ini": {
                     "version": "1.3.5",
@@ -3924,6 +3930,7 @@
                     "version": "1.0.0",
                     "bundled": true,
                     "dev": true,
+                    "optional": true,
                     "requires": {
                         "number-is-nan": "^1.0.0"
                     }
@@ -3938,6 +3945,7 @@
                     "version": "3.0.4",
                     "bundled": true,
                     "dev": true,
+                    "optional": true,
                     "requires": {
                         "brace-expansion": "^1.1.7"
                     }
@@ -4049,7 +4057,8 @@
                 "number-is-nan": {
                     "version": "1.0.1",
                     "bundled": true,
-                    "dev": true
+                    "dev": true,
+                    "optional": true
                 },
                 "object-assign": {
                     "version": "4.1.1",
@@ -4182,6 +4191,7 @@
                     "version": "1.0.2",
                     "bundled": true,
                     "dev": true,
+                    "optional": true,
                     "requires": {
                         "code-point-at": "^1.0.0",
                         "is-fullwidth-code-point": "^1.0.0",
@@ -4375,6 +4385,11 @@
                 "glob": "^7.1.1"
             }
         },
+        "glyphicons": {
+            "version": "0.2.0",
+            "resolved": "https://registry.npmjs.org/glyphicons/-/glyphicons-0.2.0.tgz",
+            "integrity": "sha1-KR2OyXSZOp/IinK1jVQNr1UNo5k="
+        },
         "graceful-fs": {
             "version": "4.1.15",
             "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz",
diff --git a/package.json b/package.json
index fda5807be28790682970273327a6118cb12bfea4..81d3ede160ff208d3261c498621bda704631ea83 100644
--- a/package.json
+++ b/package.json
@@ -28,6 +28,7 @@
         "bootstrap-vue": "^2.0.0-rc.16",
         "datatables.net": "^1.10.19",
         "datatables.net-bs": "^1.10.19",
-        "datatables.net-dt": "^1.10.19"
+        "datatables.net-dt": "^1.10.19",
+        "glyphicons": "^0.2.0"
     }
 }
diff --git a/public/css/app.css b/public/css/app.css
index 72880346be0188f56778cf3779c541cf09a60145..fba7bbb091390df41fa5b6608c4625a43eb71ac3 100644
--- a/public/css/app.css
+++ b/public/css/app.css
@@ -12179,6 +12179,10 @@ a.text-dark:focus {
   box-shadow: 0 2px 4px rgba(0, 0, 0, 0.04);
 }
 
+.content {
+  min-height: 700px;
+}
+
 .footer {
   color: #fff;
 }
diff --git a/public/file/DISEMINASI MONEV ( 5 TEMPAT TERBARU ).pdf b/public/file/DISEMINASI MONEV ( 5 TEMPAT TERBARU ).pdf
new file mode 100644
index 0000000000000000000000000000000000000000..c9f54534dac03c8a4ce7cb0c74075962f2438907
Binary files /dev/null and b/public/file/DISEMINASI MONEV ( 5 TEMPAT TERBARU ).pdf differ
diff --git a/public/file/Tata cara penggunaan aplikasi sirup versi 2.3_6 SKDEPUTI.pdf b/public/file/Tata cara penggunaan aplikasi sirup versi 2.3_6 SKDEPUTI.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..562cf34ef05ebf6433417df63236889fe991bca1
Binary files /dev/null and b/public/file/Tata cara penggunaan aplikasi sirup versi 2.3_6 SKDEPUTI.pdf differ
diff --git a/resources/js/app.js b/resources/js/app.js
index b98fa89431d07e36693a4e2f1310b65ac49f7495..10c94f681887cdd13dd46053902daab3c5c4c3f4 100644
--- a/resources/js/app.js
+++ b/resources/js/app.js
@@ -41,7 +41,14 @@ Vue.component('rekap-table-component', require('./components/RekapTableComponent
 Vue.component('modal-swakelola-component', require('./components/ModalSwakelolaComponent.vue').default);
 Vue.component('unduh-paket-component', require('./components/UnduhPaketComponent.vue').default);
 Vue.component('unduh-materi-table-component', require('./components/UnduhMateriTableComponent.vue').default);
-Vue.component('modal-penyedia-component', require('./components/ModalPenyedia.vue').default);
+Vue.component('modal-cari-paket-component', require('./components/ModalCariPaketComponent.vue').default);
+Vue.component('modal-penyedia-component', require('./components/ModalPenyediaComponent.vue').default);
+Vue.component('cari-paket-component', require('./components/CariPaketComponent.vue').default);
+Vue.component('status-paket-component', require('./components/StatusPaketTableComponent.vue').default);
+Vue.component('modal-pengumuman-component', require('./components/ModalPengumumanComponent.vue').default);
+Vue.component('modal-klasifikasi-component', require('./components/ModalKlasifikasiComponent.vue').default);
+Vue.component('loading-component', require('./components/LoadingComponent.vue').default);
+Vue.component('modal-penyedia-swakelola-component', require('./components/ModalPenyediaSwakelolaComponent.vue').default);
 /**
  * Next, we will create a fresh Vue application instance and attach it to
  * the page. Then, you may begin adding components to this application
diff --git a/resources/js/components/CariPaketComponent.vue b/resources/js/components/CariPaketComponent.vue
new file mode 100644
index 0000000000000000000000000000000000000000..531a94f32075e991464a94d304534b7943971da0
--- /dev/null
+++ b/resources/js/components/CariPaketComponent.vue
@@ -0,0 +1,209 @@
+<template>
+  <div class="container-full">
+    <div class="row">
+      <div class="col-md-12" style="height:60px; background-color:#F05155; margin-bottom: 30px;">
+        <div class="center" style="padding-top: 15px; padding-bottom:15px; width:100%;">
+          <form class="form-inline" role="form" method="GET" @submit.prevent="findPaket">
+            <div class="row" style="text-align: center;">
+              <div class="form-group col-sm-13 center" style="padding-left: 30px; ">
+                <div class="input-group">
+                  <span class="input-group-addon">
+                    <i class="fas fa-calendar-alt">
+                    </i>
+                  </span>
+                  <select name="tahunAnggaran" id="tahunAnggaran" size="1" class="form-control" @change="handleChangeTahun">
+                    <option v-for="tahun in tahunAnggaran" :key="tahun.tahun_anggaran" v-bind:value="tahun.tahun_anggaran">{{tahun.tahun_anggaran}}</option>
+                  </select>
+                  <span class="input-group-addon">
+                    <i class="fa fa-key fa-fw"></i>
+                  </span>
+                  <input type="text" name="keyword" id="keyword" class="form-control" value placeholder="Kata Kunci" size="50" v-model="keyword">
+                  <span class="input-group-addon">
+                    <i class="fas fa-road"></i>
+                  </span>
+                  <select name="jenisPengadaan" id="jenisPengadaan" class="form-control pencarianHome" @change="handleChangeJenis">
+                    <option value="Semua">Semua Jenis Pengadaan</option>
+                    <option v-for="jenis in jenisPengadaan" :key="jenis" v-bind:value="jenis.nama">{{jenis.nama}}</option>
+                  </select>
+                  <span class="input-group-addon">
+                    <i class="fas fa-road"></i>
+                  </span>
+                  <select name="metodePengadaan" id="metodePengadaan" class="form-control pencarianHome" @change="handleChangeMethod">
+                    <option value="Semua">Semua Metode</option>
+                    <option v-for="metode in metodePengadaan" :key="metode" v-bind:value="metode.nama">{{metode.nama}}</option>
+                  </select>
+                  <span class="input-group-addon">
+                    <i class="fas fa-search"></i>
+                  </span>
+                  <!-- TO DO : make search function  -->
+                    <input type="submit" value="Cari" class="form-control">
+                </div>
+              </div>
+            </div>
+          </form>
+        </div>
+      </div>
+    </div>
+    <div id="content">
+      <div class="row">
+        <div class="col-sm-12">
+          <table class="table table-striped" id="paket">
+            <thead>
+              <tr style="background-color: #F05155;border-bottom: 4px solid #ddd">
+                <th class="text-center" style="color: white">No</th>
+                <th class="text-center" style="color: white">Paket</th>
+                <th class="text-center" style="color: white">Pagu(Rp)</th>
+                <th class="text-center" style="color: white">Jenis Pengadaan</th>
+                <th class="text-center" style="color: white">Metode</th>
+                <th class="text-center" style="color: white">Pemilihan</th>
+                <th class="text-center" style="color: white">K/L/D/I</th>
+                <th class="text-center" style="color: white">Satuan Kerja</th>
+                <th class="text-center" style="color: white">Lokasi</th>
+                <th class="text-center" style="color: white">ID</th>
+              </tr>
+            </thead>
+            <tbody>
+              <tr v-for="item in paketData" :key="item.no">
+                <td>{{item.no}}</td>
+                
+                <td><a data-toggle="modal" :href="'#modalCariPaket' + item.id"> {{item.paket}} </a></td>
+                <td>{{item.pagu}}</td>
+                <td>{{item.jenisPengadaan}}</td>
+                <td>{{item.metode}}</td>
+                <td>{{item.pemilihan}}</td>
+                <td>{{item.kldi}}</td>
+                <td>{{item.satuanKerja}}</td>
+                <td>{{item.lokasi}}</td>
+                <td>{{item.id}}</td>
+                <modal-cari-paket-component :id="'modalCariPaket' + item.id" :idPaket="item.id"> </modal-cari-paket-component>
+              </tr>
+            </tbody>
+          </table>
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  props: ["apiLink"],
+  data: function(){  
+        return {
+            paketData : null,
+            tahunAnggaran : null,
+            jenisPengadaan : null,
+            metodePengadaan : null,
+            keyword : '',
+            thn : null,
+            jns : null,
+            m : null
+        }
+    },
+    mounted: function(){
+    axios
+      .get(this.apiLink)
+      .then(response => {
+        this.paketData = response.data.dataPaket;
+        this.tahunAnggaran = response.data.tahun;
+        this.jenisPengadaan = response.data.pengadaan;
+        this.metodePengadaan = response.data.metode;
+      })
+      .then(()=>{        
+        console.log(this.tahunAnggaran);
+        // Setup - add a text input to each footer cell
+        $("#paket tfoot th.search").each(function() {
+        var title = $(this).text();
+        $(this).html('<input type="text" placeholder="Search ' + title + '" />');
+        });
+
+        // DataTable
+        var table = $("#paket").DataTable({
+          pagingType: "full_numbers"
+        });
+      })
+    },
+    methods : {
+      handleChangeTahun : function (e){
+        if (e.target.options.selectedIndex != -1){
+          this.thn = (e.target.options[e.target.options.selectedIndex].value);
+        }
+      },
+      handleChangeJenis : function (e){
+        if (e.target.options.selectedIndex != -1){
+          this.jns = (e.target.options[e.target.options.selectedIndex].value);
+        }
+      },
+      handleChangeMethod : function(e) {
+        if (e.target.options.selectedIndex != -1){
+          this.m = (e.target.options[e.target.options.selectedIndex].value);
+        }
+      },
+      findPaket : function(){
+        console.log("test");
+        axios.get('api/findsearch/'+this.thn+'/'+this.keyword+'/'+this.jns+'/'+this.m)
+        .then(response=>{
+          this.paketData = response.data.dataPaket;
+        })
+      },
+    }
+}
+</script>
+
+<style scoped>
+.input-group{
+  position: relative;
+  border-collapse: separate;
+}
+
+.label{
+  font-size: 12px;
+  text-align: left;
+  white-space: nowrap;
+  display: inline-block;
+  max-width: 100%;
+  margin-bottom: 5px;
+  color: #333333;
+}
+
+.input-group-addon{
+  padding: 6px 12px;
+  font-size: 14px;
+  font-weight: 400;
+  line-height: 1;
+  color: #555;
+  text-align: center;
+  background-color: #eee;
+  border: 1px solid #ccc;
+  border-radius: 4px;
+}
+
+.input-sm{
+  padding: 5px 10px;
+  font-size: 12px;
+  height: 30px;
+  line-height: 30px;
+}
+
+.form-control{
+  padding: 6px 12px;
+  font-size: 14px;
+  line-height: 1.42857143;
+  color: #555;
+  background-color: #ffffff;
+  background-image: none;
+  border: 1px solid #ccc;
+}
+
+.pencarianHome{
+  -webkit-appearance: none;
+}
+
+#content{
+  padding: 0px 30px 0px 30px;
+}
+
+.resultTable{
+  padding-top: 10px;
+}
+</style>
diff --git a/resources/js/components/LoadingComponent.vue b/resources/js/components/LoadingComponent.vue
new file mode 100644
index 0000000000000000000000000000000000000000..c5601de8c4a3d4e5662780543bd4ed56a1b39d26
--- /dev/null
+++ b/resources/js/components/LoadingComponent.vue
@@ -0,0 +1,48 @@
+<template>
+    <div class="half-circle-spinner">
+        <div class="circle circle-1"></div>
+        <div class="circle circle-2"></div>
+    </div>
+</template>
+
+<style scoped>
+    .half-circle-spinner, .half-circle-spinner * {
+      box-sizing: border-box;
+    }
+
+    .half-circle-spinner {
+      width: 60px;
+      height: 60px;
+      border-radius: 100%;
+      position: relative;
+    }
+
+    .half-circle-spinner .circle {
+      content: "";
+      position: absolute;
+      width: 100%;
+      height: 100%;
+      border-radius: 100%;
+      border: calc(60px / 10) solid transparent;
+    }
+
+    .half-circle-spinner .circle.circle-1 {
+      border-top-color: #ff1d5e;
+      animation: half-circle-spinner-animation 1s infinite;
+    }
+
+    .half-circle-spinner .circle.circle-2 {
+      border-bottom-color: #ff1d5e;
+      animation: half-circle-spinner-animation 1s infinite alternate;
+    }
+
+    @keyframes half-circle-spinner-animation {
+      0% {
+        transform: rotate(0deg);
+
+      }
+      100%{
+        transform: rotate(360deg);
+      }
+    }
+</style>
diff --git a/resources/js/components/ModalCariPaketComponent.vue b/resources/js/components/ModalCariPaketComponent.vue
new file mode 100644
index 0000000000000000000000000000000000000000..e697c99a8ee69d639d2f6cfdc17e0f3e5b1435c1
--- /dev/null
+++ b/resources/js/components/ModalCariPaketComponent.vue
@@ -0,0 +1,239 @@
+<template>
+  <div class="modal fade" id="exampleModalLong" tabindex="-1" role="dialog" aria-labelledby="exampleModalLongTitle" aria-hidden="true">
+    <div class="modal-dialog modal-lg" role="document">
+      <div class="modal-content">
+
+        <div v-if="loading === true">
+          <div style="padding: 50px">
+            <loading-component class="loader"> </loading-component>
+          </div>
+        </div>
+
+        <div v-if="loading === false"> 
+          <div style="padding: 0px 30px 0px 30px">
+              <div
+                class="text-center"
+                style="color: #2e3436; font-size: 21pt; text-align: center; padding-top: 15px;"
+              >
+                {{item["nama"]}}
+              </div>
+              <div style="margin-bottom: 30px"></div>
+              <div class="paket">
+                  <div class="nav-tabs nav-fill list-paket">
+            <a>
+                <button class="btn button-paket" id="detilPaket-btn" role="button">Detil Paket</button>
+            </a>
+        </div>
+              </div>
+            </div>
+
+            <div class="modal-header">
+            </div>
+
+            <div class="row" style="font-size: 10pt; padding-left: 40px">
+              <dl class="dl-horizontal" style="display: inline-block">
+                <dt>Kode RUP</dt>
+                <dd>: {{item["rup"]}}</dd>
+                <br>
+                <dt>Nama Paket</dt>
+                <dd>: {{item["nama"]}}</dd>
+                <br>
+                <dt>KLDI</dt>
+                <dd>: {{item["kldi"]}}</dd>
+                <br>
+                <dt>Satuan Kerja</dt>
+                <dd>: {{item["satker"]}}</dd>
+                <br>
+                <dt>Tahun Anggaran</dt>
+                <dd>: {{item["tahun"]}}</dd>
+                <br>
+                <dd><br></dd>
+                <dt>
+                  <h4 style="font-size: small">Lokasi Pekerjaan</h4>
+                </dt>
+                <dd>
+                  <table class="table table-striped table-hover">
+                    <tbody>
+                      <tr>
+                        <th>No.</th>
+                        <th>Provinsi</th>
+                        <th>Kabupaten/Kota</th>
+                        <th>Detail Lokasi</th>
+                      </tr>
+                      <tr>
+                        <td>1.</td>
+                        <td>{{item["provinsi"]}}</td>
+                        <td>{{item["kota_kabupaten"]}}</td>
+                        <td>{{item["lokasi"]}}</td>
+                      </tr>
+                    </tbody>
+                  </table>
+                </dd>
+                <br>
+                <dt>Volume</dt>
+                <dd>: {{item["volume"]}}</dd>
+                <br>
+                <dt>Deskripsi</dt>
+                <dd>: {{item["deskripsi"]}}</dd>
+                <br>
+                <dt>Spesifikasi</dt>
+                <dd>: {{item["spesifikasi"]}}</dd>
+                <br>
+                <dt>Produk Dalam Negeri</dt>
+                <dd>: {{item["dalamNegeri"]}}</dd>
+                <br>
+                <dt>Usaha Kecil</dt>
+                <dd>: {{item["usahaKecil"]}}</dd>
+                <br>
+                <dt>Pra DIPA / DPA</dt>
+                <dd>: {{item["DIPA_DPA"]}}</dd>
+                <br>
+                <dt>
+                  <h4 style="font-size: small">SUMBER DANA</h4>
+                </dt>
+                <dd>
+                <br>
+                  <table class="table table-striped table-hover">
+                    <tbody>
+                      <tr>
+                        <th>No.</th>
+                        <th>Sumber Dana</th>
+                        <th>T.A.</th>
+                        <th>KLPD</th>
+                        <th>MAK</th>
+                        <th>Pagu</th>
+                      </tr>
+                        <tr>
+                            <td>1.</td>
+                            <td>{{item["sumberDana"]["nama"]}}</td>
+                            <td>{{item["sumberDana"]["TA"]}}</td>
+                            <td>{{item["sumberDana"]["klpd"]}}</td>
+                            <td>{{item["sumberDana"]["mak"]}}</td>
+                            <td>{{item["sumberDana"]["pagu"]}}</td>
+                        </tr>
+                      <tr>
+                        <td colspan="5">Total</td>
+                        <td>{{item["totalSumberDana"]}}</td>
+                      </tr>
+                    </tbody>
+                  </table>
+                </dd>
+                <br>
+                <dt>Jenis Pengadaan</dt>
+                <dd>: {{item["jenisPengadaan"]}}</dd>
+                <br>
+                <dt>Jumlah Pagu</dt>
+                <dd>: {{item["pagu"]}}</dd>
+                <br>
+                <dt>Pemilihan Penyedia</dt>
+                <dd>: {{item["pemilihanPenyedia"]}}</dd>
+                <br>
+                <dt>
+                  <h4 style="font-size: small; margin-top: 10px; margin-bottom: 10px">WAKTU</h4>
+                </dt>
+                <dd></dd>
+                <br>
+                <dt>Bulan Kebutuhan</dt>
+                <dd>: {{item["bulanKebutuhan"]}}</dd>
+                <br>
+                <dt>Bulan Pekerjaan Akhir</dt>
+                <dd>: {{item["pekerjaanAkhir"]}}</dd>
+                <br>
+                <dt>Bulan Pekerjaan Mulai</dt>
+                <dd>: {{item["pekerjaanMulai"]}}</dd>
+                <br>
+                <dt>Bulan Pemilihan Akhir</dt>
+                <dd>: {{item["pemilihanAkhir"]}}</dd>
+                <br>
+                <dt>Bulan Pemilihan Mulai</dt>
+                <dd>: {{item["pemilihanMulai"]}}</dd>
+                <br>
+                <dt>Tanggal Perbaharui</dt>
+                <dd>: {{item["tanggalPerbaharui"]}}</dd>
+                <br>
+              </dl>
+            </div>
+
+            <div class="modal-footer">
+              <button type="button" data-dismiss="modal" class="btn button-paket">Tutup</button>
+              <button type="button" class="btn btn-primary">Print</button>
+            </div>
+        </div>
+
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  props: ['idPaket'],
+  data: function() {
+    return{
+      title : null,
+      item : null,
+      loading: false,
+    }   
+  },
+  created() {
+    this.loading = true;
+  },
+  mounted: function() {
+      var url = "/api/modal/search/" + this.idPaket;
+      axios
+      .get(url)
+      .then(response => {
+          this.item = response.data.paket;
+          this.loading = false;
+      })
+  }
+}
+</script>
+
+<style scoped>
+  .paket {
+  text-align: center;
+  padding-bottom: 20px;
+  font-size: 9.5pt;
+  }
+
+  .list-paket {
+  border-color: #f05155;
+  font-size: 20px;
+  }
+
+  .button-paket {
+  background: #f05155;
+  color: white;
+  margin: 3px;
+  }
+
+  #penyedia-btn {
+  float: right;
+  }
+
+  #swakelola-btn {
+  background: #ef7c7f;
+  color: white;
+  float: left;
+  }
+
+  #swakelola-btn:hover {
+  background: #f05155;
+  color: white;
+  float: left;
+  }
+
+  dt {
+    display: inline-block;
+    margin-block-end: 10px;
+    margin-right: 20px;
+  }
+
+  dd { 
+    display: inline; 
+  }
+  .loader {
+    margin: 0 auto;
+  }
+</style>
diff --git a/resources/js/components/ModalKlasifikasiComponent.vue b/resources/js/components/ModalKlasifikasiComponent.vue
new file mode 100644
index 0000000000000000000000000000000000000000..68901fa1ec3311577c3561882fa87e499673fbee
--- /dev/null
+++ b/resources/js/components/ModalKlasifikasiComponent.vue
@@ -0,0 +1,78 @@
+<template>
+  <div class="modal fade" id="exampleModalLong" tabindex="-1" role="dialog" aria-labelledby="exampleModalLongTitle" aria-hidden="true">
+    <div class="modal-dialog modal-lg" role="document">
+      <div class="modal-content">
+
+        <div style="padding: 0px 30px 0px 30px">
+            <div
+                class="text-center"
+                style="color: #2e3436; font-size: 21pt; text-align: center; padding-top: 15px;">
+                {{title}}
+            </div>
+            <div
+                class="text-center"
+                style="color: #2e3436; font-size: 18pt; text-align: center; padding-top: 15px;">
+                {{namaPaket}}
+            </div>
+            <div style="margin-bottom: 30px"></div>
+        </div>
+        <div class="modal-header" style="padding: 0px"> </div>
+            <div style="color: #2e3436; font-size: 15pt; text-align: left; padding-top: 13px; padding-left: 30px;">
+                Pilih klasifikasi paket berikut:
+            </div>
+            <div class="type-paket">
+                <input type="radio" name="type" v-model="jenis" value="1"> Penyedia<br>
+                <input type="radio" name="type" v-model="jenis" value="2"> Swakelola<br>
+                <input type="radio" name="type" v-model="jenis" value="3"> Penyedia dalam Swakelola
+            </div>
+
+        <div class="modal-footer">
+            <button type="button" id='simpanKlasifikasi' v-on:click="klasifikasi(idPaket, jenis)" class="btn button-save">Simpan</button>
+            <button type="button" id='batalKlasifikasi' data-dismiss="modal" class="btn btn-primary">Batal</button>
+        </div>
+
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  props: ['idPaket', 'namaPaket', 'title', 'status'],
+  data: function() {
+    return{
+      item : null,
+      statusKlasifikasiSukses: null,
+      jenis: 0
+    }   
+  },
+  methods: {
+    klasifikasi: function(id, jenisPaket) {
+      var status = this.status;
+      var url = "/api/status/klasifikasi/" + this.idPaket + "/" + status + "/" + jenisPaket;
+      axios
+      .get(url)
+      .then(response => {
+          this.statusKlasifikasiSukses = response.data.status;
+      })
+    },
+    setJenisPaket: function(jenis) {
+      this.jenis = jenis;
+    }
+  }
+}
+</script>
+
+<style scoped>
+  .button-save {
+    background: #f05155;
+    color: white;
+    margin: 3px;
+  }
+  .type-paket {
+      text-align: left;
+      padding-left: 30px;
+      padding-bottom: 30px;
+      padding-top: 5px;
+  }
+</style>
diff --git a/resources/js/components/ModalPengumumanComponent.vue b/resources/js/components/ModalPengumumanComponent.vue
new file mode 100644
index 0000000000000000000000000000000000000000..a1817457c19b82e2f322d8384d77970faed40b47
--- /dev/null
+++ b/resources/js/components/ModalPengumumanComponent.vue
@@ -0,0 +1,66 @@
+<template>
+  <div class="modal fade" id="exampleModalLong" tabindex="-1" role="dialog" aria-labelledby="exampleModalLongTitle" aria-hidden="true">
+    <div class="modal-dialog modal-lg" role="document">
+      <div class="modal-content">
+
+        <div style="padding: 0px 30px 0px 30px">
+            <div
+                class="text-center"
+                style="color: #2e3436; font-size: 21pt; text-align: center; padding-top: 15px;">
+                {{this.kegiatan}}
+            </div>
+            <div
+                class="text-center"
+                style="color: #2e3436; font-size: 15pt; text-align: center; padding-top: 15px;">
+                {{this.namaPaket}}
+            </div>
+            <div style="margin-bottom: 30px"></div>
+        </div>
+
+        <div class="modal-header" style="padding: 0px"> </div>
+
+        <div style="font-size: 13pt; padding-left: 30px; padding:40px;">
+            Apakah Anda yakin untuk mengumumkan paket ini?
+        </div>
+
+        <div class="modal-footer">
+            <button type="button" id='simpanUmumkan' v-on:click="simpan(idPaket)" class="btn button-save">Ya</button>
+            <button type="button" id='batalUmumkan' data-dismiss="modal" class="btn btn-primary">Tidak</button>
+        </div>
+
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  props: ['idPaket', 'kegiatan', 'namaPaket'],
+  data: function() {
+    return{
+      item : null,
+      status: null
+    }   
+  },
+  methods: {
+    simpan: function(id) {
+      var url = "/api/status/pengumuman/" + this.idPaket;
+      axios
+      .get(url)
+      .then(response => {
+          this.status = response.data.status;
+          console.log(this.status);
+      })
+    }
+  }
+}
+</script>
+
+<style scoped>
+  .button-save {
+    background: #f05155;
+    color: white;
+    margin: 3px;
+  }
+
+</style>
diff --git a/resources/js/components/ModalPenyedia.vue b/resources/js/components/ModalPenyedia.vue
deleted file mode 100644
index ad26babce0b96ce4fa383cc8232c18a64c7afebc..0000000000000000000000000000000000000000
--- a/resources/js/components/ModalPenyedia.vue
+++ /dev/null
@@ -1,174 +0,0 @@
-<template>
-  <div>
-    <div style="padding: 0px 30px 0px 30px">
-      <div
-        class="text-center"
-        style="color: #2e3436; font-size: 21pt; text-align: center; padding-top: 15px;"
-      >
-        {{title}}
-      </div>
-      <div style="margin-bottom: 30px"></div>
-      <div class="paket">
-        <ul class="nav nav-tabs nav-fill list-paket">
-          <li class="nav-item" role="presentation">
-            <button href class="btn button-paket" id="penyedia-btn" role="button">Detil Paket</button>
-          </li>
-          <li class="nav-item" role="presentation">
-            <button href class="btn button-paket" id="swakelola-btn" role="button">Detil Renja</button>
-          </li>
-        </ul>
-      </div>
-    </div>
-
-    <div class="modal-header">
-    </div>
-    <div class="row" style="font-size: 10pt; padding-left: 30px">
-      <dl class="dl-horizontal">
-        <dt>Kode RUP</dt>
-        <dd>: 18767305</dd>
-        <dt>Nama Paket</dt>
-        <dd>: Belanja Jasa Kawat/Faksimili/Internet (Jaringan Internet Redundant Pendukung Data Center (DC))</dd>
-        <dt>KLDI</dt>
-        <dd>: Pemerintah Daerah Provinsi Jawa Barat</dd>
-        <dt>Satuan Kerja</dt>
-        <dd>: DINAS KOMUNIKASI DAN INFORMATIKA PROVINSI JAWA BARAT</dd>
-        <dt>Tahun Anggaran</dt>
-        <dd>: 2019</dd>
-        <dd><br></dd>
-        <dt>
-          <h4 style="font-size: small">Lokasi Pekerjaan</h4>
-        </dt>
-        <dd>
-          <table class="table table-striped table-hover">
-            <tbody>
-              <tr>
-                <th>No.</th>
-                <th>Provinsi</th>
-                <th>Kabupaten/Kota</th>
-                <th>Detail Lokasi</th>
-              </tr>
-              <tr>
-                <td>1.</td>
-                <td>Jawa Barat</td>
-                <td>Bandung (Kota)</td>
-                <td>Jl. Tamansari No.55 Bandung</td>
-              </tr>
-            </tbody>
-          </table>
-        </dd>
-        <dt>Volume</dt>
-        <dd>: satu paket</dd>
-        <dt>Deskripsi</dt>
-        <dd>: Jaringan Internet Redundant Pendukung Data Center (DC)</dd>
-        <dt>Spesifikasi</dt>
-        <dd>: -</dd>
-        <dt>Produk Dalam Negeri</dt>
-        <dd>: Tidak</dd>
-        <dt>Usaha Kecil</dt>
-        <dd>: Ya</dd>
-        <dt>Pra DIPA / DPA</dt>
-        <dd>: Tidak</dd>
-        <dt>
-          <h4 style="font-size: small">SUMBER DANA</h4>
-        </dt>
-        <dd>
-          <table class="table table-striped table-hover">
-            <tbody>
-              <tr>
-                <th>No.</th>
-                <th>Sumber Dana</th>
-                <th>T.A.</th>
-                <th>KLPD</th>
-                <th>MAK</th>
-                <th>Pagu</th>
-              </tr>
-              <tr>
-                <td>1.</td>
-                <td>APBD</td>
-                <td>2019</td>
-                <td>Pemerintah Daerah Provinsi Jawa Barat</td>
-                <td>5.2.3.10.08</td>
-                <td>31950450</td>
-              </tr>
-              <tr>
-                <td colspan="5">Total</td>
-                <td>31950450</td>
-              </tr>
-            </tbody>
-          </table>
-        </dd>
-        <dt>Jenis Pengadaan</dt>
-        <dd>: Barang,</dd>
-        <dt>Jumlah Pagu</dt>
-        <dd>: 31950450</dd>
-        <dt>Pemilihan Penyedia</dt>
-        <dd>: E-Purchasing</dd>
-        <dt>
-          <h4 style="font-size: small; margin-top: 10px; margin-bottom: 10px">WAKTU</h4>
-        </dt>
-        <dd></dd>
-        <dt>Bulan Kebutuhan</dt>
-        <dd>: Mei 2019</dd>
-        <dt>Bulan Pekerjaan Akhir</dt>
-        <dd>: April 2019</dd>
-        <dt>Bulan Pekerjaan Mulai</dt>
-        <dd>: April 2019</dd>
-        <dt>Bulan Pemilihan Akhir</dt>
-        <dd>: April 2019</dd>
-        <dt>Bulan Pemilihan Mulai</dt>
-        <dd>: April 2019</dd>
-        <dt>Tanggal Perbarui</dt>
-        <dd>: 2019-01-15</dd>
-      </dl>
-    </div>
-    <div class="modal-footer">
-      <button type="button" class="btn btn-rup btn-redPastel">Tutup</button>
-      <button type="button" class="btn btn-primary">Print</button>
-    </div>
-  </div>
-</template>
-
-<script>
-export default {
-  data: function() {
-    return{
-      title : 'Belanja Jasa Kawat/Faksimili/Internet (Jaringan Internet Redundant Pendukung Data Center (DC))' 
-    }   
-  }
-}
-</script>
-
-<style scoped>
-  .paket {
-  text-align: center;
-  padding-bottom: 20px;
-  font-size: 9.5pt;
-  }
-
-  .list-paket {
-  border-color: #f05155;
-  font-size: 20px;
-  }
-
-  .button-paket {
-  background: #f05155;
-  color: white;
-  margin: 3px;
-  }
-
-  #penyedia-btn {
-  float: right;
-  }
-
-  #swakelola-btn {
-  background: #ef7c7f;
-  color: white;
-  float: left;
-  }
-
-  #swakelola-btn:hover {
-  background: #f05155;
-  color: white;
-  float: left;
-  }
-</style>
diff --git a/resources/js/components/ModalPenyediaComponent.vue b/resources/js/components/ModalPenyediaComponent.vue
new file mode 100644
index 0000000000000000000000000000000000000000..f9a8588ba7a85d549e65d7e3e2390fb3781170b1
--- /dev/null
+++ b/resources/js/components/ModalPenyediaComponent.vue
@@ -0,0 +1,245 @@
+<template>
+  <div class="modal fade" id="exampleModalLong" tabindex="-1" role="dialog" aria-labelledby="exampleModalLongTitle" aria-hidden="true">
+    <div class="modal-dialog modal-lg" role="document">
+      <div class="modal-content">
+
+        <div v-if="loading === true">
+          <div style="padding: 50px">
+            <loading-component class="loader"> </loading-component>
+          </div>
+        </div>
+
+        <div v-if="loading === false" class="content"> 
+          <div style="padding: 0px 30px 0px 30px">
+              <div
+                class="text-center"
+                style="color: #2e3436; font-size: 21pt; text-align: center; padding-top: 15px;"
+              >
+                {{item["nama"]}}
+              </div>
+              <div style="margin-bottom: 30px"></div>
+              <div class="paket">
+                  <ul class="nav nav-tabs nav-fill list-paket">
+                  <li class="nav-item" role="presentation">
+                    <button href class="btn button-paket" id="penyedia-btn" role="button">Detil Paket</button>
+                  </li>
+                  <li class="nav-item" role="presentation">
+                    <button href class="btn button-paket" id="swakelola-btn" role="button">Detil Renja</button>
+                  </li>
+                </ul>
+              </div>
+            </div>
+
+            <div class="modal-header">
+            </div>
+
+            <div class="row" style="font-size: 10pt; padding-left: 30px">
+              <dl class="dl-horizontal" style="display: inline-block">
+                <dt>Kode RUP</dt>
+                <dd>: {{item["rup"]}}</dd>
+                <br>
+                <dt>Nama Paket</dt>
+                <dd>: {{item["nama"]}}</dd>
+                <br>
+                <dt>KLDI</dt>
+                <dd>: {{item["kldi"]}}</dd>
+                <br>
+                <dt>Satuan Kerja</dt>
+                <dd>: {{item["satker"]}}</dd>
+                <br>
+                <dt>Tahun Anggaran</dt>
+                <dd>: {{item["tahun"]}}</dd>
+                <br>
+                <dd><br></dd>
+                <dt>
+                  <h4 style="font-size: small">Lokasi Pekerjaan</h4>
+                </dt>
+                <dd>
+                  <table class="table table-striped table-hover">
+                    <tbody>
+                      <tr>
+                        <th>No.</th>
+                        <th>Provinsi</th>
+                        <th>Kabupaten/Kota</th>
+                        <th>Detail Lokasi</th>
+                      </tr>
+                      <tr>
+                        <td>1.</td>
+                        <td>{{item["provinsi"]}}</td>
+                        <td>{{item["kota_kabupaten"]}}</td>
+                        <td>{{item["lokasi"]}}</td>
+                      </tr>
+                    </tbody>
+                  </table>
+                </dd>
+                <br>
+                <dt>Volume</dt>
+                <dd>: {{item["volume"]}}</dd>
+                <br>
+                <dt>Deskripsi</dt>
+                <dd>: {{item["deskripsi"]}}</dd>
+                <br>
+                <dt>Spesifikasi</dt>
+                <dd>: {{item["spesifikasi"]}}</dd>
+                <br>
+                <dt>Produk Dalam Negeri</dt>
+                <dd>: {{item["dalamNegeri"]}}</dd>
+                <br>
+                <dt>Usaha Kecil</dt>
+                <dd>: {{item["usahaKecil"]}}</dd>
+                <br>
+                <dt>Pra DIPA / DPA</dt>
+                <dd>: {{item["DIPA_DPA"]}}</dd>
+                <br>
+                <dt>
+                  <h4 style="font-size: small">SUMBER DANA</h4>
+                </dt>
+                <dd>
+                <br>
+                  <table class="table table-striped table-hover">
+                    <tbody>
+                      <tr>
+                        <th>No.</th>
+                        <th>Sumber Dana</th>
+                        <th>T.A.</th>
+                        <th>KLPD</th>
+                        <th>MAK</th>
+                        <th>Pagu</th>
+                      </tr>
+                        <tr>
+                            <td>1.</td>
+                            <td>{{item["sumberDana"]["nama"]}}</td>
+                            <td>{{item["sumberDana"]["TA"]}}</td>
+                            <td>{{item["sumberDana"]["klpd"]}}</td>
+                            <td>{{item["sumberDana"]["mak"]}}</td>
+                            <td>{{item["sumberDana"]["pagu"]}}</td>
+                        </tr>
+                      <tr>
+                        <td colspan="5">Total</td>
+                        <td>{{item["totalSumberDana"]}}</td>
+                      </tr>
+                    </tbody>
+                  </table>
+                </dd>
+                <br>
+                <dt>Jenis Pengadaan</dt>
+                <dd>: {{item["jenisPengadaan"]}}</dd>
+                <br>
+                <dt>Jumlah Pagu</dt>
+                <dd>: {{item["pagu"]}}</dd>
+                <br>
+                <dt>Pemilihan Penyedia</dt>
+                <dd>: {{item["pemilihanPenyedia"]}}</dd>
+                <br>
+                <dt>
+                  <h4 style="font-size: small; margin-top: 10px; margin-bottom: 10px">WAKTU</h4>
+                </dt>
+                <dd></dd>
+                <br>
+                <dt>Bulan Kebutuhan</dt>
+                <dd>: {{item["bulanKebutuhan"]}}</dd>
+                <br>
+                <dt>Bulan Pekerjaan Akhir</dt>
+                <dd>: {{item["pekerjaanAkhir"]}}</dd>
+                <br>
+                <dt>Bulan Pekerjaan Mulai</dt>
+                <dd>: {{item["pekerjaanMulai"]}}</dd>
+                <br>
+                <dt>Bulan Pemilihan Akhir</dt>
+                <dd>: {{item["pemilihanAkhir"]}}</dd>
+                <br>
+                <dt>Bulan Pemilihan Mulai</dt>
+                <dd>: {{item["pemilihanMulai"]}}</dd>
+                <br>
+                <dt>Tanggal Perbaharui</dt>
+                <dd>: {{item["tanggalPerbaharui"]}}</dd>
+                <br>
+              </dl>
+            </div>
+
+            <div class="modal-footer">
+              <button type="button" data-dismiss="modal" class="btn button-paket">Tutup</button>
+              <button type="button" class="btn btn-primary">Print</button>
+            </div>
+        </div>
+
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  props: ['idPaket'],
+  data: function() {
+    return{
+      title : null,
+      item : null,
+      loading: false,
+    }   
+  },
+  created() {
+    this.loading = true;
+  },
+  mounted: function() {
+      var url = "/api/modal/penyedia/" + this.idPaket;
+      axios
+      .get(url)
+      .then(response => {
+          this.item = response.data.paket;
+          this.loading = false;
+      })
+  }
+}
+</script>
+
+<style scoped>
+  .paket {
+  text-align: center;
+  padding-bottom: 20px;
+  font-size: 9.5pt;
+  }
+
+  .list-paket {
+  border-color: #f05155;
+  font-size: 20px;
+  }
+
+  .button-paket {
+  background: #f05155;
+  color: white;
+  margin: 3px;
+  }
+
+  #penyedia-btn {
+  float: right;
+  }
+
+  #swakelola-btn {
+  background: #ef7c7f;
+  color: white;
+  float: left;
+  }
+
+  #swakelola-btn:hover {
+  background: #f05155;
+  color: white;
+  float: left;
+  }
+
+  dt {
+    display: inline-block;
+    margin-block-end: 10px;
+    margin-right: 20px;
+  }
+
+  dd { 
+    display: inline; 
+  }
+  .loader {
+    margin: 0 auto;
+  }
+  .content {
+    text-align: left;
+  }
+</style>
diff --git a/resources/js/components/ModalPenyediaSwakelolaComponent.vue b/resources/js/components/ModalPenyediaSwakelolaComponent.vue
new file mode 100644
index 0000000000000000000000000000000000000000..7c7a1769a9bb8fa6c7a7f15399559c69e99b488d
--- /dev/null
+++ b/resources/js/components/ModalPenyediaSwakelolaComponent.vue
@@ -0,0 +1,242 @@
+<template>
+  <div class="modal fade" id="exampleModalLong" tabindex="-1" role="dialog" aria-labelledby="exampleModalLongTitle" aria-hidden="true">
+    <div class="modal-dialog modal-lg" role="document">
+      <div class="modal-content">
+
+        <div v-if="loading === true">
+          <div style="padding: 50px">
+            <loading-component class="loader"> </loading-component>
+          </div>
+        </div>
+
+        <div v-if="loading === false"> 
+          <div style="padding: 0px 30px 0px 30px">
+              <div
+                class="text-center"
+                style="color: #2e3436; font-size: 21pt; text-align: center; padding-top: 15px;"
+              >
+                {{item["nama"]}}
+              </div>
+              <div style="margin-bottom: 30px"></div>
+              <div class="paket">
+                  <ul class="nav nav-tabs nav-fill list-paket">
+                  <li class="nav-item" role="presentation">
+                    <button href class="btn button-paket" id="penyedia-btn" role="button">Detil Paket</button>
+                  </li>
+                  <li class="nav-item" role="presentation">
+                    <button href class="btn button-paket" id="swakelola-btn" role="button">Detil Renja</button>
+                  </li>
+                </ul>
+              </div>
+            </div>
+
+            <div class="modal-header">
+            </div>
+
+            <div class="row" style="font-size: 10pt; padding-left: 30px">
+              <dl class="dl-horizontal" style="display: inline-block">
+                <dt>Kode RUP</dt>
+                <dd>: {{item["rup"]}}</dd>
+                <br>
+                <dt>Nama Paket</dt>
+                <dd>: {{item["nama"]}}</dd>
+                <br>
+                <dt>KLDI</dt>
+                <dd>: {{item["kldi"]}}</dd>
+                <br>
+                <dt>Satuan Kerja</dt>
+                <dd>: {{item["satker"]}}</dd>
+                <br>
+                <dt>Tahun Anggaran</dt>
+                <dd>: {{item["tahun"]}}</dd>
+                <br>
+                <dd><br></dd>
+                <dt>
+                  <h4 style="font-size: small">Lokasi Pekerjaan</h4>
+                </dt>
+                <dd>
+                  <table class="table table-striped table-hover">
+                    <tbody>
+                      <tr>
+                        <th>No.</th>
+                        <th>Provinsi</th>
+                        <th>Kabupaten/Kota</th>
+                        <th>Detail Lokasi</th>
+                      </tr>
+                      <tr>
+                        <td>1.</td>
+                        <td>{{item["provinsi"]}}</td>
+                        <td>{{item["kota_kabupaten"]}}</td>
+                        <td>{{item["lokasi"]}}</td>
+                      </tr>
+                    </tbody>
+                  </table>
+                </dd>
+                <br>
+                <dt>Volume</dt>
+                <dd>: {{item["volume"]}}</dd>
+                <br>
+                <dt>Deskripsi</dt>
+                <dd>: {{item["deskripsi"]}}</dd>
+                <br>
+                <dt>Spesifikasi</dt>
+                <dd>: {{item["spesifikasi"]}}</dd>
+                <br>
+                <dt>Produk Dalam Negeri</dt>
+                <dd>: {{item["dalamNegeri"]}}</dd>
+                <br>
+                <dt>Usaha Kecil</dt>
+                <dd>: {{item["usahaKecil"]}}</dd>
+                <br>
+                <dt>Pra DIPA / DPA</dt>
+                <dd>: {{item["DIPA_DPA"]}}</dd>
+                <br>
+                <dt>
+                  <h4 style="font-size: small">SUMBER DANA</h4>
+                </dt>
+                <dd>
+                <br>
+                  <table class="table table-striped table-hover">
+                    <tbody>
+                      <tr>
+                        <th>No.</th>
+                        <th>Sumber Dana</th>
+                        <th>T.A.</th>
+                        <th>KLPD</th>
+                        <th>MAK</th>
+                        <th>Pagu</th>
+                      </tr>
+                        <tr>
+                            <td>1.</td>
+                            <td>{{item["sumberDana"]["nama"]}}</td>
+                            <td>{{item["sumberDana"]["TA"]}}</td>
+                            <td>{{item["sumberDana"]["klpd"]}}</td>
+                            <td>{{item["sumberDana"]["mak"]}}</td>
+                            <td>{{item["sumberDana"]["pagu"]}}</td>
+                        </tr>
+                      <tr>
+                        <td colspan="5">Total</td>
+                        <td>{{item["totalSumberDana"]}}</td>
+                      </tr>
+                    </tbody>
+                  </table>
+                </dd>
+                <br>
+                <dt>Jenis Pengadaan</dt>
+                <dd>: {{item["jenisPengadaan"]}}</dd>
+                <br>
+                <dt>Jumlah Pagu</dt>
+                <dd>: {{item["pagu"]}}</dd>
+                <br>
+                <dt>Pemilihan Penyedia</dt>
+                <dd>: {{item["pemilihanPenyedia"]}}</dd>
+                <br>
+                <dt>
+                  <h4 style="font-size: small; margin-top: 10px; margin-bottom: 10px">WAKTU</h4>
+                </dt>
+                <dd></dd>
+                <br>
+                <dt>Bulan Kebutuhan</dt>
+                <dd>: {{item["bulanKebutuhan"]}}</dd>
+                <br>
+                <dt>Bulan Pekerjaan Akhir</dt>
+                <dd>: {{item["pekerjaanAkhir"]}}</dd>
+                <br>
+                <dt>Bulan Pekerjaan Mulai</dt>
+                <dd>: {{item["pekerjaanMulai"]}}</dd>
+                <br>
+                <dt>Bulan Pemilihan Akhir</dt>
+                <dd>: {{item["pemilihanAkhir"]}}</dd>
+                <br>
+                <dt>Bulan Pemilihan Mulai</dt>
+                <dd>: {{item["pemilihanMulai"]}}</dd>
+                <br>
+                <dt>Tanggal Perbaharui</dt>
+                <dd>: {{item["tanggalPerbaharui"]}}</dd>
+                <br>
+              </dl>
+            </div>
+
+            <div class="modal-footer">
+              <button type="button" data-dismiss="modal" class="btn button-paket">Tutup</button>
+              <button type="button" class="btn btn-primary">Print</button>
+            </div>
+        </div>
+
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  props: ['idPaket'],
+  data: function() {
+    return{
+      title : null,
+      item : null,
+      loading: false,
+    }   
+  },
+  created() {
+    this.loading = true;
+  },
+  mounted: function() {
+      var url = "/api/modal/penyediaSwakelola/" + this.idPaket;
+      axios
+      .get(url)
+      .then(response => {
+          this.item = response.data.paket;
+          this.loading = false;
+      })
+  }
+}
+</script>
+
+<style scoped>
+  .paket {
+  text-align: center;
+  padding-bottom: 20px;
+  font-size: 9.5pt;
+  }
+
+  .list-paket {
+  border-color: #f05155;
+  font-size: 20px;
+  }
+
+  .button-paket {
+  background: #f05155;
+  color: white;
+  margin: 3px;
+  }
+
+  #penyedia-btn {
+  float: right;
+  }
+
+  #swakelola-btn {
+  background: #ef7c7f;
+  color: white;
+  float: left;
+  }
+
+  #swakelola-btn:hover {
+  background: #f05155;
+  color: white;
+  float: left;
+  }
+
+  dt {
+    display: inline-block;
+    margin-block-end: 10px;
+    margin-right: 20px;
+  }
+
+  dd { 
+    display: inline; 
+  }
+  .loader {
+    margin: 0 auto;
+  }
+</style>
diff --git a/resources/js/components/ModalSwakelolaComponent.vue b/resources/js/components/ModalSwakelolaComponent.vue
index 647d30cc979b26645bf97490ebf238e6e8a032ff..261b34aaa46589902d1fcb73894dfa67d3a8b10d 100644
--- a/resources/js/components/ModalSwakelolaComponent.vue
+++ b/resources/js/components/ModalSwakelolaComponent.vue
@@ -2,130 +2,138 @@
 <div class="modal fade" id="exampleModalLong" tabindex="-1" role="dialog" aria-labelledby="exampleModalLongTitle" aria-hidden="true">
   <div class="modal-dialog modal-lg" role="document">
     <div class="modal-content">
-      <div class="modal-header bg-danger">
-        <h5 class="modal-title text-white" id="exampleModalLongTitle">Paket Swakelola</h5>
-        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
-          <span aria-hidden="true">&times;</span>
-        </button>
-      </div>
-      <div class="modal-body" v-for="item in dataSwakelola" :key="item.rup">
-       <h4 class='m-3'>{{item.nama}}</h4>
-         <table class="table table-sm table-borderless">
-            <tbody>
-                <tr>
-                    <th scope="row" class="text-right">Kode RUP</th>
-                    <th scope="row">:</th>
-                    <td>{{item.rup}}</td>
-                </tr>
-                <tr>
-                    <th scope="row" class="text-right">Nama Paket</th>
-                    <th scope="row">:</th>
-                    <td>{{item.nama}}</td>
-                </tr>
-                <tr>
-                    <th scope="row" class="text-right">KLDI</th>
-                    <th scope="row">:</th>
-                    <td>{{item.kldi}}</td>
-                </tr>
-                <tr>
-                    <th scope="row" class="text-right">Satuan Kerja</th>
-                    <th scope="row">:</th>
-                    <td>{{item.satker}}</td>
-                </tr>
-                <tr>
-                    <th scope="row" class="text-right">Tahun Anggaran</th>
-                    <th scope="row">:</th>
-                    <td>{{item.tahun}}</td>
-                </tr>
-                <tr>
-                    <th scope="row" class="text-right">Lokasi Pekerjaan</th>
-                    <th scope="row">:</th>
-                    <td>
-                        <table class="table table-bordered table-sm">
-                            <thead>
-                                <tr class="table-active">
-                                    <th>No.</th>
-                                    <th>Provinsi</th>
-                                    <th>Kabupaten/Kota</th>
-                                    <th>Detail Lokasi</th>
-                                </tr>
-                            </thead>
-                            <tbody>
-                                <tr>
-                                    <td>1.</td>
-                                    <td>{{item.provinsi}}</td>
-                                    <td>{{item.kota}}</td>
-                                    <td>{{item.lokasi}}</td>
-                                </tr>
-                            </tbody>
-                        </table>
-                    </td>
-                </tr>
-                <tr>
-                    <th scope="row" class="text-right">Volume</th>
-                    <th scope="row">:</th>
-                    <td>{{item.volume}}</td>
-                </tr>
-                <tr>
-                    <th scope="row" class="text-right">Lokasi</th>
-                    <th scope="row">:</th>
-                    <td>{{item.kota}}</td>
-                </tr>
-                <tr>
-                    <th scope="row" class="text-right">Deskripsi</th>
-                    <th scope="row">:</th>
-                    <td>{{item.deskripsi}}</td>
-                </tr>
-                <tr>
-                    <th scope="row" class="text-right">SUMBER DANA</th>
-                    <th scope="row">:</th>
-                    <td>
-                        <table class="table table-bordered table-sm">
-                            <thead>
-                                <tr class="table-active">
-                                    <th>No.</th>
-                                    <th>Sumber Dana</th>
-                                    <th>KLPD</th>
-                                    <th>MAK</th>
-                                    <th>Pagu</th>
-                                </tr>
-                            </thead>
-                            <tbody>
-                                <tr v-for="subitem in item.sumberDana" :key="subitem.no">
-                                    <td>1.</td>
-                                    <td>{{subitem.sumberDana}}</td>
-                                    <td>{{subitem.klpd}}</td>
-                                    <td>{{subitem.mak}}</td>
-                                    <td>{{subitem.pagu}}</td>
-                                </tr>
-                                <tr class="table-active">
-                                    <td class="text-left" colspan="4">Total</td>
-                                    <td>{{item.totalSumberDana}}</td>
-                                </tr>
-                            </tbody>
-                        </table>
-                    </td>
-                </tr>
-                <tr>
-                    <td colspan="3">PELAKSANAAN PEKERJAAN</td>
-                </tr>
-                <tr>
-                    <th scope="row" class="text-right">Awal</th>
-                    <th scope="row">:</th>
-                    <td>{{item.awalKerja}}</td>
-                </tr>
-                <tr>
-                    <th scope="row" class="text-right">Akhir</th>
-                    <th scope="row">:</th>
-                    <td>{{item.akhirKerja}}</td>
-                </tr>
-            </tbody>
-         </table>
-      </div>
-      <div class="modal-footer">
-        <button type="button" class="btn btn-danger" data-dismiss="modal">Tutup</button>
-        <button type="button" class="btn btn-primary">Print</button>
-      </div>
+
+        <div v-if="loading === true">
+            <div style="padding: 50px">
+                <loading-component class="loader"> </loading-component>
+            </div>
+        </div>
+        <div v-if="loading === false"> 
+            <div class="modal-header bg-danger">
+                <h5 class="modal-title text-white" id="exampleModalLongTitle">Paket Swakelola</h5>
+                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
+                <span aria-hidden="true">&times;</span>
+                </button>
+            </div>
+            <div class="modal-body">
+            <h4 class='m-3'>{{item["nama"]}}</h4>
+                <table class="table table-sm table-borderless">
+                    <tbody>
+                        <tr>
+                            <th scope="row" class="text-right">Kode RUP</th>
+                            <th scope="row">:</th>
+                            <td>{{item["rup"]}}</td>
+                        </tr>
+                        <tr>
+                            <th scope="row" class="text-right">Nama Paket</th>
+                            <th scope="row">:</th>
+                            <td>{{item["nama"]}}</td>
+                        </tr>
+                        <tr>
+                            <th scope="row" class="text-right">KLDI</th>
+                            <th scope="row">:</th>
+                            <td>{{item["kldi"]}}</td>
+                        </tr>
+                        <tr>
+                            <th scope="row" class="text-right">Satuan Kerja</th>
+                            <th scope="row">:</th>
+                            <td>{{item["satker"]}}</td>
+                        </tr>
+                        <tr>
+                            <th scope="row" class="text-right">Tahun Anggaran</th>
+                            <th scope="row">:</th>
+                            <td>{{item["tahun"]}}</td>
+                        </tr>
+                        <tr>
+                            <th scope="row" class="text-right">Lokasi Pekerjaan</th>
+                            <th scope="row">:</th>
+                            <td>
+                                <table class="table table-bordered table-sm">
+                                    <thead>
+                                        <tr class="table-active">
+                                            <th>No.</th>
+                                            <th>Provinsi</th>
+                                            <th>Kabupaten/Kota</th>
+                                            <th>Detail Lokasi</th>
+                                        </tr>
+                                    </thead>
+                                    <tbody>
+                                        <tr>
+                                            <td>1.</td>
+                                            <td>{{item["provinsi"]}}</td>
+                                            <td>{{item["kota"]}}</td>
+                                            <td>{{item["lokasi"]}}</td>
+                                        </tr>
+                                    </tbody>
+                                </table>
+                            </td>
+                        </tr>
+                        <tr>
+                            <th scope="row" class="text-right">Volume</th>
+                            <th scope="row">:</th>
+                            <td>{{item["volume"]}}</td>
+                        </tr>
+                        <tr>
+                            <th scope="row" class="text-right">Lokasi</th>
+                            <th scope="row">:</th>
+                            <td>{{item["kota"]}}</td>
+                        </tr>
+                        <tr>
+                            <th scope="row" class="text-right">Deskripsi</th>
+                            <th scope="row">:</th>
+                            <td>{{item["deskripsi"]}}</td>
+                        </tr>
+                        <tr>
+                            <th scope="row" class="text-right">SUMBER DANA</th>
+                            <th scope="row">:</th>
+                            <td>
+                                <table class="table table-bordered table-sm">
+                                    <thead>
+                                        <tr class="table-active">
+                                            <th>No.</th>
+                                            <th>Sumber Dana</th>
+                                            <th>KLPD</th>
+                                            <th>MAK</th>
+                                            <th>Pagu</th>
+                                        </tr>
+                                    </thead>
+                                    <tbody>
+                                        <tr>
+                                            <td>1.</td>
+                                            <td>{{item["sumberDana"]["nama"]}}</td>
+                                            <td>{{item["sumberDana"]["klpd"]}}</td>
+                                            <td>{{item["sumberDana"]["mak"]}}</td>
+                                            <td>{{item["sumberDana"]["pagu"]}}</td>
+                                        </tr>
+                                        <tr class="table-active">
+                                            <td class="text-left" colspan="4">Total</td>
+                                            <td>{{item["totalSumberDana"]}}</td>
+                                        </tr>
+                                    </tbody>
+                                </table>
+                            </td>
+                        </tr>
+                        <tr>
+                            <td colspan="3">PELAKSANAAN PEKERJAAN</td>
+                        </tr>
+                        <tr>
+                            <th scope="row" class="text-right">Awal</th>
+                            <th scope="row">:</th>
+                            <td>{{item["awalKerja"]}}</td>
+                        </tr>
+                        <tr>
+                            <th scope="row" class="text-right">Akhir</th>
+                            <th scope="row">:</th>
+                            <td>{{item["akhirKerja"]}}</td>
+                        </tr>
+                    </tbody>
+                </table>
+            </div>
+            <div class="modal-footer">
+                <button type="button" class="btn btn-danger" data-dismiss="modal">Tutup</button>
+                <button type="button" class="btn btn-primary">Print</button>
+            </div>
+        </div>
     </div>
   </div>
 </div>
@@ -133,16 +141,24 @@
 
 <script>
 export default {
+    props: ['idPaket'],
     data: function() {
         return {
-            dataSwakelola: null
+            item: null,
+            loading : false,
+
         }
     },
+     created() {
+    this.loading = true;
+  },
     mounted: function() {
+        var url = "/api/modal/swakelola/" + this.idPaket;
         axios
-        .get(this.apiLink)
+        .get(url)
         .then(response => {
-            this.dataSwakelola = response.data.paket;
+            this.item = response.data.paket;
+            this.loading = false;
         })
     }
 }
diff --git a/resources/js/components/NavbarComponent.vue b/resources/js/components/NavbarComponent.vue
index 98302cbf5a202d2abca4a4496b006dbe8f9e8ffd..ad4f3808b711d27c89a4fa63a87ecda7a5ff2354 100644
--- a/resources/js/components/NavbarComponent.vue
+++ b/resources/js/components/NavbarComponent.vue
@@ -1,6 +1,6 @@
 <template>
   <nav class="navbar navbar-expand-lg navbar-dark bg-dark">
-    <a class="navbar-brand" href="#">SIRUP Jawa Barat</a>
+    <a class="navbar-brand" href="/">SIRUP Jawa Barat</a>
     <button
       class="navbar-toggler"
       type="button"
@@ -16,22 +16,37 @@
     <div class="collapse navbar-collapse" id="navbarSupportedContent">
       <ul class="navbar-nav mr-auto">
         <li v-bind:class="{ active: isRekap }" class="nav-item">
-          <a class="nav-link" href="/rekap">Rekap
+          <a class="nav-link" href="/rekap">
+            Rekap
             <span class="sr-only">(current)</span>
           </a>
         </li>
         <li v-bind:class="{ active: isCariPaket }" class="nav-item">
-          <a class="nav-link" href="/paket">Cari Paket</a>
+          <a class="nav-link" href="/search">Cari Paket</a>
         </li>
         <li v-bind:class="{ active: isUnduh }" class="nav-item">
           <b-nav-item-dropdown text="Unduh">
-            <b-dropdown-item href="#">Materi</b-dropdown-item>
-            <b-dropdown-item href="/unduh/paketRUP">Paket RUP</b-dropdown-item>
+            <b-dropdown-item href="/unduh/materi">Materi</b-dropdown-item>
+            <b-dropdown-item v-if="userRole === 'pa' || userRole === 'ppk'" href="/unduh/paketRUP">Paket RUP</b-dropdown-item>
           </b-nav-item-dropdown>
         </li>
-        <li v-bind:class="{ active: isBerita }" class="nav-item">
-          <a  class="nav-link" href="#">Berita</a>
+        <li v-if="userRole === 'pa' || userRole === 'ppk'" class="nav-item">
+          <b-nav-item-dropdown text="Kelola Data">
+            <b-dropdown-item href="#">Kelola OPD</b-dropdown-item>
+            <b-dropdown-item href="#">Kelola Pengguna</b-dropdown-item>
+            <b-dropdown-item href="#">Kelola Anggaran</b-dropdown-item>
+            <b-dropdown-item href="/status">Status Paket</b-dropdown-item>
+          </b-nav-item-dropdown>
+        </li>
+      </ul>
+      <ul class="navbar-nav ml-auto" style="color:white;">
         <li class="nav-item">
+          <a v-if="!userName" href="/login" style="color:#ffffff;">
+            <i class="fas fa-user-alt"></i> Masuk
+          </a>
+          <b-nav-item-dropdown v-else :text="userName">
+            <b-dropdown-item href="/logout">Keluar</b-dropdown-item>
+          </b-nav-item-dropdown>
         </li>
       </ul>
     </div>
@@ -39,9 +54,9 @@
 </template>
 
 <script>
-import BootstrapVue from 'bootstrap-vue';
+import BootstrapVue from "bootstrap-vue";
 export default {
-  props: ['isRekap', 'isCariPaket', 'isUnduh', 'isBerita'],
+  props: ["isRekap", "isCariPaket", "isUnduh", "isBerita", "userName", "userRole"],
   mounted() {
     console.log("Navbar Component mounted.");
   }
diff --git a/resources/js/components/PemdaPenyediaSwakelolaTableComponent.vue b/resources/js/components/PemdaPenyediaSwakelolaTableComponent.vue
index 48caeabfae50e8b1e07f86c7ac1831ae86b31ab2..d2f80ca927817e1e2c23482bdbecbf1e515eee63 100644
--- a/resources/js/components/PemdaPenyediaSwakelolaTableComponent.vue
+++ b/resources/js/components/PemdaPenyediaSwakelolaTableComponent.vue
@@ -3,11 +3,14 @@
 
     <div style="padding: 0px 30px 0px 30px">
         <div style="margin-bottom: 30px">
+            <div class="text-center" style="color: #2e3436; font-size: 21pt; text-align: center;">    
+                {{title}}
+            </div>
         </div>
         <div class="paket">
             <ul class="nav nav-tabs nav-fill list-paket">
                 <li class="nav-item" role="presentation">
-                    <a href="swakelola">
+                    <a v-on:click="goBack()">
                         <button class="btn button-paket" id="swakelola-btn" role="button">Swakelola</button>
                     </a>
                 </li>
@@ -29,14 +32,17 @@
             </tr>
           </thead>
           <tbody>
-            <tr v-for="item in items" :key="item.no">
+            <tr v-for="item in rekapData" :key="item.no">
                 <td class="text-left">{{item.no}}</td>
-                <td class="text-left">{{item.namaSatker}}</td>
-                <td class="text-left">{{item.namaPaket}}</td>
+                <td class="text-left">{{item.satuanKerja}}</td>
+                <td class="text-left">
+              <a data-toggle="modal" :href="'#penyediaSwakelolaModal' + item.idPaket"> {{item.namaPaket}} </a>
+            </td>
                 <td class="text-right">{{item.pagu}}</td>
                 <td class="text-left">{{item.waktuPemilihan}}</td>
                 <td class="text-left">{{item.metodePemilihan}}</td>
                 <td class="text-left">{{item.sumberDana}}</td>
+                <modal-penyedia-swakelola-component :id="'penyediaSwakelolaModal' + item.idPaket" :idPaket="item.idPaket"> </modal-penyedia-swakelola-component>
             </tr>
             <tr>
                 <td class="text-left"> </td>
@@ -66,6 +72,7 @@
 
 <script>
 export default {
+    props: ['apiLink'],
     data: function(){
         return {
             items: [{
@@ -85,16 +92,31 @@ export default {
                 waktuPemilihan: 'Februari 2019',
                 metodePemilihan: '314.296',
                 sumberDana: '117.126.251'
-            }]
+            }],
+            rekapData :null,
+            rekapTotal : null,
+            title : null
         }
     },
     mounted: function(){
+        console.log(this.apiLink);
         axios
             .get(this.apiLink)
             .then(response => {
-                this.rekapData = response.data.rekap;
+                this.rekapData = response.data.paket;
+                this.title = response.data.title;
                 this.rekapTotal = response.data.total;
             });
+    },
+    methods: {
+        goBack: function() {
+            var currentLocation = window.location["href"];
+            console.log(currentLocation);
+            var targetLocation = currentLocation.split("/");
+            targetLocation.pop();
+            targetLocation = targetLocation.join().replace(/,/g, "/");
+            window.location.href = targetLocation;
+        }
     }
 }
 
diff --git a/resources/js/components/PemdaPenyediaTableComponent.vue b/resources/js/components/PemdaPenyediaTableComponent.vue
index 9de755a29540bc1f2aa2204be754e11cbe7ec2b0..d99d312db53873cbc99635439d59346a4d842268 100644
--- a/resources/js/components/PemdaPenyediaTableComponent.vue
+++ b/resources/js/components/PemdaPenyediaTableComponent.vue
@@ -38,10 +38,13 @@
           <tr v-for="item in penyediaData" :key="item.no">
             <td class="text-left">{{item.no}}</td>
             <td class="text-left">{{item.satuanKerja}}</td>
-            <td class="text-left">{{item.namaPaket}}</td>
+            <td class="text-left">
+              <a data-toggle="modal" :href="'#penyediaModal' + item.idPaket"> {{item.namaPaket}} </a>
+            </td>
             <td class="text-right">{{item.pagu}}</td>
             <td class="text-left">{{item.metodePemilihanPenyedia}}</td>
             <td class="text-left">{{item.sumberDana}}</td>
+            <modal-penyedia-component :id="'penyediaModal' + item.idPaket" :idPaket="item.idPaket"> </modal-penyedia-component>
           </tr>
         </tbody>
         <tfoot>
diff --git a/resources/js/components/PemdaSwakelolaTableComponent.vue b/resources/js/components/PemdaSwakelolaTableComponent.vue
index dd64345938e2b1117379cf3f445fe3489380932e..a02de188e812c1326293340f38a27c88e2c9e10c 100644
--- a/resources/js/components/PemdaSwakelolaTableComponent.vue
+++ b/resources/js/components/PemdaSwakelolaTableComponent.vue
@@ -2,7 +2,7 @@
 <div>
     <div style="padding: 0px 30px 0px 30px">  
         <div class="text-center" style="color: #2e3436; font-size: 21pt; text-align: center;">    
-            PEMERINTAH DAERAH {{title}} {{subTitle}}
+            {{title}} {{subTitle}}
         </div>
         <div class="paket">
             <ul class="nav nav-tabs nav-fill list-paket">
@@ -20,7 +20,7 @@
         </div>
        
         <div class="row mb-3">
-		    <a href="penyedia-swakelola" style="background : #115b75;color: white" class="btn" role="button">
+		    <a href="swakelola/penyedia-swakelola" style="background : #115b75;color: white" class="btn" role="button">
              <span class ="fas fa-list"></span>
              Penyedia dalam Swakelola
             </a>
@@ -43,9 +43,10 @@
             <tr v-for="item in swakelolaData" :key="item.no">
                 <td class="text-left">{{item.no}}</td>
                 <td class="text-left">{{item.satuanKerja}}</td>
-                <td class="text-left">{{item.kegiatan}}</td>
-                <td class="text-left">{{item.pagu}}</td>
+                 <a data-toggle="modal" :href="'#modalSwakelola' + item.idPaket"> {{item.kegiatan}} </a>
+                <td class="text-right">{{item.pagu}}</td>
                 <td class="text-left">{{item.sumberDana}}</td>
+                 <modal-swakelola-component :id="'modalSwakelola' + item.idPaket" :idPaket="item.idPaket"> </modal-swakelola-component>
             </tr>
           </tbody>
           <tfoot>
@@ -66,7 +67,7 @@
 
 <script>
 export default {
-    props: ['title','apiLink'],
+    props: ['apiLink'],
     data: function(){
         return {
             items: [
diff --git a/resources/js/components/PenyediaSwakelolaTableComponent.vue b/resources/js/components/PenyediaSwakelolaTableComponent.vue
index 11043fdbc0c160d8b48d5576ed6e815cc1efd80a..67a7975689ed0afb1abc55e13bc5db00d9e7e7d0 100644
--- a/resources/js/components/PenyediaSwakelolaTableComponent.vue
+++ b/resources/js/components/PenyediaSwakelolaTableComponent.vue
@@ -2,12 +2,13 @@
 <div>
 
     <div style="padding: 0px 30px 0px 30px">
-        <div style="margin-bottom: 30px">
+        <div class="text-center" style="color: #2e3436; font-size: 21pt; text-align: center;">    
+            {{rekapSubtitle}}
         </div>
         <div class="paket">
             <ul class="nav nav-tabs nav-fill list-paket">
                 <li class="nav-item" role="presentation">
-                    <a href="swakelola"> 
+                    <a v-on:click="goBack()"> 
                         <button class="btn button-paket" id="swakelola-btn" role="button">Swakelola</button>
                     </a>
                 </li>
@@ -27,19 +28,15 @@
             </tr>
           </thead>
           <tbody>
-            <tr v-for="item in items" :key="item.no">
+            <tr v-for="item in rekapPaket" :key="item.no">
                 <td class="text-left">{{item.no}}</td>
-                <td class="text-left">{{item.namaPaket}}</td>
+                <td class="text-left">
+              <a data-toggle="modal" :href="'#penyediaSwakelolaModal' + item.idPaket"> {{item.namaPaket}} </a>
+            </td>
                 <td class="text-right">{{item.pagu}}</td>
-                <td class="text-left">{{item.metodePemilihanPenyedia}}</td>
+                <td class="text-right">{{item.metode}}</td>
                 <td class="text-left">{{item.sumberDana}}</td>
-            </tr>
-            <tr>
-                <td class="text-left"> </td>
-                <td class="text-left">DUMMY</td>
-                <td class="text-right"> </td>
-                <td class="text-left" >DUMMY</td>
-                <td class="text-left">DUMMY</td>
+                 <modal-penyedia-swakelola-component :id="'penyediaSwakelolaModal' + item.idPaket" :idPaket="item.idPaket"> </modal-penyedia-swakelola-component>
             </tr>
           </tbody>
           <tfoot>
@@ -58,74 +55,55 @@
 
 <script>
 export default {
+    props: ['apiLink'],
     data: function(){
         return {
-            items: [{
-                no: 1,
-                namaPaket: 'Provinsi',
-                pagu: '46.620.511',
-                metodePemilihanPenyedia: '314.296',
-                sumberDana: '117.126.251'
-            },
-            {   
-                no: 2,
-                namaPaket: 'Provinsi',
-                pagu: '46.620.511',
-                metodePemilihanPenyedia: '314.296',
-                sumberDana: '117.126.251'
-            }]
+            rekapPaket: null,
+            rekapSubtitle: null
         }
-    }
-}
+               
+    },
+    mounted: function() {        
+        axios
+            .get(this.apiLink)
+            .then(response => {
+                this.rekapPaket = response.data.paket;
+                this.rekapSubtitle = response.data.subtitle;
+            })
+            .then(()=>{
+                // Setup - add a text input to each footer cell
+                $("#penyedia-swakelola tfoot th.search").each(function() {
+                var title = $(this).text();
+                $(this).html('<input type="text" placeholder="Search ' + title + '" />');
+                });
 
-$(document).ready(function() {
-    // Setup - add a text input to each footer cell
-    // Datatables ~ Search By Input
-    $('#penyedia-swakelola tfoot th.search').each( function () {
-        var title = $(this).text();
-        $(this).html( '<input type="text" placeholder="Search '+title+'" />' );
-    } );
- 
-    // DataTable
-    var table = $('#penyedia-swakelola').DataTable({
-        "pagingType": "full_numbers",
-        // Datatables ~ Search By Selection
-        "initComplete": function () {
-            this.api().columns([4]).every( function () {
-                var column = this;
-                var select = $('<select><option value=""></option></select>')
-                    .appendTo( $(column.footer()).empty() )
-                    .on( 'change', function () {
-                        var val = $.fn.dataTable.util.escapeRegex(
-                            $(this).val()
-                        );
- 
-                        column
-                            .search( val ? '^'+val+'$' : '', true, false )
-                            .draw();
-                    } );
- 
-                column.data().unique().sort().each( function ( d, j ) {
-                    select.append( '<option value="'+d+'">'+d+'</option>' )
-                } );
-            } );
-        }
-    });
- 
-    // Apply the search by input
-    table.columns().every( function () {
-        var that = this;
- 
-        $( 'input', this.footer() ).on( 'keyup change', function () {
-            if ( that.search() !== this.value ) {
-                that
-                    .search( this.value )
-                    .draw();
-            }
-        } );
-    } );
-} );
+                // DataTable
+                var table = $("#penyedia-swakelola").DataTable({
+                pagingType: "full_numbers"
+                });
 
+                // Apply the search by input
+                table.columns().every(function() {
+                var that = this;
+                $("input", this.footer()).on("keyup change", function() {
+                    if (that.search() !== this.value) {
+                    that.search(this.value).draw();
+                    }
+                });
+            });
+        })
+    },
+    methods: {
+        goBack: function() {
+            var currentLocation = window.location["href"];
+            console.log(currentLocation);
+            var targetLocation = currentLocation.split("/");
+            targetLocation.pop();
+            targetLocation = targetLocation.join().replace(/,/g, "/");
+            window.location.href = targetLocation;
+        }
+    }
+}
 </script>
 
 <!-- Add "scoped" attribute to limit CSS to this component only -->
diff --git a/resources/js/components/PenyediaTableComponent.vue b/resources/js/components/PenyediaTableComponent.vue
index bf01eedcb876ed3b51d5cd7a4abfd4e555b62d69..518a1b051baa67c4284a0a74e2aeb0347e897f1e 100644
--- a/resources/js/components/PenyediaTableComponent.vue
+++ b/resources/js/components/PenyediaTableComponent.vue
@@ -47,10 +47,13 @@
           <tbody>
             <tr v-for="item in penyediaData" :key="item.no">
                 <td class="text-left">{{item.no}}</td>
-                <td class="text-left">{{item.namaPaket}}</td>
+                <td class="text-left">
+                    <a data-toggle="modal" :href="'#penyediaModal' + item.idPaket"> {{item.namaPaket}} </a>
+                </td>
                 <td class="text-right">{{item.pagu}}</td>
                 <td class="text-left">{{item.metodePemilihanPenyedia}}</td>
                 <td class="text-left">{{item.sumberDana}}</td>
+                <modal-penyedia-component :id="'penyediaModal' + item.idPaket" :idPaket="item.idPaket"> </modal-penyedia-component>
             </tr>
           </tbody>
           <tfoot>
diff --git a/resources/js/components/StatusPaketTableComponent.vue b/resources/js/components/StatusPaketTableComponent.vue
new file mode 100644
index 0000000000000000000000000000000000000000..b82f3c82c793d68881b316e453164b6b20b95b6a
--- /dev/null
+++ b/resources/js/components/StatusPaketTableComponent.vue
@@ -0,0 +1,209 @@
+<template> 
+<div>
+
+    <div style="padding: 0px 30px 0px 30px">
+        <div class="text-center" style="color: #2e3436; font-size: 21pt; text-align: center; padding-top: 15px;">    
+            Status Paket
+        </div>
+        <div style="margin-bottom: 30px">
+        </div>
+    </div>
+
+    <div class="col-sm-12">
+      <table class="table table-striped text-center" id="status-paket">
+          <thead>
+            <tr style="background-color: #F05155;border-bottom: 4px solid #ddd">
+                <th style="color: white" class="text-left">No</th>
+                <th style="color: white" class="text-left">Kegiatan</th>
+                <th style="color: white" class="text-left">Nama Paket</th>
+                <th class="text-left" style="color: white">Pagu (Rp.)</th>
+                <th class="text-left" style="color: white">Sumber Dana</th>
+                <th class="text-left" style="color: white">Mulai Pekerjaan</th>
+                <th class="text-left" style="color: white">D</th>
+                <th class="text-left" style="color: white">FD</th>
+                <th class="text-left" style="color: white">U</th>
+            </tr>
+          </thead>
+          <tbody>
+            <tr v-for="item in paket" :key="item.no">
+                <td class="text-left">{{item.no}}</td>
+                <td class="text-left">{{item.kegiatan}}</td>
+                <td class="text-left">{{item.namaPaket}}</td>
+                <td class="text-right">{{item.pagu}}</td>
+                <td class="text-left">{{item.sumberDana}}</td>
+                <td class="text-left">{{item.mulaiPekerjaan}}</td>
+                <td>
+                    <input v-if="item.status === '1'" :id="'klasifikasi' + item.idPaket" v-on:click="klasifikasi(item.idPaket, item.status, item.namaPaket)" type="checkbox" name="D" value="D">
+                    <input v-else type="checkbox" name="D" value="D" checked disabled>
+                </td>
+                <td>
+                    <input v-if="item.status === '1'" type="checkbox" name="FD" value="FD" disabled>
+                    <input v-else-if="item.status === '2'" :id="'finalisasi' + item.idPaket" v-on:click="finalisasi(item.idPaket, item.status, item.namaPaket, item.kodeRUP)" type="checkbox" name="FD" value="FD">
+                    <input v-else type="checkbox" name="FD" value="FD" checked disabled>
+                </td>
+                <td>
+                    <input v-if="item.status === '3'" :id="'umumkan' + item.idPaket" v-on:click="pengumuman(item.idPaket, item.namaPaket, item.kegiatan)" type="checkbox" name="U" value="U">
+                    <input v-else-if="item.status === '4'" type="checkbox" name="U" value="U" checked disabled>
+                    <input v-else type="checkbox" name="U" value="U" disabled>
+                </td>
+            </tr>
+          </tbody>
+            <modal-klasifikasi-component
+                :id="'klasifikasiModal'+idPaketModal" :idPaket="idPaketModal"
+                :namaPaket="namaPaketModal" :title="titleModal"
+                :status="statusPaket" ref="modalKlasifikasi">
+            </modal-klasifikasi-component>
+
+            <modal-pengumuman-component
+                :id="'pengumumanModal'+idPaketModal" :idPaket="idPaketModal" 
+                :kegiatan="kegiatanModal" :namaPaket="namaPaketModal">
+            </modal-pengumuman-component>
+          <tfoot>
+                <tr>
+                    <th class="text-left"></th>
+                    <th class="text-left search">Kegiatan</th>
+                    <th class="text-left search">Nama Paket</th>
+                    <th class="text-right"></th>
+                    <th class="text-left search">Sumber Dana</th>
+                    <th class="text-right"></th>
+                    <th class="text-right"></th>
+                    <th class="text-right"></th>
+                    <th class="text-right"></th>
+                </tr>
+        </tfoot>
+      </table>
+    </div>
+</div>
+</template>
+
+<script>
+export default {
+    props: ['apiLink'],
+    data: function(){
+        return {
+            paket: null,
+            idModal: null,
+            idPaketModal: null,
+            namaPaketModal: null,
+            kegiatanModal: null,
+            titleModal: null,
+            statusPaket: null
+        }
+    }, 
+    mounted: function(){
+    axios
+      .get(this.apiLink)
+      .then(response => {
+        this.paket = response.data.paket;
+      })
+      .then(()=>{
+        // Setup - add a text input to each footer cell
+        $("#status-paket tfoot th.search").each(function() {
+          var title = $(this).text();
+          $(this).html('<input type="text" placeholder="Search ' + title + '" />');
+        });
+
+        // DataTable
+        var table = $("#status-paket").DataTable({
+          pagingType: "full_numbers"
+        });
+
+        // Apply the search by input
+        table.columns().every(function() {
+          var that = this;
+          $("input", this.footer()).on("keyup change", function() {
+            if (that.search() !== this.value) {
+              that.search(this.value).draw();
+            }
+          });
+        });
+      })
+    },
+    methods: {
+        pengumuman: function(id, nama, kegiatan) {
+            this.idModal = 'pengumumanModal' + id;
+            this.idPaketModal = id;
+            this.namaPaketModal = nama;
+            this.kegiatanModal = kegiatan;
+            $('#umumkan' + id).on('change', function(e){
+                if(e.target.checked){
+                    $('#pengumumanModal' + id).modal('show');
+                }
+            });
+
+            $('#batalUmumkan').on('click', function(e) {
+                $('#umumkan' + id).prop('checked', false);
+            });
+
+            $('#simpanUmumkan').on('click', function(e) {
+                $('#pengumumanModal' + id).modal('hide');
+                window.location.reload();
+            });
+        },
+        klasifikasi: function(id, status, nama) {
+            this.titleModal = 'Klasifikasi Paket';
+            this.idModal = 'klasifikasiModal' + id;
+            this.idPaketModal = id;
+            this.namaPaketModal = nama;
+            this.statusPaket = status;
+
+            var instance = this;
+            $('#klasifikasi' + id).on('change', function(e){
+                if(e.target.checked){
+                    instance.$refs.modalKlasifikasi.setJenisPaket(0);
+                    $('#klasifikasiModal' + id).modal('show');
+                }
+            });
+
+            $('#batalKlasifikasi').on('click', function(e) {
+                $('#klasifikasi' + id).prop('checked', false);
+            });
+
+            $('#simpanKlasifikasi').on('click', function(e) {
+                $('#klasifikasiModal' + id).modal('hide');
+                window.location.reload();
+            });
+        },
+        finalisasi: function(id, status, nama, kodeRUP) {
+            this.titleModal = 'Finalisasi Klasifikasi Paket';
+            this.idModal = 'finalisasiModal' + id;
+            this.idPaketModal = id;
+            this.namaPaketModal = nama;
+            this.statusPaket = status;
+
+            var instance = this;
+            var url = "/api/status/jenispaket/" + kodeRUP;
+            axios
+            .get(url)
+            .then(function(instance) {
+                return function(response) {
+                    var jenisPaket = response.data.jenis_paket;
+                    if ($('#finalisasi' + id).is(':checked')) {
+                        instance.$refs.modalKlasifikasi.setJenisPaket(jenisPaket);
+                        $('#klasifikasiModal' + id).modal('show');
+                    }
+                }
+            }(this))
+
+            $('#batalKlasifikasi').on('click', function(e) {
+                $('#finalisasi' + id).prop('checked', false);
+            });
+
+            $('#simpanKlasifikasi').on('click', function(e) {
+                $('#klasifikasiModal' + id).modal('hide');
+                window.location.reload();
+            });
+        }
+    }
+}
+
+</script>
+
+<!-- Add "scoped" attribute to limit CSS to this component only -->
+<style scoped>
+    tfoot input {
+        width: 100%;
+        padding: 3px;
+        box-sizing: border-box;
+    }
+</style>
\ No newline at end of file
diff --git a/resources/js/components/SwakelolaTableComponent.vue b/resources/js/components/SwakelolaTableComponent.vue
index c65d76b5653b4f90bc7d0b7e3259aa374dd5fb7a..c6bc615d20582f37a3fffe11e08c7ff336528550 100644
--- a/resources/js/components/SwakelolaTableComponent.vue
+++ b/resources/js/components/SwakelolaTableComponent.vue
@@ -1,13 +1,11 @@
-
-
 <template> 
 <div>
     <div style="padding: 0px 30px 0px 30px">  
         <div class="text-center" style="color: #2e3436; font-size: 21pt; text-align: center;">    
-            {{title}}
+            RUP SWAKELOLA
         </div>
-        <div class="text-center" style="color: #2e3436; font-size: 17pt; text-align: center; padding-top: 5px;">    
-            {{subtitle}}
+        <div class="text-center" style="color: #2e3436; font-size: 21pt; text-align: center;">    
+            {{title}} {{subTitle}}
         </div>
         <div class="paket">
             <ul class="nav nav-tabs nav-fill list-paket">
@@ -25,11 +23,11 @@
         </div>
        
         <div class="row mb-3">
-		   <a style="background : #115b75;color: white" data-target="#swakelolaModal" class="btn" role="button" data-toggle="modal">
+		    <a href="swakelola/penyedia-swakelola" style="background : #115b75;color: white" class="btn" role="button">
              <span class ="fas fa-list"></span>
              Penyedia dalam Swakelola
             </a>
-		     <a style = "padding-left : 10px" tabindex="0" class="help" data-toggle="popover" title="Penyedia Dalam Swakelola" data-content="Penyedia Dalam Swakelola merupakan paket penyedia didalam kegiatan swakelola contoh : paket jamuan rapat"><span class="fa fa-question-circle"></span></a>
+		    <a style = "padding-left : 10px" tabindex="0" class="help" data-toggle="popover" title="Penyedia Dalam Swakelola" data-content="Penyedia Dalam Swakelola merupakan paket penyedia didalam kegiatan swakelola contoh : paket jamuan rapat"><span class="fa fa-question-circle"></span></a>
 		</div>
     </div>    
 
@@ -38,8 +36,8 @@
           <thead>
             <tr style="background-color: #115b75;border-bottom: 4px solid #ddd">
                 <th style="color: white" class="text-left">No</th>
-                <th style="color: white" class="text-left">Kegiatan</th>
-                <th class="text-left" style="color: white">Paket</th>
+                <th class="text-left" style="color: white">Kegiatan</th>
+                <th style="color: white" class="text-left">Paket</th>
                 <th class="text-left" style="color: white">Pagu (Rp.)</th>
                 <th class="text-left" style="color: white">Sumber Dana</th>
             </tr>
@@ -48,57 +46,59 @@
             <tr v-for="item in swakelolaData" :key="item.no">
                 <td class="text-left">{{item.no}}</td>
                 <td class="text-left">{{item.kegiatan}}</td>
-                <td class="text-left">{{item.paket}}</td>
-                <td class="text-left">{{item.pagu}}</td>
+                <td class="text-left"> <a data-toggle="modal" :href="'#modalSwakelola' + item.idPaket"> {{item.paket}} </a></td>
+                <td class="text-right">{{item.pagu}}</td>
                 <td class="text-left">{{item.sumberDana}}</td>
+                 <modal-swakelola-component :id="'modalSwakelola' + item.idPaket" :idPaket="item.idPaket"> </modal-swakelola-component>
             </tr>
           </tbody>
           <tfoot>
                 <tr>
                     <th class="text-left"></th>
                     <th class="text-left search">Kegiatan</th>
-                    <th class="text-left search">Paket</th>
+                    <th class="text-left search">Paket</th>                    
                     <th class="text-left"></th>
                     <th class="text-left search">Sumber Dana</th>
                 </tr>
         </tfoot>
       </table>
     </div>
-    <modal-swakelola-component id="swakelolaModal"> </modal-swakelola-component>
+
 </div>
 </template>
 
 
 <script>
 export default {
-    props: ['title','apiLink'],
+    props: ['apiLink'],
     data: function(){
         return {
-            items: [{
+            items: [
+            {   
                 no: 1,
-                kegiatan: 'Pengadaan Peralatan Kantor BKD Provinsi Jawa Barat',
-                paket: 'Honorarium Pengadaan Barang dan Jasa',
-                pagu: '4.100.000',
+                satuanKerja: 'BIRO HUKUM DAN HAM SETDA PROVINSI JAWA BARAT',
+                kegiatan: 'Pemberdayaan Jaringan Dokumentasi dan Informasi Hukum',
+                pagu: '356.500.000',
                 sumberDana: 'APBD',
             },
             {   
                 no: 2,
-                kegiatan: 'Penyusunan Dokumen Perencanaan BKD',
-                paket: 'Honorarium Pengadaan Barang Jasa',
-                pagu: '2.300.000',
+                satuanKerja: 'DINAS PERHUBUNGAN PROVINSI JAWA BARAT',
+                kegiatan: 'Kegiatan Pengelolaaan Website Dinas Perhubungan Provinsi Jawa Barat',
+                pagu: '161.200.000',
                 sumberDana: 'APBD',
             }],
             swakelolaData : null,
             title : null,
-            subtitle : null
-        }
+            subTitle : null
+        };
     },
-    mounted: function(){
+    mounted: function() {
     axios
       .get(this.apiLink)
       .then(response => {
         this.swakelolaData = response.data.paketSwakelola;
-        this.subtitle = response.data.subtitle;
+        this.subTitle = response.data.subtitle;
       })
       .then(()=>{
         // Setup - add a text input to each footer cell
@@ -122,11 +122,11 @@ export default {
           });
         });
       })
-    }
+  }
 }
 
-</script>
 
+</script>
 
 <!-- Add "scoped" attribute to limit CSS to this component only -->
 <style scoped>
@@ -159,7 +159,7 @@ export default {
     }
     #penyedia-btn:hover {
         background : #F05155;
-        color: white;   
-        float:right;     
+        color: white;  
+        float:right;      
     }
 </style>
\ No newline at end of file
diff --git a/resources/js/components/UnduhMateriTableComponent.vue b/resources/js/components/UnduhMateriTableComponent.vue
index 31079b0be189639ec3b061d8ef5dfde473c74d45..1277529ff39a333d138550536a13a4050f03ec7f 100644
--- a/resources/js/components/UnduhMateriTableComponent.vue
+++ b/resources/js/components/UnduhMateriTableComponent.vue
@@ -23,13 +23,13 @@
             </tr>
           </thead>
           <tbody>
-            <tr v-for="item in items" :key="item.no">
+            <tr v-for="item in resultData" :key="item.no">
                 <td class="text-left">{{item.no}}</td>
                 <td class="text-left">{{item.judul}}</td>
                 <td class="text-left">{{item.subJudul}}</td>
                 <td class="text-left">{{item.kategori}}</td>
                 <td class="text-left">{{item.deskripsi}}</td>
-                <td class="text-left"><a href=""><span class="fa fa-download" style="font-size:small;"></span></a></td>
+                <td class="text-left"><a :href="item.filelink"><span class="fa fa-download" style="font-size:small;"></span></a></td>
             </tr>
           </tbody>
           <tfoot>
@@ -51,6 +51,7 @@
 
 <script>
 export default {
+    props: ['apiLink'],
     data: function(){
         return {
             items: [
@@ -60,7 +61,7 @@ export default {
                 subJudul: 'Diseminasi Aplikasi Monev',
                 kategori: 'File Diseminasi',
                 deskripsi: 'Surat Undangan Diseminasi',
-                file : ''
+                file : '' 
             },
             {   
                 no: 2,
@@ -68,61 +69,41 @@ export default {
                 subJudul: 'Manual User',
                 kategori: 'Panduan',
                 deskripsi: 'User Manual Untuk Pengguna Aplikasi SiRUP versi 2.3',
-                File : ''
-            },
-            {   
-                no: 3,
-                judul: 'Diseminasi Aplikasi Monev',
-                subJudul: 'Diseminasi Aplikasi Monev',
-                kategori: 'File Diseminasi',
-                deskripsi: 'Surat Undangan Diseminasi',
-                file : ''
-            },
-            {   
-                no: 4,
-                judul: 'Panduan Aplikasi SiRUP v 2.3',
-                subJudul: 'Manual User',
-                kategori: 'Panduan',
-                deskripsi: 'User Manual Untuk Pengguna Aplikasi SiRUP versi 2.3',
                 file : ''
-            }]
+            }],
+            resultData : null
         }
-    }
-}
+    },
+    mounted: function(){
+    axios
+      .get(this.apiLink)
+      .then(response => {
+        this.resultData = response.data.result;
+      })
+      .then(()=>{
+        // Setup - add a text input to each footer cell
+        $("#unduh-materi tfoot th.search").each(function() {
+          var title = $(this).text();
+          $(this).html('<input type="text" placeholder="Search ' + title + '" />');
+        });
 
-$(document).ready(function() {
-    // Setup - add a text input to each footer cell
-    $('#unduh-materi tfoot th.search').each( function () {
-        var title = $(this).text();
-        $(this).html( '<input type="text" placeholder="Search '+title+'" />' );
-    } );
-    
-    $('[data-toggle="popover"]').popover(); 
+        // DataTable
+        var table = $("#unduh-materi").DataTable({
+          pagingType: "full_numbers"
+        });
 
-    // DataTable
-    var table = $('#unduh-materi').DataTable({
-        "pagingType": "full_numbers",
-    });
- 
-    // Apply the search
-    table.columns().every( function () {
-        var that = this;
- 
-        $( 'input', this.footer() ).on( 'keyup change', function () {
-            if ( that.search() !== this.value ) {
-                that
-                    .search( this.value )
-                    .draw();
+        // Apply the search by input
+        table.columns().every(function() {
+          var that = this;
+          $("input", this.footer()).on("keyup change", function() {
+            if (that.search() !== this.value) {
+              that.search(this.value).draw();
             }
-        } );
-    } );
-
-    // styling pagination
-    $.fn.dataTable.ext.classes.sPageButton = 'btn btn_secondary';
-
-} );
-
-</script>
+          });
+        });
+      })
+    }
+}
 
 
 </script>
@@ -148,17 +129,4 @@ $(document).ready(function() {
         color: white;
         margin: 3px;
     }
-    #swakelola-btn {
-        float: left;
-    }
-    #penyedia-btn {
-        background: #ef7c7f;
-        color: white;
-        float: right;
-    }
-    #penyedia-btn:hover {
-        background : #F05155;
-        color: white;  
-        float:right;      
-    }
 </style>
\ No newline at end of file
diff --git a/resources/js/components/UnduhPaketComponent.vue b/resources/js/components/UnduhPaketComponent.vue
index 4e0b84886ae407fe138de9e1296faa0a70d13bae..506d96fbe53f923f79d1d6f6a98b7d41dcc1c377 100644
--- a/resources/js/components/UnduhPaketComponent.vue
+++ b/resources/js/components/UnduhPaketComponent.vue
@@ -18,21 +18,11 @@
     <div class="row">
        <div class="col-sm-3">SATUAN KERJA</div>
        <div class="col-sm-6">
-         <select>
-            <option v-for="satker in resultData" :key="satker">{{satker}}</option>
+         <select id="satkerOption">
+            <option v-for="satker in resultData" :key="satker.id" :value="satker.id">{{satker.nama}}</option>
           </select>
        </div>
     </div>
-    <div class="row">
-      <div class="col-sm-3">Unduh Berkas PDF</div>
-      <div class="col-sm-6">
-        : 
-        <!-- TO DO: add function pdf generator when click this icon -->
-        <img src="assets('images/pdf-icon.png')">
-        <br>
-        <b>Reload halaman ini</b> dan klik ikon pdf diatas ketika progress buat ulang berkas sudah mencapai 100%.
-      </div>
-    </div>
     <div class="row">
       <div class="col-sm-3">
         Keterangan
@@ -48,7 +38,7 @@
       <div class="col-sm-3">
       </div>
       <div class="col-sm-6">
-        <b-button variant="danger" href="/unduh/paketRUP">Buat Ulang Berkas 100%</b-button>
+        <b-button variant="danger" id="btnUnduh">Unduh</b-button>
       </div>
     </div>
   </div>
@@ -58,6 +48,16 @@
 <script>
 import BootstrapVue from 'bootstrap-vue';
 
+
+window.onload = function(){
+  let btnUnduh = window.document.getElementById('btnUnduh');
+  btnUnduh.onclick = function(){
+    let satkerOption = window.document.getElementById('satkerOption');
+    let satkerId = satkerOption.options[satkerOption.selectedIndex].value
+    window.open('/unduh/paketRUP/'+satkerId+ '/download', '_blank');
+  }
+}
+
 export default {
   props: ['apiLink'],
   data: function(){
diff --git a/resources/sass/app.scss b/resources/sass/app.scss
index de5d9bd377d690c2764de491e9b501d2ac7a18bd..fad45200fe1297d267c95bcc126c8ee6d0c6f917 100644
--- a/resources/sass/app.scss
+++ b/resources/sass/app.scss
@@ -21,6 +21,10 @@
   box-shadow: 0 2px 4px rgba(0, 0, 0, 0.04);
 }
 
+.content {
+  min-height:700px;
+}
+
 .footer{
   color: $white;
 }
\ No newline at end of file
diff --git a/resources/views/auth/login.blade.php b/resources/views/auth/login.blade.php
new file mode 100644
index 0000000000000000000000000000000000000000..3b2f81775d4c4e8256a8bf3df5a7b403535e8ae5
--- /dev/null
+++ b/resources/views/auth/login.blade.php
@@ -0,0 +1,73 @@
+@extends('layouts.app')
+
+@section('content')
+<div class="container content">
+    <div class="row justify-content-center">
+        <div class="col-md-8">
+            <div class="card my-lg-5">
+                <div class="card-header">{{ __('Login') }}</div>
+
+                <div class="card-body">
+                    <form method="POST" action="{{ route('login') }}">
+                        @csrf
+
+                        <div class="form-group row">
+                            <label for="email" class="col-md-4 col-form-label text-md-right">{{ __('E-Mail Address') }}</label>
+
+                            <div class="col-md-6">
+                                <input id="email" type="email" class="form-control{{ $errors->has('email') ? ' is-invalid' : '' }}" name="email" value="{{ old('email') }}" required autofocus>
+
+                                @if ($errors->has('email'))
+                                    <span class="invalid-feedback" role="alert">
+                                        <strong>{{ $errors->first('email') }}</strong>
+                                    </span>
+                                @endif
+                            </div>
+                        </div>
+
+                        <div class="form-group row">
+                            <label for="password" class="col-md-4 col-form-label text-md-right">{{ __('Password') }}</label>
+
+                            <div class="col-md-6">
+                                <input id="password" type="password" class="form-control{{ $errors->has('password') ? ' is-invalid' : '' }}" name="password" required>
+
+                                @if ($errors->has('password'))
+                                    <span class="invalid-feedback" role="alert">
+                                        <strong>{{ $errors->first('password') }}</strong>
+                                    </span>
+                                @endif
+                            </div>
+                        </div>
+
+                        <div class="form-group row">
+                            <div class="col-md-6 offset-md-4">
+                                <div class="form-check">
+                                    <input class="form-check-input" type="checkbox" name="remember" id="remember" {{ old('remember') ? 'checked' : '' }}>
+
+                                    <label class="form-check-label" for="remember">
+                                        {{ __('Remember Me') }}
+                                    </label>
+                                </div>
+                            </div>
+                        </div>
+
+                        <div class="form-group row mb-0">
+                            <div class="col-md-8 offset-md-4">
+                                <button type="submit" class="btn btn-primary">
+                                    {{ __('Login') }}
+                                </button>
+
+                                @if (Route::has('password.request'))
+                                    <a class="btn btn-link" href="{{ route('register') }}">
+                                        {{ __('Belum punya akun?') }}
+                                    </a>
+                                @endif
+                            </div>
+                        </div>
+                    </form>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+@endsection
diff --git a/resources/views/auth/passwords/email.blade.php b/resources/views/auth/passwords/email.blade.php
new file mode 100644
index 0000000000000000000000000000000000000000..ccbee595c03a6d44cd8e56d8e7eda6478d05513e
--- /dev/null
+++ b/resources/views/auth/passwords/email.blade.php
@@ -0,0 +1,47 @@
+@extends('layouts.app')
+
+@section('content')
+<div class="container">
+    <div class="row justify-content-center">
+        <div class="col-md-8">
+            <div class="card">
+                <div class="card-header">{{ __('Reset Password') }}</div>
+
+                <div class="card-body">
+                    @if (session('status'))
+                        <div class="alert alert-success" role="alert">
+                            {{ session('status') }}
+                        </div>
+                    @endif
+
+                    <form method="POST" action="{{ route('password.email') }}">
+                        @csrf
+
+                        <div class="form-group row">
+                            <label for="email" class="col-md-4 col-form-label text-md-right">{{ __('E-Mail Address') }}</label>
+
+                            <div class="col-md-6">
+                                <input id="email" type="email" class="form-control{{ $errors->has('email') ? ' is-invalid' : '' }}" name="email" value="{{ old('email') }}" required>
+
+                                @if ($errors->has('email'))
+                                    <span class="invalid-feedback" role="alert">
+                                        <strong>{{ $errors->first('email') }}</strong>
+                                    </span>
+                                @endif
+                            </div>
+                        </div>
+
+                        <div class="form-group row mb-0">
+                            <div class="col-md-6 offset-md-4">
+                                <button type="submit" class="btn btn-primary">
+                                    {{ __('Send Password Reset Link') }}
+                                </button>
+                            </div>
+                        </div>
+                    </form>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+@endsection
diff --git a/resources/views/auth/passwords/reset.blade.php b/resources/views/auth/passwords/reset.blade.php
new file mode 100644
index 0000000000000000000000000000000000000000..bf27f4c85688339bd5ca270754f6a35b7c0f4524
--- /dev/null
+++ b/resources/views/auth/passwords/reset.blade.php
@@ -0,0 +1,65 @@
+@extends('layouts.app')
+
+@section('content')
+<div class="container">
+    <div class="row justify-content-center">
+        <div class="col-md-8">
+            <div class="card">
+                <div class="card-header">{{ __('Reset Password') }}</div>
+
+                <div class="card-body">
+                    <form method="POST" action="{{ route('password.update') }}">
+                        @csrf
+
+                        <input type="hidden" name="token" value="{{ $token }}">
+
+                        <div class="form-group row">
+                            <label for="email" class="col-md-4 col-form-label text-md-right">{{ __('E-Mail Address') }}</label>
+
+                            <div class="col-md-6">
+                                <input id="email" type="email" class="form-control{{ $errors->has('email') ? ' is-invalid' : '' }}" name="email" value="{{ $email ?? old('email') }}" required autofocus>
+
+                                @if ($errors->has('email'))
+                                    <span class="invalid-feedback" role="alert">
+                                        <strong>{{ $errors->first('email') }}</strong>
+                                    </span>
+                                @endif
+                            </div>
+                        </div>
+
+                        <div class="form-group row">
+                            <label for="password" class="col-md-4 col-form-label text-md-right">{{ __('Password') }}</label>
+
+                            <div class="col-md-6">
+                                <input id="password" type="password" class="form-control{{ $errors->has('password') ? ' is-invalid' : '' }}" name="password" required>
+
+                                @if ($errors->has('password'))
+                                    <span class="invalid-feedback" role="alert">
+                                        <strong>{{ $errors->first('password') }}</strong>
+                                    </span>
+                                @endif
+                            </div>
+                        </div>
+
+                        <div class="form-group row">
+                            <label for="password-confirm" class="col-md-4 col-form-label text-md-right">{{ __('Confirm Password') }}</label>
+
+                            <div class="col-md-6">
+                                <input id="password-confirm" type="password" class="form-control" name="password_confirmation" required>
+                            </div>
+                        </div>
+
+                        <div class="form-group row mb-0">
+                            <div class="col-md-6 offset-md-4">
+                                <button type="submit" class="btn btn-primary">
+                                    {{ __('Reset Password') }}
+                                </button>
+                            </div>
+                        </div>
+                    </form>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+@endsection
diff --git a/resources/views/auth/register.blade.php b/resources/views/auth/register.blade.php
new file mode 100644
index 0000000000000000000000000000000000000000..6846c4803e0ec5cb2d8b79d99872c182c40ae9b5
--- /dev/null
+++ b/resources/views/auth/register.blade.php
@@ -0,0 +1,94 @@
+@extends('layouts.app')
+
+@section('content')
+<div class="container content">
+    <div class="row justify-content-center">
+        <div class="col-md-8">
+            <div class="card my-lg-5">
+                <div class="card-header">{{ __('Register') }}</div>
+
+                <div class="card-body">
+                    <form method="POST" action="{{ route('register') }}">
+                        @csrf
+
+                        <div class="form-group row">
+                            <label for="name" class="col-md-4 col-form-label text-md-right">{{ __('Name') }}</label>
+
+                            <div class="col-md-6">
+                                <input id="name" type="text" class="form-control{{ $errors->has('name') ? ' is-invalid' : '' }}" name="name" value="{{ old('name') }}" required autofocus>
+
+                                @if ($errors->has('name'))
+                                    <span class="invalid-feedback" role="alert">
+                                        <strong>{{ $errors->first('name') }}</strong>
+                                    </span>
+                                @endif
+                            </div>
+                        </div>
+
+                        <div class="form-group row">
+                            <label for="email" class="col-md-4 col-form-label text-md-right">{{ __('E-Mail Address') }}</label>
+
+                            <div class="col-md-6">
+                                <input id="email" type="email" class="form-control{{ $errors->has('email') ? ' is-invalid' : '' }}" name="email" value="{{ old('email') }}" required>
+
+                                @if ($errors->has('email'))
+                                    <span class="invalid-feedback" role="alert">
+                                        <strong>{{ $errors->first('email') }}</strong>
+                                    </span>
+                                @endif
+                            </div>
+                        </div>
+
+                        <div class="form-group row">
+                            <label for="password" class="col-md-4 col-form-label text-md-right">{{ __('Password') }}</label>
+
+                            <div class="col-md-6">
+                                <input id="password" type="password" class="form-control{{ $errors->has('password') ? ' is-invalid' : '' }}" name="password" required>
+
+                                @if ($errors->has('password'))
+                                    <span class="invalid-feedback" role="alert">
+                                        <strong>{{ $errors->first('password') }}</strong>
+                                    </span>
+                                @endif
+                            </div>
+                        </div>
+
+                        <div class="form-group row">
+                            <label for="password-confirm" class="col-md-4 col-form-label text-md-right">{{ __('Confirm Password') }}</label>
+
+                            <div class="col-md-6">
+                                <input id="password-confirm" type="password" class="form-control" name="password_confirmation" required>
+                            </div>
+                        </div>
+
+                        <div class="form-group row">
+                            <label for="role" class="col-md-4 col-form-label text-md-right">{{ __('Role') }}</label>
+
+                            <div class="col-md-6">
+                                <select name="role">
+                                    <option value="pa">PA</option>
+                                    <option value="ppk">PPK</option>
+                                </select> 
+
+                                @if ($errors->has('role'))
+                                    <span class="invalid-feedback" role="alert">
+                                        <strong>{{ $errors->first('role') }}</strong>
+                                    </span>
+                                @endif
+                            </div>
+                        </div>
+
+                        <div class="form-group row mb-0">
+                            <div class="col-md-6 offset-md-4">
+                                <button type="submit" class="btn btn-primary">
+                                    {{ __('Register') }}
+                                </button>
+                            </div>
+                        </div>
+                    </form>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+@endsection
diff --git a/resources/views/auth/verify.blade.php b/resources/views/auth/verify.blade.php
new file mode 100644
index 0000000000000000000000000000000000000000..c742cb4bdcd60fc413ee8c88a0b1461d9a6c6306
--- /dev/null
+++ b/resources/views/auth/verify.blade.php
@@ -0,0 +1,24 @@
+@extends('layouts.app')
+
+@section('content')
+<div class="container">
+    <div class="row justify-content-center">
+        <div class="col-md-8">
+            <div class="card">
+                <div class="card-header">{{ __('Verify Your Email Address') }}</div>
+
+                <div class="card-body">
+                    @if (session('resent'))
+                        <div class="alert alert-success" role="alert">
+                            {{ __('A fresh verification link has been sent to your email address.') }}
+                        </div>
+                    @endif
+
+                    {{ __('Before proceeding, please check your email for a verification link.') }}
+                    {{ __('If you did not receive the email') }}, <a href="{{ route('verification.resend') }}">{{ __('click here to request another') }}</a>.
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+@endsection
diff --git a/resources/views/cariPaket/caripaket.blade.php b/resources/views/cariPaket/caripaket.blade.php
new file mode 100644
index 0000000000000000000000000000000000000000..fa8b8b394b0fe79ba786360da3ca69c21fb9c03a
--- /dev/null
+++ b/resources/views/cariPaket/caripaket.blade.php
@@ -0,0 +1,13 @@
+@extends('layouts.app')
+
+@section('content')
+<div class="row justify-content-center">
+    <div class="col-md p-0 m-0">
+    <div class="jumbotron jumbotron-fluid text-center m-0" style="padding: 1px;">
+        <div class="content display-4"  style="min-height:600px; font-size: 14px">
+            <cari-paket-component api-link="{{$apiLink}}"></cari-paket-component>
+        </div>
+    </div>
+    </div>
+</div>
+@endsection
\ No newline at end of file
diff --git a/resources/views/home.blade.php b/resources/views/home.blade.php
index 02812bd320cd5324b579cd47ffa2b8c4440a0fc9..41e5aa2364f30184f615d2a46d64bf6d4922bceb 100644
--- a/resources/views/home.blade.php
+++ b/resources/views/home.blade.php
@@ -4,7 +4,7 @@
 <div class="row justify-content-center">
     <div class="col-md p-0 m-0">
     <div class="jumbotron jumbotron-fluid text-center m-0">
-        <div class="content display-4"  style="min-height:600px;">
+        <div class="content display-4">
             Home
         </div>
     </div>
diff --git a/resources/views/layouts/app.blade.php b/resources/views/layouts/app.blade.php
index 2562d8eaa212ca5bd6064639054ede81f8026c74..f85a8c6f26425afecbd17501ef3473921f052e68 100644
--- a/resources/views/layouts/app.blade.php
+++ b/resources/views/layouts/app.blade.php
@@ -8,7 +8,9 @@
     <body>
         <div id="app">
             @section('navbar')
-                <navbar-component></navbar-component>
+                <navbar-component 
+                user-name="{{ (Auth::check()) ? Auth::user()->name : ''}}" 
+                user-role="{{ (Auth::check()) ? Auth::user()->role : ''}}"></navbar-component>
             @show
 
             <div class="container-fluid">
diff --git a/resources/views/pemdaPenyedia/pemdaKabupaten.blade.php b/resources/views/pemdaPenyedia/pemdaKabupaten.blade.php
index 806989c01898bcecd1c9be7a81aa6d342bbbfde6..93c9179c83f3c62c978d5f36b627e3607fa8fbb1 100644
--- a/resources/views/pemdaPenyedia/pemdaKabupaten.blade.php
+++ b/resources/views/pemdaPenyedia/pemdaKabupaten.blade.php
@@ -1,9 +1,5 @@
 @extends('layouts.app')
 
-@section('navbar')
-<navbar-component is-rekap=true></navbar-component>
-@endsection
-
 @section('content')
 <div class="row justify-content-center">
     <div class="col-md p-0 m-0">
diff --git a/resources/views/pemdaPenyedia/pemdaKota.blade.php b/resources/views/pemdaPenyedia/pemdaKota.blade.php
index 806989c01898bcecd1c9be7a81aa6d342bbbfde6..93c9179c83f3c62c978d5f36b627e3607fa8fbb1 100644
--- a/resources/views/pemdaPenyedia/pemdaKota.blade.php
+++ b/resources/views/pemdaPenyedia/pemdaKota.blade.php
@@ -1,9 +1,5 @@
 @extends('layouts.app')
 
-@section('navbar')
-<navbar-component is-rekap=true></navbar-component>
-@endsection
-
 @section('content')
 <div class="row justify-content-center">
     <div class="col-md p-0 m-0">
diff --git a/resources/views/pemdaPenyedia/pemdaProvinsi.blade.php b/resources/views/pemdaPenyedia/pemdaProvinsi.blade.php
index 806989c01898bcecd1c9be7a81aa6d342bbbfde6..93c9179c83f3c62c978d5f36b627e3607fa8fbb1 100644
--- a/resources/views/pemdaPenyedia/pemdaProvinsi.blade.php
+++ b/resources/views/pemdaPenyedia/pemdaProvinsi.blade.php
@@ -1,9 +1,5 @@
 @extends('layouts.app')
 
-@section('navbar')
-<navbar-component is-rekap=true></navbar-component>
-@endsection
-
 @section('content')
 <div class="row justify-content-center">
     <div class="col-md p-0 m-0">
diff --git a/resources/views/pemdaPenyediaSwakelola/pemdaKabupaten.blade.php b/resources/views/pemdaPenyediaSwakelola/pemdaKabupaten.blade.php
index eeef5f293f0bf506cb52c3352bffbc12bc204f34..6ba69bd5c97f93bde8b34771102d7bf85ee75cbf 100644
--- a/resources/views/pemdaPenyediaSwakelola/pemdaKabupaten.blade.php
+++ b/resources/views/pemdaPenyediaSwakelola/pemdaKabupaten.blade.php
@@ -1,14 +1,10 @@
 @extends('layouts.app')
 
-@section('navbar')
-<navbar-component is-rekap=true></navbar-component>
-@endsection
-
 @section('content')
 <div class="row justify-content-center">
     <div class="col-md p-0 m-0">
         <div class="jumbotron jumbotron-fluid text-center m-0">
-            <pemda-penyedia-swakelola-table-component></pemda-penyedia-swakelola-table-component>
+            <pemda-penyedia-swakelola-table-component api-link={{$apiLink}}></pemda-penyedia-swakelola-table-component>
         </div>
     </div>
 </div>
diff --git a/resources/views/pemdaPenyediaSwakelola/pemdaKota.blade.php b/resources/views/pemdaPenyediaSwakelola/pemdaKota.blade.php
index 44832bc8cba188edddd106d9594019186aea04c1..6ba69bd5c97f93bde8b34771102d7bf85ee75cbf 100644
--- a/resources/views/pemdaPenyediaSwakelola/pemdaKota.blade.php
+++ b/resources/views/pemdaPenyediaSwakelola/pemdaKota.blade.php
@@ -1,14 +1,10 @@
 @extends('layouts.app')
 
-@section('navbar')
-<navbar-component is-rekap=true></navbar-component>
-@endsection
-
 @section('content')
 <div class="row justify-content-center">
     <div class="col-md p-0 m-0">
         <div class="jumbotron jumbotron-fluid text-center m-0">
-            <pemda-penyedia-swakelola-table-component ></pemda-penyedia-swakelola-table-component>
+            <pemda-penyedia-swakelola-table-component api-link={{$apiLink}}></pemda-penyedia-swakelola-table-component>
         </div>
     </div>
 </div>
diff --git a/resources/views/pemdaPenyediaSwakelola/pemdaProvinsi.blade.php b/resources/views/pemdaPenyediaSwakelola/pemdaProvinsi.blade.php
index eeef5f293f0bf506cb52c3352bffbc12bc204f34..6ba69bd5c97f93bde8b34771102d7bf85ee75cbf 100644
--- a/resources/views/pemdaPenyediaSwakelola/pemdaProvinsi.blade.php
+++ b/resources/views/pemdaPenyediaSwakelola/pemdaProvinsi.blade.php
@@ -1,14 +1,10 @@
 @extends('layouts.app')
 
-@section('navbar')
-<navbar-component is-rekap=true></navbar-component>
-@endsection
-
 @section('content')
 <div class="row justify-content-center">
     <div class="col-md p-0 m-0">
         <div class="jumbotron jumbotron-fluid text-center m-0">
-            <pemda-penyedia-swakelola-table-component></pemda-penyedia-swakelola-table-component>
+            <pemda-penyedia-swakelola-table-component api-link={{$apiLink}}></pemda-penyedia-swakelola-table-component>
         </div>
     </div>
 </div>
diff --git a/resources/views/pemdaSwakelola/pemdaKabupaten.blade.php b/resources/views/pemdaSwakelola/pemdaKabupaten.blade.php
index 6b5eedff3a5c20d9079616ebb26f775f59df581d..10fd32ab780f24921bc42b53d639729e748143d7 100644
--- a/resources/views/pemdaSwakelola/pemdaKabupaten.blade.php
+++ b/resources/views/pemdaSwakelola/pemdaKabupaten.blade.php
@@ -1,14 +1,10 @@
 @extends('layouts.app')
 
-@section('navbar')
-<navbar-component is-rekap=true></navbar-component>
-@endsection
-
 @section('content')
 <div class="row justify-content-center">
     <div class="col-md p-0 m-0">
         <div class="jumbotron jumbotron-fluid text-center m-0">
-            <pemda-swakelola-table-component title="KABUPATEN" api-link={{$apiLink}}></pemda-swakelola-table-component>
+            <pemda-swakelola-table-component api-link={{$apiLink}}></pemda-swakelola-table-component>
         </div>
     </div>
 </div>
diff --git a/resources/views/pemdaSwakelola/pemdaKota.blade.php b/resources/views/pemdaSwakelola/pemdaKota.blade.php
index af6143084d2cefa2d9993eb182b5a3d5c3e6ccb0..10fd32ab780f24921bc42b53d639729e748143d7 100644
--- a/resources/views/pemdaSwakelola/pemdaKota.blade.php
+++ b/resources/views/pemdaSwakelola/pemdaKota.blade.php
@@ -1,14 +1,10 @@
 @extends('layouts.app')
 
-@section('navbar')
-<navbar-component is-rekap=true></navbar-component>
-@endsection
-
 @section('content')
 <div class="row justify-content-center">
     <div class="col-md p-0 m-0">
         <div class="jumbotron jumbotron-fluid text-center m-0">
-            <pemda-swakelola-table-component title="KOTA" api-link={{$apiLink}}></pemda-swakelola-table-component>
+            <pemda-swakelola-table-component api-link={{$apiLink}}></pemda-swakelola-table-component>
         </div>
     </div>
 </div>
diff --git a/resources/views/pemdaSwakelola/pemdaProvinsi.blade.php b/resources/views/pemdaSwakelola/pemdaProvinsi.blade.php
index 74f409b26b498359393f4a18be65d437989dbf88..10fd32ab780f24921bc42b53d639729e748143d7 100644
--- a/resources/views/pemdaSwakelola/pemdaProvinsi.blade.php
+++ b/resources/views/pemdaSwakelola/pemdaProvinsi.blade.php
@@ -1,14 +1,10 @@
 @extends('layouts.app')
 
-@section('navbar')
-<navbar-component is-rekap=true></navbar-component>
-@endsection
-
 @section('content')
 <div class="row justify-content-center">
     <div class="col-md p-0 m-0">
         <div class="jumbotron jumbotron-fluid text-center m-0">
-            <pemda-swakelola-table-component title="PROVINSI" api-link={{$apiLink}}></pemda-swakelola-table-component>
+            <pemda-swakelola-table-component api-link={{$apiLink}}></pemda-swakelola-table-component>
         </div>
     </div>
 </div>
diff --git a/resources/views/penyedia/kabupaten.blade.php b/resources/views/penyedia/kabupaten.blade.php
index 43374c04ae5036993eac726d71c6b2f4ab32924a..603dae5d67a3f48c0b523a117d57347825f597c4 100644
--- a/resources/views/penyedia/kabupaten.blade.php
+++ b/resources/views/penyedia/kabupaten.blade.php
@@ -1,9 +1,5 @@
 @extends('layouts.app')
 
-@section('navbar')
-<navbar-component is-rekap=true></navbar-component>
-@endsection
-
 @section('content')
 <div class="row justify-content-center">
     <div class="col-md p-0 m-0">
diff --git a/resources/views/penyedia/kota.blade.php b/resources/views/penyedia/kota.blade.php
index 43374c04ae5036993eac726d71c6b2f4ab32924a..603dae5d67a3f48c0b523a117d57347825f597c4 100644
--- a/resources/views/penyedia/kota.blade.php
+++ b/resources/views/penyedia/kota.blade.php
@@ -1,9 +1,5 @@
 @extends('layouts.app')
 
-@section('navbar')
-<navbar-component is-rekap=true></navbar-component>
-@endsection
-
 @section('content')
 <div class="row justify-content-center">
     <div class="col-md p-0 m-0">
diff --git a/resources/views/penyedia/provinsi.blade.php b/resources/views/penyedia/provinsi.blade.php
index 43374c04ae5036993eac726d71c6b2f4ab32924a..603dae5d67a3f48c0b523a117d57347825f597c4 100644
--- a/resources/views/penyedia/provinsi.blade.php
+++ b/resources/views/penyedia/provinsi.blade.php
@@ -1,9 +1,5 @@
 @extends('layouts.app')
 
-@section('navbar')
-<navbar-component is-rekap=true></navbar-component>
-@endsection
-
 @section('content')
 <div class="row justify-content-center">
     <div class="col-md p-0 m-0">
diff --git a/resources/views/penyediaSwakelola/kabupaten.blade.php b/resources/views/penyediaSwakelola/kabupaten.blade.php
index cbf8bf04614de96fab9d8873ed22e074440a6257..ca4fcc7b87726cafd72fd61366d5b6ed0726115f 100644
--- a/resources/views/penyediaSwakelola/kabupaten.blade.php
+++ b/resources/views/penyediaSwakelola/kabupaten.blade.php
@@ -1,14 +1,10 @@
 @extends('layouts.app')
 
-@section('navbar')
-<navbar-component is-rekap=true></navbar-component>
-@endsection
-
 @section('content')
 <div class="row justify-content-center">
     <div class="col-md p-0 m-0">
         <div class="jumbotron jumbotron-fluid text-center m-0">
-            <penyedia-swakelola-table-component ></penyedia-swakelola-table-component>
+            <penyedia-swakelola-table-component api-link={{$apiLink}}></penyedia-swakelola-table-component>
         </div>
     </div>
 </div>
diff --git a/resources/views/penyediaSwakelola/kota.blade.php b/resources/views/penyediaSwakelola/kota.blade.php
index cbf8bf04614de96fab9d8873ed22e074440a6257..ca4fcc7b87726cafd72fd61366d5b6ed0726115f 100644
--- a/resources/views/penyediaSwakelola/kota.blade.php
+++ b/resources/views/penyediaSwakelola/kota.blade.php
@@ -1,14 +1,10 @@
 @extends('layouts.app')
 
-@section('navbar')
-<navbar-component is-rekap=true></navbar-component>
-@endsection
-
 @section('content')
 <div class="row justify-content-center">
     <div class="col-md p-0 m-0">
         <div class="jumbotron jumbotron-fluid text-center m-0">
-            <penyedia-swakelola-table-component ></penyedia-swakelola-table-component>
+            <penyedia-swakelola-table-component api-link={{$apiLink}}></penyedia-swakelola-table-component>
         </div>
     </div>
 </div>
diff --git a/resources/views/penyediaSwakelola/provinsi.blade.php b/resources/views/penyediaSwakelola/provinsi.blade.php
index 62435e509a28f7f2406388ccb8fd4b099d291029..22c689d7a60cbe99c627f6c2b362ee6d82695c3f 100644
--- a/resources/views/penyediaSwakelola/provinsi.blade.php
+++ b/resources/views/penyediaSwakelola/provinsi.blade.php
@@ -1,14 +1,10 @@
 @extends('layouts.app')
 
-@section('navbar')
-<navbar-component is-rekap=true></navbar-component>
-@endsection
-
 @section('content')
 <div class="row justify-content-center">
     <div class="col-md p-0 m-0">
         <div class="jumbotron jumbotron-fluid text-center m-0">
-            <penyedia--swakelolatable-component ></penyedia--swakelolatable-component>
+            <penyedia-swakelola-table-component api-link={{$apiLink}}></penyedia--swakelolatable-component>
         </div>
     </div>
 </div>
diff --git a/resources/views/rekap/kabupaten.blade.php b/resources/views/rekap/kabupaten.blade.php
index d72622c281236995f070fd8ddfaab6a8204f2e00..901597899d34ca6de9f6795d4c25ea8f083b2d3a 100644
--- a/resources/views/rekap/kabupaten.blade.php
+++ b/resources/views/rekap/kabupaten.blade.php
@@ -1,9 +1,5 @@
 @extends('layouts.app')
 
-@section('navbar')
-<navbar-component is-rekap=true></navbar-component>
-@endsection
-
 @section('content')
 <div class="row justify-content-center">
     <div class="col-md p-0 m-0">
diff --git a/resources/views/rekap/kota.blade.php b/resources/views/rekap/kota.blade.php
index c0aec8895f22072a519fe8ca4e5bbfe757f0889a..1418e8cc6b1cde4573718b74f9d974602e34fef9 100644
--- a/resources/views/rekap/kota.blade.php
+++ b/resources/views/rekap/kota.blade.php
@@ -1,9 +1,5 @@
 @extends('layouts.app')
 
-@section('navbar')
-<navbar-component is-rekap=true></navbar-component>
-@endsection
-
 @section('content')
 <div class="row justify-content-center">
     <div class="col-md p-0 m-0">
diff --git a/resources/views/rekap/provinsi.blade.php b/resources/views/rekap/provinsi.blade.php
index 8dfbd3d01a2db9072168410945d8022d797db718..562da229ae1967ea86d1b5de28e141badea424cd 100644
--- a/resources/views/rekap/provinsi.blade.php
+++ b/resources/views/rekap/provinsi.blade.php
@@ -1,14 +1,10 @@
 @extends('layouts.app')
 
-@section('navbar')
-<navbar-component is-rekap=true></navbar-component>
-@endsection
-
 @section('content')
 <div class="row justify-content-center">
     <div class="col-md p-0 m-0">
         <div class="jumbotron jumbotron-fluid m-0">
-            <rekap-table-component rekap-title="REKAPITULASI RUP NASIONAL" swakelola-paket="Kegiatan" total-paket="Keg. + Pkt" 
+            <rekap-table-component rekap-title="REKAPITULASI RUP JAWA BARAT" header-table="Satuan Kerja" swakelola-paket="Kegiatan" total-paket="Keg. + Pkt" 
             api-link="{{$apiLink}}"></rekap-table-component>
         </div>
     </div>
diff --git a/resources/views/statusPaket/status.blade.php b/resources/views/statusPaket/status.blade.php
new file mode 100644
index 0000000000000000000000000000000000000000..1171e8256a4734cfdf0e1a2ec821a426cbe85015
--- /dev/null
+++ b/resources/views/statusPaket/status.blade.php
@@ -0,0 +1,11 @@
+@extends('layouts.app')
+
+@section('content')
+<div class="row justify-content-center">
+    <div class="col-md p-0 m-0">
+    <div class="jumbotron jumbotron-fluid text-center m-0">
+        <status-paket-component api-link={{$apiLink}}></status-paket-component>
+    </div>
+    </div>
+</div>
+@endsection
\ No newline at end of file
diff --git a/resources/views/swakelola/kabupaten.blade.php b/resources/views/swakelola/kabupaten.blade.php
index 1174688b1ecd616f2e8b94cd48fb77c5db0c1c2d..5c9d9c5e0dd2999c846e31d29ef841cb702dad1e 100644
--- a/resources/views/swakelola/kabupaten.blade.php
+++ b/resources/views/swakelola/kabupaten.blade.php
@@ -1,14 +1,10 @@
 @extends('layouts.app')
 
-@section('navbar')
-<navbar-component is-rekap=true></navbar-component>
-@endsection
-
 @section('content')
 <div class="row justify-content-center">
     <div class="col-md p-0 m-0">
         <div class="jumbotron jumbotron-fluid text-center m-0">
-            <swakelola-table-component title="RUP SWAKELOLA" api-link={{$apiLink}}></swakelola-table-component>
+            <swakelola-table-component api-link={{$apiLink}}></swakelola-table-component>
         </div>
     </div>
 </div>
diff --git a/resources/views/swakelola/kota.blade.php b/resources/views/swakelola/kota.blade.php
index 1174688b1ecd616f2e8b94cd48fb77c5db0c1c2d..134448a78f5359e0bca8013cad3f85dec6e3e2c1 100644
--- a/resources/views/swakelola/kota.blade.php
+++ b/resources/views/swakelola/kota.blade.php
@@ -1,9 +1,5 @@
 @extends('layouts.app')
 
-@section('navbar')
-<navbar-component is-rekap=true></navbar-component>
-@endsection
-
 @section('content')
 <div class="row justify-content-center">
     <div class="col-md p-0 m-0">
diff --git a/resources/views/swakelola/provinsi.blade.php b/resources/views/swakelola/provinsi.blade.php
index 1174688b1ecd616f2e8b94cd48fb77c5db0c1c2d..134448a78f5359e0bca8013cad3f85dec6e3e2c1 100644
--- a/resources/views/swakelola/provinsi.blade.php
+++ b/resources/views/swakelola/provinsi.blade.php
@@ -1,9 +1,5 @@
 @extends('layouts.app')
 
-@section('navbar')
-<navbar-component is-rekap=true></navbar-component>
-@endsection
-
 @section('content')
 <div class="row justify-content-center">
     <div class="col-md p-0 m-0">
diff --git a/resources/views/unduh/materi.blade.php b/resources/views/unduh/materi.blade.php
new file mode 100644
index 0000000000000000000000000000000000000000..8e2cd60e95a00020aeed44c6a0d1e5fb584ccd4f
--- /dev/null
+++ b/resources/views/unduh/materi.blade.php
@@ -0,0 +1,11 @@
+@extends('layouts.app')
+
+@section('content')
+<div class="row justify-content-center content">
+    <div class="col-md p-0 m-0">
+        <div class="jumbotron jumbotron-fluid text-center m-0">
+            <unduh-materi-table-component api-link="{{$apiLink}}"></unduh-materi-table-component>
+        </div>
+    </div>
+</div>
+@endsection
diff --git a/resources/views/unduh/paketRUP.blade.php b/resources/views/unduh/paketRUP.blade.php
index 1ab05b7789bcc5a8dd2df5d2cfe8862131874f72..e58f2e9ca979937a310f750eee0241ce6839aaad 100644
--- a/resources/views/unduh/paketRUP.blade.php
+++ b/resources/views/unduh/paketRUP.blade.php
@@ -1,11 +1,7 @@
 @extends('layouts.app')
 
-@section('navbar')
-<navbar-component is-unduh=true></navbar-component>
-@endsection
-
 @section('content')
-<div class="row justify-content-center">
+<div class="row justify-content-center content">
     <div class="col-md p-0 m-0">
         <div class="jumbotron jumbotron-fluid m-0">
             <unduh-paket-component api-link="{{$apiLink}}"></unduh-paket-component>
diff --git a/resources/views/unduhMateri.blade.php b/resources/views/unduhMateri.blade.php
deleted file mode 100644
index 158cdf13f90df9d225093b8e737685402fad4e9e..0000000000000000000000000000000000000000
--- a/resources/views/unduhMateri.blade.php
+++ /dev/null
@@ -1,15 +0,0 @@
-@extends('layouts.app')
-
-@section('navbar')
-<navbar-component is-rekap=true></navbar-component>
-@endsection
-
-@section('content')
-<div class="row justify-content-center">
-    <div class="col-md p-0 m-0">
-        <div class="jumbotron jumbotron-fluid text-center m-0">
-            <unduh-materi-table-component></unduh-materi-table-component>
-        </div>
-    </div>
-</div>
-@endsection
diff --git a/routes/api.php b/routes/api.php
index b1f177fc797d0599f58c59d184c52a9b77f787fe..060b7978067ab7e0dbd6da25c7d3a7836b4db02f 100644
--- a/routes/api.php
+++ b/routes/api.php
@@ -36,6 +36,11 @@ Route::get(Links::LINK_PEMDA_PROVINSI_PENYEDIA, 'PemdaPenyedia\PemdaPenyediaProv
 Route::get(Links::LINK_PEMDA_KOTA_PENYEDIA, 'PemdaPenyedia\PemdaPenyediaKotaController@showKota');
 Route::get(Links::LINK_PEMDA_KABUPATEN_PENYEDIA, 'PemdaPenyedia\PemdaPenyediaKabupatenController@showKabupaten');
 
+Route::get(Links::LINK_PROVINSI_PENYEDIA_SWAKELOLA, 'PenyediaSwakelola\PenyediaSwakelolaProvinsiController@showProvinsi');
+Route::get(Links::LINK_KOTA_PENYEDIA_SWAKELOLA, 'PenyediaSwakelola\PenyediaSwakelolaKotaController@showKota');
+Route::get(Links::LINK_KABUPATEN_PENYEDIA_SWAKELOLA, 'PenyediaSwakelola\PenyediaSwakelolaKabupatenController@showKabupaten');
+
+
 Route::get(Links::LINK_PROVINSI_PENYEDIA, 'Penyedia\PenyediaProvinsiController@showProvinsi');
 Route::get(Links::LINK_KOTA_PENYEDIA, 'Penyedia\PenyediaKotaController@showKota');
 Route::get(Links::LINK_KABUPATEN_PENYEDIA, 'Penyedia\PenyediaKabupatenController@showKabupaten');
@@ -44,3 +49,23 @@ Route::get(Links::LINK_DETAIL_KOTA, 'Rekap\DetailRekapController@showKotaSatker'
 Route::get(Links::LINK_DETAIL_KAB, 'Rekap\DetailRekapController@showKabupatenSatker');
 
 Route::get(Links::LINK_UNDUH_PAKET_RUP, 'Unduh\PaketRUPController@showSatkerYear');
+Route::get(Links::LINK_UNDUH_MATERI, 'Unduh\MateriController@showMateri');
+
+Route::get(Links::LINK_CARI_PAKET, 'CariPaket\CariPaketController@showAllPaket');
+
+Route::get(Links::LINK_FIND_PAKET, 'CariPaket\FindPaketController@findPaket');
+Route::get(Links::LINK_MODAL_PENYEDIA, 'Penyedia\PenyediaModalController@showDetailPaket');
+Route::get(Links::LINK_MODAL_SWAKELOLA, 'Swakelola\SwakelolaModalController@showDetailPaket');
+Route::get(Links::LINK_MODAL_PENYEDIA_SWAKELOLA, 'PenyediaSwakelola\PenyediaSwakelolaModalController@showDetailPaket');
+
+Route::get(Links::LINK_UNDUH_MATERI, 'Unduh\MateriController@showMateri');
+
+Route::get(Links::LINK_STATUS_PAKET, 'Status\StatusController@showPaket');
+Route::get(Links::LINK_UMUMKAN_PAKET, 'Status\PengumumanController@classifyPaket');
+Route::get(Links::LINK_KLASIFIKASI_PAKET, 'Status\KlasifikasiController@changeStatus');
+Route::get(Links::LINK_JENIS_PAKET, 'Status\KlasifikasiController@getJenisPaket');
+Route::get(Links::LINK_MODAL_CARI_PAKET, 'CariPaket\ModalCariPaketController@showDetailPaket');
+
+Route::get(Links::LINK_PEMDA_PROVINSI_PENYEDIA_SWAKELOLA, 'PemdaPenyediaSwakelola\PemdaPenyediaSwakelolaProvinsiController@showProvinsi');
+Route::get(Links::LINK_PEMDA_KOTA_PENYEDIA_SWAKELOLA, 'PemdaPenyediaSwakelola\PemdaPenyediaSwakelolaKotaController@showKota');
+Route::get(Links::LINK_PEMDA_KABUPATEN_PENYEDIA_SWAKELOLA, 'PemdaPenyediaSwakelola\PemdaPenyediaSwakelolaKabupatenController@showKabupaten');
\ No newline at end of file
diff --git a/routes/web.php b/routes/web.php
index 0430805570a04d0ca30e4253d6d0c3298d89df65..490a852d32e7543925c9540c07709592d668b5d0 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -13,7 +13,7 @@
 use App\Constants\Links;
 
 Route::get(Links::LINK_HOME, function () {
-    return view('home');
+    return view('home', ['content'=>'Home']);
 });
 
 Route::get(Links::LINK_REKAP, function(){
@@ -138,10 +138,39 @@ Route::get(Links::LINK_DETAIL_KAB, function($id_kabupaten){
 
 Route::get(Links::LINK_UNDUH_PAKET_RUP, function(){
     return view('unduh.paketRUP', ['apiLink'=>'/api'.Links::LINK_UNDUH_PAKET_RUP]);
-});
+})->middleware('auth');
 
 Route::get(Links::LINK_UNDUH_MATERI, function(){
-    return view('unduhMateri', ['apiLink'=>'/api'.Links::LINK_UNDUH_MATERI]);    
+    return view('unduh.materi', ['apiLink'=>'/api'.Links::LINK_UNDUH_MATERI]);    
+});
+
+Route::get(Links::LINK_UNDUH_PAKET_RUP_PDF, 'Unduh\PaketRUPController@generatePDF')->middleware('auth');
+
+Auth::routes();
+
+Route::get(Links::LINK_BERITA, function(){
+    return view('home', ['content'=>'Berita']);
+});
+
+Route::get(Links::LOGOUT, function(){
+    if (Auth::check()) {
+        Auth::logout();
+    }
+    return redirect('/');
+});
+
+Route::get(Links::LINK_CARI_PAKET, function(){
+    return view('cariPaket.caripaket', ['apiLink'=>'/api'.Links::LINK_CARI_PAKET]);
+});
+
+Route::get(Links::LINK_FIND_PAKET, function($tahunA, $keyword, $jenisP, $metode){
+    $apiLink = str_replace('{tahun_anggaran}',$tahunA,'/api'.Links::LINK_FIND_PAKET);
+    $apiLink = str_replace('{keyword}',$keyword,$apiLink);
+    $apiLink = str_replace('{jenisPengadaan}',$jenisP,$apiLink);
+    $apiLink = str_replace('{metodePengadaan}', $metode, $apiLink);
+    return view('cariPaket.caripaket', ['apiLink'=>'/api'.Links::LINK_FIND_PAKET]);
 });
 
-Route::get(Links::LINK_UNDUH_PAKET_RUP_PDF, 'Unduh\PaketRUPController@generatePDF');
\ No newline at end of file
+Route::get(Links::LINK_STATUS_PAKET, function(){
+    return view('statusPaket.status', ['apiLink'=>'/api'.Links::LINK_STATUS_PAKET]);
+})->middleware('auth');
\ No newline at end of file
diff --git a/sirup-sql.sql b/sirup-sql.sql
index 58054f66126192ec0541ced651d1abbdcdef6d2a..3532f0ca78d6c79aeac8102c7b4ddf28ce09a3f0 100644
--- a/sirup-sql.sql
+++ b/sirup-sql.sql
@@ -1,5 +1,5 @@
 
-insert into users (name, email, password) values ('test', 'test@gmail.com', 'test');
+#insert into users (name, email, password) values ('test', 'test@gmail.com', 'test');
 
 insert into type (name) values ('Provinsi');
 insert into type (name) values ('Kota');
diff --git a/tests/Feature/AuthenticationTest.php b/tests/Feature/AuthenticationTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..da4a27565831dc0c4efc81fca7dab4412ccea4d6
--- /dev/null
+++ b/tests/Feature/AuthenticationTest.php
@@ -0,0 +1,48 @@
+<?php
+
+namespace Tests\Feature;
+
+use Tests\TestCase;
+use Illuminate\Foundation\Testing\WithFaker;
+use Illuminate\Foundation\Testing\RefreshDatabase;
+
+class AuthenticationTest extends TestCase
+{
+    /**
+     * A basic feature test example.
+     *
+     * @return void
+     */
+    public function testLoginPage()
+    {
+        $response = $this->get('/login');
+        $response->assertSuccessful();
+        $response->assertViewIs('auth.login');
+    }
+
+    public function testRegisterPage()
+    {
+        $response = $this->get('/register');
+        $response->assertSuccessful();
+        $response->assertViewIs('auth.register');
+    }
+
+    public function testRegisterUser()
+    {
+        $user = [
+            'name' => 'Joe',
+            'email' => 'testemail@test.com',
+            'role' => 'pa',
+            'password' => 'passwordtest',
+            'password_confirmation' => 'passwordtest',
+          ];
+      
+        $response = $this->post('/register', $user);
+        array_splice($user, 3, 2);
+        $this->assertDatabaseHas('users', $user);
+
+        $response->assertRedirect('/');
+    }
+
+
+}
diff --git a/tests/Feature/CariPaketTest.php b/tests/Feature/CariPaketTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..583f87a6bcfaa02813eac90caef928402bc6cd8b
--- /dev/null
+++ b/tests/Feature/CariPaketTest.php
@@ -0,0 +1,22 @@
+<?php
+
+namespace Tests\Feature;
+
+use Tests\TestCase;
+use Illuminate\Foundation\Testing\WithFaker;
+use Illuminate\Foundation\Testing\RefreshDatabase;
+
+class CariPaketTest extends TestCase
+{
+    /**
+     * A basic feature test example.
+     *
+     * @return void
+     */
+    public function testModalCari()
+    {
+        $response = $this->get('/');
+
+        $response->assertStatus(200);
+    }
+}
diff --git a/tests/Feature/PemdaPenyediaSwakelolaTest.php b/tests/Feature/PemdaPenyediaSwakelolaTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..dc305844ff3fecce069fd3de03c1dc4b4f284469
--- /dev/null
+++ b/tests/Feature/PemdaPenyediaSwakelolaTest.php
@@ -0,0 +1,34 @@
+<?php
+
+namespace Tests\Feature;
+
+use Tests\TestCase;
+use Illuminate\Foundation\Testing\WithFaker;
+use Illuminate\Foundation\Testing\RefreshDatabase;
+use App\Constants\Links;
+
+class PemdaPenyediaSwakelolaTest extends TestCase
+{
+    /**
+     * A basic feature test example.
+     *
+     * @return void
+     */
+    public function testPenyediaSwakelolaProvinsi()
+    {
+        $response = $this->get(Links::LINK_PEMDA_PROVINSI_PENYEDIA_SWAKELOLA);
+        $response->assertStatus(200);
+    }
+
+    public function testPenyediaSwakelolaKabupaten()
+    {
+        $response = $this->get(str_replace('{id_kabupaten}',1, Links::LINK_PEMDA_KABUPATEN_PENYEDIA_SWAKELOLA));
+        $response->assertStatus(200);
+    }
+
+    public function testPenyediaSwakelolaKota()
+    {
+        $response = $this->get(str_replace('{id_kota}',1,Links::LINK_PEMDA_KOTA_PENYEDIA_SWAKELOLA));
+        $response->assertStatus(200);
+    }
+}
diff --git a/tests/Feature/PemdaSwakelolaTest.php b/tests/Feature/PemdaSwakelolaTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..47f475037569feec911487ce6990588e73043398
--- /dev/null
+++ b/tests/Feature/PemdaSwakelolaTest.php
@@ -0,0 +1,53 @@
+<?php
+
+namespace Tests\Feature;
+
+use Tests\TestCase;
+use Illuminate\Foundation\Testing\WithFaker;
+use Illuminate\Foundation\Testing\RefreshDatabase;
+use App\Constants\Links; 
+
+class PemdaSwakelolaTest extends TestCase
+{
+    /**
+     * A basic feature test example.
+     *
+     * @return void
+     */
+    public function setUp(): void{
+        parent::setUp();
+
+        $this->pemdaSwakelolaJsonStructure = [
+            'paketSwakelola' => [
+                '*' => [
+                'no',
+                'satuanKerja',
+                'pagu',
+                'kegiatan',
+                'sumberDana'
+                ]
+            ], 
+            'subtitle'
+        ];
+    }
+    
+    public function testSwakelolaKabupaten()
+    {
+        $response = $this->get('/api'.str_replace('{id_kabupaten}',1,Links::LINK_PEMDA_KABUPATEN_SWAKELOLA));
+        $response->assertStatus(200);
+        $response->assertJsonStructure($this->pemdaSwakelolaJsonStructure);
+    }
+
+    public function testSwakelolaKota(){
+        $response = $this->get('/api'.str_replace('{id_kota}',1,Links::LINK_PEMDA_KOTA_SWAKELOLA));
+        $response->assertStatus(200);
+        $response->assertJsonStructure($this->pemdaSwakelolaJsonStructure);
+    }
+
+    public function testSwakelolaProvinsi(){
+        $response = $this->get('/api'.Links::LINK_PEMDA_PROVINSI_SWAKELOLA);
+        $response->assertStatus(200);
+        $response->assertJsonStructure($this->pemdaSwakelolaJsonStructure);
+    }
+    
+}
diff --git a/tests/Feature/PenyediaSwakelolaTest.php b/tests/Feature/PenyediaSwakelolaTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..11c194ad634af9a7690917c4b227c4208faba59c
--- /dev/null
+++ b/tests/Feature/PenyediaSwakelolaTest.php
@@ -0,0 +1,22 @@
+<?php
+
+namespace Tests\Feature;
+
+use Tests\TestCase;
+use Illuminate\Foundation\Testing\WithFaker;
+use Illuminate\Foundation\Testing\RefreshDatabase;
+use App\Constants\Links;
+
+class PenyediaSwakelolaTest extends TestCase
+{
+    /**
+     * A basic feature test example.
+     *
+     * @return void
+     */
+    public function testPenyediaSwakelolaProvinsi()
+    {
+        $response = $this->get('/api'.Links::LINK_PEMDA_PROVINSI_PENYEDIA_SWAKELOLA);
+        $response->assertStatus(200);
+    }
+}
diff --git a/tests/Feature/PenyediaTest.php b/tests/Feature/PenyediaTest.php
index d7fd0ed1be94b47a9cfc5a1f36aff55ecebea449..57a041e15286dc8ba0d0cd416d5d217a53897eb1 100644
--- a/tests/Feature/PenyediaTest.php
+++ b/tests/Feature/PenyediaTest.php
@@ -29,6 +29,10 @@ class PenyediaTest extends TestCase
             ],
             'subtitle'
         ];
+
+        $this->penyediaModalJsonStructure = [
+            'paket'
+        ];
     }
 
     public function testProvisiPenyedia()
@@ -49,6 +53,13 @@ class PenyediaTest extends TestCase
     {
         $response = $this->get('/api'.str_replace('{id_satker}',1,Links::LINK_KOTA_PENYEDIA));
         $response->assertStatus(200);
-        $response->assertJsonStructure($this->penyediaJsonStructure);
+    $response->assertJsonStructure($this->penyediaJsonStructure);
+    }
+
+    public function testPenyediaModal()
+    {
+        $response = $this->get('/api'.str_replace('{id_paket}',1,Links::LINK_MODAL_PENYEDIA));
+        $response->assertStatus(200);
+        $response->assertJsonStructure($this->penyediaModalJsonStructure);
     }
 }
diff --git a/tests/Feature/StatusTest.php b/tests/Feature/StatusTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..0ebf21784b806efacb54198dfbe48be0c9601949
--- /dev/null
+++ b/tests/Feature/StatusTest.php
@@ -0,0 +1,39 @@
+<?php
+
+namespace Tests\Feature;
+
+use Tests\TestCase;
+use Illuminate\Foundation\Testing\WithFaker;
+use Illuminate\Foundation\Testing\RefreshDatabase;
+use App\Constants\Links;
+
+class StatusTest extends TestCase
+{
+    /**
+     * A basic feature test example.
+     *
+     * @return void
+     */
+    public function setUp(): void{
+        parent::setUp();
+
+        $this->statusJsonStructure = [
+            'paket'
+        ];
+    }
+
+    public function testStatus()
+    {
+        $apiLink  = '/api'.Links::LINK_STATUS_PAKET;
+        $response = $this->get($apiLink);
+        $response->assertStatus(200);
+        $response->assertJsonStructure($this->statusJsonStructure);
+    }
+
+    public function testClassifyPaket()
+    {
+        $apiLink = '/api'.str_replace('{id_paket}', 1,Links::LINK_UMUMKAN_PAKET);
+        $response = $this->get($apiLink);
+        // $response->assertStatus(200);
+    }
+}
diff --git a/tests/Feature/SwakelolaTest.php b/tests/Feature/SwakelolaTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..8fe64bf367639d02185259feb9dbb55a6d17dfcf
--- /dev/null
+++ b/tests/Feature/SwakelolaTest.php
@@ -0,0 +1,69 @@
+<?php
+
+namespace Tests\Feature;
+
+use Tests\TestCase;
+use Illuminate\Foundation\Testing\WithFaker;
+use Illuminate\Foundation\Testing\RefreshDatabase;
+use App\Constants\Links;
+
+class SwakelolaTest extends TestCase
+{
+    /**
+     * A basic feature test example.
+     *
+     * @return void
+     */
+
+    public function setUp(): void{
+        parent::setUp();
+        $this->pemdaSwakelolaJsonStructure = [
+            'paketSwakelola' => [
+                '*' => [
+                'no',
+                'satuanKerja',
+                'pagu',
+                'kegiatan',
+                'sumberDana'
+                ]
+            ], 
+            'subtitle'
+        ];
+    }
+
+    public function testSwakelolaKabupaten()
+    {
+        $idSatker = 1;
+        $idKabupaten = 1;
+        $apiLink = str_replace('{id_satker}',$idSatker,'/api'.Links::LINK_KABUPATEN_SWAKELOLA);
+        $apiLink = str_replace('{id_kabupaten}',$idKabupaten,$apiLink);        
+        
+        $response = $this->get($apiLink);
+        $response->assertStatus(200);
+    }
+
+    public function testSwakelolaKota()
+    {
+        $idSatker = 1;
+        $idKota = 1;
+        $apiLink = str_replace('{id_satker}',$idSatker,'/api'.Links::LINK_KOTA_SWAKELOLA);
+        $apiLink = str_replace('{id_kota}',$idKota,$apiLink);
+        $response = $this->get($apiLink);
+        $response->assertStatus(200);
+    }
+
+    public function testSwakelolaProvinsi()
+    {
+        $apiLink = '/api'.str_replace('{id_satker}',1, Links::LINK_PROVINSI_SWAKELOLA);
+        $response = $this->get($apiLink);
+        // $response->assertStatus(200);
+    }
+
+    public function testSwakelolaModal()
+    {
+        $apiLink = '/api'.str_replace('{id_paket}',1, Links::LINK_MODAL_SWAKELOLA);
+        $response = $this->get($apiLink);
+        $response->assertStatus(200);
+    }
+    
+}
diff --git a/tests/Feature/UnduhTest.php b/tests/Feature/UnduhTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..3af4ceadd7387fbb9b3327de70d570ae0e3853b8
--- /dev/null
+++ b/tests/Feature/UnduhTest.php
@@ -0,0 +1,76 @@
+<?php
+
+namespace Tests\Feature;
+
+use Tests\TestCase;
+use Illuminate\Foundation\Testing\WithFaker;
+use Illuminate\Foundation\Testing\RefreshDatabase;
+use App\Constants\Links;
+use App\Model\User;
+
+class UnduhTest extends TestCase
+{
+    /**
+     * A basic feature test example.
+     *
+     * @return void
+     */
+     
+    public function setUp(): void{
+        parent::setUp();
+
+        $this->unduhMateriJsonStructure = [
+            'result' => [
+                '*' => [
+                    "no" ,
+                    "judul" ,
+                    "subJudul",
+                    "kategori" ,
+                    "deskripsi",
+                    "filename",
+                    "filelink"            
+                ]
+            ]
+        ];
+
+        $this->satkerListJsonStructure = [
+            'result',
+            'tahun'
+        ];
+    }
+
+    public function testUnduhMateri()
+    {
+        $response = $this->get('/api'.Links::LINK_UNDUH_MATERI);
+        $response->assertStatus(200);
+        $response->assertJsonStructure($this->unduhMateriJsonStructure);
+    }
+
+    public function testUnduhPaketPage()
+    {
+        $response = $this->get('/api'.Links::LINK_UNDUH_PAKET_RUP);
+        $response->assertStatus(200);
+        $response->assertJsonStructure($this->satkerListJsonStructure);
+    }
+
+    public function testUnduhPaketPDFNotAuthenticated()
+    {
+        $apiLink = str_replace('{satker}',  1,Links::LINK_UNDUH_PAKET_RUP_PDF); 
+        $response = $this->get($apiLink);
+        $response->assertRedirect('/login');
+    }
+
+    public function testUnduhPaketPDFAuthenticated()
+    {
+        $user = User::make([
+            'name' => 'adylan',
+            'email' => 'adylan@test.com', 
+            'password' => 'foo_bar',
+            'role' => 'pa'
+        ]);
+
+        $apiLink = str_replace('{satker}',  1,Links::LINK_UNDUH_PAKET_RUP_PDF); 
+        $response = $this->actingAs($user)->get($apiLink);
+        $response->assertStatus(500);
+    }
+}
diff --git a/tests/Unit/ExampleTest.php b/tests/Unit/ExampleTest.php
deleted file mode 100644
index e9fe19c664dd70ddededea359ecfdaf6c767d5d7..0000000000000000000000000000000000000000
--- a/tests/Unit/ExampleTest.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-
-namespace Tests\Unit;
-
-use Tests\TestCase;
-use Illuminate\Foundation\Testing\RefreshDatabase;
-
-class ExampleTest extends TestCase
-{
-    /**
-     * A basic test example.
-     *
-     * @return void
-     */
-    public function testBasicTest()
-    {
-        $this->assertTrue(true);
-    }
-}
diff --git a/tests/Unit/UtilTest.php b/tests/Unit/UtilTest.php
index b3ddd1bdd40b0111bb383d6b538d58d76bc17d6c..5798963dcff44dbd17d9bdce280e1cdeea6bd9b3 100644
--- a/tests/Unit/UtilTest.php
+++ b/tests/Unit/UtilTest.php
@@ -37,7 +37,7 @@ class UtilTest extends TestCase
 
     public function testPemdaSwakelolaDaerah()
     {
-       $pemdaSwakelolaDaerah = new PemdaSwakelolaDaerah("test", "test", "test", "test");
+       $pemdaSwakelolaDaerah = new PemdaSwakelolaDaerah("test", "test", "test", "test", "test");
         $this->assertEquals($pemdaSwakelolaDaerah->no, 1);
         $this->assertEquals($pemdaSwakelolaDaerah->satuanKerja, "test");
         $this->assertEquals($pemdaSwakelolaDaerah->kegiatan, "test");
@@ -57,7 +57,7 @@ class UtilTest extends TestCase
 
     public function testSwakelolaDaerah()
     {
-       $swakelolaDaerah = new SwakelolaDaerah("test", "test", "test", "test");
+       $swakelolaDaerah = new SwakelolaDaerah("test", "test", "test", "test", "test");
         $this->assertEquals($swakelolaDaerah->no, 1);
         $this->assertEquals($swakelolaDaerah->kegiatan, "test");
         $this->assertEquals($swakelolaDaerah->paket, "test");
@@ -67,13 +67,14 @@ class UtilTest extends TestCase
     
     public function testUnduhMateri()
     {
-       $unduhMateri = new UnduhMateri("test", "test", "test", "test", "test");
+       $unduhMateri = new UnduhMateri("test", "test", "test", "test", "test", "test");
         $this->assertEquals($unduhMateri->no, 1);
         $this->assertEquals($unduhMateri->judul, "test");
         $this->assertEquals($unduhMateri->subjudul, "test");
         $this->assertEquals($unduhMateri->kategori, "test");
         $this->assertEquals($unduhMateri->deskripsi, "test");
-        $this->assertEquals($unduhMateri->file, "test");
+        $this->assertEquals($unduhMateri->filename, "test");
+        $this->assertEquals($unduhMateri->filelink, "test");
     }
 
 }