diff --git a/app/Http/Controllers/RealisasiBelanjaController.php b/app/Http/Controllers/RealisasiBelanjaController.php index 5be59bd..6037e39 100644 --- a/app/Http/Controllers/RealisasiBelanjaController.php +++ b/app/Http/Controllers/RealisasiBelanjaController.php @@ -8,6 +8,8 @@ use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Auth; use Maatwebsite\Excel\Facades\Excel; use App\Models\DbhPendapatanRealisasi; +use App\Models\TempRealisasiBelanja; +use App\Imports\RealisasiBelanjaImport; class RealisasiBelanjaController extends Controller { @@ -158,7 +160,7 @@ class RealisasiBelanjaController extends Controller $req = $request->all(); try{ $this->validate($request, [ - 'file' => 'required', + 'file' => 'required|mimes:xls,xlsx', ]); $file = $request->file('file'); @@ -169,10 +171,47 @@ class RealisasiBelanjaController extends Controller // echo 'File Mime Type: '.$file->getMimeType(); $tujuan_upload = 'uploadFiles'; $file->move($tujuan_upload,$file->getClientOriginalName()); + // var_dump($file->getRealPath()); exit; + DB::beginTransaction(); + TempRealisasiBelanja::truncate(); + Excel::import(new RealisasiBelanjaImport, $tujuan_upload."/".$file->getClientOriginalName()); + DB::commit(); + return redirect('upload-realisasi-belanja')->with('success','Data Realisasi belanja berhasil diupload.'); }catch(\Exception $e){ + throw new \Exception($e->getMessage()); + DB::rollBack(); + return redirect('upload-realisasi-belanja')->with('error',$e->getMessage()); } } return view('realisasi_belanja.upload'); } + public function uploadDatatable(Request $request) + { + $post = $request->all(); + $offset = $post["start"]; + $limit = $post["length"]; + $src = isset($post["search"])?$post["search"]["value"]:""; + + $dataFilter=0; + $data = TempRealisasiBelanja::orderBy("id","ASC"); + if (!empty($src)){ + $data->whereRaw("(LOWER(jenis_belanja) LIKE '%".strtolower($src)."%' + OR LOWER(sub_jenis_belanja) LIKE '%".strtolower($src)."%' + OR LOWER(nama_program) LIKE '%".strtolower($src)."%' + OR LOWER(nama_skpd) LIKE '%".strtolower($src)."%' + OR LOWER(nama_kegiatan) LIKE '%".strtolower($src)."%' + OR LOWER(nama_sub_kegiatan) LIKE '%".strtolower($src)."%' + OR LOWER(nama_rsk) LIKE '%".strtolower($src)."%' + OR LOWER(nama_rekening) LIKE '%".strtolower($src)."%')"); + } + $dataFilter = $data->count(); + $dataTotal = TempRealisasiBelanja::count(); + + return response()->json([ + "recordsTotal" => $dataTotal, + "recordsFiltered" => $dataFilter, + "data"=> $data->skip($offset)->take($limit)->get() + ]); + } } diff --git a/app/Imports/RealisasiBelanjaImport.php b/app/Imports/RealisasiBelanjaImport.php new file mode 100644 index 0000000..14b437e --- /dev/null +++ b/app/Imports/RealisasiBelanjaImport.php @@ -0,0 +1,40 @@ +$row[0], + "jenis_belanja"=>$row[1], + "sub_jenis_belanja"=>$row[2], + "kode_program"=>$row[3], + "nama_program"=>$row[4], + "kode_skpd"=>$row[5], + "nama_skpd"=>$row[6], + "kode_kegiatan"=>$row[7], + "nama_kegiatan"=>$row[8], + "kode_sub_kegiatan"=>$row[9], + "nama_sub_kegiatan"=>$row[10], + "kode_rsk"=>$row[11], + "nama_rsk"=>$row[12], + "kode_rekening"=>$row[13], + "nama_rekening"=>$row[14], + "jumlah_anggaran"=>$row[15], + "volume_satuan"=>$row[16], + "unit_satuan"=>$row[17] + ]); + } +} diff --git a/app/Models/DbhPendapatanRealisasi.php b/app/Models/DbhPendapatanRealisasi.php index 90cdc0c..08c227f 100644 --- a/app/Models/DbhPendapatanRealisasi.php +++ b/app/Models/DbhPendapatanRealisasi.php @@ -10,7 +10,7 @@ class DbhPendapatanRealisasi extends Eloquent { use HasFactory; use Uuids; - protected $connection = 'mysql'; + protected $connection = 'Samasa'; protected $table = 'dbh_pendapatan_realisasi'; protected $fillable = [ 'tahun','simtrad4_uraian','simtrad4_kotor','simtrad4_potongan','simtrad4_bersih','simtrad4_sp2d_bun', diff --git a/app/Models/TempRealisasiBelanja.php b/app/Models/TempRealisasiBelanja.php new file mode 100644 index 0000000..3c2da5a --- /dev/null +++ b/app/Models/TempRealisasiBelanja.php @@ -0,0 +1,34 @@ +id(); + $table->string("nama_satuan",10); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('unit_satuan'); + } +} diff --git a/database/migrations/2022_07_15_094519_create_temp_realisasi_belanja_table.php b/database/migrations/2022_07_15_094519_create_temp_realisasi_belanja_table.php new file mode 100644 index 0000000..438a176 --- /dev/null +++ b/database/migrations/2022_07_15_094519_create_temp_realisasi_belanja_table.php @@ -0,0 +1,49 @@ +id(); + $table->string("tahun_anggaran",4); + $table->string("jenis_belanja",50); + $table->string("sub_jenis_belanja",50); + $table->string("kode_program",50); + $table->string("nama_program",150); + $table->string("kode_skpd",50); + $table->string("nama_skpd",150); + $table->string("kode_kegiatan",50); + $table->string("nama_kegiatan",150); + $table->string("kode_sub_kegiatan",50); + $table->string("nama_sub_kegiatan",150); + $table->string("kode_rsk",50); + $table->text("nama_rsk"); + $table->string("kode_rekening",50); + $table->string("nama_rekening",150); + $table->decimal('jumlah_anggaran', 19, 2); + $table->tinyInteger('volume_satuan'); + $table->string('unit_satuan',30); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('temp_realisasi_belanja'); + } +} diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php index d46a08b..0b58843 100644 --- a/database/seeders/DatabaseSeeder.php +++ b/database/seeders/DatabaseSeeder.php @@ -16,6 +16,7 @@ class DatabaseSeeder extends Seeder // \App\Models\User::factory(10)->create(); // $this->call(PermissionSeeder::class); // $this->call(RolesTableSeeder::class); - $this->call(UsersTableSeeder::class); + // $this->call(UsersTableSeeder::class); + // $this->call(SatuanTableSeeder::class); } } diff --git a/database/seeders/SatuanTableSeeder.php b/database/seeders/SatuanTableSeeder.php new file mode 100644 index 0000000..345091f --- /dev/null +++ b/database/seeders/SatuanTableSeeder.php @@ -0,0 +1,39 @@ +nama_satuan = "m2"; + $satuan->save(); + + $satuan = new UnitSatuan; + $satuan->nama_satuan = "unit"; + $satuan->save(); + + $satuan = new UnitSatuan; + $satuan->nama_satuan = "km"; + $satuan->save(); + + $satuan = new UnitSatuan; + $satuan->nama_satuan = "orang"; + $satuan->save(); + + $satuan = new UnitSatuan; + $satuan->nama_satuan = "paket"; + $satuan->save(); + } +} diff --git a/database/seeders/UsersTableSeeder.php b/database/seeders/UsersTableSeeder.php index c143b45..935d136 100644 --- a/database/seeders/UsersTableSeeder.php +++ b/database/seeders/UsersTableSeeder.php @@ -17,46 +17,46 @@ class UsersTableSeeder extends Seeder */ public function run() { - // User::truncate(); + User::truncate(); - // $user = new User; - // $user->name = "Superadmin"; - // $user->nrk = "superadmin"; - // $user->password = Hash::make('superadmin123!'); - // $user->save(); + $user = new User; + $user->name = "Superadmin"; + $user->nrk = "superadmin"; + $user->password = Hash::make('superadmin123!'); + $user->save(); - // $user->assignRole('superadmin'); + $user->assignRole('superadmin'); - // $user = new User; - // $user->name = "admin"; - // $user->nrk = "admin"; - // $user->password = Hash::make('admin321!'); - // $user->save(); + $user = new User; + $user->name = "admin"; + $user->nrk = "admin"; + $user->password = Hash::make('admin321!'); + $user->save(); - // $user->assignRole('admin'); + $user->assignRole('admin'); - // $user = new User; - // $user->name = "anggaran"; - // $user->nrk = "anggaran"; - // $user->password = Hash::make('anggaran321'); - // $user->save(); + $user = new User; + $user->name = "anggaran"; + $user->nrk = "anggaran"; + $user->password = Hash::make('anggaran321'); + $user->save(); - // $user->assignRole('anggaran'); + $user->assignRole('anggaran'); - // $user = new User; - // $user->name = "skpd"; - // $user->nrk = "skpd"; - // $user->password = Hash::make('skpd321'); - // $user->save(); + $user = new User; + $user->name = "skpd"; + $user->nrk = "skpd"; + $user->password = Hash::make('skpd321'); + $user->save(); - // $user->assignRole('skpd'); + $user->assignRole('skpd'); - // $user = new User; - // $user->name = "bendahara"; - // $user->nrk = "bendahara"; - // $user->password = Hash::make('bendahara321'); - // $user->save(); + $user = new User; + $user->name = "bendahara"; + $user->nrk = "bendahara"; + $user->password = Hash::make('bendahara321'); + $user->save(); - // $user->assignRole('bendahara'); + $user->assignRole('bendahara'); } } diff --git a/public/css/app.css b/public/css/app.css index d5c1e4a..8033cf2 100644 --- a/public/css/app.css +++ b/public/css/app.css @@ -148,4 +148,128 @@ hr{ .td-nowrap{ white-space: nowrap; -} \ No newline at end of file +} + +#tempUploadRealisasi td{ + white-space: nowrap; +} + +.loading { + position: fixed; + z-index: 99999; + height: 2em; + width: 2em; + overflow: visible; + margin: auto; + top: 0; + left: 0; + bottom: 0; + right: 0; + } + + /* Transparent Overlay */ + .loading:before { + content: ''; + display: block; + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-color: rgba(0, 0, 0, 0.3); + } + + /* :not(:required) hides these rules from IE9 and below */ + .loading:not(:required) { + /* hide "loading..." text */ + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; + } + + .loading:not(:required):after { + content: ''; + display: block; + font-size: 10px; + width: 1em; + height: 1em; + margin-top: -0.5em; + -webkit-animation: spinner 1500ms infinite linear; + -moz-animation: spinner 1500ms infinite linear; + -ms-animation: spinner 1500ms infinite linear; + -o-animation: spinner 1500ms infinite linear; + animation: spinner 1500ms infinite linear; + border-radius: 0.5em; + -webkit-box-shadow: rgba(0, 0, 0, 0.75) 1.5em 0 0 0, rgba(0, 0, 0, 0.75) 1.1em 1.1em 0 0, rgba(0, 0, 0, 0.75) 0 1.5em 0 0, rgba(0, 0, 0, 0.75) -1.1em 1.1em 0 0, rgba(0, 0, 0, 0.5) -1.5em 0 0 0, rgba(0, 0, 0, 0.5) -1.1em -1.1em 0 0, rgba(0, 0, 0, 0.75) 0 -1.5em 0 0, rgba(0, 0, 0, 0.75) 1.1em -1.1em 0 0; + box-shadow: rgba(0, 0, 0, 0.75) 1.5em 0 0 0, rgba(0, 0, 0, 0.75) 1.1em 1.1em 0 0, rgba(0, 0, 0, 0.75) 0 1.5em 0 0, rgba(0, 0, 0, 0.75) -1.1em 1.1em 0 0, rgba(0, 0, 0, 0.75) -1.5em 0 0 0, rgba(0, 0, 0, 0.75) -1.1em -1.1em 0 0, rgba(0, 0, 0, 0.75) 0 -1.5em 0 0, rgba(0, 0, 0, 0.75) 1.1em -1.1em 0 0; + } + + /* Animation */ + + @-webkit-keyframes spinner { + 0% { + -webkit-transform: rotate(0deg); + -moz-transform: rotate(0deg); + -ms-transform: rotate(0deg); + -o-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(360deg); + -moz-transform: rotate(360deg); + -ms-transform: rotate(360deg); + -o-transform: rotate(360deg); + transform: rotate(360deg); + } + } + @-moz-keyframes spinner { + 0% { + -webkit-transform: rotate(0deg); + -moz-transform: rotate(0deg); + -ms-transform: rotate(0deg); + -o-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(360deg); + -moz-transform: rotate(360deg); + -ms-transform: rotate(360deg); + -o-transform: rotate(360deg); + transform: rotate(360deg); + } + } + @-o-keyframes spinner { + 0% { + -webkit-transform: rotate(0deg); + -moz-transform: rotate(0deg); + -ms-transform: rotate(0deg); + -o-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(360deg); + -moz-transform: rotate(360deg); + -ms-transform: rotate(360deg); + -o-transform: rotate(360deg); + transform: rotate(360deg); + } + } + @keyframes spinner { + 0% { + -webkit-transform: rotate(0deg); + -moz-transform: rotate(0deg); + -ms-transform: rotate(0deg); + -o-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(360deg); + -moz-transform: rotate(360deg); + -ms-transform: rotate(360deg); + -o-transform: rotate(360deg); + transform: rotate(360deg); + } + } + diff --git a/public/uploadFiles/#1 10 Sebab Penggugur Dosa.pdf b/public/uploadFiles/#1 10 Sebab Penggugur Dosa.pdf deleted file mode 100644 index 3cc73cf..0000000 Binary files a/public/uploadFiles/#1 10 Sebab Penggugur Dosa.pdf and /dev/null differ diff --git a/public/uploadFiles/format_upload_realisasi_belanja_dbh.xlsx b/public/uploadFiles/format_upload_realisasi_belanja_dbh.xlsx new file mode 100644 index 0000000..8392dd8 Binary files /dev/null and b/public/uploadFiles/format_upload_realisasi_belanja_dbh.xlsx differ diff --git a/resources/views/jadwal_salurdana/index.blade.php b/resources/views/jadwal_salurdana/index.blade.php index 5f6ed0a..f0acba6 100644 --- a/resources/views/jadwal_salurdana/index.blade.php +++ b/resources/views/jadwal_salurdana/index.blade.php @@ -170,7 +170,8 @@ "paginate": { "previous": "", "next": "", - } + }, + "processing": "
", }, scrollX:true, fixedColumns: { diff --git a/resources/views/layouts/app.blade.php b/resources/views/layouts/app.blade.php index 0d40288..1f7072e 100644 --- a/resources/views/layouts/app.blade.php +++ b/resources/views/layouts/app.blade.php @@ -16,6 +16,7 @@ @yield('styles') + {{--
--}}
@include('partials.top_menu') @@ -197,5 +198,10 @@ @yield('scripts') @yield('scripts2') + diff --git a/resources/views/partials/menu.blade.php b/resources/views/partials/menu.blade.php index 3d3d5fb..c66f9f3 100644 --- a/resources/views/partials/menu.blade.php +++ b/resources/views/partials/menu.blade.php @@ -34,7 +34,7 @@ @@ -45,10 +45,16 @@

Belanja

diff --git a/resources/views/realisasi_belanja/upload.blade.php b/resources/views/realisasi_belanja/upload.blade.php index 95fb962..a6f7f9c 100644 --- a/resources/views/realisasi_belanja/upload.blade.php +++ b/resources/views/realisasi_belanja/upload.blade.php @@ -5,24 +5,163 @@ ]; @endphp -@extends('layouts.app') +@extends('layouts.empty') +@section('styles') + + + + + +@endsection @section('content') - @section('card_header') +

{{ $sitesubTitle }}

+
+
+
+
+ @csrf +
+ File Gambar
+ +
+
+

Format:xlsx | Columns: + "tahun_anggaran", + "jenis_belanja", + "sub_jenis_belanja", + "kode_program", + "nama_program", + "kode_skpd", + "nama_skpd", + "kode_kegiatan", + "nama_kegiatan", + "kode_sub_kegiatan", + "nama_sub_kegiatan", + "kode_rsk", + "nama_rsk", + "kode_rekening", + "nama_rekening", + "jumlah_anggaran", + "volume_satuan", + "unit_satuan"

+
+
+
+
+
+

Validasi Data

{{-- @if(auth()->user()->can('Tambah SKPP')) --}} - + {{-- @endif --}}
- @stop -
- @csrf -
- File Gambar
- +
+ + + + + $rowCol"; + } + ?> + + + +
No
-
+
+@endsection +@section('scripts') + + + + + + + + + + + + + + + @endsection \ No newline at end of file diff --git a/resources/views/realisasi_pendapatan/index.blade.php b/resources/views/realisasi_pendapatan/index.blade.php index fd093a0..2f86255 100644 --- a/resources/views/realisasi_pendapatan/index.blade.php +++ b/resources/views/realisasi_pendapatan/index.blade.php @@ -155,7 +155,8 @@ "paginate": { "previous": "", "next": "", - } + }, + "processing": "
", }, scrollX:true, }); diff --git a/routes/web.php b/routes/web.php index b5f1e54..cc5f798 100644 --- a/routes/web.php +++ b/routes/web.php @@ -33,8 +33,9 @@ Route::group(['middleware' => 'auth'], function () { Route::resource('permissions', PermissionsController::class); }); - Route::resource('jadwal-salurdana', JadwalSalurdanaController::class); + //Route::resource('jadwal-salurdana', JadwalSalurdanaController::class); Route::group(['prefix' => 'jadwal-salurdana'], function () { + Route::get('/', [JadwalSalurdanaController::class,'index']); Route::post('/datatable', [JadwalSalurdanaController::class,'datatable']); Route::group(['middleware' => ['permission:Cetak SKPP']], function () { Route::post('/print', [JadwalSalurdanaController::class,'printData']); @@ -48,10 +49,10 @@ Route::group(['middleware' => 'auth'], function () { }); Route::resource('realisasi-pendapatan', RealisasiPendapatanController::class); - Route::group(['prefix' => 'realisasi-belanja'], function () { - Route::get('/upload', [RealisasiBelanjaController::class,'upload']); - Route::post('/upload', [RealisasiBelanjaController::class,'upload']); - }); + Route::get('upload-realisasi-belanja', [RealisasiBelanjaController::class,'upload']); + Route::post('upload-realisasi-belanja', [RealisasiBelanjaController::class,'upload']); + Route::post('upload-realisasi-belanja/datatable', [RealisasiBelanjaController::class,'uploadDatatable']); + Route::resource('realisasi-belanja', RealisasiBelanjaController::class); Route::resource('salur-dana', SalurdanaController::class);