Compare commits

431 Commits
Author SHA1 Message Date
gitea 96619ca480 test small push 2026-09-06 09:57:25 +07:00
gitea b9f3ce7bb8 test docker runner 2026-09-06 09:31:06 +07:00
gitea 8d809109de debug: small ssh push 2026-09-05 21:42:43 +07:00
gitea 39184a8a52 test gitea receive 2026-09-05 21:15:33 +07:00
gitea 2e4315dc68 first commit
CI/CD Pipeline to Rancher - SIDATA / build-and-deploy (push) Failing after 2m4s
2026-09-05 20:04:37 +07:00
gitea 17604e5f80 chore: purge ignored files from repository tracking 2026-09-05 19:14:53 +07:00
gitea b924b0ea8e feat: initial commit project sidata 2026-09-05 01:34:37 +07:00
gitea f62fd389b7 fix: set ingress class to traefik and apply middleware 2026-09-04 10:42:39 +07:00
gitea 28c13399f4 fix: revert ingress yaml structure to match helm template 2026-09-04 10:14:19 +07:00
gitea 97bd62fd47 fix: standardize pod nginx to root and enable ingress rewrite-target 2026-09-04 09:10:51 +07:00
gitea f06a8fc205 fix: remove ingress rewrite-target and dynamic env generator for helm2 2026-09-04 08:59:07 +07:00
gitea 0935c718d6 fix: resolution for nginx path routing, script_filename, and env fallback 2026-09-04 08:51:01 +07:00
gitea 97e5806526 fix: add /sidata location support in nginx and fallback .env generator 2026-09-04 08:41:08 +07:00
gitea ff05d0772d fix: generate .env file from .env.example during image build 2026-09-03 16:40:57 +07:00
gitea b24dea3095 feat: commit vendor folder directly to bypass air-gapped build restrictions 2026-09-03 16:27:31 +07:00
gitea 361347d312 fix: enforce prefer-dist to force composer using nexus proxy 2026-09-03 16:10:09 +07:00
gitea 7169b4774a fix: remove invalid proxy variables from kaniko to allow composer-proxy to work 2026-09-03 15:37:36 +07:00
gitea 56fb19313b fix: remove invalid proxy variables from kaniko to allow composer-proxy to work 2026-09-03 15:37:22 +07:00
gitea a76ca11ca7 fix: pass proxy variables to kaniko to fix composer timeout 2026-09-03 15:11:46 +07:00
gitea e323647b40 fix: install composer dependencies during kaniko build phase 2026-09-03 15:03:40 +07:00
gitea 1fc210ccd3 fix: implement ingress rewrite and asset_url for subpath routing 2026-09-03 14:50:11 +07:00
gitea 38fdc50a15 fix: add ASSET_URL env var to resolve broken css and js paths 2026-09-03 14:43:47 +07:00
gitea 496c28cbdc fix: remove ingress rewrite to forward full /sidata path to pod 2026-09-03 14:23:03 +07:00
gitea ae3facfee0 fix: add /sidata alias location in nginx configmap 2026-09-03 14:09:20 +07:00
gitea a30cbcadd9 fix: remove hardcoded rewrite-target from ingress template 2026-09-03 13:54:27 +07:00
gitea 82f799c19b fix: remove ingress rewrite target to fix 404 route 2026-09-03 13:49:38 +07:00
gitea 511ded30a1 fix: update helm deployment namespace to sidata-prod and fix file permissions 2026-09-03 11:49:54 +07:00
gitea c9dd57fddc fix: update kaniko image path in gitlab-ci 2026-09-03 11:44:37 +07:00
gitea d2f9b91d67 fix: switch to kaniko build and update helm chart configuration 2026-09-03 11:41:25 +07:00
gitea 8f5173b5cf fix: update dind tls configuration 2026-09-03 11:32:18 +07:00
gitea 93e9cb8e17 fix: update nexus registry port to 8082 2026-09-03 11:30:03 +07:00
gitea 5dbb2522b1 fix: update ingress regex and environment variables in values.yaml 2026-09-03 10:24:56 +07:00
gitea 92c4ee6f75 fix: add explicit 0.0.0.0 host binding for dind service 2026-09-03 10:01:59 +07:00
gitea 225a04e3cf fix: restore standard command array for dind service 2026-09-03 09:59:18 +07:00
gitea e9a4c96a3c fix: pass insecure registry flags directly inside dind entrypoint 2026-09-03 09:53:39 +07:00
gitea f6952cdd81 fix: add DOCKER_HOST tcp socket and array command for insecure registry 2026-09-03 09:51:31 +07:00
gitea c2461e2399 fix: remove login for proxy port 8084 and fix dind entrypoint 2026-09-03 09:50:16 +07:00
gitea 202f068d85 fix: update runner images to use nexus proxy port 8084 2026-09-03 09:48:28 +07:00
gitea 67c9117cbf fix: add library prefix for official docker images on proxy port 8083 2026-09-03 09:39:41 +07:00
gitea 2395fd74f9 fix: route runner base images to nexus proxy port 8083 2026-09-03 09:35:29 +07:00
gitea 7af5ac2bd4 fix: update runner images to use nexus port 8082 2026-09-03 09:24:29 +07:00
gitea 2d8739ff61 fix: update runner image registry to port 8083 2026-09-03 09:10:48 +07:00
gitea 50a303751f fix: update values.yaml image repository to port 808233 2026-09-03 09:03:41 +07:00
gitea 4473524aeb fix: update values.yaml image repository to port 8082 2026-09-03 09:03:22 +07:00
gitea 2c52a03994 fix: change runner images registry port to 8081 2026-09-03 08:59:10 +07:00
gitea 3db02c5ca8 fix: update CI variables to NEXUS_USERNAME and KUBECONFIG_B64 2026-09-02 16:42:28 +07:00
gitea 79c03648af fix: change push registry port to 8081 2026-09-02 14:03:48 +07:00
gitea 5a5b05377a ci: setup Dockerfile, GitLab CI pipeline, and Helm chart for Rancher3 2026-09-02 13:55:15 +07:00
gitea 1efc053cb8 ci: setup Dockerfile, GitLab CI pipeline, and Helm chart for Rancher 2026-09-02 13:50:47 +07:00
izuddin 3149dc605a Edit Dockerfile 2026-09-01 09:06:22 +00:00
izuddin f3cd68675f Edit Dockerfile 2026-09-01 08:48:43 +00:00
gitea 5d9ce5e660 fix: bersihkan path aset pada layouts/auth.blade.php 2026-09-01 13:45:30 +07:00
gitea 58e32a3883 fix: bersihkan rute dan helper asset pada template header-footer3 2026-09-01 13:32:38 +07:00
gitea 0a7d44d1a9 fix: bersihkan rute dan helper asset pada template header-footer 2026-09-01 12:56:20 +07:00
izuddin 175f188f71 Edit middleware.yaml 2026-09-01 04:57:54 +00:00
izuddin fff569d470 Edit middleware.yaml 2026-09-01 04:50:06 +00:00
gitea ed5bc89101 fix: ubah pemanggilan script footer dari baseUrl ke helper asset() 2026-09-01 11:26:28 +07:00
gitea d4701501ca fix: sesuaikan ASSET_URL untuk mencegah duplikasi path /sidata 2026-09-01 11:01:09 +07:00
gitea 31afacc415 fix: set HEADER_X_FORWARDED_ALL in TrustProxies for Traefik prefix 2026-08-31 14:26:09 +07:00
gitea de8d1fdae9 fix: update redirect URL and path prefix configuration for /sidata 2026-08-31 14:23:05 +07:00
gitea 4d828c053b fix: force root url subpath /sidata and https scheme 2026-08-31 11:57:18 +07:00
gitea 77c49ab0fa Fix: bypass proxy and use http IP for internal redis download to resolve curl ssl error 35 2026-08-30 14:50:03 +07:00
gitea 04814c2757 Fix: set trusted proxies to * to resolve 419 CSRF error behind Ingress 2026-08-30 14:44:06 +07:00
gitea 57dddbc7d4 Fix: use internal Nexus repository to download Redis extension 2026-08-30 14:42:19 +07:00
gitea a62fd7a7b3 Fix: hardcode /sidata prefix in URL helpers for static assets 2026-08-30 14:18:42 +07:00
gitea e4ddddae71 Fix: force login form action to use /sidata prefix 2026-08-30 14:13:07 +07:00
gitea 59f7760bb3 Fix: change URL::to to asset helper for image in home view 2026-08-30 13:40:00 +07:00
gitea e8418d0c2d Fix: update Authenticate middleware redirect path to /sidata/login 2026-08-30 13:29:52 +07:00
gitea 3d7cba88df Fix: complete authentication and routing setup for /sidata subpath prefix 2026-08-30 13:19:09 +07:00
gitea 2e9257f601 Fix: set unauthenticated redirect URL to include subpath prefix 2026-08-30 12:59:02 +07:00
gitea baa2f611c1 Fix: use asset helper to include /sidata prefix 2026-08-30 12:40:30 +07:00
gitea ce408be3f2 Fix: update ingress className to traefik and attach strip-prefix middleware 2026-08-30 12:26:58 +07:00
gitea 42ab1b4c13 Fix: force HTTPS scheme for assets to resolve mixed content errors 2026-08-30 12:13:15 +07:00
gitea da74b66241 Fix: download redis source via curl to bypass pecl REST xml error 2026-08-30 12:04:25 +07:00
gitea da7d3fabc4 Fix: inject missing variables into 404 error page 2026-08-30 11:51:20 +07:00
gitea 5d86e7db88 Fix: add null coalescing and empty checks for title and breadcrumb variables in app layout 2026-08-30 11:16:57 +07:00
gitea 0ed39f8ad5 Fix: configure pear http_proxy for pecl redis installation 2026-08-30 11:07:59 +07:00
gitea 701b1180a6 Fix: specify redis-5.3.7 version for PHP 7.4 compatibility in Dockerfile 2026-08-30 10:57:00 +07:00
gitea 70b5c24a89 Fix: add trusted=yes flag and remove missing security repo from Dockerfile 2026-08-30 10:50:17 +07:00
gitea 48b07817a5 Fix: configure debian-proxy from Nexus with trusted=yes flag 2026-08-30 10:45:04 +07:00
gitea 840cccfdac Fix: overwrite sources.list completely and bypass proxy for apt-get 2026-08-30 10:40:31 +07:00
gitea a1e97ce20c Fix: update Dockerfile to use local Nexus APT repositories 2026-08-30 10:36:00 +07:00
gitea 5a95922534 Fix: optimize Dockerfile caching layer and retry apt network requests 2026-08-30 10:27:25 +07:00
gitea a1f9c6bdec Fix: sanitize Auth check in menu.blade.php and refactor PHP tags to Blade directives 2026-08-30 10:18:42 +07:00
gitea b28c36d78e Fix: replace whole .gitlab-ci.yml with validated syntax and CI_JOB_TOKEN auth 2026-08-30 10:06:33 +07:00
gitea 6d34ed6b0f Fix: add CI_JOB_TOKEN to manual git clone URL34534 2026-08-30 10:04:55 +07:00
gitea 296684328b Fix: add CI_JOB_TOKEN to manual git clone URL 2026-08-30 10:03:26 +07:00
gitea 207d540744 Fix: add CI_JOB_TOKEN authentication for manual git clone2 2026-08-30 10:02:08 +07:00
gitea 8585e2676a Fix: add CI_JOB_TOKEN authentication for manual git clone 2026-08-30 10:00:22 +07:00
gitea f90841a19c Fix: use internal HTTP fallback for git clone in CI/CD 2026-08-30 09:58:23 +07:00
gitea 3123210e07 Fix: switch manual git clone to internal HTTP service URL 2026-08-30 09:55:59 +07:00
gitea 004a441412 Fix: bypass helper SSL check using manual git clone 2026-08-30 09:52:22 +07:00
gitea 140c87bb63 Fix: add GIT_SSL_NO_VERIFY and optimize laravel artisan cache clear in CI/CD 2026-08-30 09:30:45 +07:00
gitea 6f72006972 Fix: null check on Auth user roles in top_menu.blade.php 2026-08-30 09:28:06 +07:00
izuddin be3e087b2c Edit values.yaml 2026-08-28 03:40:54 +00:00
izuddin cd705cd1f3 Edit values.yaml 2026-08-28 02:53:01 +00:00
izuddin d710c72c53 Edit Dockerfile 2026-08-28 02:40:47 +00:00
izuddin 77159a3e09 Edit Dockerfile 2026-08-28 02:23:14 +00:00
izuddin bb7c4b18ec Edit values.yaml 2026-08-28 02:12:49 +00:00
izuddin 7f2dfb71cb Edit values.yaml 2026-08-28 02:06:43 +00:00
izuddin 1f5dc393df Edit values.yaml 2026-08-28 01:46:53 +00:00
izuddin 65ee373a25 Edit service.yaml 2026-08-28 01:08:07 +00:00
izuddin d34bb6a489 Merge branch 'main' of http://10.15.39.187/izuddin/sidata 2026-08-27 15:11:47 +07:00
izuddin 3d37694684 Edit deployment.yaml 2026-08-27 08:19:46 +00:00
izuddin a2762ac9a7 Update 2026-08-27 15:11:19 +07:00
izuddin 52738325b2 Edit deployment.yaml 2026-08-27 08:10:35 +00:00
izuddin 158faba19f Edit deployment.yaml 2026-08-27 07:52:55 +00:00
izuddin ada9a8be8c Edit values.yaml 2026-08-27 07:47:52 +00:00
izuddin 658e18d051 Edit secret.yaml 2026-08-27 07:47:09 +00:00
izuddin 31c69170f8 Edit secret.yaml 2026-08-27 07:33:21 +00:00
izuddin afc6cfb331 Edit Dockerfile 2026-08-27 06:35:20 +00:00
izuddin cb0b0c637a Edit values.yaml 2026-08-27 06:24:52 +00:00
izuddin a98792a4e6 Edit values.yaml 2026-08-27 06:17:13 +00:00
izuddin 993a10b276 Edit Dockerfile 2026-08-27 06:05:54 +00:00
izuddin f7c38b89aa Edit Dockerfile 2026-08-27 05:57:50 +00:00
izuddin 5c13dd42fe Edit Dockerfile 2026-08-27 05:50:58 +00:00
izuddin c0ab14bd08 Edit Dockerfile 2026-08-27 04:40:56 +00:00
izuddin ae770aba33 Edit Dockerfile 2026-08-27 04:20:01 +00:00
izuddin 92c1abc8f0 Edit Dockerfile 2026-08-27 04:03:53 +00:00
izuddin 7f091301f5 Edit Dockerfile 2026-08-27 03:50:11 +00:00
izuddin 8a862b4cd7 Edit deployment.yaml 2026-08-27 03:38:50 +00:00
izuddin ca36be56d9 Edit values.yaml 2026-08-27 03:37:48 +00:00
izuddin fbf54f9f4b Edit Dockerfile 2026-08-27 03:37:29 +00:00
izuddin 0798a4f5df Edit Dockerfile 2026-08-27 03:18:52 +00:00
izuddin d689619d4c Edit Dockerfile 2026-08-27 02:28:27 +00:00
izuddin c1120e9f5f Edit Dockerfile 2026-08-27 02:14:30 +00:00
izuddin fd948e1f2c Edit deployment.yaml 2026-08-27 01:52:37 +00:00
izuddin e3cc7ceea2 Edit deployment.yaml 2026-08-27 01:49:24 +00:00
izuddin f1a1955ce8 Edit .gitlab-ci.yml 2026-08-26 10:06:18 +00:00
izuddin 95f15672e0 Edit Dockerfile 2026-08-26 09:41:06 +00:00
izuddin 955bdad76d Edit Dockerfile 2026-08-26 09:36:46 +00:00
izuddin 01acddb8c3 Update helm 2026-08-26 16:07:10 +07:00
izuddin 4a53074369 Update .gitlab-ci.yml file 2026-08-26 08:56:11 +00:00
izuddin 4945b9728d Add new file 2026-08-26 05:58:47 +00:00
izuddin f7fc7d5ced Update .gitlab-ci.yml file 2026-08-26 05:50:08 +00:00
izuddin 6a44a5a0b2 Update .gitlab-ci.yml file 2026-08-26 03:57:01 +00:00
izuddin bf6e1b6b24 Update .gitlab-ci.yml file 2026-08-26 03:50:31 +00:00
izuddin a5720be77b Update .gitlab-ci.yml file 2026-08-26 02:55:20 +00:00
izuddin 86351bcd01 Tambahan Akun Tamsil 2026-07-21 10:05:27 +07:00
Marsa 7f6f0f167e bugsfix datatable realisasi belanja 2026-07-14 11:32:45 +07:00
Marsa 8b0e3b5507 update form detail view realisasi pendapatan 2026-07-08 16:17:06 +07:00
Marsa fbc640485f update dau rinci (realisasi belanja) 2026-07-06 10:00:46 +07:00
izuddin b6dd0b04bc Git Fix Conflict 2026-06-19 14:48:06 +07:00
izuddin cae2b02010 Label Tahun Anggaran 2026-06-19 14:38:50 +07:00
Marsa 9beffa14da update controller realisasi-pendapatan 2026-06-19 14:03:13 +07:00
Marsa aab4a10773 update sidebar 2026-06-19 11:00:31 +07:00
Marsa d91b93c0f3 update store function untuk tpg-tamsil 2026-06-17 16:47:49 +07:00
Marsa d46c13f109 update form: add kode rekening tpg tamsil 2026-06-15 16:22:56 +07:00
Marsa 05b3636d0c update kode rekening tpg-tamsil 2026-06-15 16:18:11 +07:00
Marsa 0e5b2e206b update form realisasi pendapatan tpg-tamsil 2026-06-15 15:46:11 +07:00
Marsa df10ed40d8 update form untuk tpg-tamsil 2026-06-15 14:06:56 +07:00
izuddin 5bbf6008ed Merge branch 'dev' 2026-04-07 12:36:02 +07:00
izuddin 596ce00a29 Update kata kunci pencarian data anggaran belanja untuk tambah data realisasi belanja 2026-04-07 12:35:42 +07:00
Marsa 913be84dee remove wilayah mandatory in create user (admin) 2026-03-31 11:41:28 +07:00
izuddin f5d9d5d84e Merge branch 'dev' 2026-03-31 10:23:57 +07:00
izuddin 500cc7d10b git Merge branch 'dev' 2026-02-09 15:06:13 +07:00
izuddin ae5c35d0ea Update 2026-02-09 15:05:56 +07:00
izuddin 81420f0be9 Merge branch 'dev' 2026-01-05 16:37:45 +07:00
Marsa 7328728577 fix export jadwal salur belanja 2026-01-05 16:32:35 +07:00
izuddin 58abe7a4ef Merge branch 'dev' 2025-12-17 09:29:17 +07:00
izuddin 3a9d6d18e1 Tambah Field Potongan dan TW realisasi Pendapatan 2025-12-17 09:24:20 +07:00
izuddin b77c7d2dae Merge branch 'dev' 2025-12-05 13:25:18 +07:00
Marsa 101e9ba205 Bugs Fix Detail Realisasi Pendapatan 2025-12-05 09:55:27 +07:00
izuddin d462dff0e3 Update Module Pendapatan Tamsil dan TPG 2025-10-08 09:37:51 +07:00
izuddin ae68f252e1 Bugs Fix AKB Pendapatan 2025-10-07 15:55:50 +07:00
izuddin 08335b1cb2 Bugs Fix 2025-10-07 15:17:47 +07:00
izuddin fcb75a8267 Update 2025-09-26 11:16:11 +07:00
izuddin 08e7b88f5b Bugs Download Excel 2025-09-22 10:44:14 +07:00
izuddin fd91f5511c Merge branch 'dev' of https://github.com/updidev/bpkd-sidata into dev 2025-09-15 13:54:25 +07:00
izuddin c9944b2d3b No STS Datatable detail realisasi pendapatan 2025-09-15 13:53:30 +07:00
Marsa 04cf96dd59 Update Input Nomor STS di Realisasi Pendapatan 2025-09-12 17:15:35 +07:00
izuddin b85903183b Update 2025-08-12 11:02:49 +07:00
izuddin 55f3f5c1f5 Update 2025-08-12 10:59:30 +07:00
izuddin b71bc42503 Update 2025-08-08 14:53:30 +07:00
izuddin 26dca172ea Update Rekening Tamsil dan TPG 2025-08-07 11:00:53 +07:00
izuddin 69cef8c178 Update Rekening Tamsil dan TPG 2025-08-07 10:48:45 +07:00
izuddin cb273e1256 Update Rekening Tamsil dan TPG 2025-08-07 10:30:44 +07:00
izuddin a0c2774e81 Update 2025-07-28 11:21:59 +07:00
izuddin 2a1a0e5346 Update 2025-07-28 11:07:14 +07:00
izuddin 109042ed4c Update Tamsil dan TPG 2025-07-25 08:29:29 +07:00
izuddin 5820e5b134 TW dan Gelombang pada Realisasi Pendapatan 2025-07-23 10:01:14 +07:00
izuddin 937afce4b8 Update 2025-07-15 10:17:59 +07:00
izuddin 43625e5431 Update 2025-03-27 15:02:11 +07:00
izuddin 04aa047643 Merge branch 'dev' 2025-03-21 08:55:35 +07:00
izuddin 66b6dc24f9 Bugs Fix Tidak bisa Buat Realisasi 2025-03-21 08:53:42 +07:00
izuddin fe640e22df Update Hilangkan Nama Schema 2025-03-17 09:44:36 +07:00
izuddin 5ea516a594 Merge branch 'dev' 2025-02-18 15:57:53 +07:00
Vinsensiaaa 2559f6be7a Merge branch 'dev' of https://github.com/updidev/bpkd-sidata into dev 2025-02-18 15:51:33 +07:00
Vinsensiaaa b2365ca6f8 Melakukan Perubahan 2025-02-18 15:51:09 +07:00
izuddin ff10d98cda Merge branch 'dev' 2025-02-18 12:05:00 +07:00
izuddin c0230b056b Bugs Fix 2025-02-18 12:04:46 +07:00
izuddin e86b218069 Merge branch 'dev' 2025-02-18 12:00:35 +07:00
izuddin 58683bcfca Bugs Fix Input STS berdasarkan Kode Akun 2025-02-18 11:56:50 +07:00
izuddin 418f3b3f4f Update 2024-10-10 08:03:08 +07:00
izuddin 61928820c4 Merge branch 'dev' 2024-10-02 10:42:19 +07:00
Vinsensiaaa 641db501c6 Melakukan Perubahan 2024-10-02 10:41:24 +07:00
izuddin 094d50cc6a Updaye 2024-09-24 15:44:32 +07:00
izuddin 2fd85fb730 Merge branch 'dev' 2024-09-24 15:43:50 +07:00
Vinsensiaaa 3f70c5acfd Melakukan Perubahan 2024-09-24 15:43:15 +07:00
izuddin af73102fa2 Update 2024-09-24 15:31:12 +07:00
izuddin cd56b76e3f Update 2024-09-24 14:00:49 +07:00
izuddin d5212f1f89 Update 2024-09-23 17:22:15 +07:00
Vinsensiaaa 1e4155ff8a Melakukan Perubahan 2024-09-20 13:19:35 +07:00
Vinsensiaaa 507986ccfb Melakukan Perubahan Perubahan 2024-09-20 10:52:12 +07:00
Vinsensiaaa 2c0d79c986 Melakukan Perubahan 2024-09-20 09:28:55 +07:00
Vinsensiaaa b2e27d2c41 Melakukan Perubahan 2024-09-19 16:39:56 +07:00
izuddin f55b8490d6 Update 2024-09-19 16:25:57 +07:00
Vinsensiaaa a6cde682cd Melakukan Perubahan 2024-09-19 16:11:39 +07:00
Vinsensiaaa 5eead1c660 Melakukan Perubahan 2024-09-19 14:45:27 +07:00
Vinsensiaaa cb68e435c7 Melakukan Perubahan 2024-08-22 14:35:35 +07:00
Vinsensiaaa d4a5bbccc5 Melakukan Perubahan 2024-08-22 10:41:12 +07:00
Vinsensiaaa cd87950c80 Melakukan Perubahan 2024-07-30 16:11:12 +07:00
Vinsensiaaa 7611f5c4c1 Melakukan Perubahan 2024-07-04 08:56:07 +07:00
Vinsensiaaa 13b009cecf Melakukan Perubahan 2024-07-03 13:24:28 +07:00
izuddin 28088683bb Bugs Fix Satuan DAU tidak muncul 2024-04-24 14:27:48 +07:00
Vinsensiaaa 92c3ebc25e Melakukan perubahan 2024-04-22 09:43:27 +07:00
Vinsensiaaa 17fd750735 Melakukan Perubahan 2024-04-02 11:48:37 +07:00
Vinsensiaaa 84749e5a96 Melakukan Perubahan 2024-04-01 11:42:09 +07:00
Vinsensiaaa bbd8d90a45 Melakukan Perubahan 2024-04-01 09:01:35 +07:00
Vinsensiaaa 3867a614a0 Melakukan Perubahan 2024-03-27 09:36:28 +07:00
Vinsensiaaa df61969421 Melakukan Perubahan 2024-03-22 10:22:28 +07:00
Vinsensiaaa d2fa3d7788 Melakukan Perubahan 2024-03-20 14:35:45 +07:00
Vinsensiaaa ad7f6b3388 Melakukan Perubahan 2024-03-20 11:06:07 +07:00
Vinsensiaaa a0a6500108 Melakukan Perubahan 2024-03-15 15:14:21 +07:00
izuddin da08bcd635 Tambah Field Periode Anggaran 2024-03-15 10:54:12 +00:00
izuddin c9cfbb2b6f Update kolom header salur dana 2024-03-07 14:59:53 +00:00
izuddin 1d0084f864 Merge branch 'dev' 2024-03-06 14:24:55 +00:00
Vinsensiaaa e851177311 Merge branch 'dev' of https://github.com/updidev/bpkd-sidata into dev 2024-03-06 16:11:18 +07:00
izuddin 74a602d23a update sql akb_pendapatan 2024-03-06 15:54:36 +00:00
Vinsensiaaa 253291a09e Melakukan Penambahan 2024-03-06 16:10:55 +07:00
Vinsensiaaa e71c3eed38 Melakukan Perubahan pada pengguna 2024-03-04 16:01:10 +07:00
izuddin 380997534e Merge branch 'dev' 2024-02-26 17:00:16 +07:00
Vinsensiaaa cceedcd9c0 Melakukan Perubahan di admin 2024-02-26 14:39:07 +07:00
Izuddin bc4815d736 Bugs Fix Hapus File Realisasi Pendapatan 2024-02-20 11:12:01 +07:00
Izuddin c91dc616ba Bugs Fix Detail Realisasi Belanja Bagian AKB 2024-02-12 15:03:04 +07:00
Vinsensiaaa ab3367e347 Melakukan Perubahan 2024-01-15 15:22:49 +07:00
Vinsensiaaa 6e3428ebcc Melakukan Perubahan 2023-11-15 09:55:39 +07:00
Vinsensiaaa 61011650c5 Merge branch 'main' of https://github.com/updidev/bpkd-sidata 2023-11-14 11:33:57 +07:00
Vinsensiaaa d71a4a079f Melakukan Perubahan sisa salur dana 2023-11-14 11:33:31 +07:00
Pusdatin BPKD Jkt 0ad4092d20 Update 2023-11-14 10:34:33 +07:00
Pusdatin BPKD Jkt 7cf0a8d4f3 Update 2023-11-14 09:52:06 +07:00
Vinsensiaaa 0a592d5cfe Melakukan penambahan menu 2023-11-14 08:46:02 +07:00
Pusdatin BPKD Jkt 6dfb23e282 Update tambah tombol Penyesuaian perubahan AKB Perubahan 2023-11-10 09:53:59 +07:00
Pusdatin BPKD Jkt 7810ed5495 Update 2023-10-23 15:26:56 +07:00
Vinsensiaaa b8a0b6695b Melakukan perubahan 2023-10-13 13:54:11 +07:00
Vinsensiaaa a1c7fa7aac Mengubah menu realisasi 2023-08-30 14:39:36 +07:00
Pusdatin BPKD Jkt daba748fb1 update 2023-07-31 14:51:37 +07:00
Pusdatin BPKD Jkt de597eb086 Update 2023-07-28 09:14:23 +07:00
Pusdatin BPKD Jkt 33240e3d2e Maintenance 2023-07-27 13:47:41 +07:00
Pusdatin BPKD Jkt 09d44e2201 Bugs fix 2023-07-24 16:33:56 +07:00
Pusdatin BPKD Jkt c93cd80d2d Bugs Fix 2023-07-24 14:51:47 +07:00
Pusdatin BPKD Jkt 476207076c Update 2023-07-14 11:16:33 +07:00
Pusdatin BPKD Jkt 987bfd033b Maintenance Laporan dan Realisasi pendapatan 2023-05-29 15:51:23 +07:00
Pusdatin BPKD Jkt e89ad2d572 Bugs Fix upload laporan Sidata type excel 2023-05-22 15:41:39 +07:00
Pusdatin BPKD Jkt 00a969ffdd Bugs Fix Edit Data Realisasi Pendapatan 2023-04-26 14:48:09 +07:00
Pusdatin BPKD Jkt c689a54a29 Bugs Fix Download Excel Realisasi Pendapatan 2023-04-26 13:07:12 +07:00
Pusdatin BPKD Jkt 012c3a6bc3 bugs fix belanja dau id rinci aktivitas 2023-04-06 09:30:00 +07:00
Pusdatin BPKD Jkt 62fba15bb5 Bugs Fix Download Realisasi Belanja DAU tidak ada deskripsinya 2023-04-05 11:04:51 +07:00
Pusdatin BPKD Jkt 8f39695278 bugs fix whtespace kode rekening 2023-03-31 14:49:37 +07:00
Pusdatin BPKD Jkt 4243da30ce Bugs Fix 2023-03-14 16:25:27 +07:00
Pusdatin BPKD Jkt 532e17d42d sql view 2023-03-07 14:10:46 +07:00
Pusdatin BPKD Jkt 0f176b23e1 Rincian DAU 2023-02-28 10:54:30 +07:00
Pusdatin BPKD Jkt 802e154750 update DAU 2023-02-23 15:53:56 +07:00
Pusdatin BPKD Jkt 55ad9ff3d7 Rincian DAU 2023-02-22 16:58:20 +07:00
Pusdatin BPKD Jkt 2bc555bb5e update 2023-02-21 17:05:52 +07:00
Pusdatin BPKD Jkt 0f958f32b0 Update logo 2023-02-16 16:58:20 +07:00
Pusdatin BPKD Jkt 223174f10e Update logo 2023-02-16 16:57:38 +07:00
Pusdatin BPKD Jkt cdd0c3d2c5 Bugs Fix Realisasi Pendapatan dan Tambahan unit pada download realisasi belanja 2023-02-08 14:42:53 +07:00
Pusdatin BPKD Jkt 4b965ce52e Bugs Fix Realisasi Pendapatan dan Tambahan unit pada download realisasi belanja 2023-02-08 14:25:58 +07:00
Pusdatin BPKD Jkt 58faeefc04 Update download realisasi belanja 2023-02-03 09:32:49 +07:00
Pusdatin BPKD Jkt dcabd8bf4a Upload File type Pdf dan Gambar 2023-01-12 13:51:17 +07:00
Pusdatin BPKD Jkt cd80b7e00d Fix TRBAS Tahun Berlaku 2023-01-12 10:21:54 +07:00
Pusdatin BPKD Jkt d5fe9b9d8a Download Jadwal Belanja 2023-01-12 09:47:08 +07:00
Pusdatin BPKD Jkt 620d27e522 Jadwal Salur dan Style 2023-01-11 16:40:47 +07:00
Pusdatin BPKD Jkt e6f4fc9595 Download All Salur dan Belanja 2023-01-10 11:20:41 +07:00
Pusdatin BPKD Jkt c482d85b24 AKB 2023-01-06 17:13:07 +07:00
Pusdatin BPKD Jkt 8d556a19c9 AKB 2023-01-06 17:10:22 +07:00
updi 733ea100ef Fix Conflict 2023-01-06 00:24:24 +07:00
Izuddin 1b94baf5a7 SPS Pendapatan ganti dari akb 2023-01-06 00:26:06 +07:00
Pusdatin BPKD Jkt 2cfae01c0e SPS Pindah ke custom AKB 2023-01-05 16:22:17 +07:00
Pusdatin BPKD Jkt 0e6cfe7f72 Merge branch 'main' of https://github.com/updidev/bpkd-sidata 2023-01-05 16:20:01 +07:00
Pusdatin BPKD Jkt 63b8b4d007 Bugs Fix AKB 2023-01-05 16:18:54 +07:00
Izuddin ce8a1c54f8 AKB Pendapatan 2023-01-05 05:22:12 +07:00
Izuddin 05f92650eb Fix conflict 2023-01-04 23:08:36 +07:00
Pusdatin BPKD Jkt 149fecc554 Style Image 2023-01-03 11:16:06 +07:00
updi 6f0dfa2276 Merge branch 'main' of https://github.com/updidev/bpkd-sidata into main 2023-01-03 11:04:02 +07:00
Pusdatin BPKD Jkt fcd4c44e6f Bugs Fix Realisasi 2023-01-03 10:46:50 +07:00
updi 24b2913443 Merge branch 'main' of https://github.com/updidev/bpkd-sidata into main 2023-01-03 10:35:46 +07:00
updi be57a6389e Merge branch 'main' of https://github.com/updidev/bpkd-sidata into main 2023-01-02 11:27:35 +07:00
Pusdatin BPKD Jkt 638f5f723c Tambah Field Download realisasi belanja 2023-01-02 11:21:45 +07:00
Pusdatin BPKD Jkt 27d1bd4c22 Download File STS per-TA 2022-12-30 11:45:37 +07:00
Pusdatin BPKD Jkt e9678f40c4 Maintenance tambah input retur dan jumlah bersih realisasi pendapatan 2022-12-30 11:00:15 +07:00
Pusdatin BPKD Jkt a948640810 Optimalisasi View AKB dan Realisasi 2022-12-20 14:01:21 +07:00
Pusdatin BPKD Jkt 33829f711a Bugs Fix Kode Rekening dan SPS Input Data Realisasi Belanja 2022-12-20 10:23:30 +07:00
Pusdatin BPKD Jkt 60d4447548 Datatable pada realisasi belanja 2022-12-15 09:35:56 +07:00
Izuddin 696bd21a02 Bugs Fix Download 2022-12-14 22:24:18 +07:00
Pusdatin BPKD Jkt 0bffb4cd7e Optimize Realisasi Belanja 2022-12-14 15:18:26 +07:00
Pusdatin BPKD Jkt 25f80233ba Optimize Realisasi Belanja 2022-12-14 15:17:14 +07:00
Pusdatin BPKD Jkt 28e1029ba2 Optimize Realisasi Belanja 2022-12-14 15:12:45 +07:00
Pusdatin BPKD Jkt d32705cc9b Optimasi 2022-12-14 14:51:54 +07:00
Pusdatin BPKD Jkt fd98fc304d Optimasi Realisasi Belanja 2022-12-14 14:44:34 +07:00
Pusdatin BPKD Jkt b8425e9cdf Optimize Table Realisasi Belanja 2022-12-14 11:11:02 +07:00
Pusdatin BPKD Jkt e181b982f2 Bugs Fix Datatable Belanja Realisasi 2022-12-14 09:47:07 +07:00
Pusdatin BPKD Jkt 91e33ab804 Bugs Fix Nomor STS 2022-12-05 09:43:36 +07:00
Pusdatin BPKD Jkt e41f0c048b Bugs Fix input realisasi 2022-11-22 09:38:22 +07:00
Pusdatin BPKD Jkt ee17da98f0 Bugs Fix Input Volume Satuan 2022-11-21 11:48:33 +07:00
Pusdatin BPKD Jkt 75bc94994f Bugs Fix Menu Laporan 2022-11-21 10:07:42 +07:00
Pusdatin BPKD Jkt 8be49251fe Bugs Fix input volume rinci belanja realisasi 2022-11-18 14:43:43 +07:00
Pusdatin BPKD Jkt 04bdd9c036 Bugs Fix 2022-11-18 11:16:43 +07:00
Pusdatin BPKD Jkt d65cfe6991 Export excel, adjust anggaran 2022-11-17 11:08:28 +07:00
Pusdatin BPKD Jkt 16afa0b405 Export filter data table index realisasi belanja 2022-11-16 15:51:11 +07:00
Pusdatin BPKD Jkt 18f0c9fa5a Table realisasi jumlah spd 2022-11-16 10:59:47 +07:00
Pusdatin BPKD Jkt 1436304331 Master Satuan, Jumlah SPD jika DBH pada table realisasi 2022-11-16 10:46:59 +07:00
Pusdatin BPKD Jkt a4851a30f8 Maintenance Jenis Dana DID dan style 2022-11-10 10:10:30 +07:00
Pusdatin BPKD Jkt bfd375a87d Tambah Manual Book 2022-11-09 10:10:55 +07:00
Pusdatin BPKD Jkt a96f71d5e8 datetime notif 2022-11-08 14:27:04 +07:00
Pusdatin BPKD Jkt 2d885eadd1 Bugs Fix cause SIPD view update 2022-11-08 14:10:32 +07:00
Pusdatin BPKD Jkt 79a7d26a73 Faster it 2022-11-07 11:44:25 +07:00
Pusdatin BPKD Jkt 2282d18c03 Belanja Realisasi Rinci bulan 2022-11-04 14:25:29 +07:00
Pusdatin BPKD Jkt 2df12fe3d2 laporan file dan spd pada dbh 2022-10-27 14:44:04 +07:00
Pusdatin BPKD Jkt 2edffa6584 Bugs Fix Download BAST 2022-10-25 13:06:54 +07:00
Pusdatin BPKD Jkt e40fab54fe Bugs Fix Download BAST 2022-10-25 11:39:10 +07:00
Pusdatin BPKD Jkt eb4a62b5d4 Bugs Fix Download Kontrak 2022-10-25 09:50:07 +07:00
Pusdatin BPKD Jkt b882c61e6b Ubah SPD Tanpa Refresh 2022-10-21 10:34:49 +07:00
Pusdatin BPKD Jkt a1c2d2427c Bugs Fix 2022-10-13 14:41:28 +07:00
Pusdatin BPKD Jkt e57a12ad5b Bugs Fix Ubah SPD 2022-10-12 15:34:07 +07:00
Pusdatin BPKD Jkt 534368a6d5 Maintenance Reset Password 2022-10-11 15:57:42 +07:00
Pusdatin BPKD Jkt c33d9c73e2 Bugs Fix 2022-10-07 15:58:12 +07:00
Pusdatin BPKD Jkt 1873dac95c Bugs Fix 2022-10-07 11:28:33 +07:00
Pusdatin BPKD Jkt 5d82266969 Bugs Fix 2022-10-06 11:24:46 +07:00
Pusdatin BPKD Jkt 518b47cdb0 Maintenance 2022-10-05 14:46:37 +07:00
Pusdatin BPKD Jkt ffc4b94fdc Update dan bUgs FIx 2022-09-29 16:57:34 +07:00
Pusdatin BPKD Jkt 019f6be7f6 Data SPD 2022-09-29 14:45:14 +07:00
Izuddin 1447dfd7d9 Bugs Fix and Update 2022-09-28 22:36:33 +07:00
Pusdatin BPKD Jkt 009002a5e5 Update dan Bugs Fix 2022-09-28 12:53:54 +07:00
Pusdatin BPKD Jkt d7d57eda31 Update dan Bugs Fix 2022-09-23 10:16:56 +07:00
Pusdatin BPKD Jkt dd50cbd5ca Update dan bugs fix 2022-09-22 15:47:17 +07:00
Pusdatin BPKD Jkt c068b0c7fe Maintenance Bugs Fix 2022-09-22 11:38:35 +07:00
Pusdatin BPKD Jkt 2dc724df71 Update dan Bugs Fix 2022-09-21 16:14:15 +07:00
Izuddin a9128b06f6 Update dan Bugs Fix 2022-09-21 05:41:29 +07:00
Pusdatin BPKD Jkt 577fbeef73 Bugs Fix 2022-09-20 09:54:55 +07:00
Izuddin 187f80eb2a Update and Bugs Fix 2022-09-15 21:47:46 +07:00
Pusdatin BPKD Jkt 21d9ce5975 Bugs Fix 2022-09-15 16:14:22 +07:00
Pusdatin BPKD Jkt cbd52e10d5 Update dan Bugs Fix 2022-09-12 15:00:00 +07:00
Pusdatin BPKD Jkt 35b4c72eb3 Update dan Bugs Fix 2022-09-12 11:49:56 +07:00
Izuddin 145f9d4c48 Bugs Fix 2022-09-10 06:48:57 +07:00
Izuddin 7f6cfa41e3 Update 2022-09-10 06:43:52 +07:00
Izuddin 4cde8ab625 update 2022-09-10 04:35:48 +07:00
Pusdatin BPKD Jkt 7052d3debc Update dan Bugs Fix 2022-09-08 16:39:57 +07:00
Pusdatin BPKD Jkt d1b21c5b17 Update dan Bugs Fix 2022-09-08 15:44:36 +07:00
Pusdatin BPKD Jkt d2b925ff83 Bugs Fix 2022-09-07 16:43:27 +07:00
Izuddin aeb14031a4 Update 2022-09-02 15:09:48 +07:00
Izuddin ec1d2eb4ab update 2022-09-02 01:33:18 +07:00
Pusdatin BPKD Jkt 44889232af Update 2022-09-01 16:12:31 +07:00
Pusdatin BPKD Jkt cd762325fc develop 2022-09-01 14:33:22 +07:00
Pusdatin BPKD Jkt 1afbab205a Revisi 2022-09-01 14:21:19 +07:00
Pusdatin BPKD Jkt 6925e57274 Update 2022-09-01 14:15:26 +07:00
Pusdatin BPKD Jkt a1cb5e7b36 Update 2022-09-01 11:05:33 +07:00
Pusdatin BPKD Jkt 4ae7cd52ac Kode ref jenis belanja dan sub jenis belanja 2022-08-31 14:41:06 +07:00
Pusdatin BPKD Jkt 586dcdfaaa Update 2022-08-31 11:36:29 +07:00
Izuddin 4d5dabac96 favicon 2022-08-30 16:46:03 +07:00
Izuddin 0992bf8e3e Update 2022-08-30 13:34:59 +07:00
Izuddin d853d49c8a Realisasi Belanja SPD dan SP2D 2022-08-30 10:45:02 +07:00
Izuddin 5c0adb9c17 Update 2022-08-30 10:31:28 +07:00
Pusdatin BPKD Jkt 34f95b22ef Update upload data dak 2022-08-29 13:53:59 +07:00
Pusdatin BPKD Jkt 779f446924 Maintenance 2022-08-25 16:20:25 +07:00
Pusdatin BPKD Jkt f59361dc71 Maintenance 2022-08-25 11:39:03 +07:00
Pusdatin BPKD Jkt bcd667ae11 Maintenance dan Bugs Fix 2022-08-24 16:21:29 +07:00
Pusdatin BPKD Jkt 52630f99ea Mapping SKPD 2022-08-24 10:50:21 +07:00
Pusdatin BPKD Jkt 3caf4d0ca9 Update 2022-08-23 16:10:15 +07:00
Pusdatin BPKD Jkt 92c24df0f6 Update 2022-08-23 11:51:38 +07:00
Izuddin f4a830593b Maintenance 2022-08-23 00:20:14 +07:00
Pusdatin BPKD Jkt 262a35326a Maintenance Realisasi Belanja 2022-08-22 09:37:48 +07:00
Pusdatin BPKD Jkt d83e63e525 Develop kontrak dan BAST 2022-08-18 15:55:11 +07:00
Pusdatin BPKD Jkt be57454faa Update buat bast 2022-08-15 16:06:28 +07:00
Pusdatin BPKD Jkt 1b69790606 Mapping Rekening DBH dan SKPD 2022-08-15 14:08:16 +07:00
Pusdatin BPKD Jkt a2290c3c7e Mapping Rekening DBH dan SKPD 2022-08-15 12:04:38 +07:00
Pusdatin BPKD Jkt b44e429aaf Update Mapping DBH SKPD 2022-08-12 16:38:39 +07:00
Pusdatin BPKD Jkt 4ef399d7d5 User lock upload data 2022-08-12 11:03:49 +07:00
Pusdatin BPKD Jkt 23300ce262 Update, maintenance dan bugs fix 2022-08-11 16:15:36 +07:00
Pusdatin BPKD Jkt 872674ad93 Update dan Bugs Fix 2022-08-10 16:31:59 +07:00
Pusdatin BPKD Jkt 3bc423dbb4 Update 2022-08-10 14:59:14 +07:00
Pusdatin BPKD Jkt e0ac0bb8db Update 2022-08-09 15:48:49 +07:00
Pusdatin BPKD Jkt 7e9b0e284a Cek 2022-08-08 16:27:33 +07:00
Pusdatin BPKD Jkt 1420e2c508 Cek 2022-08-08 16:16:05 +07:00
Pusdatin BPKD Jkt 3cb0a7bac9 Cek 2022-08-08 16:14:28 +07:00
Pusdatin BPKD Jkt e60baccdaa Url fix 2022-08-08 16:11:56 +07:00
Pusdatin BPKD Jkt 82a5869d1c Url fix 2022-08-08 16:07:59 +07:00
Pusdatin BPKD Jkt 2733073239 Update url 2022-08-08 14:45:12 +07:00
Pusdatin BPKD Jkt 25e52858f8 Update url 2022-08-08 14:41:55 +07:00
Pusdatin BPKD Jkt cd7da3440d Update url 2022-08-08 14:27:57 +07:00
Pusdatin BPKD Jkt 4c306dfe3c Develop production 2022-08-08 14:20:35 +07:00
Pusdatin BPKD Jkt 1e877fa951 Download Jadwal Salur 2022-08-05 11:31:57 +07:00
Pusdatin BPKD Jkt d981418604 Download Jadwal Salur 2022-08-04 16:04:00 +07:00
Pusdatin BPKD Jkt 009a3e913e Data Kontrak 2022-08-03 15:25:50 +07:00
Pusdatin BPKD Jkt 4683420bf9 Update kontrak 2022-08-03 11:45:58 +07:00
Pusdatin BPKD Jkt 5d5d8b2741 Update 2022-08-02 16:36:00 +07:00
Pusdatin BPKD Jkt 77e56cafc9 Maintenance Kontrak 2022-08-01 16:44:30 +07:00
Pusdatin BPKD Jkt 0ad977b335 Update git ignore 2022-08-01 11:36:59 +07:00
Pusdatin BPKD Jkt 842152b856 Maintenance DBH dan DAK 2022-08-01 11:32:08 +07:00
Pusdatin BPKD Jkt 346de23d03 Update 2022-07-29 16:36:46 +07:00
Pusdatin BPKD Jkt 3884b894a7 Jadwal Belanja CHT 2022-07-28 16:34:10 +07:00
Pusdatin BPKD Jkt 919cd46b34 Maintenance dan bugs Fix 2022-07-28 11:36:37 +07:00
Pusdatin BPKD Jkt cf2a0ffdba update 2022-07-27 16:18:01 +07:00
Pusdatin BPKD Jkt 8cc39e02ac AKB dan SPD CHT 2022-07-27 11:42:34 +07:00
Pusdatin BPKD Jkt d8f7d7f0ab Update CHT 2022-07-27 11:29:01 +07:00
Pusdatin BPKD Jkt 85fb4b4779 AKB dan SPD CHT 2022-07-26 16:37:19 +07:00
Pusdatin BPKD Jkt 893fd463c7 Update 2022-07-26 11:30:33 +07:00
Pusdatin BPKD Jkt 23c3bedfcc Update 2022-07-26 09:08:15 +07:00
Pusdatin BPKD Jkt 454a9022ab Develop realisasi belanja 2022-07-25 16:25:51 +07:00
Pusdatin BPKD Jkt f9059ad5d5 bg 2022-07-21 13:42:37 +07:00
Pusdatin BPKD Jkt d57e82196a Notifikasi 2022-07-21 11:23:32 +07:00
Pusdatin BPKD Jkt bd7998178f Develop Notifikasi 2022-07-21 10:51:47 +07:00
Pusdatin BPKD Jkt 170888ba34 user akses 2022-07-20 16:32:39 +07:00
Pusdatin BPKD Jkt 28040765c9 Update apps 2022-07-20 15:12:55 +07:00
Pusdatin BPKD Jkt fd281d9c71 Update master data , login style 2022-07-20 11:35:22 +07:00
Pusdatin BPKD Jkt 42bdb264d1 Update jadwal salur 2022-07-19 16:31:37 +07:00
Pusdatin BPKD Jkt f23fc3ebbd Update 2022-07-19 15:29:34 +07:00
Pusdatin BPKD Jkt 7f9982a4c7 Develop dbh to skpd 2022-07-19 09:54:01 +07:00
Pusdatin BPKD Jkt d05779485b Develop realisasi belanja dbh 2022-07-18 16:38:09 +07:00
Pusdatin BPKD Jkt 3036b133fe Update develop realisasi belanja 2022-07-18 11:33:24 +07:00
Pusdatin BPKD Jkt 62f94b5ab6 Upload Data temp realisasi belanja dbh 2022-07-15 16:41:04 +07:00
Pusdatin BPKD Jkt 97154c1100 Upload file 2022-07-14 16:34:37 +07:00
Pusdatin BPKD Jkt de2966ba09 Develop lagi 2022-07-13 16:15:34 +07:00
Pusdatin BPKD Jkt 26bdde4442 Develop 2022-07-13 15:27:31 +07:00
Pusdatin BPKD Jkt 2624b4e1e6 Develop 2022-07-12 16:28:20 +07:00
Pusdatin BPKD Jkt a4de789b93 Develop 2022-07-11 16:26:39 +07:00
Pusdatin BPKD Jkt b2c962f2b5 Develop Jadwal Salur DBH 2022-07-08 16:34:05 +07:00
Pusdatin BPKD Jkt adf08dbbbf Bugs Fix 2022-07-08 09:17:20 +07:00
Pusdatin BPKD Jkt 886e2d5002 First Commit 2022-07-07 16:29:51 +07:00
izuddin41086 adbe364dc0 Initial commit 2022-07-07 09:25:19 +00:00
9380 changed files with 2014640 additions and 0 deletions
+18
View File
@@ -0,0 +1,18 @@
root = true
[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
indent_style = space
indent_size = 4
trim_trailing_whitespace = true
[*.md]
trim_trailing_whitespace = false
[*.{yml,yaml}]
indent_size = 2
[docker-compose.yml]
indent_size = 4
+76
View File
@@ -0,0 +1,76 @@
APP_NAME=E-SAMASA
APP_ENV=local
APP_KEY=base64:JWoCrp63f8mipgiOWhwpIG+YVpw1Lunn4RZf0mcBWNg=
APP_DEBUG=true
APP_URL=http://localhost
LOG_CHANNEL=stack
LOG_LEVEL=debug
DB_CONNECTION=mysql
_DB_HOST=localhost
_DB_PORT=3306
_DB_DATABASE=skpp
_DB_USERNAME=root
_DB_PASSWORD=root
DB_HOST=10.15.34.148
DB_PORT=3306
DB_DATABASE=e_samasa
DB_USERNAME=aplikasi
DB_PASSWORD=pusdatin
ORA_CONNECTION=oracle
ORA_HOST=10.15.34.45
ORA_PORT=1521
ORA_DATABASE=NEWSIPKD
ORA_USERNAME=proksi
ORA_PASSWORD=123456
ORA_SERVICENAME=sipkd.localdomain
ORA_CONNECTION=oracle2
ORA_HOST=10.15.34.159
ORA_PORT=1521
ORA_DATABASE=BAPEDA_BUDGETING
ORA_USERNAME=dev1
ORA_PASSWORD=dev123
ORA_SERVICENAME=EBUDGETING
SOA_PEGAWAI=https://soadev.jakarta.go.id/rest/gov/dki/simpeg/ws/skpp
SOA_PEGAWAI_USER=sipkddev
SOA_PEGAWAI_PASSWORD=sipkddev!!
BROADCAST_DRIVER=log
CACHE_DRIVER=file
FILESYSTEM_DRIVER=local
QUEUE_CONNECTION=sync
SESSION_DRIVER=file
SESSION_LIFETIME=120
MEMCACHED_HOST=127.0.0.1
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
MAIL_MAILER=smtp
MAIL_HOST=mailhog
MAIL_PORT=1025
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=null
MAIL_FROM_NAME="${APP_NAME}"
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=
AWS_USE_PATH_STYLE_ENDPOINT=false
PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_CLUSTER=mt1
MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
+5
View File
@@ -0,0 +1,5 @@
* text=auto
*.css linguist-vendored
*.scss linguist-vendored
*.js linguist-vendored
CHANGELOG.md export-ignore
+51
View File
@@ -0,0 +1,51 @@
name: CI/CD Pipeline to Rancher - SIDATA
on:
push:
branches:
- main
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v3
# Login ke Registry Gitea Lokal
- name: Log in to Gitea Container Registry
uses: docker/login-action@v2
with:
registry: 10.15.39.187:3000
username: ${{ secrets.REGISTRY_USER }}
password: ${{ secrets.REGISTRY_PASSWORD }}
# Build & Push Image Aplikasi SIDATA ke Registry
- name: Build and Push Docker Image
uses: docker/build-push-action@v4
with:
context: .
push: true
tags: |
10.15.39.187:3000/${{ secrets.REGISTRY_USER }}/sidata:latest
10.15.39.187:3000/${{ secrets.REGISTRY_USER }}/sidata:${{ gitea.sha }}
# Deploy & Update Workload di Cluster Local Rancher BPKD
- name: Deploy to Rancher Cluster
run: |
# Download binary kubectl
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
chmod +x kubectl
# Set Kubeconfig menggunakan API Rancher BPKD
./kubectl config set-cluster rancher-cluster --server=${{ secrets.RANCHER_URL }}/k8s/clusters/${{ secrets.RANCHER_CLUSTER_ID }} --insecure-skip-tls-verify=true
./kubectl config set-credentials rancher-user --token=${{ secrets.RANCHER_TOKEN }}
./kubectl config set-context rancher-context --cluster=rancher-cluster --user=rancher-user
./kubectl config use-context rancher-context
# Update Container Image untuk Workload sidata
# Sesuaikan 'sidata-deployment', 'sidata-container', dan namespace jika berbeda di Rancher
./kubectl set image deployment/sidata-deployment sidata-container=10.15.39.187:3000/${{ secrets.REGISTRY_USER }}/sidata:${{ gitea.sha }} -n sidataprod
# Pantau Status Rollout hingga Sukses
./kubectl rollout status deployment/sidata-deployment -n sidataprod
+27
View File
@@ -0,0 +1,27 @@
name: Docker Test
on:
workflow_dispatch:
jobs:
docker-test:
runs-on: ubuntu-latest
steps:
- name: Check Docker
run: |
docker version
docker info
- name: Test Docker Build
run: |
mkdir test-image
cd test-image
cat > Dockerfile <<'EOF'
FROM alpine:latest
CMD ["echo", "Docker runner works!"]
EOF
docker build -t test-runner:latest .
docker run --rm test-runner:latest
+16
View File
@@ -0,0 +1,16 @@
/node_modules
/public/hot
/public/storage
/public/uploadFiles
/public/downloadFiles
/storage/*.key
.env
.env.backup
.phpunit.result.cache
docker-compose.override.yml
Homestead.json
Homestead.yaml
npm-debug.log
yarn-error.log
/.idea
/.vscode
+16
View File
@@ -0,0 +1,16 @@
/node_modules
/public/hot
/public/storage
/public/uploadFiles
/public/downloadFiles
/storage/*.key
.env
.env.backup
.phpunit.result.cache
docker-compose.override.yml
Homestead.json
Homestead.yaml
npm-debug.log
yarn-error.log
/.idea
/.vscode
+151
View File
@@ -0,0 +1,151 @@
stages:
- build
- deploy
variables:
GIT_STRATEGY: none
IMAGE: 10.15.39.186:8083/eosbpkd/sidata
TAG: $CI_COMMIT_SHORT_SHA
KUBE_NAMESPACE: sidata-prod
HELM_RELEASE: sidata
BUILDAH_ISOLATION: "chroot"
STORAGE_DRIVER: "vfs"
http_proxy: "http://10.15.3.20:80"
https_proxy: "http://10.15.3.20:80"
HTTP_PROXY: "http://10.15.3.20:80"
HTTPS_PROXY: "http://10.15.3.20:80"
no_proxy: "127.0.0.1,localhost,10.15.39.168,10.15.39.186,10.15.39.0/24,10.42.0.0/16,10.43.0.0/16,.jakarta.go.id"
NO_PROXY: "127.0.0.1,localhost,10.15.39.168,10.15.39.186,10.15.39.0/24,10.42.0.0/16,10.43.0.0/16,.jakarta.go.id"
# =========================================================
# BUILD IMAGE VIA BUILDAH
# =========================================================
build:
stage: build
image: 10.15.39.186:8083/buildah:stable
tags:
- skpp
before_script:
- echo '0. FETCHING CODE MANUALLY VIA HTTP WITH CI_JOB_TOKEN'
- git config --global http.sslVerify false
- git clone http://gitlab-ci-token:${CI_JOB_TOKEN}@10.15.39.187/izuddin/sidata.git . || git clone https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.dashboard-bpkd.drc-bpkd.data-center.id/izuddin/sidata.git .
- git checkout $CI_COMMIT_SHA
script:
- echo '1. MENERAPKAN PENGATURAN REGISTRY'
- mkdir -p ~/.config/containers
- |
cat <<EOF > ~/.config/containers/registries.conf
unqualified-search-registries = ["docker.io", "10.15.39.186:8084"]
[[registry]]
location = "10.15.39.186:8083"
insecure = true
[[registry]]
location = "10.15.39.186:8084"
insecure = true
[[registry]]
location = "docker.io"
insecure = false
EOF
- echo '2. LOGIN TO NEXUS REGISTRY'
- echo "$NEXUS_PASSWORD" | buildah login --tls-verify=false -u "$NEXUS_USERNAME" --password-stdin 10.15.39.186:8083
- echo '3. STARTING BUILDAH BUILD'
- buildah bud --tls-verify=false --storage-driver=vfs --isolation=chroot --build-arg http_proxy=$http_proxy --build-arg https_proxy=$https_proxy -t $IMAGE:$TAG -t $IMAGE:latest .
- echo '4. PUSHING TO NEXUS'
- buildah push --tls-verify=false --storage-driver=vfs $IMAGE:$TAG
- buildah push --tls-verify=false --storage-driver=vfs $IMAGE:latest
# =========================================================
# DEPLOY VIA HELM & KUBECTL
# =========================================================
deploy:
stage: deploy
image:
name: alpine/k8s:1.29.1
entrypoint: [""]
tags:
- skpp
before_script:
- echo '0. FETCHING CODE MANUALLY VIA HTTP WITH CI_JOB_TOKEN'
- git config --global http.sslVerify false
- git clone http://gitlab-ci-token:${CI_JOB_TOKEN}@10.15.39.187/izuddin/sidata.git . || git clone https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.dashboard-bpkd.drc-bpkd.data-center.id/izuddin/sidata.git .
- git checkout $CI_COMMIT_SHA
script:
- echo '1. SETUP KUBECONFIG LOKAL & BYPASS PROXY'
- unset http_proxy https_proxy HTTP_PROXY HTTPS_PROXY
- export NO_PROXY="*"
- export no_proxy="*"
- mkdir -p ./kubeconfig-dir
- echo "$KUBECONFIG_B64" | base64 -d > ./kubeconfig-dir/config
- sed -i 's|127.0.0.1|10.15.39.168|g' ./kubeconfig-dir/config
- chmod 600 ./kubeconfig-dir/config
- export KUBECONFIG=$(pwd)/kubeconfig-dir/config
- echo '2. TEST CONNECTION TO RKE2'
- kubectl version --client --server=https://10.15.39.168:6443 --insecure-skip-tls-verify=true
- kubectl get nodes --server=https://10.15.39.168:6443 --insecure-skip-tls-verify=true
- kubectl create namespace $KUBE_NAMESPACE --dry-run=client -o yaml | kubectl apply -f - --server=https://10.15.39.168:6443 --insecure-skip-tls-verify=true
- echo '3. VALIDASI TEMPLATE HELM (DEBUG)'
- helm template $HELM_RELEASE ./helm/sidata --namespace $KUBE_NAMESPACE --debug
- echo '3.5. CLEAN UNMANAGED SERVICE JIKA BENTROK'
- kubectl delete service sidata-service -n $KUBE_NAMESPACE --server=https://10.15.39.168:6443 --insecure-skip-tls-verify=true || true
- echo '4. DEPLOYING APPS VIA HELM'
- |
helm upgrade --install $HELM_RELEASE ./helm/sidata \
--kube-apiserver https://10.15.39.168:6443 \
--kube-insecure-skip-tls-verify \
--namespace $KUBE_NAMESPACE \
--force \
--set image.repository=$IMAGE \
--set image.tag=$TAG \
--set-string podAnnotations.rolloutTimestamp="$(date +%s)" \
--set service.type=NodePort \
--set service.nodePort=32185 \
--set service.name=sidata-service \
--set-string extraEnv.APP_ENV="production" \
--set-string extraEnv.APP_DEBUG="false" \
--set-string extraEnv.FORCE_HTTPS="true" \
--set-string extraEnv.APP_KEY="base64:HiyJqrnWz8zB6WUCXTVb6lZsC3EraX/vFIn66Hx/dVM=" \
--set-string extraEnv.APP_URL="https://sidata.dashboard-bpkd.drc-bpkd.data-center.id" \
--set-string extraEnv.ASSET_URL="https://sidata.dashboard-bpkd.drc-bpkd.data-center.id" \
--set-string extraEnv.SESSION_DRIVER="file" \
--set-string extraEnv.SESSION_SECURE_COOKIE="true"
- echo '5. CHECK REAL NODEPORT STATUS'
- kubectl get svc -n $KUBE_NAMESPACE --server=https://10.15.39.168:6443 --insecure-skip-tls-verify=true
- echo '6. CHECK STATUS ROLLOUT'
- kubectl rollout status deployment/$HELM_RELEASE -n $KUBE_NAMESPACE --timeout=180s --server=https://10.15.39.168:6443 --insecure-skip-tls-verify=true || kubectl rollout status deployment/$HELM_RELEASE-sidata -n $KUBE_NAMESPACE --timeout=180s --server=https://10.15.39.168:6443 --insecure-skip-tls-verify=true
- echo '7. AUTO CLEAR LARAVEL CACHE ON POD'
- |
sleep 5
POD_NAME=$(kubectl get pods -n $KUBE_NAMESPACE -l app=$HELM_RELEASE --field-selector=status.phase=Running --server=https://10.15.39.168:6443 --insecure-skip-tls-verify=true -o jsonpath='{.items[0].metadata.name}' 2>/dev/null || true)
if [ -z "$POD_NAME" ]; then
POD_NAME=$(kubectl get pods -n $KUBE_NAMESPACE -l app.kubernetes.io/instance=$HELM_RELEASE --field-selector=status.phase=Running --server=https://10.15.39.168:6443 --insecure-skip-tls-verify=true -o jsonpath='{.items[0].metadata.name}' 2>/dev/null || true)
fi
if [ -n "$POD_NAME" ]; then
echo "Executing Artisan Clear Cache on Pod: $POD_NAME"
kubectl exec -n $KUBE_NAMESPACE $POD_NAME --server=https://10.15.39.168:6443 --insecure-skip-tls-verify=true -- php artisan config:clear || true
kubectl exec -n $KUBE_NAMESPACE $POD_NAME --server=https://10.15.39.168:6443 --insecure-skip-tls-verify=true -- php artisan route:clear || true
kubectl exec -n $KUBE_NAMESPACE $POD_NAME --server=https://10.15.39.168:6443 --insecure-skip-tls-verify=true -- php artisan cache:clear || true
kubectl exec -n $KUBE_NAMESPACE $POD_NAME --server=https://10.15.39.168:6443 --insecure-skip-tls-verify=true -- php artisan view:clear || true
kubectl exec -n $KUBE_NAMESPACE $POD_NAME --server=https://10.15.39.168:6443 --insecure-skip-tls-verify=true -- php artisan view:cache || true
else
echo "Warning: No running pod found for Artisan commands execution, skipping."
fi
after_script:
- echo "Cleaning up sensitive temporary files..."
- rm -rf ./kubeconfig-dir
+45
View File
@@ -0,0 +1,45 @@
stages:
- build
- deploy
variables:
NEXUS_PUSH_REGISTRY: "10.15.39.186:8082"
IMAGE_NAME: "eosbpkd/sidata"
build_image:
stage: build
image:
name: 10.15.39.186:8082/kaniko-project/executor:debug
entrypoint: [""]
before_script:
- mkdir -p /kaniko/.docker
- AUTH=$(echo -n "$NEXUS_USERNAME:$NEXUS_PASSWORD" | base64 | tr -d '\n')
- echo "{\"auths\":{\"http://$NEXUS_PUSH_REGISTRY\":{\"auth\":\"$AUTH\"}}}" > /kaniko/.docker/config.json
script:
- /kaniko/executor
--context $CI_PROJECT_DIR
--dockerfile $CI_PROJECT_DIR/Dockerfile
--destination $NEXUS_PUSH_REGISTRY/$IMAGE_NAME:$CI_COMMIT_SHA
--destination $NEXUS_PUSH_REGISTRY/$IMAGE_NAME:latest
--insecure
--skip-tls-verify
only:
- main
- master
- fix/sidata-path
deploy_rancher:
stage: deploy
image: 10.15.39.186:8082/library/alpine/helm:3.12.0
script:
- mkdir -p ~/.kube
- echo "$KUBECONFIG_B64" | base64 -d > ~/.kube/config
- chmod 600 ~/.kube/config
- helm upgrade --install sidata ./helm/sidata
--namespace sidata-prod
--set image.repository=$NEXUS_PUSH_REGISTRY/$IMAGE_NAME
--set image.tag=$CI_COMMIT_SHA
only:
- main
- master
- fix/sidata-path
+3
View File
@@ -0,0 +1,3 @@
[submodule "public/gentelella"]
path = public/gentelella
url = https://github.com/ColorlibHQ/gentelella.git
+14
View File
@@ -0,0 +1,14 @@
php:
preset: laravel
version: 8
disabled:
- no_unused_imports
finder:
not-name:
- index.php
- server.php
js:
finder:
not-name:
- webpack.mix.js
css: true
+81
View File
@@ -0,0 +1,81 @@
FROM 10.15.39.186:8083/php74-fpm-oci8-lengkap:1.0
ARG http_proxy
ARG https_proxy
ENV http_proxy=${http_proxy}
ENV https_proxy=${https_proxy}
ENV HTTP_PROXY=${http_proxy}
ENV HTTPS_PROXY=${https_proxy}
# =========================================================
# System dependencies & Extensions
# =========================================================
RUN echo "deb [trusted=yes] http://10.15.39.186:8081/repository/debian-proxy/ bullseye main" > /etc/apt/sources.list \
&& echo "deb [trusted=yes] http://10.15.39.186:8081/repository/debian-proxy/ bullseye-updates main" >> /etc/apt/sources.list \
&& rm -rf /etc/apt/sources.list.d/* \
&& apt-get update \
&& apt-get install -y --no-install-recommends \
nginx \
redis-server \
procps \
vim \
wget \
curl \
libpng-dev \
libjpeg-dev \
libfreetype6-dev \
libzip-dev \
libaio1 \
libaio-dev \
unzip \
&& docker-php-ext-configure gd --with-freetype --with-jpeg \
&& docker-php-ext-install gd pdo pdo_mysql zip \
&& curl --noproxy "*" -fsSL http://10.15.39.186:8081/repository/raw-assets/storage/app/uploads/redis-5.3.7.tgz -o redis.tgz \
&& pecl install redis.tgz \
&& docker-php-ext-enable redis \
&& rm -f redis.tgz \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /var/www/html
# Salin source code aplikasi
COPY . /var/www/html
# Buat file .env dari .env.example jika .env belum ada di repositori
RUN if [ ! -f .env ]; then \
if [ -f .env.example ]; then \
cp .env.example .env; \
else \
echo "APP_NAME=Sidata\nAPP_ENV=production\nAPP_KEY=\nAPP_DEBUG=true\nAPP_URL=https://dashboard-bpkd.drc-bpkd.data-center.id/sidata" > .env; \
fi \
fi
# Atur hak akses folder web, storage, dan cache Laravel
RUN chown -R www-data:www-data /var/www/html \
&& chmod -R 775 /var/www/html/storage \
&& chmod -R 775 /var/www/html/bootstrap/cache
# Konfigurasi Nginx Standar Laravel (Merespons di Root /)
RUN echo 'server { \
listen 80; \
index index.php index.html; \
root /var/www/html/public; \
\
location / { \
try_files $uri $uri/ /index.php?$query_string; \
} \
\
location ~ \.php$ { \
fastcgi_pass 127.0.0.1:9000; \
fastcgi_index index.php; \
include fastcgi_params; \
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; \
} \
}' > /etc/nginx/sites-available/default
EXPOSE 80
# Script startup: Buat .env dari variabel environment Helm, lalu jalankan service
CMD ["sh", "-c", "env | grep -E '^(APP_|DB_|MYSQL_|ORA_|REDIS_|MAIL_|SESSION_|SOA_)' > /var/www/html/.env && redis-server --daemonize yes && php-fpm -D && exec nginx -g 'daemon off;'"]
+151
View File
@@ -0,0 +1,151 @@
# =========================================================
# APPLICATION STAGE
# Laravel + PHP 7.4 + OCI8 + Nginx
# =========================================================
FROM 10.15.39.186:8083/php74-fpm-oci8-lengkap:1.0
# =========================================================
# Proxy
# =========================================================
ARG http_proxy
ARG https_proxy
ENV http_proxy=${http_proxy}
ENV https_proxy=${https_proxy}
ENV HTTP_PROXY=${http_proxy}
ENV HTTPS_PROXY=${https_proxy}
# =========================================================
# System dependencies & Extensions
# =========================================================
RUN echo "deb [trusted=yes] http://10.15.39.186:8081/repository/debian-proxy/ bullseye main" > /etc/apt/sources.list \
&& echo "deb [trusted=yes] http://10.15.39.186:8081/repository/debian-proxy/ bullseye-updates main" >> /etc/apt/sources.list \
&& rm -rf /etc/apt/sources.list.d/* \
&& apt-get update \
&& apt-get install -y --no-install-recommends \
nginx \
vim \
wget \
curl \
libpng-dev \
libjpeg-dev \
libfreetype6-dev \
libzip-dev \
libaio1 \
libaio-dev \
unzip \
&& docker-php-ext-configure gd --with-freetype --with-jpeg \
&& docker-php-ext-install gd pdo pdo_mysql zip \
&& curl --noproxy "*" -fsSL http://10.15.39.186:8081/repository/raw-assets/storage/app/uploads/redis-5.3.7.tgz -o redis.tgz \
&& pecl install redis.tgz \
&& docker-php-ext-enable redis \
&& rm -f redis.tgz \
&& rm -rf /var/lib/apt/lists/*
# =========================================================
# PEAR Proxy (jika diperlukan)
# =========================================================
RUN pear config-set http_proxy "http://10.15.3.20:80" || true
# =========================================================
# Composer setup & Caching Layer
# =========================================================
WORKDIR /var/www
# Copy composer files terlebih dahulu agar Docker Caching layer aktif
COPY composer.json composer.lock ./
RUN composer install \
--no-dev \
--prefer-dist \
--no-interaction \
--no-scripts \
--optimize-autoloader
# Copy seluruh source code project
COPY --chown=www-data:www-data . .
# =========================================================
# Laravel directories & permission
# =========================================================
RUN mkdir -p \
/var/www/storage/framework/sessions \
/var/www/storage/framework/views \
/var/www/storage/framework/cache \
/var/www/storage/logs \
/var/www/bootstrap/cache \
&& touch /var/www/storage/logs/laravel.log \
&& chown -R www-data:www-data /var/www \
&& chmod -R 775 /var/www/storage \
&& chmod -R 775 /var/www/bootstrap/cache
# =========================================================
# Laravel cache cleanup
# =========================================================
RUN php artisan config:clear || true \
&& php artisan cache:clear || true \
&& php artisan view:clear || true
# =========================================================
# Nginx configuration
# =========================================================
RUN rm -f /etc/nginx/sites-enabled/default \
&& rm -f /etc/nginx/sites-available/default
RUN printf '%s\n' \
'server {' \
' listen 80;' \
' server_name _;' \
'' \
' root /var/www/public;' \
' index index.php index.html;' \
'' \
' access_log /var/log/nginx/access.log;' \
' error_log /var/log/nginx/error.log;' \
'' \
' location / {' \
' try_files $uri $uri/ /index.php?$query_string;' \
' }' \
'' \
' location ~ \.php$ {' \
' try_files $uri =404;' \
' include fastcgi_params;' \
' fastcgi_pass 127.0.0.1:9000;' \
' fastcgi_index index.php;' \
' fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;' \
' fastcgi_param PATH_INFO $fastcgi_path_info;' \
' }' \
'' \
' location ~ /\.ht {' \
' deny all;' \
' }' \
'}' \
> /etc/nginx/sites-available/default
RUN ln -sf /etc/nginx/sites-available/default \
/etc/nginx/sites-enabled/default
# =========================================================
# Clear Proxy Environment Variables from Runtime
# =========================================================
ENV http_proxy=""
ENV https_proxy=""
ENV HTTP_PROXY=""
ENV HTTPS_PROXY=""
# =========================================================
# Execution
# =========================================================
EXPOSE 80
CMD ["sh", "-c", "php-fpm -D && exec nginx -g 'daemon off;'"]
+1
View File
@@ -0,0 +1 @@
# SIDATA Project
+41
View File
@@ -0,0 +1,41 @@
<?php
namespace App\Console;
use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
class Kernel extends ConsoleKernel
{
/**
* The Artisan commands provided by your application.
*
* @var array
*/
protected $commands = [
//
];
/**
* Define the application's command schedule.
*
* @param \Illuminate\Console\Scheduling\Schedule $schedule
* @return void
*/
protected function schedule(Schedule $schedule)
{
// $schedule->command('inspire')->hourly();
}
/**
* Register the commands for the application.
*
* @return void
*/
protected function commands()
{
$this->load(__DIR__.'/Commands');
require base_path('routes/console.php');
}
}
+41
View File
@@ -0,0 +1,41 @@
<?php
namespace App\Exceptions;
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
use Throwable;
class Handler extends ExceptionHandler
{
/**
* A list of the exception types that are not reported.
*
* @var array
*/
protected $dontReport = [
//
];
/**
* A list of the inputs that are never flashed for validation exceptions.
*
* @var array
*/
protected $dontFlash = [
'current_password',
'password',
'password_confirmation',
];
/**
* Register the exception handling callbacks for the application.
*
* @return void
*/
public function register()
{
$this->reportable(function (Throwable $e) {
//
});
}
}
+137
View File
@@ -0,0 +1,137 @@
<?php
namespace App\Exports;
use App\Models\VwSkppHst;
use Maatwebsite\Excel\Concerns\FromQuery;
use Maatwebsite\Excel\Concerns\Exportable;
use Maatwebsite\Excel\Concerns\WithMapping;
use Maatwebsite\Excel\Concerns\WithHeadings;
class JadwalSalurExport implements FromQuery, WithMapping, WithHeadings
{
use Exportable;
public function __construct($ta)
{
$this->ta = $ta;
return $this;
}
public function query()
{
$sqlStr = 'SELECT kode_rekening,nama_rekening,spsbulan1,spsbulan2,spsbulan3,spsbulan4,
spsbulan5,spsbulan6,spsbulan7,spsbulan8,spsbulan9,spsbulan10,spsbulan11,spsbulan12,
SUBSTR(KODE_REKENING,1,12) AS kodegrup,SUBSTR(KODE_REKENING,1,9) AS groupall,
NVL("1",0) AS "REAL1",NVL("2",0) AS "REAL2",NVL("3",0) AS "REAL3",
NVL("4",0) AS "REAL4",NVL("5",0) AS "REAL5",NVL("6",0) AS "REAL6",
NVL("7",0) AS "REAL7",NVL("8",0) AS "REAL8",NVL("9",0) AS "REAL9",
NVL("10",0) AS "REAL10",NVL("11",0) AS "REAL11",NVL("12",0) AS "REAL12"
FROM PROKSI.SPS_PENDAPATAN x
LEFT JOIN
(
SELECT * FROM (
SELECT ID_SPS,extract(month from RKUD_TGL) AS BULAN,RKUD_JUMLAH
FROM PENDAPATAN_REALISASI
WHERE TAHUN=\''.$this->ta.'\'
)
PIVOT
(
SUM(RKUD_JUMLAH)
FOR BULAN IN(1,2,3,4,5,6,7,8,9,10,11,12)
)
)y ON x.ID = y.ID_SPS
WHERE x.TAHUN = '.$this->ta.' AND x.SKPD_ID=980 AND SUBSTR(x.KODE_REKENING,1,3)=\'4.2\'';
return $sqlStr;
}
public function columnFormats(): array
{
return [
'B' => NumberFormat::FORMAT_TEXT,
];
}
public function map($skpp_hst): array
{
return [
$skpp_hst->no_skpp,
"'".$skpp_hst->nip,
$skpp_hst->nrk,
$skpp_hst->nama,
$skpp_hst->nama_golongan,
$skpp_hst->status_pegawai,
$skpp_hst->tugas,
$skpp_hst->dinas,
$skpp_hst->tgl_akhir,
$skpp_hst->nama_hak,
$skpp_hst->nama_keputusan,
$skpp_hst->no_pen,
$skpp_hst->tgl_pen,
$skpp_hst->tgl_tmt,
$skpp_hst->ga_pok,
$skpp_hst->t_issum,
$skpp_hst->t_anak,
$skpp_hst->t_lain,
$skpp_hst->t_jab,
$skpp_hst->t_beras,
$skpp_hst->tpph,
$skpp_hst->bulat,
$skpp_hst->p_beras,
$skpp_hst->iuran,
$skpp_hst->ppph,
$skpp_hst->lain_2,
$skpp_hst->nama_kantor,
$skpp_hst->wilayah_kantor,
$skpp_hst->tgl_cetak,
$skpp_hst->keterangan,
$skpp_hst->nama_kantor1,
$skpp_hst->nama_kantor2,
$skpp_hst->wilayah,
$skpp_hst->revisi_remarks,
date("Y-m-d",strtotime($skpp_hst->created_at)),
];
}
public function headings(): array
{
return [
"No SKPP",
"NIP",
"NRK",
"Nama",
"Golongan",
"Status Pegawai",
"Tugas",
"Dinas",
"Tgl akhir",
"Hak",
"Keputusan",
"No Keputusan",
"Tgl Keputusan",
"Tgl TMT",
"Gaji Pokok",
"Tunjangan Suami Istri",
"Tunjangan Anak",
"Tunjangan Lain",
"Tunjangan Jabatan",
"Tunjangan Beras",
"Tunjangan PPH",
"Pembulatan",
"Potongan Beras",
"Iuran",
"Potongan PPH",
"lain - Lain",
"Kantor",
"Wilayah",
"Tgl Cetak",
"Pindah Tugas Kantor 1",
"Pindah Tugas Kantor 2",
"Pindah Tugas Wilayah",
"Keterangan",
"revisi_remarks",
"Tgl Dibuat",
];
}
}
+114
View File
@@ -0,0 +1,114 @@
<?php
namespace App\Exports;
use App\Models\VwSkppHst;
use Maatwebsite\Excel\Concerns\FromQuery;
use Maatwebsite\Excel\Concerns\Exportable;
use Maatwebsite\Excel\Concerns\WithMapping;
use Maatwebsite\Excel\Concerns\WithHeadings;
class SkppHstExport implements FromQuery, WithMapping, WithHeadings
{
use Exportable;
public function __construct(int $skppId)
{
$this->skpp_id = $skppId;
return $this;
}
public function query()
{
return VwSkppHst::query()->where("tx_skpp_id", $this->skpp_id);
}
public function columnFormats(): array
{
return [
'B' => NumberFormat::FORMAT_TEXT,
];
}
public function map($skpp_hst): array
{
return [
$skpp_hst->no_skpp,
"'".$skpp_hst->nip,
$skpp_hst->nrk,
$skpp_hst->nama,
$skpp_hst->nama_golongan,
$skpp_hst->status_pegawai,
$skpp_hst->tugas,
$skpp_hst->dinas,
$skpp_hst->tgl_akhir,
$skpp_hst->nama_hak,
$skpp_hst->nama_keputusan,
$skpp_hst->no_pen,
$skpp_hst->tgl_pen,
$skpp_hst->tgl_tmt,
$skpp_hst->ga_pok,
$skpp_hst->t_issum,
$skpp_hst->t_anak,
$skpp_hst->t_lain,
$skpp_hst->t_jab,
$skpp_hst->t_beras,
$skpp_hst->tpph,
$skpp_hst->bulat,
$skpp_hst->p_beras,
$skpp_hst->iuran,
$skpp_hst->ppph,
$skpp_hst->lain_2,
$skpp_hst->nama_kantor,
$skpp_hst->wilayah_kantor,
$skpp_hst->tgl_cetak,
$skpp_hst->keterangan,
$skpp_hst->nama_kantor1,
$skpp_hst->nama_kantor2,
$skpp_hst->wilayah,
$skpp_hst->revisi_remarks,
date("Y-m-d",strtotime($skpp_hst->created_at)),
];
}
public function headings(): array
{
return [
"No SKPP",
"NIP",
"NRK",
"Nama",
"Golongan",
"Status Pegawai",
"Tugas",
"Dinas",
"Tgl akhir",
"Hak",
"Keputusan",
"No Keputusan",
"Tgl Keputusan",
"Tgl TMT",
"Gaji Pokok",
"Tunjangan Suami Istri",
"Tunjangan Anak",
"Tunjangan Lain",
"Tunjangan Jabatan",
"Tunjangan Beras",
"Tunjangan PPH",
"Pembulatan",
"Potongan Beras",
"Iuran",
"Potongan PPH",
"lain - Lain",
"Kantor",
"Wilayah",
"Tgl Cetak",
"Pindah Tugas Kantor 1",
"Pindah Tugas Kantor 2",
"Pindah Tugas Wilayah",
"Keterangan",
"revisi_remarks",
"Tgl Dibuat",
];
}
}
@@ -0,0 +1,127 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Models\MappingDbhSkpd;
use App\Models\Sps_pendapatan;
use App\Models\AkbPendapatan;
use App\Models\VwRekeningPendapatan;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
class MappingDbhSkpdController extends Controller
{
public function __construct(){
$this->siteTitle = "Data Mapping Rekening SKPD";
parent::__construct();
}
public function index()
{
$data = null;
// $data = User::where('role_name', "<>", "superadmin")->latest()->paginate(10);
return view('admin.mapping_dbh_skpd.index',compact('data'))
->with('i', (request()->input('page', 1) - 1) * 10);
}
public function create()
{
$this->setSubtitle("Tambah Data");
return view('admin.mapping_dbh_skpd.create');
}
public function store(Request $request)
{
$request->validate([
'id_rekening' => 'required',
// 'tahun' => 'required',
'kode_rekening' => 'required',
//'txt_id_skpd'=>'required'
]);
$req = $request->all();
MappingDbhSkpd::where("kode_rekening", $req["kode_rekening"])->delete();
if (isset($req["txt_id_skpd"])){
foreach($req["txt_id_skpd"] as $row_req)
{
$data["id_rekening"] = $req["id_rekening"];
// $data["tahun"] = $req["tahun"];
$data["kode_rekening"] = $req["kode_rekening"];
$data["kode_skpd"] = $row_req;
MappingDbhSkpd::create($data);
}
}
return redirect("/admin/MappingDbhSkpd")->with('success','Mapping Rekening DBH/DAK ke SKPD berhasil dibuat!');
}
public function show($MappingDbhSkpd)
{
$sps = VwRekeningPendapatan::where("id",$MappingDbhSkpd)->firstorNew();
$mappingSKPD = DB::select(DB::raw("SELECT x.*,y.N_OPD FROM MAPPING_DBH_SKPD x
LEFT JOIN NEWSIPKD.TROPD y ON x.KODE_SKPD = y.C_OPD WHERE x.id_rekening = $MappingDbhSkpd"));
// MappingDbhSkpd::where("id_sps",$MappingDbhSkpd)->get();
$this->setSubtitle("Detail Data Mapping");
return view('admin.mapping_dbh_skpd.show',compact('mappingSKPD','sps'));
}
public function edit(User $user)
{
$this->setSubtitle("Ubah Data");
return view('admin.mapping_dbh_skpd.edit',compact('user'));
}
public function update(Request $request, User $user)
{
$request->validate([
'name' => 'required',
'opt_role' => 'required'
]);
$requestAll = $request->all();
$requestAll["role_name"] = $requestAll["opt_role"];
$user->update($requestAll);
$user->roles()->detach();
// $user->removeRole($requestAll["opt_role"]);
$user->assignRole($requestAll["opt_role"]);
return redirect()->route('users.index')
->with('success','Mapping berhasil diubah!');
}
public function destroy(User $user)
{
$user->delete();
return redirect()->route('users.index')
->with('success','Mapping berhasil dihapus!');
}
public function datatable(Request $request)
{
$post = $request->all();
$offset = $post["start"];
$limit = $post["length"];
$src = isset($post["search"]["value"]) ? strtolower($post["search"]["value"]):"";
$srcTA = $post["srcTA"];
$select = DB::raw("ID, KODE_REKENING, NAMA_REKENING");
$sqlstr = VwRekeningPendapatan::select($select);
$sqlstr->whereRaw("TAHUN_BERLAKU<=".getTA()." AND TAHUN_BERAKHIR>=".getTA());
$dataTotal = $sqlstr->count();
$data = $sqlstr->orderBy("KODE_REKENING");
if (!empty($src)){
$data->whereRaw(" ( lower(KODE_REKENING) like '%$src%' OR lower(NAMA_REKENING) like '%$src%' ) ");
}
$dataFilter = $data->count();
return response()->json([
"recordsTotal" => $dataTotal,
"recordsFiltered" => $dataFilter,
"data"=> $data->skip($offset)->take($limit)->get()
]);
}
}
@@ -0,0 +1,108 @@
<?php
namespace App\Http\Controllers\Admin;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Models\MstDauRinci;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
class MstDauRinciController extends Controller
{
public function __construct(){
$this->siteTitle = "Master DAU Rinci";
parent::__construct();
}
public function index()
{
$data = null;
// $data = User::where('role_name', "<>", "superadmin")->latest()->paginate(10);
return view('admin.mst_dau_rinci.index',compact('data'))
->with('i', (request()->input('page', 1) - 1) * 10);
}
public function create()
{
$this->setSubtitle("Tambah Data");
return view('admin.mst_dau_rinci.create');
}
public function store(Request $request)
{
$request->validate([
'name' => 'required',
'grup' => 'required',
'satuan' => 'required',
]);
$req = $request->all();
MstDauRinci::where("name", $req["name"])->delete();
$data["name"] = $req["name"];
$data["grup"] = $req["grup"];
$data["satuan"] = $req["satuan"];
MstDauRinci::create($data);
return redirect("/admin/MstDauRinci")->with('success','Data Perincian DAU berhasil dibuat.');
}
public function show(MstDauRinci $MstDauRinci)
{
$this->setSubtitle("Detail DAU Rinci");
return view('admin.mst_dau_rinci.show',compact('MstDauRinci'));
}
public function edit(MstDauRinci $MstDauRinci)
{
$this->setSubtitle("Ubah Data");
return view('admin.mst_dau_rinci.edit',compact('MstDauRinci'));
}
public function update(Request $request, MstDauRinci $MstDauRinci)
{
$request->validate([
'grup' => 'required',
'name' => 'required',
'satuan' => 'required',
]);
$req = $request->all();
$data["grup"] = $req["grup"];
$data["name"] = $req["name"];
$data["satuan"] = $req["satuan"];
$MstDauRinci->update($req);
return redirect()->route('MstDauRinci.index')
->with('success','Data Perincian DAU berhasil diubah!');
}
public function destroy(MstDauRinci $MstDauRinci)
{
$MstDauRinci->delete();
return redirect()->route('MstDauRinci.index')
->with('success','Data Perincian DAU berhasil dihapus!');
}
public function datatable(Request $request)
{
$post = $request->all();
$offset = $post["start"];
$limit = $post["length"];
$src = isset($post["search"]["value"]) ? strtolower($post["search"]["value"]):"";
$select = DB::raw("ID,NAME,GRUP,SATUAN");
$sqlstr = MstDauRinci::select($select);
$dataTotal = $sqlstr->count();
$data = $sqlstr->orderBy("GRUP","DESC");
if (!empty($src)){
$data->whereRaw(" ( lower(NAME) like '%$src%' ) ");
}
$dataFilter = $data->count();
return response()->json([
"recordsTotal" => $dataTotal,
"recordsFiltered" => $dataFilter,
"data"=> $data->skip($offset)->take($limit)->get()
]);
}
}
@@ -0,0 +1,114 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Models\MstJenisBelanja;
use App\Models\MstSubJenisBelanja;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
class MstJenisBelanjaController extends Controller
{
public function __construct(){
$this->siteTitle = "Master Jenis Belanja";
parent::__construct();
}
public function index()
{
$data = null;
// $data = User::where('role_name', "<>", "superadmin")->latest()->paginate(10);
return view('admin.mst_jenis_belanja.index',compact('data'))
->with('i', (request()->input('page', 1) - 1) * 10);
}
public function create()
{
$this->setSubtitle("Tambah Data");
return view('admin.mst_jenis_belanja.create');
}
public function store(Request $request)
{
$request->validate([
'grup' => 'required',
//'kode' => 'required',
'name' => 'required',
]);
$req = $request->all();
MstJenisBelanja::where("name", $req["name"])->where("grup", $req["grup"])->delete();
$data["grup"] = $req["grup"];
$data["kode"] = $req["kode"];
$data["name"] = $req["name"];
$data["description"] = $req["description"];
MstJenisBelanja::create($data);
return redirect("/admin/MstJenisBelanja")->with('success','Jenis Belanja berhasil dibuat.');
}
public function show(MstJenisBelanja $MstJenisBelanja)
{
$SubJenisBelanja = MstSubJenisBelanja::where("id_jenis_belanja",$MstJenisBelanja->id)->get();
$this->setSubtitle("Detail Jenis Belanja");
return view('admin.mst_jenis_belanja.show',compact('MstJenisBelanja','SubJenisBelanja'));
}
public function edit(MstJenisBelanja $MstJenisBelanja)
{
$this->setSubtitle("Ubah Data");
return view('admin.mst_jenis_belanja.edit',compact('MstJenisBelanja'));
}
public function update(Request $request, MstJenisBelanja $MstJenisBelanja)
{
$request->validate([
'grup' => 'required',
//'kode' => 'required',
'name' => 'required',
]);
$req = $request->all();
$data["grup"] = $req["grup"];
$data["kode"] = $req["kode"];
$data["name"] = $req["name"];
$data["description"] = $req["description"];
$MstJenisBelanja->update($req);
return redirect()->route('MstJenisBelanja.index')
->with('success','Data Jenis Belanja berhasil diubah!');
}
public function destroy(MstJenisBelanja $MstJenisBelanja)
{
MstSubJenisBelanja::where("id_jenis_belanja",$MstJenisBelanja->id)->delete();
$MstJenisBelanja->delete();
return redirect()->route('MstJenisBelanja.index')
->with('success','Data Jenis Belanja berhasil dihapus!');
}
public function datatable(Request $request)
{
$post = $request->all();
$offset = $post["start"];
$limit = $post["length"];
$src = isset($post["search"]["value"]) ? strtolower($post["search"]["value"]):"";
$select = DB::raw("ID,GRUP,KODE,NAME,DESCRIPTION");
$sqlstr = MstJenisBelanja::select($select);
$dataTotal = $sqlstr->count();
$data = $sqlstr->orderBy("ID");
if (!empty($src)){
$data->whereRaw(" ( lower(NAME) like '%$src%' OR lower(DESCRIPTION) like '%$src%' ) ");
}
$dataFilter = $data->count();
return response()->json([
"recordsTotal" => $dataTotal,
"recordsFiltered" => $dataFilter,
"data"=> $data->skip($offset)->take($limit)->get()
]);
}
}
@@ -0,0 +1,105 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Models\MstJenisDana;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
class MstJenisDanaController extends Controller
{
public function __construct(){
$this->siteTitle = "Master Jenis Dana";
parent::__construct();
}
public function index()
{
$data = null;
// $data = User::where('role_name', "<>", "superadmin")->latest()->paginate(10);
return view('admin.mst_jenis_dana.index',compact('data'))
->with('i', (request()->input('page', 1) - 1) * 10);
}
public function create()
{
$this->setSubtitle("Tambah Data");
return view('admin.mst_jenis_dana.create');
}
public function store(Request $request)
{
$request->validate([
'name' => 'required',
'grup' => 'required',
]);
$req = $request->all();
MstJenisDana::where("name", $req["name"])->delete();
$data["name"] = $req["name"];
$data["grup"] = $req["grup"];
MstJenisDana::create($data);
return redirect("/admin/MstJenisDana")->with('success','Jenis Belanja berhasil dibuat.');
}
public function show(MstJenisDana $MstJenisDana)
{
$SubJenisBelanja = MstSubJenisBelanja::where("id_jenis_belanja",$MstJenisDana->id)->get();
$this->setSubtitle("Detail Jenis Belanja");
return view('admin.mst_jenis_dana.show',compact('MstJenisDana','SubJenisBelanja'));
}
public function edit(MstJenisDana $MstJenisDana)
{
$this->setSubtitle("Ubah Data");
return view('admin.mst_jenis_dana.edit',compact('MstJenisDana'));
}
public function update(Request $request, MstJenisDana $MstJenisDana)
{
$request->validate([
'grup' => 'required',
'name' => 'required',
]);
$req = $request->all();
$data["grup"] = $req["grup"];
$data["name"] = $req["name"];
$MstJenisDana->update($req);
return redirect()->route('MstJenisDana.index')
->with('success','Data Jenis Dana berhasil diubah!');
}
public function destroy(MstJenisDana $MstJenisDana)
{
$MstJenisDana->delete();
return redirect()->route('MstJenisDana.index')
->with('success','Data Jenis Dana berhasil dihapus!');
}
public function datatable(Request $request)
{
$post = $request->all();
$offset = $post["start"];
$limit = $post["length"];
$src = isset($post["search"]["value"]) ? strtolower($post["search"]["value"]):"";
$select = DB::raw("ID,NAME,GRUP");
$sqlstr = MstJenisDana::select($select);
$dataTotal = $sqlstr->count();
$data = $sqlstr->orderBy("ID","ASC");
if (!empty($src)){
$data->whereRaw(" ( lower(NAME) like '%$src%' ) ");
}
$dataFilter = $data->count();
return response()->json([
"recordsTotal" => $dataTotal,
"recordsFiltered" => $dataFilter,
"data"=> $data->skip($offset)->take($limit)->get()
]);
}
}
@@ -0,0 +1,276 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Models\User;
use App\Models\Role;
use App\Models\Pengaturan;
use App\Models\Roless;
use App\Models\RoleUser;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Auth;
use Str;
use Hash;
use illuminate\Support\Facades\DB;
use PhpParser\Node\Expr\Exit_;
class MstPenggunaController extends Controller
{
public function __construct()
{
$this->siteTitle = "Data Pengguna";
parent::__construct();
}
public function index()
{
$data = null;
// $data = User::where('role_name', "<>", "superadmin")->latest()->paginate(10);
$pengaturan = Pengaturan::where("id", 1)->first();
return view('admin.mst_pengguna.index', compact('data', 'pengaturan'))
->with('i', (request()->input('page', 1) - 1) * 10);
}
public function create()
{
$this->setSubtitle("Tambah Data");
return view('admin.mst_pengguna.create');
}
public function store(Request $request)
{
$request->validate([
'name' => 'required',
'nrk' => 'required',
'password' => 'required',
'opt_role' => 'required'
]);
$requestAll = $request->all();
$requestAll["password"] = \Hash::make($requestAll["password"]);
$requestAll["role_name"] = $requestAll["opt_role"];
// $requestAll["wilayah"] = $requestAll["wilayah"];
$user = User::create($requestAll);
$user->roles()->detach();
//$user->removeRole($requestAll["opt_role"]);
$user->assignRole($requestAll["opt_role"]);
app()->make(\Spatie\Permission\PermissionRegistrar::class)->forgetCachedPermissions();
return redirect()->route('users.index')
->with('success', 'User berhasil dibuat.');
}
public function show(User $user)
{
$user = User::with("roleUser.role")->where("id", $user->id)->first();
$this->setSubtitle("Detail Data");
return view('admin.mst_pengguna.show', compact('user'));
}
public function edit(User $user)
{
$this->setSubtitle("Ubah Data");
$baseUrl = url('/admin/users');
return view('admin.mst_pengguna.edit', compact('user'));
}
public function update(Request $request, User $user)
{
$request->validate([
'name' => 'required',
'opt_role' => 'required',
// 'wilayah' => 'required',
]);
$requestAll = $request->all();
$requestAll["role_name"] = $requestAll["opt_role"];
$requestAll["wilayah"] = $requestAll["wilayah"];
//$sqlStr = " WHERE tahun_anggaran = " . getTA();
$user->update($requestAll);
$user->roles()->detach();
// $user->removeRole($requestAll["opt_role"]);
$user->assignRole($requestAll["opt_role"]);
app()->make(\Spatie\Permission\PermissionRegistrar::class)->forgetCachedPermissions();
return redirect()->route('users.index')
->with('success', 'User berhasil diubah!');
}
public function destroy(User $user)
{
$user->delete();
return redirect()->route('users.index')
->with('success', 'User berhasil dihapus!');
}
public function roleList()
{
$mstRole = Roless::where("name", "<>", "superadmin")->select(["name", "name"])->get();
return response()->json($mstRole);
}
public function changePass()
{
return view('admin.mst_pengguna.change_password');
}
public function changePassSubmit(Request $request, $userId)
{
$request->validate([
'old_password' => 'required',
'new_password' => 'required',
]);
$requestAll = $request->all();
$cekUser = User::find($userId);
if (\Hash::check($requestAll["old_password"], $cekUser->password)) {
User::where("id", $userId)->update(["password" => \Hash::make($requestAll["new_password"])]);
return redirect()->route('home')
->with('success', 'Kata sandi pengguna berhasil diubah!');
} else {
return redirect()->route('home')
->with('error', 'Kata sandi gagal diubah!, Kata sandi lama salah!');
}
}
public function datatable(Request $request)
{
$post = $request->all();
$offset = $post["start"];
$limit = $post["length"];
$src = isset($post["search"]["value"]) ? strtolower($post["search"]["value"]) : "";
$sqlstr = User::where('role_name', "<>", "superadmin");
$dataTotal = $sqlstr->count();
$data = $sqlstr->orderBy("role_name");
if (!empty($src)) {
$data->whereRaw(" ( lower(name) like '%$src%' OR lower(nrk) like '%$src%' ) ");
}
$dataFilter = $data->count();
return response()->json([
"recordsTotal" => $dataTotal,
"recordsFiltered" => $dataFilter,
"data" => $data->skip($offset)->take($limit)->get()
]);
}
public function lockUploadData($userId = "", $reset = 0, Request $req)
{
$updateValue = [
"is_lock_upload" => $reset == 0 ? 1 : 0,
"lock_upload_time" => date("Y-m-d H:i"),
"lock_upload_by" => Auth::user()->id
];
if (empty($userId)) {
User::query()->update($updateValue);
} else {
User::where(["id" => $userId])->update($updateValue);
}
return redirect()->route('users.index')
->with('success', 'Lock upload data sudah diubah!');
}
public function lockTambahData($userId = "", $reset = 0, $check = 0, Request $req)
{
$updateValue = [
"lock_tambah_data" => $reset == 0 ? 1 : 0,
"lock_upload_by" => Auth::user()->id
];
if (empty($userId)) {
if ($check == 2) {
$updateValue = [
"lock_tambah_data" => 0,
];
Pengaturan::where("id", 1)->update(["check_all_tambah" => 0]);
} else {
Pengaturan::where("id", 1)->update(["check_all_tambah" => 1]);
}
User::query()->update($updateValue);
} else {
User::where(["id" => $userId])->update($updateValue);
}
return redirect()->route('users.index')
->with('success', 'Lock Tambah data sudah diubah!');
}
public function lockUbahData($userId = "", $reset = 0, $check = 0, Request $req)
{
$updateValue = [
"lock_ubah_data" => $reset == 0 ? 1 : 0,
"lock_upload_by" => Auth::user()->id
];
if (empty($userId)) {
if ($check == 2) {
$updateValue = [
"lock_ubah_data" => 0,
];
Pengaturan::where("id", 1)->update(["check_all_ubah" => 0]);
} else {
Pengaturan::where("id", 1)->update(["check_all_ubah" => 1]);
}
User::query()->update($updateValue);
} else {
User::where(["id" => $userId])->update($updateValue);
}
return redirect()->route('users.index')
->with('success', 'Lock Ubah data sudah diubah!');
}
public function lockHapusData($userId = "", $reset = 0, $check = 0, Request $req)
{
$updateValue = [
"lock_hapus_data" => $reset == 0 ? 1 : 0,
"lock_upload_by" => Auth::user()->id
];
if (empty($userId)) {
if ($check == 2) {
$updateValue = [
"lock_hapus_data" => 0,
];
Pengaturan::where("id", 1)->update(["check_all_hapus" => 0]);
} else {
Pengaturan::where("id", 1)->update(["check_all_hapus" => 1]);
}
User::query()->update($updateValue);
} else {
User::where(["id" => $userId])->update($updateValue);
}
return redirect()->route('users.index')
->with('success', 'Lock Hapus data sudah diubah!');
}
public function resetPass(User $user)
{
$random = Str::random(8);
$updateValue = [
"f_locked" => null,
// "recovery_password" => $random,
"password" => Hash::make($user->nrk),
"password_changed" => null,
"first_login" => date("Y-m-d H:i")
];
$user->update($updateValue);
return redirect()->route('users.index')
->with('success', 'Kata sandi sudah direset!');
}
}
@@ -0,0 +1,100 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Models\UnitSatuan as MstSatuan;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
class MstSatuanController extends Controller
{
public function __construct(){
$this->siteTitle = "Master Satuan";
parent::__construct();
}
public function index()
{
$data = null;
// $data = User::where('role_name', "<>", "superadmin")->latest()->paginate(10);
return view('admin.mst_satuan.index',compact('data'))
->with('i', (request()->input('page', 1) - 1) * 10);
}
public function create()
{
$this->setSubtitle("Tambah Data");
return view('admin.mst_satuan.create');
}
public function store(Request $request)
{
$request->validate([
'name' => 'required',
]);
$req = $request->all();
MstSatuan::where("nama_satuan", $req["name"])->delete();
$data["nama_satuan"] = $req["name"];
MstSatuan::create($data);
return redirect("/admin/MstSatuan")->with('success','Data Satuan berhasil dibuat.');
}
public function show(MstSatuan $MstSatuan)
{
$SubSatuanBelanja = MstSubSatuanBelanja::where("id_Satuan_belanja",$MstSatuan->id)->get();
$this->setSubtitle("Detail Satuan");
return view('admin.mst_satuan.show',compact('MstSatuan','SubSatuanBelanja'));
}
public function edit(MstSatuan $MstSatuan)
{
$this->setSubtitle("Ubah Data");
return view('admin.mst_satuan.edit',compact('MstSatuan'));
}
public function update(Request $request, MstSatuan $MstSatuan)
{
$request->validate([
'name' => 'required',
]);
$req = $request->all();
$data["nama_satuan"] = $req["name"];
$MstSatuan->update($req);
return redirect()->route('MstSatuan.index')
->with('success','Data Satuan berhasil diubah!');
}
public function destroy(MstSatuan $MstSatuan)
{
$MstSatuan->delete();
return redirect()->route('MstSatuan.index')
->with('success','Data Satuan berhasil dihapus!');
}
public function datatable(Request $request)
{
$post = $request->all();
$offset = $post["start"];
$limit = $post["length"];
$src = isset($post["search"]["value"]) ? strtolower($post["search"]["value"]):"";
$sqlstr = MstSatuan::select();
$dataTotal = $sqlstr->count();
$data = $sqlstr->orderBy("nama_satuan","ASC");
if (!empty($src)){
$data->whereRaw(" ( lower(nama_satuan) like '%$src%' ) ");
}
$dataFilter = $data->count();
return response()->json([
"recordsTotal" => $dataTotal,
"recordsFiltered" => $dataFilter,
"data"=> $data->skip($offset)->take($limit)->get()
]);
}
}
@@ -0,0 +1,107 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Models\MstJenisBelanja;
use App\Models\MstSubJenisBelanja;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
class MstSubJenisBelanjaController extends Controller
{
public function __construct(){
$this->siteTitle = "Master Jenis Belanja";
parent::__construct();
}
public function index()
{
$data = null;
return view('admin.mst_sub_jenis_belanja.index',compact('data'))
->with('i', (request()->input('page', 1) - 1) * 10);
}
public function create(MstJenisBelanja $MstJenisBelanja)
{
$this->setSubtitle("Tambah Data Sub Jenis Belanja [<strong>".$MstJenisBelanja->name."</strong>] ");
return view('admin.mst_sub_jenis_belanja.create',compact("MstJenisBelanja"));
}
public function store(Request $request)
{
$request->validate([
'kode' => 'required',
'name' => 'required',
'id_jenis_belanja' => 'required'
]);
$req = $request->all();
MstSubJenisBelanja::where("name", $req["name"])->where("id_jenis_belanja", $req["id_jenis_belanja"])->delete();
$data["id_jenis_belanja"] = $req["id_jenis_belanja"];
$data["kode"] = $req["kode"];
$data["name"] = $req["name"];
$data["description"] = $req["description"];
MstSubJenisBelanja::create($data);
return redirect("/admin/MstJenisBelanja/".$data["id_jenis_belanja"])->with('success','Sub Jenis Belanja berhasil dibuat.');
}
public function show(MstSubJenisBelanja $MstSubJenisBelanja)
{
}
public function edit(MstSubJenisBelanja $MstSubJenisBelanja)
{
$this->setSubtitle("Ubah Data");
return view('admin.mst_sub_jenis_belanja.edit',compact('MstSubJenisBelanja'));
}
public function update(Request $request, MstSubJenisBelanja $MstSubJenisBelanja)
{
$request->validate([
'kode' => 'required',
'name' => 'required',
'id_jenis_belanja' => 'required'
]);
$req = $request->all();
// var_dump($req); exit;
$data["id_jenis_belanja"] = $req["id_jenis_belanja"];
$data["kode"] = $req["kode"];
$data["name"] = $req["name"];
$data["description"] = $req["description"];
$MstSubJenisBelanja->update($req);
return redirect("/admin/MstJenisBelanja/".$MstSubJenisBelanja->id_jenis_belanja)->with('success','Sub Jenis Belanja berhasil diubah');
}
public function destroy(MstSubJenisBelanja $MstSubJenisBelanja)
{
$MstSubJenisBelanja->delete();
return redirect("/admin/MstJenisBelanja/".$MstSubJenisBelanja->id_jenis_belanja)->with('success','Sub Jenis Belanja berhasil dihapus');
}
public function datatable(Request $request, $id)
{
$post = $request->all();
$offset = $post["start"];
$limit = $post["length"];
$src = isset($post["search"]["value"]) ? strtolower($post["search"]["value"]):"";
$select = DB::raw("ID,KODE,NAME,DESCRIPTION");
$sqlstr = MstSubJenisBelanja::select($select)->where("id_jenis_belanja", $id);
$dataTotal = $sqlstr->count();
$data = $sqlstr->orderBy("ID");
if (!empty($src)){
$data->whereRaw(" ( lower(NAME) like '%$src%' OR lower(DESCRIPTION) like '%$src%' ) ");
}
$dataFilter = $data->count();
return response()->json([
"recordsTotal" => $dataTotal,
"recordsFiltered" => $dataFilter,
"data"=> $data->skip($offset)->take($limit)->get()
]);
}
}
@@ -0,0 +1,141 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Session;
use App\Models\Tropd;
use App\Models\User;
use Hash;
use Illuminate\Support\Facades\DB;
use App\Models\AkbSpb23;
use App\Models\AkbPendapatan;
class PengaturanController extends Controller
{
public function __construct(){
$this->siteTitle = "Pengaturan";
parent::__construct();
}
public function index()
{
$this->setIconTitle("fa fa-cog");
return view('admin.pengaturan.index');
}
public function rekonAnggaran()
{
try{
DB::beginTransaction();
DB::statement(
"UPDATE BELANJA_REALISASI t1
SET t1.JUMLAH_ANGGARAN = (
SELECT V_ANGG_TAPD FROM VW_DPA_RSK t2
WHERE t1.KODE_RSK = t2.I_ID
) WHERE t1.TAHUN_ANGGARAN = ".getTA()
);
DB::statement("UPDATE BELANJA_REALISASI SET ALOKASI_ANGGARAN = JUMLAH_ANGGARAN WHERE JENIS_DANA IN ('DBH','DAK')");
DB::commit();
return response()->json([
"success" => true,
"message" => "Data anggaran berhasil disesuaikan!"
]);
}catch(Throwable $e){
DB::rollBack();
return response()->json([
"success" => false,
"message" => "Data anggaran gagal disesuaikan!"
]);
}
}
public function adjustAKBPendapatan()
{
try{
DB::beginTransaction();
$dataAKBPendapatan = AkbSpb23::getAkbPendapatan();
foreach($dataAKBPendapatan as $rowAKBPendapatan){
AkbPendapatan::updateOrCreate([
"tahun"=>getTA(),
"skpd_id"=>$rowAKBPendapatan->unitkerja_id,
"kode_rekening"=>$rowAKBPendapatan->rek_kode
],[
"nama_rekening"=>$rowAKBPendapatan->rek_nama,
"pagu"=>$rowAKBPendapatan->nilai,
"bulan1"=>$rowAKBPendapatan->bulan1,
"bulan2"=>$rowAKBPendapatan->bulan2,
"bulan3"=>$rowAKBPendapatan->bulan3,
"bulan4"=>$rowAKBPendapatan->bulan4,
"bulan5"=>$rowAKBPendapatan->bulan5,
"bulan6"=>$rowAKBPendapatan->bulan6,
"bulan7"=>$rowAKBPendapatan->bulan7,
"bulan8"=>$rowAKBPendapatan->bulan8,
"bulan9"=>$rowAKBPendapatan->bulan9,
"bulan10"=>$rowAKBPendapatan->bulan10,
"bulan11"=>$rowAKBPendapatan->bulan11,
"bulan12"=>$rowAKBPendapatan->bulan12
]);
}
DB::commit();
return response()->json([
"success" => true,
"message" => "Data AKB berhasil disesuaikan!"
]);
}catch(Throwable $e){
DB::rollBack();
return response()->json([
"success" => false,
"message" => "Data AKB gagal disesuaikan!"
]);
}
}
public function updateuser()
{
try{
DB::beginTransaction();
$SKPD = Tropd::where("c_tahun_berakhir",">=",getTA())->orderBy('I_ID','ASC')->get();
foreach($SKPD as $rowSKPD){
$user = User::where("nrk",$rowSKPD["c_opd"])->count();
if ($user == 0 ){
// var_dump($rowSKPD["c_opd"]);
// exit;
$user = new User;
$user->name = $rowSKPD["n_opd"];
$user->nrk = $rowSKPD["c_opd"];
$user->password = Hash::make($rowSKPD["c_opd"]);
$user->role_name = "skpd";
$user->save();
$user->assignRole('skpd');
}
}
DB::commit();
return response()->json([
"success" => true,
"message" => "Data User berhasil disesuaikan!"
]);
}catch(Throwable $e){
DB::rollBack();
return response()->json([
"success" => false,
"message" => "Data User gagal disesuaikan!"
]);
}
}
}
@@ -0,0 +1,74 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Models\Permission;
use Illuminate\Http\Request;
class PermissionsController extends Controller
{
public function __construct(){
$this->siteTitle = "Data Permissions";
parent::__construct();
}
public function index()
{
$data = Permission::latest()->orderby("name")->paginate(10);
return view('admin.mst_permission.index',compact('data'))
->with('i', (request()->input('page', 1) - 1) * 10);
}
public function create()
{
$this->setSubtitle("Tambah Data");
return view('admin.mst_permission.create');
}
public function store(Request $request)
{
$request->validate([
'name' => 'required'
]);
$requestAll = $request->all();
$requestAll['guard_name'] = 'web';
Permission::create($requestAll);
return redirect()->route('permissions.index')
->with('success','Permission berhasil dibuat.');
}
public function show(Permission $permission)
{
$this->setSubtitle("Detail Data");
return view('admin.mst_permission.show',compact('permission'));
}
public function edit(Permission $permission)
{
$this->setSubtitle("Ubah Data");
return view('admin.mst_permission.edit',compact('permission'));
}
public function update(Request $request, Permission $permission)
{
$request->validate([
'name' => 'required',
]);
$requestAll = $request->all();
$permission->update($requestAll);
return redirect()->route('permissions.index')
->with('success','Permission berhasil diubah!');
}
public function destroy(Permission $permission)
{
$permission->delete();
return redirect()->route('permissions.index')
->with('success','Permission berhasil dihapus!');
}
}
@@ -0,0 +1,100 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Models\Roless;
use App\Models\RolePermission;
use App\Models\Permission;
use Illuminate\Http\Request;
class RolessController extends Controller
{
public function __construct(){
$this->siteTitle = "Data Roles";
parent::__construct();
}
public function index()
{
$data = Roless::where("name","<>","superadmin")->orderBy("id")->paginate(15);
return view('admin.mst_role.index',compact('data'))
->with('i', (request()->input('page', 1) - 1) * 15);
}
public function create()
{
$this->setSubtitle("Tambah Data");
return view('admin.mst_role.create');
}
public function store(Request $request)
{
$request->validate([
'name' => 'required'
]);
$requestAll = $request->all();
$requestAll['guard_name'] = 'web';
Roless::create($requestAll);
return redirect()->route('roless.index')
->with('success','Role berhasil dibuat.');
}
public function show(Roless $roless)
{
$this->setSubtitle("Detail Data");
$permissions = Permission::get();
$rolePermissions = RolePermission::where("role_id",$roless->id)->orderBy("permission_id")->get()->toArray();
$rolePermissions = array_column($rolePermissions, 'permission_id');
return view('admin.mst_role.show',compact('roless','permissions','rolePermissions'));
}
public function edit(Roless $roless)
{
$this->setSubtitle("Ubah Data");
return view('admin.mst_role.edit',compact('roless'));
}
public function update(Request $request, Roless $roless)
{
$request->validate([
'name' => 'required',
]);
$requestAll = $request->all();
$roless->update($requestAll);
return redirect()->route('roless.index')
->with('success','Role berhasil diubah!');
}
public function permissions($roleId, Request $request)
{
$request->validate([
'role_permission' => 'required',
]);
$requestAll = $request->all();
RolePermission::where("role_id", $roleId)->delete();
$role_permission = $requestAll["role_permission"];
// var_dump($roleId);exit;
foreach($role_permission as $row_permission){
RolePermission::create([
"permission_id"=>$row_permission,
"role_id"=>$roleId
]);
}
return redirect()->route('roless.index')
->with('success','Role berhasil diubah!');
}
public function destroy(Roless $roless)
{
$roless->delete();
return redirect()->route('roless.index')
->with('success','Role berhasil dihapus!');
}
}
+139
View File
@@ -0,0 +1,139 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Session;
use App\Models\User;
use App\Models\RoleUser;
class AuthController extends Controller
{
public function showFormLogin()
{
if (Auth::check()) {
// Jika sudah login, langsung alihkan ke home
return redirect()->intended(route('home'));
}
return view('login');
}
public function login(Request $request)
{
$rules = [
'nrk' => 'required|string',
'password' => 'required|string'
];
$messages = [
'nrk.required' => 'NRK wajib diisi',
'nrk.string' => 'NRK tidak valid',
'password.required' => 'Password wajib diisi',
'password.string' => 'Password harus berupa string'
];
$validator = Validator::make($request->all(), $rules, $messages);
if ($validator->fails()) {
return redirect()->back()->withErrors($validator)->withInput($request->all());
}
$credentials = [
'nrk' => $request->input('nrk'),
'password' => $request->input('password'),
];
if (Auth::attempt($credentials)) {
// Cek jika akun terkunci
if (Auth::user()->status_lock == 1) {
Auth::logout();
$request->session()->invalidate();
$request->session()->regenerateToken();
Session::flash('error', 'Data Terkunci Silahkan Hubungi Admin');
return redirect()->route('login');
}
// Regenerasi session ID untuk keamanan (mencegah Session Fixation)
$request->session()->regenerate();
// Set List Tahun Anggaran ke Session
$taValue = [];
for ($i = 2022; $i <= date("Y"); $i++) {
$taValue[] = $i;
}
Session::put('listTA', $taValue);
// Alihkan ke URL yang dituju atau ke route home bawaan
return redirect()->intended(route('home'));
} else {
// Login Gagal
Session::flash('error', 'NRK atau password salah');
return redirect()->route('login');
}
}
public function showFormRegister()
{
return view('register');
}
public function register(Request $request)
{
$rules = [
'name' => 'required|min:3|max:35',
'nrk' => 'required|min:5|unique:users,nrk',
'password' => 'required|confirmed'
];
$messages = [
'name.required' => 'Nama Lengkap wajib diisi',
'name.min' => 'Nama lengkap minimal 3 karakter',
'name.max' => 'Nama lengkap maksimal 35 karakter',
'nrk.required' => 'NRK wajib diisi',
'nrk.min' => 'NRK tidak valid',
'nrk.unique' => 'NRK sudah terdaftar',
'password.required' => 'Password wajib diisi',
'password.confirmed' => 'Password tidak sama dengan konfirmasi password'
];
$validator = Validator::make($request->all(), $rules, $messages);
if ($validator->fails()) {
return redirect()->back()->withErrors($validator)->withInput($request->all());
}
$user = new User;
$user->name = ucwords(strtolower($request->name));
$user->nrk = strtolower($request->nrk);
$user->password = Hash::make($request->password);
$simpan = $user->save();
$roleUser = new RoleUser;
$roleUser->role_id = 3;
$roleUser->user_id = $user->id;
$roleUser->save();
if ($simpan) {
Session::flash('success', 'Register berhasil! Silahkan login untuk mengakses data');
return redirect()->route('login');
} else {
Session::flash('errors', ['' => 'Register gagal! Silahkan ulangi beberapa saat lagi']);
return redirect()->route('register');
}
}
public function logout(Request $request)
{
Auth::logout();
$request->session()->invalidate();
$request->session()->regenerateToken();
return redirect()->route('login');
}
}
+64
View File
@@ -0,0 +1,64 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Routing\Controller as BaseController;
use View;
use App\Models\Notifikasi;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\URL;
class Controller extends BaseController
{
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
public $siteTitle = "Beranda";
public $sitesubTitle = "Data";
public $siteBreadcumb =[["url"=>"/","label"=>"Beranda"]];
public $IconTitle = "fa fa-table";
public function __construct() {
View::share ( 'siteTitle' , $this->siteTitle );
View::share ( 'sitesubTitle' , $this->sitesubTitle );
View::share ( 'siteBreadcumb' , $this->siteBreadcumb );
View::share ( 'iconTitle' , $this->IconTitle );
View::share ( 'baseUrl', URL::to("/") );
}
public function setTitle($name){
View::share ( 'siteTitle' , $name );
}
public function setIconTitle($icon){
View::share ( 'iconTitle' , $icon );
}
public function setSubtitle($name){
View::share ( 'sitesubTitle' , $name );
}
public function sendNotif($roleFrom, $roleTo, $userId=[], $message, $url, $jenis, $unik)
{
foreach($userId as $rowUserId){
$notif = new Notifikasi;
$notif["role_from"]=$roleFrom;
$notif["role_to"]=$roleTo;
$notif["userid"]=$rowUserId;
$notif["message"]=$message;
$notif["url"]=$url;
$notif["is_read"]=0;
$notif["jenis"]=$jenis;
$notif["id_unik"]=$unik;
$notif->save();
}
return true;
}
public function readNotif($idUnik)
{
Notifikasi::query()->where(["id_unik"=>$idUnik, "userid"=>Auth::user()->id])->update(["is_read"=>1]);
}
}
@@ -0,0 +1,217 @@
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Auth;
use Maatwebsite\Excel\Facades\Excel;
use App\Models\DataUploadBosOmspan;
use App\Models\DataBosOmspan;
use App\Models\UploadData;
use App\Imports\ImportDataBos;
use Illuminate\Support\Facades\URL;
class DataBosOmspanController extends Controller
{
public function __construct(){
parent::__construct();
$this->setIconTitle("fa fa-graduation-cap");
}
public function index(Request $request)
{
$method = $request->method();
$this->setTitle("Data BOS Omspan");
$this->setIconTitle("fa fa-graduation-cap");
$this->siteTitle = "Daftar";
return view('data_omspan.index');
}
public function upload(Request $request)
{
$method = $request->method();
$this->setTitle("Data BOS Omspan");
$this->setSubtitle("Upload File");
$this->setIconTitle("fas fa-upload");
if ($request->isMethod('post')) {
$req = $request->all();
try{
$this->validate($request, [
'file' => 'required|mimes:xls,xlsx',
]);
$file = $request->file('file');
$subJenisDana = $request->optJenisDana;
$ta = $request->ta;
$tujuan_upload = 'uploadFiles';
$file->move($tujuan_upload,$file->getClientOriginalName());
DB::beginTransaction();
// DataUploadBosOmspan::truncate();
Excel::import(new ImportDataBos($ta), $tujuan_upload."/".$file->getClientOriginalName());
DB::commit();
return redirect(URL::to("/data-omspan/upload/"))->with('success','Data berhasil diupload, Silahkan validasi data terlebih dahulu!');
}
catch(\Exception $e)
{
// throw new \Exception($e->getMessage());
DB::rollBack();
abort(500, $e->getMessage());
// return redirect(URL::to("/upload-data/".$typeDana))->with('error',$e->getMessage());
}
}
$this->siteTitle = "Upload Data";
return view('data_omspan.upload');
}
public function datatable(Request $request)
{
$post = $request->all();
$offset = $post["start"];
$limit = $post["length"];
$src = isset($post["search"])?$post["search"]["value"]:"";
$dataFilter=0;
$data = DataBosOmspan::orderBy("created_at","ASC");
if (!empty($src)){
$data->whereRaw("(
LOWER(kanwil) LIKE '%".strtolower($src)."%'
OR LOWER(kppn) LIKE '%".strtolower($src)."%'
OR LOWER(lokasi_kewenangan) LIKE '%".strtolower($src)."%'
OR LOWER(jenis_bos) LIKE '%".strtolower($src)."%'
OR LOWER(no_rekening_nama_rekening) LIKE '%".strtolower($src)."%'
OR LOWER(npsn) LIKE '%".strtolower($src)."%'
OR LOWER(no_tgl_sp2d_detail) LIKE '%".strtolower($src)."%'
OR LOWER(status_sekolah) LIKE '%".strtolower($src)."%'
)");
}
$dataFilter = $data->count();
$dataTotal = DataBosOmspan::count();
return response()->json([
"recordsTotal" => $dataTotal,
"recordsFiltered" => $dataFilter,
"data"=> $data->skip($offset)->take($limit)->get()
]);
}
public function uploadDatatable(Request $request)
{
$post = $request->all();
$offset = $post["start"];
$limit = $post["length"];
$src = isset($post["search"])?$post["search"]["value"]:"";
$dataFilter=0;
$data = DataUploadBosOmspan::orderBy("created_at","ASC");
if (!empty($src)){
$data->whereRaw("(
LOWER(kanwil) LIKE '%".strtolower($src)."%'
OR LOWER(kppn) LIKE '%".strtolower($src)."%'
OR LOWER(lokasi_kewenangan) LIKE '%".strtolower($src)."%'
OR LOWER(jenis_bos) LIKE '%".strtolower($src)."%'
OR LOWER(no_rekening_nama_rekening) LIKE '%".strtolower($src)."%'
OR LOWER(npsn) LIKE '%".strtolower($src)."%'
OR LOWER(no_tgl_sp2d_detail) LIKE '%".strtolower($src)."%'
OR LOWER(status_sekolah) LIKE '%".strtolower($src)."%'
)");
}
$dataFilter = $data->count();
$dataTotal = DataUploadBosOmspan::count();
return response()->json([
"recordsTotal" => $dataTotal,
"recordsFiltered" => $dataFilter,
"data"=> $data->skip($offset)->take($limit)->get()
]);
}
public function uploadValidate(Request $request)
{
try{
DB::beginTransaction();
DB::statement("DELETE FROM DATA_BOS_OMSPAN
WHERE EXISTS(
SELECT *
FROM DATA_UPLOAD_BOS_OMSPAN
WHERE (tahun = ".getTA()." AND DATA_BOS_OMSPAN.no_tgl_sp2d_detail = DATA_UPLOAD_BOS_OMSPAN.no_tgl_sp2d_detail)
)");
DB::statement("INSERT INTO DATA_BOS_OMSPAN(
tahun,
kanwil,
kppn,
lokasi_kewenangan,
lokasi_sekolah,
no_tgl_sk,
jenis_bos,
tahap,
gelombang,
npsn_nama_sekolah,
jenis_satuan_pendidikan,
status_sekolah,
bank,
no_rekening_nama_rekening,
npsn,
rekening,
nama,
jenjang_sekolah,
no_tgl_sp2d_detail,
no_sp2d,
tgl_sp2d,
status,
nilai,
pagu,
jmlh_siswa,
ket_retur,
created_at
)
SELECT
tahun,
kanwil,
kppn,
lokasi_kewenangan,
lokasi_sekolah,
no_tgl_sk,
jenis_bos,
tahap,
gelombang,
npsn_nama_sekolah,
jenis_satuan_pendidikan,
status_sekolah,
bank,
no_rekening_nama_rekening,
npsn,
rekening,
nama,
jenjang_sekolah,
no_tgl_sp2d_detail,
no_sp2d,
tgl_sp2d,
status,
nilai,
pagu,
jmlh_siswa,
ket_retur,
CURRENT_TIMESTAMP
FROM DATA_UPLOAD_BOS_OMSPAN");
DataUploadBosOmspan::truncate();
DB::commit();
return redirect(URL::to("/data-omspan/upload"))->with('success','Data Omspan berhasil diupload.');
}catch(\Exception $e){
throw new \Exception($e->getMessage());
DB::rollBack();
return redirect(URL::to("/data-omspan/upload"))->with('error',$e->getMessage());
}
}
}
+71
View File
@@ -0,0 +1,71 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Session;
class HomeController extends Controller
{
public function index()
{
$this->setIconTitle("fa fa-home");
return view('home');
}
public function ta($ta)
{
Session::put('Tahun_Anggaran', $ta);
return redirect()->route('home');
}
public function uploadThis(Request $request)
{
$this->validate($request, [
'file' => 'required',
]);
$file = $request->file('file');
$fileContent = $file->get();
// echo 'File Name: '.$file->getClientOriginalName();
// echo 'File Extension: '.$file->getClientOriginalExtension();
// echo 'File Real Path: '.$file->getRealPath();
// echo 'File Size: '.$file->getSize();
// echo 'File Mime Type: '.$file->getMimeType();
// Encrypt File
$encryptedContent = encrypt($fileContent);
\Storage::put('file.dat', $encryptedContent);
}
public function downloadThis(Request $request)
{
// Decrypt File
$encryptedContent = \Storage::get('file.dat');
$decryptedContent = decrypt($encryptedContent);
return response()->streamDownload(function() use ($decryptedContent) {
echo $decryptedContent;
}, 'file.jpg');
}
public function downloadManual()
{
$file = "manual_aplikasi_sidata.pdf";
$headers = [
'Content-Type' => 'application/pdf',
'Content-Disposition' => 'attachment;filename='.$file
];
return response()->download($file , $file, $headers);
}
public function rekonAnggaran()
{
// UPDATE BELANJA_REALISASI t1
// SET t1.JUMLAH_ANGGARAN = (
// SELECT V_ANGG_TAPD FROM VW_DPA_RSK t2
// WHERE t1.KODE_RSK = t2.I_ID
// )
// WHERE t1.TAHUN_ANGGARAN = 2022
}
}
@@ -0,0 +1,360 @@
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use App\Models\Tropd;
use App\Models\Trbas;
use App\Models\Program;
use App\Models\Kegiatan;
use App\Models\SubKegiatan;
use App\Models\Rsk;
use App\Models\Sps_pendapatan;
use App\Models\MstDauRinci;
use App\Models\Siesetpembayaran;
use App\Models\Sp2d;
use App\Models\BelanjaRealisasi;
use App\Models\MstJenisDana;
use App\Models\MstJenisBelanja;
use App\Models\MstSubJenisBelanja;
use App\Models\VwRekeningPendapatan;
use App\Models\MappingDauRinci;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Session;
use App\Models\PendapatanRealisasiSts;
use App\Models\AkunTamsilTpg;
class ItemSearchController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
//
}
public function skpd(Request $request)
{
$tropd = [];
$ta = $request->ta;
$search = strtoupper($request->q);
if ($request->has('realisasi-belanja')) {
$sqlStr = "SELECT DISTINCT x.KODE_SKPD AS ID,x.KODE_SKPD||' | '||x.NAMA_SKPD as name
FROM BELANJA_REALISASI x
LEFT JOIN NEWSIPKD.TROPD y ON x.KODE_SKPD = y.C_OPD
WHERE TAHUN_ANGGARAN = $ta ";
if (getRole() == "sbpk") {
$sqlStr .= " AND y.C_WIL_SP2DPROSES=" . Auth::user()->wilayah;
} elseif (getRole() == "walikota" || getRole() == "induk skpd") {
$id = Tropd::where("C_OPD", Auth::user()->nrk)->first()["i_id"];
$sqlStr .= " AND x.KODE_SKPD IN (SELECT C_OPD FROM NEWSIPKD.TROPD WHERE I_IDINDUK=" . $id . ")";
}
if ($request->has('q')) {
$search = strtolower($request->q);
$sqlStr .= " AND ( LOWER(x.NAMA_SKPD) LIKE '%$search%' OR x.KODE_SKPD LIKE '%$search%' )";
}
$tropd = DB::select(DB::raw($sqlStr . " ORDER BY x.KODE_SKPD "));
} else {
$select = DB::raw("C_OPD AS ID,C_OPD||' | '||N_OPD as name");
$tropd = Tropd::select($select);
if ($request->has('q')) {
$search = strtolower($request->q);
$tropd->whereRaw("LOWER(N_OPD) LIKE '%$search%'");
}
$tropd->orderBy("C_OPD");
$tropd = $tropd->get();
}
return response()->json($tropd);
}
public function prog(Request $request)
{
$tropd = [];
if ($request->has('q')) {
$search = strtoupper($request->q);
$select = DB::raw("C_PROGRAM AS ID,C_PROGRAM||' | '||N_PROGRAM as name");
$tropd = Program::select($select)
->where('N_PROGRAM', 'LIKE', "%$search%")
->get();
}
return response()->json($tropd);
}
public function keg(Request $request)
{
$tropd = [];
if ($request->has('q')) {
$search = strtoupper($request->q);
$select = DB::raw("C_GIAT AS ID,C_GIAT||' | '||N_GIAT as name");
$tropd = Kegiatan::select($select)
->where('N_GIAT', 'LIKE', "%$search%")
->get();
}
return response()->json($tropd);
}
public function sk(Request $request)
{
$sk = [];
if ($request->has('q')) {
if ($request->has('realisasi-belanja')) {
$search = $request->q;
$select = DB::raw("DISTINCT KODE_SUB_KEGIATAN AS ID,KODE_SUB_KEGIATAN||' | '||NAMA_SUB_KEGIATAN as name");
$ta = $request->ta;
$sk = BelanjaRealisasi::select($select)
->where("TAHUN_ANGGARAN", $ta)
->where('NAMA_SUB_KEGIATAN', 'LIKE', "%$search%")
->get();
} else {
$search = strtoupper($request->q);
$select = DB::raw("C_SUBGIAT AS ID,C_SUBGIAT||' | '||N_SUBGIAT as name");
$sk = SubKegiatan::select($select)
->where('N_SUBGIAT', 'LIKE', "%$search%")
->get();
}
}
return response()->json($sk);
}
public function rsk(Request $request)
{
$tropd = [];
if ($request->has('q')) {
$search = strtoupper($request->q);
$select = DB::raw("I_ID AS ID,I_ID||' | '||N_RSK as name");
$tropd = Rsk::select($select)
->where('N_RSK', 'LIKE', "%$search%")
->get();
}
return response()->json($tropd);
}
public function sps(Request $request)
{
$sps = [];
$search = strtolower($request->q);
$ta = $request->ta;
$jenis = $request->jenis;
if (getRole() == "skpd") {
$filter = "";
if (isset($jenis)) {
$typeDana = strtoupper($jenis);
$kodeRekening = "'" . implode("','", getKodeRekInduk($typeDana)) . "'";
$filter = " AND SUBSTR(x.KODE_REKENING,1,12) IN ($kodeRekening) ";
}
$sps = DB::select(DB::raw("SELECT x.KODE_REKENING as IDX,x.KODE_REKENING||' | '||z.NAMA_REKENING as name
FROM MAPPING_DBH_SKPD x
LEFT JOIN VW_REKENING_PENDAPATAN z ON x.ID_REKENING = z.ID
WHERE x.kode_skpd='" . Auth::user()->nrk . "' AND (TAHUN_BERLAKU<=" . getTA() . " AND TAHUN_BERAKHIR>=" . getTA() . ") $filter"));
} else {
$select = DB::raw("KODE_REKENING AS IDX,KODE_REKENING||' | '||NAMA_REKENING as name");
$sps = VwRekeningPendapatan::select($select);
$sps->whereRaw("TAHUN_BERLAKU<=" . getTA() . " AND TAHUN_BERAKHIR>=" . getTA());
if (!empty($search)) {
$sps->whereRaw(" (LOWER(KODE_REKENING) LIKE '%$search%' OR LOWER(NAMA_REKENING) LIKE '%$search%') ");
}
if (isset($jenis)) {
$typeDana = strtoupper($jenis);
$kodeRekening = "'" . implode("','", getKodeRekInduk($typeDana)) . "'";
$sps->whereRaw(" SUBSTR(KODE_REKENING,1,12) IN ($kodeRekening)");
}
$sps->orderby("KODE_REKENING");
$sps = $sps->get();
}
return response()->json($sps);
}
public function sts(Request $request)
{
$sts = array();
$no_skprd = $request->no_skprd;
$kode_akun = $request->kode_akun;
//$arrTPG = ['4.2.01.01.04.0004', '4.2.01.01.04.0005', '4.2.01.09.02.0004', '4.2.01.09.02.0005'];
$arrTPG = getAkunTamsilTpg();
if (in_array($kode_akun, $arrTPG)) {
$cek = PendapatanRealisasiSts::where("rkud_no_sts", $no_skprd)
->where("rkud_kode_akun", $kode_akun)
->count();
if ($cek > 0) {
$urlAPIDev = "http://10.15.34.90:8820/api/tpg-tamsil/cek-sp2t";
$userDev = "sidata_tpgtamsil_dev";
$passDev = "sidataAp!TpgT4ms1lD3v";
$urlAPI = "https://simpad.jakarta.go.id/api/tpg-tamsil/cek-sp2t'";
$user = "sidata_tpgtamsil";
$pass = "sidataAp!TpgT4ms1l";
$httpSTS = Http::withHeaders([
'Accept' => 'application/json',
])->withBasicAuth($user, $pass)
->post($urlAPI, [
"no_sp2t" => $no_skprd,
"kode_rekening" => $kode_akun
]);
if (isset($httpSTS["data"])) {
$sts["no_skprd"] = $httpSTS["data"]["no_sp2t"];
$sts["tgl_validasi"] = date("Y-m-d", strtotime($httpSTS["data"]["tanggal_pengesahan"]));
$sts["kode_bas"] = $httpSTS["data"]["kode_rekening"];
$sts["n_akun"] = $httpSTS["data"]["nam_rekening"];
$sts["nilai_bayar"] = separateNumberIndo($httpSTS["data"]["jumlah"]);
}
}
} else {
$select = DB::raw("NO_SKPRD,TGL_VALIDASI,KODE_BAS,NILAI_BAYAR,TRBAS.N_AKUN");
$sts = Siesetpembayaran::select($select)
->join("NEWSIPKD.TRBAS", "SI_ESET_PEMBAYARAN.KODE_BAS", "=", "TRBAS.C_AKUN")
->where("NO_SKPRD", $no_skprd)
->where("SI_ESET_PEMBAYARAN.KODE_BAS", $kode_akun)
->whereRaw("C_TAHUN_BERLAKU<=" . getTA() . " AND C_TAHUN_BERAKHIR>=" . getTA())
->first();
if ($sts) {
$sts["tgl_validasi"] = date("Y-m-d", strtotime($sts["tgl_validasi"]));
$sts["nilai_bayar"] = separateNumberIndo($sts["nilai_bayar"]);
}
}
return response()->json($sts);
}
public function sp2d(Request $request)
{
$no_sp2d = $request->no_sp2d;
$sp2d = Sp2d::where(["I_SP2DNO_DOK" => $no_sp2d, "C_SP2D_SAH" => 1])->first();
return response()->json($sp2d);
}
public function jenisBelanja(Request $request)
{
$sk = [];
$select = DB::raw("ID, NAME");
$grup = $request->grup;
if ($request->has('q')) {
$search = $request->q;
$sk = MstJenisBelanja::select($select)
->where('GRUP', $grup)
->where('NAME', 'LIKE', "%$search%")
->get();
} else {
$sk = MstJenisBelanja::select($select)->where('GRUP', $grup)->get();
}
return response()->json($sk);
}
public function subjenisDana(Request $request)
{
$sk = [];
$select = DB::raw("ID, NAME");
$idGrup = $request->id_grup;
if ($request->has('q')) {
$search = $request->q;
$sk = MstJenisDana::select($select)
->where("GRUP", $idGrup)
->where('NAME', 'LIKE', "%$search%")
->get();
} else {
$sk = MstJenisDana::select($select)
->where("GRUP", $idGrup)
->get();
}
return response()->json($sk);
}
public function subjenisBelanja(Request $request)
{
$sk = [];
$select = DB::raw("ID, NAME");
$idJenis = $request->id_jenis;
if ($request->has('q')) {
$search = $request->q;
$sk = MstSubJenisBelanja::select($select)
->where("id_jenis_belanja", $idJenis)
->where('NAME', 'LIKE', "%$search%")
->get();
} else {
$sk = MstSubJenisBelanja::select($select)
->where("id_jenis_belanja", $idJenis)
->get();
}
return response()->json($sk);
}
public function rek_dana(Request $request)
{
$search = strtolower($request->q);
$ta = $request->ta;
$select = DB::raw("C_AKUN AS IDX,C_AKUN||' | '||N_AKUN as NAME");
$trbas = Trbas::select($select)->whereRaw("C_TAHUN_BERAKHIR>=$ta AND (C_AKUN LIKE '4.2.01.01%' OR C_AKUN LIKE '4.2.01.02%' OR C_AKUN LIKE '4.2.01.09%') AND LENGTH(C_AKUN)>=17");
if (!empty($search)) {
$trbas->whereRaw(" (LOWER(C_AKUN) LIKE '%$search%' OR LOWER(N_AKUN) LIKE '%$search%') ");
}
$trbas->orderby("C_AKUN");
$trbas = $trbas->get();
return response()->json($trbas);
}
public function dau_rinci(Request $request)
{
$sk = [];
$select = DB::raw("id, name");
if ($request->has('q')) {
$search = $request->q;
$sk = MstDauRinci::select($select)
->where('name', 'LIKE', "%$search%")
->get();
} else {
$sk = MstDauRinci::select($select)->get();
}
return response()->json($sk);
}
public function dau_rinci_detail(Request $request)
{
// $search = $request->id;
// $sk = MstDauRinci::where('id', $search)->first();
// return response()->json($sk);
$subJenisDana = $request->sub_jenis_dana;
$tahun = Session::get('Tahun_Anggaran');
$kodeSkpd = Auth::user()->kode_skpd;
if (!$subJenisDana || !$tahun || !$kodeSkpd) {
return response()->json([]);
}
$idDauRinciList = MappingDauRinci::where('ID_JENIS_DANA', $subJenisDana)
->where('TAHUN', $tahun)
->where('KODE_SKPD', $kodeSkpd)
->pluck('ID_DAU_RINCI');
$outputs = MstDauRinci::whereIn('id', $idDauRinciList)->get();
return response()->json($outputs);
}
}
@@ -0,0 +1,331 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Auth;
use Maatwebsite\Excel\Facades\Excel;
use App\Models\Sps_pendapatan;
use App\Models\Tropd;
use App\Models\BelanjaRealisasi;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
class JadwalSalurdanaController extends Controller
{
public function __construct()
{
parent::__construct();
$this->setTitle("Jadwal Salur Dana");
$this->setIconTitle("fa fa-calendar-alt");
}
/*
public function index()
{
return view('jadwal_salurdana.index');
}
*/
protected function filterJadwalSalur($request)
{
$ta = getTA();
$post = $request->all();
$typeDana = isset($post["jenis_dana"]) ? strtoupper($post["jenis_dana"]) : "";
$idSPS = isset($post["id_sps"]) ? $post["id_sps"] : "";
$sqlstr = Sps_pendapatan::queryJadwalSalurDana($ta);
if (!empty($idSPS)) {
$sqlstr .= " AND x.KODE_REKENING='$idSPS'";
}
if (!empty($typeDana)) {
$kodeRekening = "'" . implode("','", getKodeRekInduk($typeDana)) . "'";
$sqlstr .= " AND SUBSTR(x.kode_rekening,1,12) IN ($kodeRekening)";
}
return $sqlstr;
}
protected function filterBelanja($request, $typeDana)
{
$ta = getTA();
$post = $request->all();
$src = isset($post["src"]) ? $post["src"] : "";
$idSPS = isset($post["id_sps"]) ? $post["id_sps"] : "";
$skpd = isset($post["skpd"]) ? $post["skpd"] : "";
$where = "";
if (!empty($typeDana)) {
$where = $typeDana == "cht" ? " AND x.jenis_dana = 'DBH' AND lower(x.NAMA_SUBJENIS_DANA) = 'cht' " : " AND x.jenis_dana = '$typeDana'";
}
$where .= !empty($idSPS) ? " AND x.kode_rekening='$idSPS' " : "";
$sqlstr = 'SELECT x.kode_skpd, x.nama_skpd, x.kode_rsk, x.nama_rsk, x.kode_rekening, x.nama_rekening, x.jumlah_anggaran, y.*
FROM VW_BELANJA_REALISASI x
LEFT JOIN MV_ASYNC_AKB_REALISASI y
ON x.KODE_RSK = y.I_IDRSK AND x.TAHUN_ANGGARAN = y.C_ANGG_TAHUN
WHERE x.TAHUN_ANGGARAN = \'' . $ta . '\'' . $where;
if (getRole() == "skpd") {
$sqlstr .= " AND KODE_SKPD='" . Auth::user()->nrk . "'";
} elseif (getRole() == "walikota" || getRole() == "induk skpd") {
$id = Tropd::where("C_OPD", Auth::user()->nrk)->first()["i_id"];
$sqlstr .= " AND KODE_SKPD IN (SELECT C_OPD FROM NEWSIPKD.TROPD WHERE I_IDINDUK=" . $id . ")";
} else {
if ($skpd) {
$sqlstr .= " AND KODE_SKPD='$skpd'";
}
}
return $sqlstr;
}
public function datatableSalur(Request $request)
{
$post = $request->all();
$offset = $post["start"];
$limit = $post["length"];
$sqlstr = $this->filterJadwalSalur($request);
$dataTotal = count(DB::select(DB::raw($sqlstr)));
$sqlLimit = $limit > 0 ? " OFFSET " . $offset . " ROWS FETCH NEXT " . $limit . " ROWS ONLY " : "";
$data = DB::select(DB::raw($sqlstr . 'ORDER BY x.kode_rekening ' . $sqlLimit));
$dataFilter = count(DB::select(DB::raw($sqlstr)));
return response()->json([
"recordsTotal" => $dataTotal,
"recordsFiltered" => $dataFilter,
"data" => $data
]);
}
public function index()
{
return view("jadwal_salurdana.index");
}
public function datatableBelanja(Request $request)
{
$post = $request->all();
$offset = $post["start"];
$limit = $post["length"];
$typeDana = $post["jenis_dana"];
$sqlstr = $this->filterBelanja($request, $typeDana);
$sqlLimit = $limit > 0 ? " OFFSET " . $offset . " ROWS FETCH NEXT " . $limit . " ROWS ONLY " : "";
$data = DB::select(DB::raw($sqlstr . ' ORDER BY x.kode_skpd,x.kode_rsk ' . $sqlLimit));
$dataTotal = count(DB::select(DB::raw($sqlstr)));
$dataFilter = count(DB::select(DB::raw($sqlstr)));
return response()->json([
"recordsTotal" => $dataTotal,
"recordsFiltered" => $dataFilter,
"data" => $data
]);
}
protected function exportJadwalSalur($request)
{
$sqlstr = $this->filterJadwalSalur($request);
$sqlstr .= " ORDER BY x.kode_rekening";
$data = DB::select(DB::raw($sqlstr));
$data = json_decode(json_encode($data), true);
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->setTitle('Jadwal Salur');
$sheet->setCellValue('A1', 'Kode Rekening');
$sheet->setCellValue('B1', 'Nama Rekening');
$alpha = range("A", "Z");
$colIndex = 2;
// Nama Kolom bulan
$bulans = GetBulan();
foreach ($bulans as $bulan) {
$sheet->setCellValue($alpha[$colIndex] . '1', $bulan);
$colIndex++;
$sheet->mergeCells($alpha[$colIndex] . '1' . ':' . $alpha[$colIndex] . '1');
$colIndex++;
}
$sheet->setCellValue(getAlphabetCell($colIndex) . '1', "Total");
$sheet->mergeCells(getAlphabetCell($colIndex) . '1' . ':' . getAlphabetCell($colIndex + 1) . '1');
$sheet->mergeCells('A1:A2');
$sheet->mergeCells('B1:B2');
$colIndex++;
// Nama Kolom Jadwal dan Realisasi
$colName = "Realisasi";
for ($i = 2; $i <= $colIndex; $i++) {
$colName = $colName == "Jadwal" ? "Realisasi" : "Jadwal";
$sheet->setCellValue(getAlphabetCell($i) . '2', $colName);
}
// Data Kolom Bulan dan Realisasi
$rows = 3;
foreach ($data as $val) {
$sheet->setCellValue('A' . $rows, $val["kode_rekening"]);
$sheet->setCellValue('B' . $rows, $val["nama_rekening"]);
$totalJadwalSalur = 0;
$totalRealisasi = 0;
$currIndex = 2;
for ($i = 1; $i <= 12; $i++) {
$sheet->setCellValue(getAlphabetCell($currIndex) . $rows, $val["spsbulan" . $i]);
$totalJadwalSalur += $val["spsbulan" . $i];
$currIndex++;
$sheet->setCellValue(getAlphabetCell($currIndex) . $rows, $val["real" . $i]);
$totalRealisasi += $val["real" . $i];
$currIndex++;
}
$sheet->setCellValue(getAlphabetCell($currIndex) . $rows, $totalJadwalSalur);
$sheet->setCellValue(getAlphabetCell($currIndex + 1) . $rows, $totalRealisasi);
$rows++;
}
// TOTAL BAWAH
$sheet->setCellValue("A" . $rows, "TOTAL");
$sheet->mergeCells('A' . $rows . ':' . 'B' . $rows);
for ($x = 2; $x <= $colIndex; $x++) {
$strAlpha = getAlphabetCell($x);
$SUMRANGE = $strAlpha . "3:" . $strAlpha . ($rows - 1);
$sheet->setCellValue($strAlpha . $rows, "=SUM($SUMRANGE)");
}
return $spreadsheet;
}
public function download(Request $request)
{
$spreadsheet = $this->exportJadwalSalur($request);
$fileName = 'Jadwal-salur-dana.xlsx';
$writer = new Xlsx($spreadsheet);
$writer->save("downloadFiles/" . $fileName);
$headers = [
'Content-Type' => 'application/vnd.ms-excel',
'Content-Disposition' => 'attachment;filename=' . $fileName
];
return response()->download("downloadFiles/" . $fileName, $fileName, $headers);
}
public function downloadAll(Request $request)
{
$post = $request->all();
$fileName = 'Jadwal-salur-belanja-' . date("Ymd") . '.xlsx';
$spreadsheet = $this->exportJadwalSalur($request);
$spreadsheet->createSheet();
$spreadsheet->setActiveSheetIndex(1);
$sheet = $spreadsheet->getActiveSheet();
$sheet->setTitle('Akb dan Realisasi');
$sheet->setCellValue('A1', 'KODE SKPD');
$sheet->setCellValue('B1', 'NAMA SKPD');
$sheet->setCellValue('C1', 'KODE RSK');
$sheet->setCellValue('D1', 'NAMA RSK');
$sheet->setCellValue('E1', 'KODE REKENING');
$sheet->setCellValue('F1', 'NAMA REKENING');
$alpha = range("A", "Z");
$jmlAlpha = count($alpha);
for ($i = 0; $i < $jmlAlpha; $i++) {
$alpha[] = "A" . $alpha[$i];
}
$colIndex = 6;
// Nama Kolom bulan
$bulans = GetBulan();
foreach ($bulans as $bulan) {
$sheet->setCellValue($alpha[$colIndex] . '1', $bulan);
$colIndex++;
$sheet->mergeCells($alpha[$colIndex] . '1' . ':' . $alpha[$colIndex] . '1');
$colIndex++;
}
$sheet->setCellValue(getAlphabetCell($colIndex) . '1', "Total");
$sheet->mergeCells(getAlphabetCell($colIndex) . '1' . ':' . getAlphabetCell($colIndex + 1) . '1');
$sheet->mergeCells('A1:A2');
$sheet->mergeCells('B1:B2');
$sheet->mergeCells('C1:C2');
$sheet->mergeCells('D1:D2');
$sheet->mergeCells('E1:E2');
$sheet->mergeCells('F1:F2');
$colIndex++;
// Nama Kolom Jadwal dan Realisasi
$colName = "Realisasi";
for ($i = 2; $i <= $colIndex; $i++) {
$colName = $colName == "AKB" ? "Realisasi" : "AKB";
$sheet->setCellValue(getAlphabetCell($i) . '2', $colName);
}
$sqlstr = $this->filterBelanja($request, $post["jenis_dana"]);
$data = DB::select(DB::raw($sqlstr));
$data = json_decode(json_encode($data), true);
// Data Kolom Bulan dan Realisasi
$rows = 3;
foreach ($data as $val) {
$currIndex = 0;
$sheet->setCellValue(getAlphabetCell($currIndex) . $rows, $val["kode_skpd"]);
$currIndex++;
$sheet->setCellValue(getAlphabetCell($currIndex) . $rows, $val["nama_skpd"]);
$currIndex++;
$sheet->setCellValue(getAlphabetCell($currIndex) . $rows, $val["kode_rsk"]);
$currIndex++;
$sheet->setCellValue(getAlphabetCell($currIndex) . $rows, $val["nama_rsk"]);
$currIndex++;
$sheet->setCellValue(getAlphabetCell($currIndex) . $rows, $val["kode_rekening"]);
$currIndex++;
$sheet->setCellValue(getAlphabetCell($currIndex) . $rows, $val["nama_rekening"]);
$currIndex++;
$totalJadwalSalur = 0;
$totalRealisasi = 0;
for ($i = 1; $i <= 12; $i++) {
$sheet->setCellValue(getAlphabetCell($currIndex) . $rows, $val["v_akb_" . substr("00" . $i, -2)]);
$totalJadwalSalur += $val["v_akb_" . substr("00" . $i, -2)];
$currIndex++;
$sheet->setCellValue(getAlphabetCell($currIndex) . $rows, $val["v_bku_" . substr("00" . $i, -2)]);
$totalRealisasi += $val["v_bku_" . substr("00" . $i, -2)];
$currIndex++;
}
$sheet->setCellValue(getAlphabetCell($currIndex) . $rows, $totalJadwalSalur);
$sheet->setCellValue(getAlphabetCell($currIndex + 1) . $rows, $totalRealisasi);
$rows++;
}
// TOTAL BAWAH
$sheet->setCellValue("A" . $rows, "TOTAL");
$sheet->mergeCells('A' . $rows . ':' . 'B' . $rows);
for ($x = 2; $x <= $colIndex; $x++) {
$strAlpha = getAlphabetCell($x);
$SUMRANGE = $strAlpha . "3:" . $strAlpha . ($rows - 1);
$sheet->setCellValue($strAlpha . $rows, "=SUM($SUMRANGE)");
}
$spreadsheet->setActiveSheetIndex(0);
$writer = new Xlsx($spreadsheet);
$writer->save(public_path("downloadFiles/" . $fileName));
$headers = [
'Content-Type' => 'application/vnd.ms-excel',
'Content-Disposition' => 'attachment;filename=' . $fileName
];
return response()->download("downloadFiles/" . $fileName, $fileName, $headers);
}
}
@@ -0,0 +1,231 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Auth;
use Maatwebsite\Excel\Facades\Excel;
use App\Models\LaporanFile;
use App\Models\MappingDbhSkpd;
use App\Models\User;
use App\Models\Tropd;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
use Illuminate\Support\Facades\URL;
use Illuminate\Support\Facades\File;
class LaporanFileController extends Controller
{
public function __construct()
{
$this->siteTitle = "Laporan File";
parent::__construct();
$this->setIconTitle("fa fa-reply");
}
public function index()
{
return view('laporan_file.index');
}
public function create()
{
$this->setSubtitle("Tambah Data");
return view('laporan_file.create');
}
public function store(Request $request)
{
try {
$date = date("Ymd");
DB::beginTransaction();
$req = $request->all();
$LaporanExists = LaporanFile::where("nama_laporan", $req["nama_laporan"])->count();
if ($LaporanExists > 0) {
return redirect(URL::to("/laporan-file"))
->with('error', 'Data nama laporan ' . $req["nama_laporan"] . ' sudah ada!');
}
$this->validate($request, [
'file' => 'required|mimes:pdf,xlsx,xls,png,gif,jpg,jpeg',
]);
$data["tahun"] = $req["ta"];
$data["kode_rekening"] = $req["opt_kode_rekening"];
$data["kode_skpd"] = Auth::user()->nrk;
$data["nama_skpd"] = Auth::user()->name;
$data["nama_laporan"] = $req["nama_laporan"];
$file = $request->file('file');
if ($file) {
$fileName = $file->getClientOriginalName();
$ext = $file->getClientOriginalExtension();
$NewFileName = $req["nama_laporan"] . "." . $ext;
$tujuan_upload = config('constants.upload_path_laporan');
File::isDirectory($tujuan_upload) or File::makeDirectory($tujuan_upload, 0777, true, true);
$file->move($tujuan_upload, $NewFileName);
$data["nama_file"] = $NewFileName;
}
LaporanFile::create($data);
DB::commit();
return redirect(URL::to("/laporan-file"))->with('success', 'Laporan berhasil dibuat!');
} catch (\Exception $e) {
DB::rollBack();
return redirect(URL::to("/laporan-file"))->with('error', $e->getMessage());
}
}
public function edit(LaporanFile $laporanFile)
{
$this->setSubtitle("Ubah Data");
return view('laporan_file.edit', compact('laporanFile'));
}
public function update(Request $request, LaporanFile $laporanFile)
{
try {
DB::beginTransaction();
$req = $request->all();
$LaporanExists = LaporanFile::where("nama_laporan", $req["nama_laporan"])->where("id", "<>", $laporanFile->id)->count();
if ($LaporanExists > 0) {
return redirect(URL::to("/laporan-file"))
->with('error', 'Data nama laporan ' . $req["nama_laporan"] . ' sudah ada!');
}
$this->validate($request, [
'file' => 'required|mimes:pdf,xlsx,xls,png,gif,jpg,jpeg',
]);
$data["tahun"] = $req["ta"];
$data["kode_rekening"] = $req["opt_kode_rekening"];
$data["kode_skpd"] = Auth::user()->nrk;
$data["nama_skpd"] = Auth::user()->name;
$data["nama_laporan"] = $req["nama_laporan"];
$file = $request->file('file');
$tujuan_upload = config('constants.upload_path_laporan');
if ($file) {
$fileName = $file->getClientOriginalName();
$ext = $file->getClientOriginalExtension();
$NewFileName = $req["nama_laporan"] . "." . $ext;
File::isDirectory($tujuan_upload) or File::makeDirectory($tujuan_upload, 0777, true, true);
$file->move($tujuan_upload, $NewFileName);
$data["nama_file"] = $NewFileName;
} else {
$arrName = explode(".", $laporanFile->nama_file);
$ext = end($arrName);
rename($tujuan_upload . $laporanFile->nama_file, $tujuan_upload . $req["nama_laporan"] . "." . $ext);
$data["nama_file"] = $req["nama_laporan"] . "." . $ext;
}
$laporanFile->update($data);
DB::commit();
return redirect(URL::to("/laporan-file"))->with('success', 'Laporan berhasil diubah.');
} catch (Throwable $e) {
DB::rollBack();
return redirect(URL::to("/laporan-file"))->with('error', 'Laporan gagal diubah!');
}
}
public function datatable(Request $request)
{
$post = $request->all();
$offset = $post["start"];
$limit = $post["length"];
$kode_rekening = isset($post["kode_rekening"]) ? $post["kode_rekening"] : "";
$ta = $post["ta"];
$src = isset($post["search"]["value"]) ? strtolower($post["search"]["value"]) : "";
$data = LaporanFile::where("tahun", $ta);
if (getRole() == "skpd") {
$data->whereIn("kode_skpd", [Auth::user()->nrk, 'anggaran']);
$data->where(function ($subquery) {
$subquery->whereIn("kode_rekening", MappingDbhSkpd::whereIn("kode_skpd", [Auth::user()->nrk])->pluck("kode_rekening"));
});
} elseif (getRole() == "sbpk") {
$data->whereIn("kode_skpd", function ($query) {
$query->select('C_OPD')
->from('NEWSIPKD.TROPD')
->where('C_WIL_SP2DPROSES', Auth::user()->wilayah);
});
$data->where(function ($subquery) {
$subquery->whereIn("kode_rekening", MappingDbhSkpd::whereIn("kode_skpd", [Auth::user()->nrk])->pluck("kode_rekening"));
});
} elseif (getRole() == "walikota" || getRole() == "induk skpd") {
$id = Tropd::where("C_OPD", Auth::user()->nrk)->first()["i_id"];
$data->whereIn("kode_skpd", function ($query) use ($id) {
$query->select('C_OPD')
->from('NEWSIPKD.TROPD')
->where('I_IDINDUK', $id);
});
$data->where(function ($subquery) {
$subquery->whereIn("kode_rekening", MappingDbhSkpd::whereIn("kode_skpd", [Auth::user()->nrk])->pluck("kode_rekening"));
});
}
// var_dump(MappingDbhSkpd::whereIn("kode_skpd",[Auth::user()->nrk])->pluck("kode_rekening")); exit;
if ($kode_rekening) {
$data->where("kode_rekening", $kode_rekening);
}
if (!empty($src)) {
$src = strtolower($src);
//$data->whereRaw("( LOWER(simtrad4_uraian) like '%".$src."%' OR LOWER(simtrad4_sp2d_bun) like '%".$src."%' OR LOWER(rkud_no_sts) like '%".$src."%')");
}
$dataFilter = $data->count();
$dataTotal = LaporanFile::where("tahun", $ta);
if (getRole() == "skpd") {
$dataTotal->where("kode_skpd", Auth::user()->nrk);
}
return response()->json([
"recordsTotal" => $dataTotal->count(),
"recordsFiltered" => $dataFilter,
"data" => $data->orderBy("created_at", "ASC")->skip($offset)->take($limit)->get()
]);
}
public function destroy(LaporanFile $laporanFile)
{
try {
DB::beginTransaction();
$alamatFile = config('constants.upload_path_laporan') . $laporanFile->nama_file;
if (file_exists($alamatFile)) {
unlink($alamatFile);
}
$laporanFile->delete();
DB::commit();
return redirect(URL::to("/laporan-file"))->with('success', 'Data Laporan berhasil dihapus!');
} catch (Throwable $e) {
DB::rollBack();
return redirect(URL::to("/laporan-file"))->with('error', 'Data Laporan gagal dihapus.');
}
}
public function show(LaporanFile $laporanFile)
{
$this->setSubtitle("Detail Data");
return view('laporan_file.show', compact("laporanFile"));
}
public function download($kode)
{
$laporanFile = LaporanFile::where("id", $kode)->firstorNew();
$headers = [
'Content-Type' => 'application/pdf',
'Content-Disposition' => 'attachment;filename=' . $laporanFile->nama_file
];
if ($laporanFile) {
return response()->download(config('constants.upload_path_laporan') . $laporanFile->nama_file);
} else {
echo "File tidak ditemukan!";
}
}
}
@@ -0,0 +1,65 @@
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use App\Models\MappingDauRinci;
use Illuminate\Http\Request;
class MappingDauRinciController extends Controller
{
public function index()
{
$items = MappingDauRinci::paginate(15);
return response()->json($items);
}
public function create()
{
return response()->json(['message' => 'Display form for creating resource']);
}
public function store(Request $request)
{
$data = $request->validate([
'field1' => 'required|string|max:255',
'field2' => 'nullable|string',
'field3' => 'nullable|numeric',
]);
$item = MappingDauRinci::create($data);
return response()->json($item, 201);
}
public function show(MappingDauRinci $mappingDauRinci)
{
return response()->json($mappingDauRinci);
}
public function edit(MappingDauRinci $mappingDauRinci)
{
return response()->json($mappingDauRinci);
}
public function update(Request $request, MappingDauRinci $mappingDauRinci)
{
$data = $request->validate([
'field1' => 'sometimes|required|string|max:255',
'field2' => 'nullable|string',
'field3' => 'nullable|numeric',
]);
$mappingDauRinci->update($data);
return response()->json($mappingDauRinci);
}
public function destroy(MappingDauRinci $mappingDauRinci)
{
$mappingDauRinci->delete();
return response()->json(null, 204);
}
}
@@ -0,0 +1,97 @@
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use App\Models\Notifikasi;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class NotifikasiController extends Controller
{
public function __construct(){
parent::__construct();
$this->setTitle("Notifikasi");
$this->setIconTitle("far fa-bell");
}
public function index()
{
return view('notifikasi.index');
}
public function create()
{
}
public function store(Request $request)
{
}
public function edit(BelanjaRealisasi $realisasi_belanja)
{
}
public function update(Request $request, BelanjaRealisasi $realisasi_belanja)
{
}
public function datatable(Request $request)
{
$post = $request->all();
$offset = $post["start"];
$limit = $post["length"];
//$src = $post["src"];
$dataFilter=0;
$data = Notifikasi::where("userid",Auth::user()->id)->orderBy("created_at","DESC");
// if (!empty($src)){
// $data->whereRaw("(LOWER(message) LIKE '%".strtolower($src)."%')");
// }
$dataFilter = $data->count();
$dataTotal = Notifikasi::where("userid",Auth::user()->id)->count();
return response()->json([
"recordsTotal" => $dataTotal,
"recordsFiltered" => $dataFilter,
"data"=> $data->skip($offset)->take($limit)->get()
]);
}
public function destroy(BelanjaRealisasi $realisasi_belanja)
{
// try{
// DB::beginTransaction();
// $realisasi_belanja->delete();
// DB::commit();
// return redirect()->route('realisasi-pendapatan.index')
// ->with('success','Data Realisasi Pendapatan berhasil dihapus!');
// }catch(Throwable $e){
// DB::rollBack();
// return redirect()->route('realisasi-pendapatan.index')
// ->with('error','Data Realisasi Pendapatan gagal dihapus.');
// }
}
public function show(BelanjaRealisasi $realisasi_belanja)
{
// if (!Auth::user()->can("Lihat SKPP")){
// abort(403, 'Youre not allowed to visit this page!');
// }
// $this->setSubtitle("Detail Data");
// return view('realisasi_belanja.show',compact("realisasi_belanja"));
}
public function getNotif(Request $request)
{
$notif = Notifikasi::selectRaw("jenis,url,TO_CHAR(created_at,'DD/MM/YYYY HH24:MI') as chat_date,message")->where(["userid"=>Auth::user()->id,"is_read"=>0]);
$notif = [
"jml"=>$notif->count(),
"data"=>$notif->orderBy("created_at","desc")->skip(0)->take(5)->get()
];
return response()->json($notif);
}
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,376 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Auth;
use Maatwebsite\Excel\Facades\Excel;
use App\Models\PendapatanRealisasi;
use App\Models\PendapatanRealisasiSts;
use App\Models\Sps_pendapatan;
use App\Models\VwJadwalSalur;
use App\Models\User;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
use Illuminate\Support\Facades\URL;
use Illuminate\Support\Facades\File;
class RealisasiPendapatanController extends Controller
{
public function __construct(){
$this->siteTitle = "Realisasi Pendapatan";
parent::__construct();
$this->setIconTitle("fa fa-reply");
}
public function index()
{
return view('realisasi_pendapatan.index')
->with('i', (request()->input('page', 1) - 1) * 10);
}
public function create()
{
// if (!Auth::user()->can("Tambah SKPP")){
// abort(403, 'Youre not allowed to visit this page!');
// }
$this->setSubtitle("Tambah Data");
return view('realisasi_pendapatan.create');
}
protected function dataPendapatan($req= [])
{
$data["tahun"] = $req["txt_ta"];
// $data["id_sps"] = $req["txt_id_sps"];
$txt_rek_sps = explode("|",$req["txt_rek_sps"]);
$data["kode_rekening_sps"] = trim($txt_rek_sps[0]);
$data["nama_rekening_sps"] = trim($txt_rek_sps[1]);
$data["simtrad4_uraian"] = $req["txt_simtrad4_uraian"];
$data["simtrad4_kotor"] = replaceMoney($req["txt_simtrad4_kotor"]);
$data["simtrad4_potongan"] = replaceMoney($req["txt_simtrad4_potongan"]);
$data["simtrad4_bersih"] = replaceMoney($req["txt_simtrad4_bersih"]);
$data["simtrad4_tgl_sp2d_bun"] = ConvertIndoDate($req["txt_simtrad4_tgl_sp2d_bun"]);
$data["simtrad4_sp2d_bun"] = $req["txt_simtrad4_sp2d_bun"];
$data["retur"] = replaceMoney($req["txt_retur"]);
$data["bersih"] = replaceMoney($req["txt_bersih"]);
$data["tw"] = $req["tw"];
$data["gelombang"] = $req["gelombang"];
$data["bulan"] = $req["bulan"];
$data["tahapan"] = $req["tahapan"];
$data["potongan_pph"] = replaceMoney($req["potongan_pph"]);
$data["potongan_jkn"] = replaceMoney($req["potongan_jkn"]);
return $data;
}
public function store(Request $request)
{
try{
$date = date("Ymd");
DB::beginTransaction();
$req = $request->all();
$data = $this->dataPendapatan($req);
$data["created_by"] = Auth::user()->id;
// var_dump($data); exit;
$PendapatanRealisasi = PendapatanRealisasi::create($data);
// SEND NOTIF
$userBendahara = User::where("role_name","bendahara")->get()->toArray();
$userBendahara = array_column($userBendahara,"id");
$url = URL::to("/realisasi-pendapatan/".$PendapatanRealisasi->id);
$message = "Realisasi Pendapatan telah dibuat oleh Bidang Anggaran dengan No. SP2D BUN ".$req["txt_simtrad4_sp2d_bun"];
$this->sendNotif("anggaran", "bendahara", $userBendahara, $message, $url, "Realisasi Pendapatan", $PendapatanRealisasi->id);
DB::commit();
return redirect(URL::to("/realisasi-pendapatan"))->with('success','Realisasi Pendapatan berhasil dibuat.');
}catch(\Exception $e){
DB::rollBack();
return redirect(URL::to("/realisasi-pendapatan"))->with('error',$e->getMessage());
}
}
public function edit(PendapatanRealisasi $realisasi_pendapatan)
{
$this->setSubtitle("Ubah Data");
return view('realisasi_pendapatan.edit',compact('realisasi_pendapatan'));
}
public function update(Request $request, PendapatanRealisasi $realisasi_pendapatan)
{
try{
DB::beginTransaction();
$req = $request->all();
$data = $this->dataPendapatan($req);
$data["updated_by"] = Auth::user()->id;
// var_dump($data); exit;
$realisasi_pendapatan->update($data);
DB::commit();
return redirect(URL::to("/realisasi-pendapatan"))->with('success','Realisasi Pendapatan berhasil diubah.');
}catch(Throwable $e){
DB::rollBack();
return redirect(URL::to("/realisasi-pendapatan"))->with('error','Realisasi Pendapatan gagal diubah!');
}
}
public function rinciDBH(Request $request)
{
$idSPS = $request->idSPS;
$select = DB::raw("spsbulan1,spsbulan2,spsbulan3,spsbulan4,spsbulan5,spsbulan6,spsbulan7,spsbulan8,spsbulan9,spsbulan10,spsbulan11,spsbulan12");
$sps = VwJadwalSalur::select($select)->where("TAHUN",getTA())->where("KODE_REKENING",$idSPS)->firstOrNew();
return response()->json($sps);
}
public function datatable(Request $request)
{
$post = $request->all();
$offset = $post["start"];
$limit = $post["length"];
$sps = $post["sps"];
$ta = $post["ta"];
$src = isset($post["search"]["value"]) ? strtolower($post["search"]["value"]):"";
$dataFilter=0;
$data = PendapatanRealisasi::with("listSts")->where("tahun",$ta)->orderBy("SIMTRAD4_TGL_SP2D_BUN","DESC");
if (!empty($sps))
{
$data->where("kode_rekening_sps",$sps);
}
if (!empty($src))
{
$src = strtolower($src);
$data->whereRaw("( LOWER(simtrad4_uraian) like '%".$src."%' OR LOWER(simtrad4_sp2d_bun) like '%".$src."%' OR LOWER(rkud_no_sts) like '%".$src."%')");
}
$dataFilter = $data->count();
$dataTotal = PendapatanRealisasi::where("tahun",$ta)->count();
return response()->json([
"recordsTotal" => $dataTotal,
"recordsFiltered" => $dataFilter,
"data"=> $data->skip($offset)->take($limit)->get()
]);
}
public function destroy(PendapatanRealisasi $realisasi_pendapatan)
{
try{
DB::beginTransaction();
// BUG FIX 20 FEB 2024
$uploadDir = config('constants.upload_path_sts').getTA();
if (File::exists($uploadDir.$realisasi_pendapatan->file_sts)){
File::delete($uploadDir.$realisasi_pendapatan->file_sts);
}
$realisasi_pendapatan->delete();
DB::commit();
return redirect(URL::to("/realisasi-pendapatan"))->with('success','Data Realisasi Pendapatan berhasil dihapus!');
}catch(Throwable $e){
DB::rollBack();
return redirect(URL::to("/realisasi-pendapatan"))->with('error','Data Realisasi Pendapatan gagal dihapus.');
}
}
public function show(PendapatanRealisasi $realisasi_pendapatan)
{
// if (!Auth::user()->can("Lihat SKPP")){
// abort(403, 'Youre not allowed to visit this page!');
// }
$this->readNotif($realisasi_pendapatan->id);
$this->setSubtitle("Detail Data");
// var_dump($realisasi_pendapatan->hasSts); exit;
return view('realisasi_pendapatan.show',compact("realisasi_pendapatan"));
}
public function sts(Request $request, $realisasiId)
{
// $request->validate([
// 'nama' => 'required',
// 'nip' => 'required',
// 'nrk' => 'required',
// ]);
// if (!Auth::user()->can("Tambah SKPP")){
// abort(403, 'Youre not allowed to visit this page!');
// }
$req = $request->all();
try{
$date = date("Ymd");
DB::beginTransaction();
$dataRealisasi = PendapatanRealisasi::where(['id' => $realisasiId])->first();
$arrTPG = getAkunTamsilTpg();
$sisa = 0;
if (in_array($req["rkud_kode_akun"],$arrTPG)){
$totalSts = PendapatanRealisasiSts::where(["id_pendapatan_realisasi" => $realisasiId])->get()->sum("rkud_jumlah");
$totalSts += replaceMoney($req["rkud_jumlah"]);
if (replaceMoney($req["rkud_jumlah"]) > $dataRealisasi["simtrad4_bersih"]){
return redirect(URL::to("/realisasi-pendapatan/".$realisasiId))->with('error', "Jumlah STS harus sama atau lebih kecil dengan Rencana !");
}
$sisa = $dataRealisasi["simtrad4_bersih"] - replaceMoney($totalSts);
}else{
if ($dataRealisasi["simtrad4_bersih"]<>replaceMoney($req["rkud_jumlah"])){
return redirect(URL::to("/realisasi-pendapatan/".$realisasiId))->with('error', "Jumlah STS harus sama dengan Rencana !");
}
}
$data["rkud_tgl"] = $req["rkud_tgl"];
$data["rkud_no_sts"] = $req["rkud_no_sts"];
$data["rkud_kode_akun"] = $req["rkud_kode_akun"];
$data["rkud_nama_akun"] = $req["rkud_nama_akun"];
$data["rkud_jumlah"] = replaceMoney($req["rkud_jumlah"]);
$data["sisa_sts"] = $sisa;
$file = $request->file('file_sts');
if ($file){
$fileName = str_replace([" ","/"],["_","_"],$req["rkud_no_sts"]).".".$file->getClientOriginalExtension();
$tujuan_upload = config('constants.upload_path_sts').getTA();
File::isDirectory($tujuan_upload) or File::makeDirectory($tujuan_upload, 0777, true, true);
$file->move($tujuan_upload, $fileName);
$data["file_sts"] = $fileName;
}
PendapatanRealisasiSts::updateOrCreate([
"id_pendapatan_realisasi"=>$realisasiId,
"rkud_no_sts"=>$req["rkud_no_sts"]
],$data);
DB::commit();
// $userAnggaran = User::where("role_name","anggaran")->get()->toArray();
// $userAnggaran = array_column($userAnggaran,"id");
// $url = URL::to("/realisasi-pendapatan/".$realisasiId);
// $message = "Realisasi Pendapatan dengan No. SP2D BUN ".$data["simtrad4_sp2d_bun"]." telah divalidasi oleh Bidang Perben!";
// $this->sendNotif("bendahara", "anggaran", $userAnggaran, $message, $url, "Realisasi Pendapatan", $data->id);
return redirect(URL::to("/realisasi-pendapatan/".$realisasiId))->with('success','STS berhasil diinput.');
}catch(\Exception $e){
DB::rollBack();
return redirect(URL::to("/realisasi-pendapatan/".$realisasiId))->with('error',$e->getMessage());
}
}
public function download(Request $request)
{
$post = $request->all();
$sps = isset($post["sps"])?$post["sps"]:"";
$ta = $post["ta"];
if ($post["export-type"]=="excel")
{
$data = PendapatanRealisasi::with("listSts")->where("tahun", $ta)->orderBy("created_at","ASC");
if (!empty($sps)){
$data->where("kode_rekening_sps",$sps);
}
$fileName = 'Realisasi-pendapatan.xlsx';
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue(getAlphabetCell(0).'1', 'Uraian');
$sheet->setCellValue(getAlphabetCell(1).'1', 'Kotor');
$sheet->setCellValue(getAlphabetCell(2).'1', 'Potongan');
$sheet->setCellValue(getAlphabetCell(3).'1', 'Bersih');
$sheet->setCellValue(getAlphabetCell(4).'1', 'Retur');
$sheet->setCellValue(getAlphabetCell(5).'1', 'Jumlah Bersih');
$sheet->setCellValue(getAlphabetCell(6).'1', 'SP2D BUN');
$sheet->setCellValue(getAlphabetCell(7).'1', 'TGL SP2D BUN');
$sheet->setCellValue(getAlphabetCell(8).'1', 'TGL STS');
$sheet->setCellValue(getAlphabetCell(9).'1', 'NO STS');
$sheet->setCellValue(getAlphabetCell(10).'1', 'Kode Akun');
$sheet->setCellValue(getAlphabetCell(11).'1', 'Nama Akun');
$sheet->setCellValue(getAlphabetCell(12).'1', 'TW');
$sheet->setCellValue(getAlphabetCell(13).'1', 'Gelombang');
$sheet->setCellValue(getAlphabetCell(14).'1', 'Potongan PPH');
$sheet->setCellValue(getAlphabetCell(15).'1', 'Potongan JKN');
$sheet->setCellValue(getAlphabetCell(16).'1', 'Jumlah');
$rows = 2;
foreach ($data->get() as $val){
$sheet->setCellValue(getAlphabetCell(0) . $rows, $val["simtrad4_uraian"]);
$sheet->setCellValue(getAlphabetCell(1) . $rows, $val["simtrad4_kotor"]);
$sheet->setCellValue(getAlphabetCell(2) . $rows, $val["simtrad4_potongan"]);
$sheet->setCellValue(getAlphabetCell(3) . $rows, $val["simtrad4_bersih"]);
$sheet->setCellValue(getAlphabetCell(4) . $rows, $val["retur"]);
$sheet->setCellValue(getAlphabetCell(5) . $rows, $val["bersih"]);
$sheet->setCellValue(getAlphabetCell(6) . $rows, $val["simtrad4_sp2d_bun"]);
$sheet->setCellValue(getAlphabetCell(7) . $rows, $val["simtrad4_tgl_sp2d_bun"]);
$sheet->setCellValue(getAlphabetCell(8) . $rows, $val["listSts"]?$val["listSts"]["rkud_tgls"]:"");
$sheet->setCellValue(getAlphabetCell(9) . $rows, $val["listSts"]?$val["listSts"]["rkud_no_sts"]:"");
$sheet->setCellValue(getAlphabetCell(10) . $rows, $val["kode_rekening_sps"]);
$sheet->setCellValue(getAlphabetCell(11) . $rows, $val["nama_rekening_sps"]);
$sheet->setCellValue(getAlphabetCell(12) . $rows, $val["tw"]);
$sheet->setCellValue(getAlphabetCell(13) . $rows, $val["gelombang"]);
$sheet->setCellValue(getAlphabetCell(14) . $rows, $val["potongan_pph"]);
$sheet->setCellValue(getAlphabetCell(15) . $rows, $val["potongan_jkn"]);
$sheet->setCellValue(getAlphabetCell(16) . $rows, $val["listSts"]?$val["listSts"]["rkud_jumlah"]:"");
$rows++;
}
$writer = new Xlsx($spreadsheet);
$writer->save("downloadFiles/".$fileName);
}else if($post["export-type"]=="all_sts"){
$zip = new \ZipArchive();
$fileName = "STS_ALL_".getTA().".zip";
if ($zip->open(public_path("downloadFiles/".$fileName), \ZipArchive::CREATE)== TRUE)
{
$files = File::files(public_path(config('constants.upload_path_sts').getTA()));
foreach ($files as $key => $value){
$relativeName = basename($value);
$zip->addFile($value, $relativeName);
}
$zip->close();
}
}
$headers = [
'Content-Type' => 'application/vnd.ms-excel',
'Content-Disposition' => 'attachment;filename='.$fileName
];
return response()->download("downloadFiles/".$fileName, $fileName, $headers);
}
public function downloadSts(PendapatanRealisasi $realisasi)
{
$sts = PendapatanRealisasiSts::where("id_pendapatan_realisasi",$realisasi->id)->first();
$headers = [
'Content-Type' => 'application/pdf',
'Content-Disposition' => 'attachment;filename='.$sts->file_sts
];
return response()->download(config('constants.upload_path_sts').getTA()."/".$sts->file_sts, $sts->file_sts, $headers);
}
public function deleteSts(PendapatanRealisasiSts $stsId)
{
try{
DB::beginTransaction();
$uploadDir = config('constants.upload_path_sts').getTA();
if (File::exists($uploadDir.$stsId->file_sts)){
File::delete($uploadDir.$stsId->file_sts);
}
$stsId->delete();
DB::commit();
return redirect(URL::to("/realisasi-pendapatan/".$stsId->id_pendapatan_realisasi))->with('success','Data STS Pendapatan berhasil dihapus!');
}catch(Throwable $e){
DB::rollBack();
return redirect(URL::to("/realisasi-pendapatan/".$stsId->id_pendapatan_realisasi))->with('error','Data STS Pendapatan gagal dihapus.');
}
}
}
@@ -0,0 +1,157 @@
<?php
namespace App\Http\Controllers;
use App\Models\SisaSalurDana;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Contracts\Session\Session;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Facades\URL;
class SisaSalurDanaController extends Controller
{
public function __construct()
{
$this->siteTitle = "Data Sisa Tahun Anggaran Sebelumnya";
parent::__construct();
}
public function index()
{
$data = null;
return view('sisa_salur_dana.index',compact('data'))
->with('i', (request()->input('page', 1) - 1) * 10);
}
public function create()
{
$this->setSubtitle("Tambah Data");
return view('sisa_salur_dana.create');
}
public function show(SisaSalurDana $SisaSalurDana)
{
SisaSalurDana::where("id",$SisaSalurDana->id)->get();
$this->setSubtitle("Detail Data Sisa Tahun Anggaran Sebelumnya ");
return view('sisa_salur_dana.show',compact('SisaSalurDana'));
}
public function store(Request $request)
{
$request->validate([
'tahun' => 'required',
'kode_rekening' => 'required',
'jumlah' => 'required',
]);
$req = $request->all();
$this->validate($request, [
'file' => 'required|mimes:pdf,xlsx,xls,png,gif,jpg,jpeg',
]);
$data["tahun"] = $req["tahun"];
$data["kode_rekening"] = $req["kode_rekening"];
$data["jumlah"] = replaceMoney($req["jumlah"]);
$file = $request->file('file');
if ($file){
$ext = $file->getClientOriginalExtension();
$NewFileName = $data["tahun"].$data["kode_rekening"].".".$ext;
$tujuan_upload = 'uploadFiles/sisa_salur_dana';
File::isDirectory($tujuan_upload) or File::makeDirectory($tujuan_upload, 0777, true, true);
$file->move($tujuan_upload, $NewFileName);
$data["dokumen"] = $NewFileName;
// var_dump($NewFileName);
// exit;
}
if ($request->isMethod('post')){
$SisaSalurDana = SisaSalurDana::where("tahun",getTA())->where("kode_rekening",$req["kode_rekening"])->first();
if ($SisaSalurDana){
return redirect(URL::to("/SisaSalurDana/"))->with('error','Data Sisa Tahun Anggaran Sebelumnya gagal diTambah! No Rekening : '.$req["kode_rekening"].' sudah ada!');
}
else{
//var_dump($data); exit;
$SisaSalurDana = SisaSalurDana::create($data);
return redirect(URL::to("/SisaSalurDana/".$SisaSalurDana->id))->with('success','Data Sisa Tahun Anggaran Sebelumnya berhasil diTambah');
}
}
}
public function edit(SisaSalurDana $SisaSalurDana)
{
$this->setSubtitle("Ubah Data");
return view('sisa_salur_dana.edit',compact('SisaSalurDana'));
}
public function download($id)
{
$SisaSalurDana = SisaSalurDana::where("id",$id)->first();
$headers = [
'Content-Disposition' => 'attachment;filename='.$SisaSalurDana->dokumen
];
$path = config('constants.upload_path')."sisa_salur_dana/".$SisaSalurDana->dokumen;
return response()->file($path, $headers);
}
public function update(Request $request, SisaSalurDana $SisaSalurDana )
{
$request->validate([
'tahun' => 'required',
'kode_rekening' => 'required',
'jumlah' => 'required',
]);
$req = $request->all();
$data["tahun"] = $req["tahun"];
$data["kode_rekening"] = $req["kode_rekening"];
$data["jumlah"] = replaceMoney($req["jumlah"]);
$file = $request->file('file');
if ($file){
$ext = $file->getClientOriginalExtension();
$NewFileName = $data["tahun"].$data["kode_rekening"].".".$ext;
$tujuan_upload = 'uploadFiles/sisa_salur_dana';
File::isDirectory($tujuan_upload) or File::makeDirectory($tujuan_upload, 0777, true, true);
$file->move($tujuan_upload, $NewFileName);
$data["dokumen"] = $NewFileName;
}
$SisaSalurDana->update($req);
return redirect()->route('SisaSalurDana.index')
->with('success','Data Sisa Tahun Anggaran Sebelumnya berhasil diubah!');
}
public function destroy(SisaSalurDana $SisaSalurDana)
{
SisaSalurDana::where("id",$SisaSalurDana->id)->delete();
$SisaSalurDana->delete();
return redirect()->route('SisaSalurDana.index')
->with('success','Data Sisa Tahun Anggaran Sebelumnya berhasil dihapus!');
}
public function datatable(Request $request)
{
$post = $request->all();
$offset = $post["start"];
$limit = $post["length"];
$src = isset($post["search"]["value"]) ? strtolower($post["search"]["value"]):"";
$select = DB::raw("ID,TAHUN,KODE_REKENING,JUMLAH");
$sqltr = SisaSalurDana::select($select);
$dataTotal = $sqltr->count();
$data = $sqltr->orderBy("ID");
if (!empty($src)){
$data->whereRaw(" ( lower(KODE_REKENING) like '%$src% OR lower(JUMLAH) like '%$src%') ");
}
$dataFilter = $data->count();
return response()->json([
"recordsTotal" => $dataTotal,
"recordsFiltered" => $dataFilter,
"data"=> $data->skip($offset)->take($limit)->get()
]);
}
}
+34
View File
@@ -0,0 +1,34 @@
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use App\Models\Tropd;
use Illuminate\Http\Request;
class SkpdController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
//
}
public function selectSearch(Request $request)
{
$tropd = [];
if($request->has('q')){
$search = strtoupper($request->q);
$select = DB::raw("I_ID,I_ID||' | '||N_OPD as name");
$tropd = Tropd::select($select)
->where('N_OPD', 'LIKE', "%$search%")
->get();
}
return response()->json($tropd);
}
}
+71
View File
@@ -0,0 +1,71 @@
<?php
namespace App\Http;
use Illuminate\Foundation\Http\Kernel as HttpKernel;
class Kernel extends HttpKernel
{
/**
* The application's global HTTP middleware stack.
*
* These middleware are run during every request to your application.
*
* @var array
*/
protected $middleware = [
// \App\Http\Middleware\TrustHosts::class,
\App\Http\Middleware\TrustProxies::class,
\Fruitcake\Cors\HandleCors::class,
\App\Http\Middleware\PreventRequestsDuringMaintenance::class,
\Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
\App\Http\Middleware\TrimStrings::class,
\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
];
/**
* The application's route middleware groups.
*
* @var array
*/
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
// \Illuminate\Session\Middleware\AuthenticateSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
'api' => [
// \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
'throttle:api',
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
];
/**
* The application's route middleware.
*
* These middleware may be assigned to groups or used individually.
*
* @var array
*/
protected $routeMiddleware = [
'auth' => \App\Http\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
'can' => \Illuminate\Auth\Middleware\Authorize::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class,
'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
// 'role' => \App\Http\Middleware\CheckRole::class,
'role' => \Spatie\Permission\Middlewares\RoleMiddleware::class,
'permission' => \Spatie\Permission\Middlewares\PermissionMiddleware::class,
'role_or_permission' => \Spatie\Permission\Middlewares\RoleOrPermissionMiddleware::class,
];
}
+22
View File
@@ -0,0 +1,22 @@
<?php
namespace App\Http\Middleware;
use Illuminate\Auth\Middleware\Authenticate as Middleware;
class Authenticate extends Middleware
{
/**
* Get the path the user should be redirected to when they are not authenticated.
*
* @param \Illuminate\Http\Request $request
* @return string|null
*/
protected function redirectTo($request)
{
if (! $request->expectsJson()) {
// Paksa redirect membawa prefix /sidata agar tidak terlempar ke root domain
return url('/sidata/login');
}
}
}
+32
View File
@@ -0,0 +1,32 @@
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
class CheckRole
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle(Request $request, Closure $next, ... $roles)
{
$hasRole = false;
foreach($roles as $role){
if ($request->user()->hasRole($role)) {
$hasRole = true;
}
}
if (!$hasRole){
abort(403, 'This action is unauthorized.');
}
return $next($request);
}
}
+17
View File
@@ -0,0 +1,17 @@
<?php
namespace App\Http\Middleware;
use Illuminate\Cookie\Middleware\EncryptCookies as Middleware;
class EncryptCookies extends Middleware
{
/**
* The names of the cookies that should not be encrypted.
*
* @var array
*/
protected $except = [
//
];
}
@@ -0,0 +1,17 @@
<?php
namespace App\Http\Middleware;
use Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance as Middleware;
class PreventRequestsDuringMaintenance extends Middleware
{
/**
* The URIs that should be reachable while maintenance mode is enabled.
*
* @var array
*/
protected $except = [
//
];
}
@@ -0,0 +1,32 @@
<?php
namespace App\Http\Middleware;
use App\Providers\RouteServiceProvider;
use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class RedirectIfAuthenticated
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @param string|null ...$guards
* @return mixed
*/
public function handle(Request $request, Closure $next, ...$guards)
{
$guards = empty($guards) ? [null] : $guards;
foreach ($guards as $guard) {
if (Auth::guard($guard)->check()) {
return redirect(RouteServiceProvider::HOME);
}
}
return $next($request);
}
}
+19
View File
@@ -0,0 +1,19 @@
<?php
namespace App\Http\Middleware;
use Illuminate\Foundation\Http\Middleware\TrimStrings as Middleware;
class TrimStrings extends Middleware
{
/**
* The names of the attributes that should not be trimmed.
*
* @var array
*/
protected $except = [
'current_password',
'password',
'password_confirmation',
];
}
+20
View File
@@ -0,0 +1,20 @@
<?php
namespace App\Http\Middleware;
use Illuminate\Http\Middleware\TrustHosts as Middleware;
class TrustHosts extends Middleware
{
/**
* Get the host patterns that should be trusted.
*
* @return array
*/
public function hosts()
{
return [
$this->allSubdomainsOfApplicationUrl(),
];
}
}
+23
View File
@@ -0,0 +1,23 @@
<?php
namespace App\Http\Middleware;
use Illuminate\Http\Middleware\TrustProxies as Middleware;
use Illuminate\Http\Request;
class TrustProxies extends Middleware
{
/**
* The trusted proxies for this application.
*
* @var array|string|null
*/
protected $proxies = '*';
/**
* The headers that should be used to detect proxies.
*
* @var int
*/
protected $headers = Request::HEADER_X_FORWARDED_ALL;
}
+17
View File
@@ -0,0 +1,17 @@
<?php
namespace App\Http\Middleware;
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as Middleware;
class VerifyCsrfToken extends Middleware
{
/**
* The URIs that should be excluded from CSRF verification.
*
* @var array
*/
protected $except = [
//
];
}
+71
View File
@@ -0,0 +1,71 @@
<?php
namespace App\Imports;
use App\Models\DataUploadBosOmspan;
use Maatwebsite\Excel\Concerns\ToModel;
use Maatwebsite\Excel\Concerns\Importable;
use Maatwebsite\Excel\Concerns\WithStartRow;
use Maatwebsite\Excel\Concerns\WithSkipDuplicates;
use Maatwebsite\Excel\Concerns\WithColumnFormatting;
use Illuminate\Support\Facades\Auth;
class ImportDataBos implements WithColumnFormatting, ToModel, WithStartRow
{
use Importable;
protected $ta;
public function __construct($ta){
$this->ta = $ta;
}
public function startRow(): int
{
return 2;
}
protected function replaceIni($str)
{
return str_replace(["'"],"",$str);
}
public function model(array $row)
{
$data = [
"tahun"=>getTA(),
"no"=>$this->replaceIni($row[0]),
"kanwil"=>$this->replaceIni($row[1]),
"kppn"=>$this->replaceIni($row[2]),
"lokasi_kewenangan"=>$this->replaceIni($row[3]),
"lokasi_sekolah"=>$this->replaceIni($row[4]),
"no_tgl_sk"=>$this->replaceIni($row[5]),
"jenis_bos"=>$this->replaceIni($row[6]),
"tahap"=>$this->replaceIni($row[7]),
"gelombang"=>$this->replaceIni($row[8]),
"npsn_nama_sekolah"=>$this->replaceIni($row[9]),
"jenis_satuan_pendidikan"=>$this->replaceIni($row[10]),
"status_sekolah"=>$this->replaceIni($row[11]),
"bank"=>$this->replaceIni($row[12]),
"no_rekening_nama_rekening"=>$this->replaceIni($row[13]),
"npsn"=>$this->replaceIni($row[14]),
"rekening"=>$this->replaceIni($row[15]),
"nama"=>$this->replaceIni($row[16]),
"jenjang_sekolah"=>$this->replaceIni($row[17]),
"no_tgl_sp2d_detail"=>$this->replaceIni($row[18]),
"no_sp2d"=>$this->replaceIni($row[19]),
"tgl_sp2d"=>is_numeric($row[20])?convertSerialDate($row[20]):$row[20],
"status"=>$this->replaceIni($row[21]),
"nilai"=>$this->replaceIni($row[22]),
"pagu"=>$this->replaceIni($row[23]),
"jmlh_siswa"=>$this->replaceIni($row[24]),
"ket_retur"=>$this->replaceIni($row[25])
];
return new DataUploadBosOmspan($data);
}
public function columnFormats(): array
{
return [
'Tgl' => NumberFormat::FORMAT_DATE_DDMMYYYY,
];
}
}
+53
View File
@@ -0,0 +1,53 @@
<?php
namespace App\Imports;
use App\Models\TempRealisasiBelanja;
use Maatwebsite\Excel\Concerns\ToModel;
use Maatwebsite\Excel\Concerns\Importable;
use Maatwebsite\Excel\Concerns\WithStartRow;
use Illuminate\Support\Facades\Auth;
class RealisasiBelanjaImport implements ToModel, WithStartRow
{
use Importable;
protected $ta;
protected $jenisDana;
protected $subjenisDana;
public function __construct($ta, $jenisDana, $subjenisDana){
$this->ta = $ta;
$this->jenisDana = $jenisDana;
$this->subjenisDana = $subjenisDana;
}
public function startRow(): int
{
return 2;
}
public function model(array $row)
{
$data = [
"tahun_anggaran"=>$this->ta,
"jenis_belanja"=>$row[0],
"sub_jenis_belanja"=>$row[1],
"kode_program"=>$row[2],
"nama_program"=>$row[3],
"kode_skpd"=>$row[4],
"nama_skpd"=>$row[5],
"kode_kegiatan"=>$row[6],
"nama_kegiatan"=>$row[7],
"kode_sub_kegiatan"=>$row[8],
"nama_sub_kegiatan"=>$row[9],
"kode_rsk"=>$row[10],
"nama_rsk"=>$row[11],
"jumlah_anggaran"=>$row[12],
"volume_satuan"=>$row[13],
"unit_satuan"=>$row[14],
"jenis_dana"=>$this->jenisDana,
"sub_jenis_dana"=>$this->subjenisDana,
"userid"=>Auth::user()->id
];
return new TempRealisasiBelanja($data);
}
}
+57
View File
@@ -0,0 +1,57 @@
<?php
namespace App\Imports;
use App\Models\TempRealisasiBelanja;
use Maatwebsite\Excel\Concerns\ToModel;
use Maatwebsite\Excel\Concerns\Importable;
use Maatwebsite\Excel\Concerns\WithStartRow;
use Illuminate\Support\Facades\Auth;
class RealisasiBelanjaImportDak implements ToModel, WithStartRow
{
use Importable;
protected $ta;
protected $jenisDana;
protected $subjenisDana;
public function __construct($ta, $jenisDana, $subjenisDana){
$this->ta = $ta;
$this->jenisDana = $jenisDana;
$this->subjenisDana = $subjenisDana;
}
public function startRow(): int
{
return 2;
}
public function model(array $row)
{
$data = [
"tahun_anggaran"=>$this->ta,
"jenis_belanja"=>$row[0],
"sub_jenis_belanja"=>$row[1],
"kode_program"=>$row[2],
"nama_program"=>$row[3],
"kode_skpd"=>Auth::user()->nrk,
"nama_skpd"=>Auth::user()->name,
"kode_kegiatan"=>$row[4],
"nama_kegiatan"=>$row[5],
"kode_sub_kegiatan"=>$row[6],
"nama_sub_kegiatan"=>$row[7],
"kode_rsk"=>$row[8],
"nama_rsk"=>$row[9],
"jumlah_anggaran"=>$row[10],
"volume_satuan"=>$row[11],
"unit_satuan"=>$row[12],
"jenis_dana"=>$this->jenisDana,
"sub_jenis_dana"=>$this->subjenisDana,
"userid"=>Auth::user()->id
];
if ($this->subjenisDana == "Fisik"){
$data["jml_rencana_kontrak"] = $row[13];
}
return new TempRealisasiBelanja($data);
}
}
+17
View File
@@ -0,0 +1,17 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Yajra\Oci8\Eloquent\OracleEloquent as Eloquent;
use Illuminate\Support\Facades\Auth;
class AkbPendapatan extends Eloquent
{
use HasFactory;
protected $connection = 'Samasa';
protected $table = 'AKB_PENDAPATAN';
protected $guarded = [];
public $timestamps = false;
}
+108
View File
@@ -0,0 +1,108 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Yajra\Oci8\Eloquent\OracleEloquent as Eloquent;
use Illuminate\Support\Facades\DB;
class AkbSpb23 extends Eloquent
{
use HasFactory;
protected $connection = 'mysql';
// public function getAkbPendapatan()
// {
// $sqlstr = "select
// D.tahun,
// D.unitkerja_id,
// D.komisi as unitkerja_komisi,
// D.kode_wilayah as unitkerja_wilayah,
// D.kode as Unitkerja_Kode,
// D.kode_permen as Unitkerja_kodepermen,
// D.nama as Unitkerja_nama,
// C.rekening_id as rek_id,
// C.kode as rek_kode,
// C.nama as rek_nama,
// B.nilai,
// coalesce(A.bulan1, 0) as bulan1,
// coalesce(A.bulan2, 0) as bulan2,
// coalesce(A.bulan3, 0) as bulan3,
// coalesce(A.bulan4, 0) as bulan4,
// coalesce(A.bulan5, 0) as bulan5,
// coalesce(A.bulan6, 0) as bulan6,
// coalesce(A.bulan7, 0) as bulan7,
// coalesce(A.bulan8, 0) as bulan8,
// coalesce(A.bulan9, 0) as bulan9,
// coalesce(A.bulan10, 0) as bulan10,
// coalesce(A.bulan11, 0) as bulan11,
// coalesce(A.bulan12, 0) as bulan12
// from next_pendapatan B
// left join next_pendapatan_proyeksi A on A.pendapatan_id = B.pendapatan_id
// join hist2_rekening C on B.rekening_id = C.rekening_id and C.tahun = ".getTA()."
// join hist_unitkerja D on B.unitkerja_id = D.unitkerja_id and D.tahun = ".getTA()."
// ORDER BY C.kode";
// return DB::connection("mysql")->select(DB::raw($sqlstr));
// }
public function getAkbPendapatan()
{
// UNTUK 2024
// $sqlstr = "SELECT
// I_IDOPD unitkerja_id,
// y.N_AKUN rek_nama,
// y.C_AKUN rek_kode,
// V_ANGG_TAPD nilai,
// V_SPS_BULAN01 bulan1,
// V_SPS_BULAN02 bulan2,
// V_SPS_BULAN03 bulan3,
// V_SPS_BULAN04 bulan4,
// V_SPS_BULAN05 bulan5,
// V_SPS_BULAN06 bulan6,
// V_SPS_BULAN07 bulan7,
// V_SPS_BULAN08 bulan8,
// V_SPS_BULAN09 bulan9,
// V_SPS_BULAN10 bulan10,
// V_SPS_BULAN11 bulan11,
// V_SPS_BULAN12 bulan12
// FROM NEWSIPKD.TMDPADPT x
// LEFT JOIN NEWSIPKD.TRBAS y ON x.I_IDBAS = y.I_ID
// WHERE C_ANGG_TAHUN = ".getTA()."";
// $sqlstr = "SELECT
// unitkerja_id,
// NAMA_REKENING rek_nama,
// KODE_REKENING rek_kode,
// REK_ANGGARAN nilai,
// BULAN1,
// BULAN2,
// BULAN3,
// BULAN4,
// BULAN5,
// BULAN6,
// BULAN7,
// BULAN8,
// BULAN9,
// BULAN10,
// BULAN11,
// BULAN12
// FROM SYNCHRO.P_SPB_PENDAPATANAKB
// WHERE TAHUN= ".getTA()."";
$sqlstr = "SELECT C_ANGG_TAHUN TAHUN,
I_IDSKPD UNITKERJA_ID,
C_AKUN rek_kode,
N_AKUN rek_nama,
BULAN1+BULAN2+BULAN3+BULAN4+BULAN5+BULAN6+BULAN7+BULAN8+
BULAN9+BULAN10+BULAN11+BULAN12 nilai,
BULAN1,BULAN2,BULAN3,BULAN4,
BULAN5,BULAN6,BULAN7,BULAN8,
BULAN9,BULAN10,BULAN11,BULAN12
FROM NEWSIPKD.P_PENDAPATAN_RINCIAKB
WHERE C_ANGG_TAHUN = ".getTA();
return DB::connection("oracle")->select(DB::raw($sqlstr));
}
}
+14
View File
@@ -0,0 +1,14 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Yajra\Oci8\Eloquent\OracleEloquent as Eloquent;
class AkunTamsilTpg extends Eloquent
{
use HasFactory;
protected $connection = 'Samasa';
protected $table = 'akun_tamsil_tpg';
}
+192
View File
@@ -0,0 +1,192 @@
<?php
namespace App\Models;
use App\Traits\Uuids;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Yajra\Oci8\Eloquent\OracleEloquent as Eloquent;
use Illuminate\Support\Facades\DB;
class BelanjaRealisasi extends Eloquent
{
use HasFactory;
use Uuids;
protected $connection = 'Samasa';
protected $table = 'belanja_realisasi';
protected $fillable = [
"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",
"alokasi_anggaran",
"volume_satuan",
"unit_satuan",
"jumlah_realisasi",
"volume_satuan_realisasi",
"unit_satuan_realisasi",
"no_sp2d",
"jml_rencana_kontrak",
"realisasi_by",
"created_by",
"jenis_dana",
"sub_jenis_dana",
"id_sps",
"f_view_sbpk"
];
public function getSPD($subgiat,$skpd)
{
return DB::select(DB::raw(
"SELECT a.I_SPDNO_DOK as NO_SPD, a1.D_SPD_CETAK as TGL, b.JML as jumlah
FROM NEWSIPKD.TMSPD a
LEFT JOIN NEWSIPKD.TMSPDCETAK a1 ON a.I_ID=a1.I_ID
INNER JOIN (
SELECT I_IDSPD, SUM(V_SPD) AS JML
FROM NEWSIPKD.TMSPDRINCIBLJ x
LEFT JOIN NEWSIPKD.TMDPASUBGIAT y
ON x.I_IDSUBGIAT = y.I_ID
WHERE y.C_SUBGIAT = '".$subgiat."'
AND y.I_IDOPD = '".$skpd."'
GROUP BY I_IDSPD
) b
ON a.I_ID = b.I_IDSPD
WHERE a.C_ANGG_TAHUN = ".getTA()." ORDER BY a.D_SPDNO"
));
}
public function tableData($ta, $filter, $offset=0, $limit=0)
{
$ta = getTA();
$sqlstr = "SELECT a.*,NVL(b.jml,0) as jml,
CASE WHEN a.jenis_dana = 'DBH' AND a.nama_subjenis_dana<>'CHT'
THEN NVL(d.jml_spd, 0) ELSE NVL(c.jml_spd, 0) END AS jml_spd,
a2.semester1,a2.semester2,a2.satuan_sms1,a2.satuan_sms2,
volume_satuan_realisasi_1,volume_satuan_realisasi_2,volume_satuan_realisasi_3,volume_satuan_realisasi_4,volume_satuan_realisasi_5,volume_satuan_realisasi_6,volume_satuan_realisasi_7,
volume_satuan_realisasi_8,volume_satuan_realisasi_9,volume_satuan_realisasi_10,volume_satuan_realisasi_11,volume_satuan_realisasi_12,
jumlah_realisasi_1,jumlah_realisasi_2,jumlah_realisasi_3,jumlah_realisasi_4,jumlah_realisasi_5,jumlah_realisasi_6,jumlah_realisasi_7,
jumlah_realisasi_8,jumlah_realisasi_9,jumlah_realisasi_10,jumlah_realisasi_11,jumlah_realisasi_12
FROM VW_BELANJA_REALISASI a
LEFT JOIN BELANJA_REALISASI_RINCI a1
ON a.id=a1.belanja_realisasi_id
LEFT JOIN (
SELECT BELANJA_REALISASI_ID,SUM(SEMESTER1) SEMESTER1,SUM(SEMESTER2) SEMESTER2,
SUM(SATUAN_SMS1) SATUAN_SMS1,SUM(SATUAN_SMS2) SATUAN_SMS2
FROM ( SELECT BELANJA_REALISASI_ID,JUMLAH_REALISASI AS SEMESTER1, 0 AS SEMESTER2,
VOLUME_SATUAN_REALISASI AS SATUAN_SMS1, 0 AS SATUAN_SMS2
FROM BELANJA_REALISASI_DETAIL WHERE SEMESTER = 1
UNION ALL SELECT BELANJA_REALISASI_ID,0 AS SEMESTER1, JUMLAH_REALISASI AS SEMESTER2,
0 AS SATUAN_SMS2, VOLUME_SATUAN_REALISASI AS SATUAN_SMS2
FROM BELANJA_REALISASI_DETAIL WHERE SEMESTER = 2
) GROUP BY BELANJA_REALISASI_ID
) a2 ON a.id = a2.BELANJA_REALISASI_ID
LEFT JOIN (
SELECT I_IDRSK,SUM(REALISASI) AS jml
FROM MV_ANGGARAN_REALISASI_RSK
WHERE C_ANGG_TAHUN = $ta
GROUP BY I_IDRSK
) b ON a.kode_rsk = b.I_IDRSK
LEFT JOIN (
SELECT id_rsk,count(id_rsk) as jml_spd
FROM belanja_realisasi_spd
WHERE TO_CHAR(TGL,'YYYY') = $ta
GROUP BY id_rsk
) c ON a.kode_rsk = c.id_rsk
LEFT JOIN (
SELECT C_OPD,C_SUBGIAT,COUNT(JML) AS jml_spd
FROM
(
SELECT C_OPD,C_SUBGIAT,SUM(V_SPD) AS JML
FROM NEWSIPKD.TMSPDRINCIBLJ x
LEFT JOIN NEWSIPKD.TMDPASUBGIAT y ON x.I_IDSUBGIAT = y.I_ID
AND x.C_ANGG_TAHUN = $ta
LEFT JOIN NEWSIPKD.TROPD z ON z.I_ID = y.I_IDOPD
WHERE C_SUBGIAT IS NOT NULL
GROUP BY C_OPD,C_SUBGIAT,I_IDSPD
) GROUP BY C_OPD,C_SUBGIAT
) d ON a.KODE_SUB_KEGIATAN = d.C_SUBGIAT AND a.KODE_SKPD = d.C_OPD
".$filter."
ORDER BY a.KODE_SKPD, a.KODE_RSK ";
$sqlstr.= $limit > 0?" OFFSET ".$offset." ROWS FETCH NEXT ".$limit." ROWS ONLY ":"";
return $sqlstr;
}
public function tableDataReport($ta, $filter, $offset=0, $limit=0)
{
$ta = getTA();
$sqlstr = "SELECT a.*,NVL(b.jml,0) as jml,
CASE WHEN a.jenis_dana = 'DBH' AND a.nama_subjenis_dana<>'CHT'
THEN NVL(d.jml_spd, 0) ELSE NVL(c.jml_spd, 0) END AS jml_spd,
a2.semester1,a2.semester2,a2.satuan_sms1,a2.satuan_sms2,
volume_satuan_realisasi_1,volume_satuan_realisasi_2,volume_satuan_realisasi_3,volume_satuan_realisasi_4,volume_satuan_realisasi_5,volume_satuan_realisasi_6,volume_satuan_realisasi_7,
volume_satuan_realisasi_8,volume_satuan_realisasi_9,volume_satuan_realisasi_10,volume_satuan_realisasi_11,volume_satuan_realisasi_12,
jumlah_realisasi_1,jumlah_realisasi_2,jumlah_realisasi_3,jumlah_realisasi_4,jumlah_realisasi_5,jumlah_realisasi_6,jumlah_realisasi_7,
jumlah_realisasi_8,jumlah_realisasi_9,jumlah_realisasi_10,jumlah_realisasi_11,jumlah_realisasi_12
FROM VW_BELANJA_REALISASI_REPORT a
LEFT JOIN BELANJA_REALISASI_RINCI a1
ON a.id=a1.belanja_realisasi_id
LEFT JOIN (
SELECT BELANJA_REALISASI_ID,SUM(SEMESTER1) SEMESTER1,SUM(SEMESTER2) SEMESTER2,
SUM(SATUAN_SMS1) SATUAN_SMS1,SUM(SATUAN_SMS2) SATUAN_SMS2
FROM ( SELECT BELANJA_REALISASI_ID,JUMLAH_REALISASI AS SEMESTER1, 0 AS SEMESTER2,
VOLUME_SATUAN_REALISASI AS SATUAN_SMS1, 0 AS SATUAN_SMS2
FROM BELANJA_REALISASI_DETAIL WHERE SEMESTER = 1
UNION ALL SELECT BELANJA_REALISASI_ID,0 AS SEMESTER1, JUMLAH_REALISASI AS SEMESTER2,
0 AS SATUAN_SMS2, VOLUME_SATUAN_REALISASI AS SATUAN_SMS2
FROM BELANJA_REALISASI_DETAIL WHERE SEMESTER = 2
) GROUP BY BELANJA_REALISASI_ID
) a2 ON a.id = a2.BELANJA_REALISASI_ID
LEFT JOIN (
SELECT I_IDRSK,SUM(REALISASI) AS jml
FROM MV_ANGGARAN_REALISASI_RSK
WHERE C_ANGG_TAHUN = $ta
GROUP BY I_IDRSK
) b ON a.kode_rsk = b.I_IDRSK
LEFT JOIN (
SELECT id_rsk,SUM(jumlah) as jml_spd
FROM belanja_realisasi_spd
WHERE TO_CHAR(TGL,'YYYY') = $ta
GROUP BY id_rsk
) c ON a.kode_rsk = c.id_rsk
LEFT JOIN (
SELECT C_OPD,C_SUBGIAT,COUNT(JML) AS jml_spd
FROM
(
SELECT C_OPD,C_SUBGIAT,SUM(V_SPD) AS JML
FROM NEWSIPKD.TMSPDRINCIBLJ x
LEFT JOIN NEWSIPKD.TMDPASUBGIAT y ON x.I_IDSUBGIAT = y.I_ID
AND x.C_ANGG_TAHUN = $ta
LEFT JOIN NEWSIPKD.TROPD z ON z.I_ID = y.I_IDOPD
WHERE C_SUBGIAT IS NOT NULL
GROUP BY C_OPD,C_SUBGIAT,I_IDSPD
) GROUP BY C_OPD,C_SUBGIAT
) d ON a.KODE_SUB_KEGIATAN = d.C_SUBGIAT AND a.KODE_SKPD = d.C_OPD
".$filter."
ORDER BY a.KODE_SKPD, a.KODE_RSK ";
$sqlstr.= $limit > 0?" OFFSET ".$offset." ROWS FETCH NEXT ".$limit." ROWS ONLY ":"";
return $sqlstr;
}
public function akbRealisasi()
{
$ta = getTA();
$sqlstr = "SELECT * FROM MV_ASYNC_AKB_REALISASI WHERE TAHUN = $ta";
return $sqlstr;
}
}
+22
View File
@@ -0,0 +1,22 @@
<?php
namespace App\Models;
use App\Traits\Uuids;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Yajra\Oci8\Eloquent\OracleEloquent as Eloquent;
class BelanjaRealisasiBast extends Eloquent
{
use HasFactory;
protected $connection = 'Samasa';
protected $table = 'belanja_realisasi_bast';
protected $fillable = [
"id_kontrak",
"nomor_bast",
"tgl_bast",
"nominal_bast",
"file_bast",
"created_by"
];
}
+23
View File
@@ -0,0 +1,23 @@
<?php
namespace App\Models;
use App\Traits\Uuids;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Yajra\Oci8\Eloquent\OracleEloquent as Eloquent;
class BelanjaRealisasiDetail extends Eloquent
{
use HasFactory;
protected $connection = 'Samasa';
protected $table = 'belanja_realisasi_detail';
protected $fillable = [
"belanja_realisasi_id",
"jumlah_realisasi",
"alokasi_realisasi",
"volume_satuan_realisasi",
"unit_satuan_realisasi",
"semester",
"created_by"
];
}
+23
View File
@@ -0,0 +1,23 @@
<?php
namespace App\Models;
use App\Traits\Uuids;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Yajra\Oci8\Eloquent\OracleEloquent as Eloquent;
class BelanjaRealisasiKontrak extends Eloquent
{
use HasFactory;
protected $connection = 'Samasa';
protected $table = 'belanja_realisasi_kontrak';
protected $fillable = [
"belanja_realisasi_id",
"nomor_kontrak",
"tgl_kontrak",
"nominal_kontrak",
"file_kontrak",
"nomor_bast",
"created_by"
];
}
+42
View File
@@ -0,0 +1,42 @@
<?php
namespace App\Models;
use App\Traits\Uuids;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Yajra\Oci8\Eloquent\OracleEloquent as Eloquent;
class BelanjaRealisasiRinci extends Eloquent
{
use HasFactory;
protected $connection = 'Samasa';
protected $table = 'belanja_realisasi_rinci';
protected $fillable = [
"belanja_realisasi_id",
"jumlah_realisasi_1",
"volume_satuan_realisasi_1",
"jumlah_realisasi_2",
"volume_satuan_realisasi_2",
"jumlah_realisasi_3",
"volume_satuan_realisasi_3",
"jumlah_realisasi_4",
"volume_satuan_realisasi_4",
"jumlah_realisasi_5",
"volume_satuan_realisasi_5",
"jumlah_realisasi_6",
"volume_satuan_realisasi_6",
"jumlah_realisasi_7",
"volume_satuan_realisasi_7",
"jumlah_realisasi_8",
"volume_satuan_realisasi_8",
"jumlah_realisasi_9",
"volume_satuan_realisasi_9",
"jumlah_realisasi_10",
"volume_satuan_realisasi_10",
"jumlah_realisasi_11",
"volume_satuan_realisasi_11",
"jumlah_realisasi_12",
"volume_satuan_realisasi_12",
"created_by"
];
}
+24
View File
@@ -0,0 +1,24 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Yajra\Oci8\Eloquent\OracleEloquent as Eloquent;
class BelanjaRealisasiRinciDau extends Eloquent
{
use HasFactory;
protected $connection = 'Samasa';
protected $table = 'belanja_realisasi_rinci_dau';
protected $fillable = [
"belanja_realisasi_id",
"id_rinci_dau",
"deskripsi",
"jml_anggaran",
"volume_satuan",
"unit_satuan",
"jml_realisasi",
"volume_satuan_realisasi",
"unit_satuan_realisasi",
"periode_anggaran"
];
}
+20
View File
@@ -0,0 +1,20 @@
<?php
namespace App\Models;
use App\Traits\Uuids;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Yajra\Oci8\Eloquent\OracleEloquent as Eloquent;
class BelanjaRealisasiSPD extends Eloquent
{
use HasFactory;
protected $connection = 'Samasa';
protected $table = 'belanja_realisasi_spd';
protected $fillable = [
"id_rsk",
"no_spd",
"tgl",
"jumlah"
];
}
+16
View File
@@ -0,0 +1,16 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Yajra\Oci8\Eloquent\OracleEloquent as Eloquent;
use Illuminate\Support\Facades\Auth;
class DataBosOmspan extends Eloquent
{
use HasFactory;
protected $connection = 'Samasa';
protected $table = 'SAMASA.DATA_BOS_OMSPAN';
protected $guarded = [];
}
+16
View File
@@ -0,0 +1,16 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Yajra\Oci8\Eloquent\OracleEloquent as Eloquent;
use Illuminate\Support\Facades\Auth;
class DataUploadBosOmspan extends Eloquent
{
use HasFactory;
protected $connection = 'Samasa';
protected $table = 'SAMASA.DATA_UPLOAD_BOS_OMSPAN';
protected $guarded = [];
}
+14
View File
@@ -0,0 +1,14 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Yajra\Oci8\Eloquent\OracleEloquent as Eloquent;
class Kegiatan extends Eloquent
{
use HasFactory;
protected $connection = 'oracle';
protected $table = 'NEWSIPKD.TRDPAGIAT';
}
+24
View File
@@ -0,0 +1,24 @@
<?php
namespace App\Models;
use App\Traits\Uuids;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Yajra\Oci8\Eloquent\OracleEloquent as Eloquent;
class LaporanFile extends Eloquent
{
use HasFactory;
use Uuids;
protected $connection = 'Samasa';
protected $table = 'laporan_file';
protected $fillable = [
"tahun",
"tgl_upload",
"kode_rekening",
"kode_skpd",
"nama_skpd",
"nama_laporan",
"nama_file",
];
}
+20
View File
@@ -0,0 +1,20 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Yajra\Oci8\Eloquent\OracleEloquent as Eloquent;
class MappingDauRinci extends Eloquent
{
use HasFactory;
protected $connection = 'Samasa';
protected $table = 'mapping_dau_rinci';
protected $fillable = [
"id_dau_rinci",
"id_jenis_dana",
"tahun",
"kode_skpd"
];
}
+21
View File
@@ -0,0 +1,21 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Yajra\Oci8\Eloquent\OracleEloquent as Eloquent;
class MappingDbhSkpd extends Eloquent
{
use HasFactory;
protected $connection = 'Samasa';
protected $table = 'mapping_dbh_skpd';
protected $fillable = [
"id_sps",
"tahun",
"kode_rekening",
"kode_skpd",
"id_rekening"
];
}
+19
View File
@@ -0,0 +1,19 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Yajra\Oci8\Eloquent\OracleEloquent as Eloquent;
class MstDauRinci extends Eloquent
{
use HasFactory;
protected $connection = 'Samasa';
protected $table = 'MST_DAU_RINCI';
protected $fillable = [
"name",
"grup",
"satuan"
];
}
+20
View File
@@ -0,0 +1,20 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Yajra\Oci8\Eloquent\OracleEloquent as Eloquent;
class MstJenisBelanja extends Eloquent
{
use HasFactory;
protected $connection = 'Samasa';
protected $table = 'MST_JENIS_BELANJA';
protected $fillable = [
"kode",
"name",
"description",
"grup"
];
}
+18
View File
@@ -0,0 +1,18 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Yajra\Oci8\Eloquent\OracleEloquent as Eloquent;
class MstJenisDana extends Eloquent
{
use HasFactory;
protected $connection = 'Samasa';
protected $table = 'MST_JENIS_DANA';
protected $fillable = [
"name",
"grup",
];
}
+20
View File
@@ -0,0 +1,20 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Yajra\Oci8\Eloquent\OracleEloquent as Eloquent;
class MstSubJenisBelanja extends Eloquent
{
use HasFactory;
protected $connection = 'Samasa';
protected $table = 'MST_SUB_JENIS_BELANJA';
protected $fillable = [
"kode",
"id_jenis_belanja",
"name",
"description",
];
}
+25
View File
@@ -0,0 +1,25 @@
<?php
namespace App\Models;
use App\Traits\Uuids;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Yajra\Oci8\Eloquent\OracleEloquent as Eloquent;
class Notifikasi extends Eloquent
{
use HasFactory;
use Uuids;
protected $connection = 'Samasa';
protected $table = 'notifikasi';
protected $fillable = [
"role_from",
"role_to",
"userid",
"message",
"url",
"is_read",
"jenis",
"id_unik"
];
}
+29
View File
@@ -0,0 +1,29 @@
<?php
namespace App\Models;
use App\Traits\Uuids;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Yajra\Oci8\Eloquent\OracleEloquent as Eloquent;
class PendapatanRealisasi extends Eloquent
{
use HasFactory;
use Uuids;
protected $connection = 'Samasa';
protected $table = 'pendapatan_realisasi';
protected $fillable = [
'tahun','simtrad4_uraian','simtrad4_kotor','simtrad4_potongan','simtrad4_bersih','simtrad4_tgl_sp2d_bun','simtrad4_sp2d_bun',
'rkud_tgl','rkud_no_sts','rkud_kode_akun','rkud_nama_akun','rkud_jumlah','id_sps','kode_rekening_sps','nama_rekening_sps','file_sts',
'retur','bersih','tw','gelombang','potongan_pph','potongan_jkn','bulan'
];
public function hasSts() {
return $this->hasMany('App\Models\PendapatanRealisasiSts','id_pendapatan_realisasi','id');
}
public function listSts(){
return $this->hasOne('App\Models\VwRekapPendapatanSts','id_pendapatan_realisasi','id');
}
}
+15
View File
@@ -0,0 +1,15 @@
<?php
namespace App\Models;
use App\Traits\Uuids;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Yajra\Oci8\Eloquent\OracleEloquent as Eloquent;
class PendapatanRealisasiSts extends Eloquent
{
use HasFactory;
protected $connection = 'Samasa';
protected $table = 'pendapatan_realisasi_sts';
protected $guarded = [];
}
+18
View File
@@ -0,0 +1,18 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Spatie\Permission\Traits\HasPermissions;
class Pengaturan extends Model
{
use HasFactory, HasPermissions;
protected $table = 'pengaturan';
protected $fillable = [
'check_all_tambah',
'check_all_hapus',
'check_all_ubah'
];
}
+15
View File
@@ -0,0 +1,15 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Permission extends Model
{
use HasFactory;
protected $table = 'permissions';
protected $fillable = [
'name', 'guard_name'
];
}
+14
View File
@@ -0,0 +1,14 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Yajra\Oci8\Eloquent\OracleEloquent as Eloquent;
class Program extends Eloquent
{
use HasFactory;
protected $connection = 'oracle';
protected $table = 'NEWSIPKD.TRPROGRAM';
}
+11
View File
@@ -0,0 +1,11 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Role extends Model
{
use HasFactory;
}
+25
View File
@@ -0,0 +1,25 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class RolePermission extends Model
{
use HasFactory;
public $timestamps = false;
protected $table = 'role_has_permissions';
protected $fillable = [
'permission_id','role_id'
];
public function role() {
return $this->belongsTo('App\Models\Roless','role_id','id');
}
public function permission() {
return $this->belongsTo('App\Models\Permission','permission_id','id');
}
}
+26
View File
@@ -0,0 +1,26 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class RoleUser extends Model
{
use HasFactory;
protected $fillable = [
'role_id',
'user_id',
];
public function user()
{
return $this->belongsTo(User::class, 'user_id', 'id');
}
public function role()
{
return $this->belongsTo(Role::class, 'role_id', 'id');
}
}
+16
View File
@@ -0,0 +1,16 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Spatie\Permission\Traits\HasPermissions;
class Roless extends Model
{
use HasFactory, HasPermissions;
protected $table = 'roless';
protected $fillable = [
'name','guard_name'
];
}
+14
View File
@@ -0,0 +1,14 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Yajra\Oci8\Eloquent\OracleEloquent as Eloquent;
class Rsk extends Eloquent
{
use HasFactory;
protected $connection = 'oracle';
protected $table = 'NEWSIPKD.TMDPARSK';
}
+17
View File
@@ -0,0 +1,17 @@
<?php
namespace App\Models;
use App\Traits\Uuids;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Yajra\Oci8\Eloquent\OracleEloquent as Eloquent;
class Siesetpembayaran extends Eloquent
{
use HasFactory;
use Uuids;
protected $connection = 'oracle';
protected $table = 'NEWSIPKD.SI_ESET_PEMBAYARAN';
protected $fillable = [];
}
+21
View File
@@ -0,0 +1,21 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Yajra\Oci8\Eloquent\OracleEloquent as Eloquent;
class SisaSalurDana extends Eloquent
{
use HasFactory;
protected $connection = 'Samasa';
protected $table = 'MST_SISA_SALUR';
protected $fillable = [
"tahun",
"kode_rekening",
"jumlah",
"dokumen",
];
}
+14
View File
@@ -0,0 +1,14 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Yajra\Oci8\Eloquent\OracleEloquent as Eloquent;
class Sp2d extends Eloquent
{
use HasFactory;
protected $connection = 'oracle';
protected $table = 'NEWSIPKD.TMSP2D';
}
+35
View File
@@ -0,0 +1,35 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Yajra\Oci8\Eloquent\OracleEloquent as Eloquent;
use Illuminate\Support\Facades\Auth;
class Sps_pendapatan extends Eloquent
{
use HasFactory;
protected $connection = 'oracle';
protected $table = 'PROKSI.SPS_PENDAPATAN';
public function queryJadwalSalurDana($ta)
{
$sqlstr = 'SELECT x.*,y.JUMLAH as SISA FROM VW_JADWAL_SALUR x
LEFT JOIN MST_SISA_SALUR y ON x.TAHUN = y.TAHUN AND x.KODE_REKENING = y.KODE_REKENING';
if (getRole() == "skpd") {
$sqlstr .= ' WHERE x.kode_rekening IN (SELECT kode_rekening FROM MAPPING_DBH_SKPD WHERE KODE_SKPD=\'' . Auth::user()->nrk . '\') ';
} elseif (getRole() == "sbpk") {
$sqlstr .= ' WHERE x.kode_rekening IN (SELECT kode_rekening FROM MAPPING_DBH_SKPD WHERE KODE_SKPD IN (SELECT C_OPD FROM NEWSIPKD.TROPD WHERE C_WIL_SP2DPROSES=' . Auth::user()->wilayah . '))';
} elseif (getRole() == "walikota" || getRole() == "induk skpd") {
$sqlstr .= ' WHERE x.kode_rekening IN (SELECT kode_rekening FROM MAPPING_DBH_SKPD WHERE KODE_SKPD IN (SELECT C_OPD FROM NEWSIPKD.TROPD WHERE I_IDINDUK = (SELECT I_ID FROM NEWSIPKD.TROPD WHERE C_OPD=\'' . Auth::user()->nrk . '\')))';
} else {
$sqlstr .= " WHERE 1=1 ";
}
$sqlstr .= ' AND x.TAHUN = ' . $ta . ' AND SUBSTR(x.KODE_REKENING,1,3)=\'4.2\'';
return $sqlstr;
}
}
+14
View File
@@ -0,0 +1,14 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Yajra\Oci8\Eloquent\OracleEloquent as Eloquent;
class SubKegiatan extends Eloquent
{
use HasFactory;
protected $connection = 'oracle';
protected $table = 'NEWSIPKD.TMDPASUBGIAT';
}
+38
View File
@@ -0,0 +1,38 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Yajra\Oci8\Eloquent\OracleEloquent as Eloquent;
class TempRealisasiBelanja extends Eloquent
{
use HasFactory;
protected $connection = 'Samasa';
protected $table = 'TEMP_REALISASI_BELANJA';
protected $fillable = [
"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",
"jml_rencana_kontrak",
"jenis_dana",
"sub_jenis_dana",
"userid"
];
}
+14
View File
@@ -0,0 +1,14 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Yajra\Oci8\Eloquent\OracleEloquent as Eloquent;
class Trbas extends Eloquent
{
use HasFactory;
protected $connection = 'oracle';
protected $table = 'NEWSIPKD.TRBAS';
}
+14
View File
@@ -0,0 +1,14 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Yajra\Oci8\Eloquent\OracleEloquent as Eloquent;
class Tropd extends Eloquent
{
use HasFactory;
protected $connection = 'oracle';
protected $table = 'NEWSIPKD.TROPD';
}
+16
View File
@@ -0,0 +1,16 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class UnitSatuan extends Model
{
use HasFactory;
protected $table = 'unit_satuan';
protected $fillable = [
'nama_satuan'
];
}
+106
View File
@@ -0,0 +1,106 @@
<?php
namespace App\Models;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Laravel\Sanctum\HasApiTokens;
use Illuminate\Support\Str;
use Spatie\Permission\Traits\HasRoles;
class User extends Authenticatable
{
use HasApiTokens, HasFactory, Notifiable, HasRoles;
public $incrementing = false;
protected $keyType = "string";
/**
* The attributes that are mass assignable.
*
* @var string[]
*/
protected $fillable = [
'name',
'nrk',
'password',
'role_name',
'is_lock_upload',
'lock_tambah_data',
'lock_ubah_data',
'lock_hapus_data',
'lock_upload_time',
'lock_upload_by',
'wilayah'
];
/**
* The attributes that should be hidden for serialization.
*
* @var array
*/
protected $hidden = [
'password',
'remember_token',
];
/**
* The attributes that should be cast.
*
* @var array
*/
protected $casts = [
//'email_verified_at' => 'datetime',
];
public function roleUser()
{
return $this->hasOne(RoleUser::class, 'user_id', 'id');
}
protected static function boot() {
static::creating(function ($model) {
if (!$model->id){
$model->id = (string) Str::uuid();
}
});
parent::boot();
}
public function authorizeRoles($roles)
{
if ($this->hasAnyRole($roles)) {
return true;
}
abort(403, 'This action is unauthorized.');
}
// public function hasAnyRole($roles)
// {
// if (is_array($roles)) {
// foreach ($roles as $role) {
// if ($this->hasRole($role)) {
// return true;
// }
// }
// } else {
// if ($this->hasRole($roles)) {
// return true;
// }
// }
// return false;
// }
// public function hasRole($role)
// {
// $hasRole = $this->roleUser()->with(["role"=>function($query) use ($role){
// $query->where("name",$role);
// }])->first();
// if ($hasRole->role){
// return true;
// }else{
// return false;
// }
// }
}
+14
View File
@@ -0,0 +1,14 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Yajra\Oci8\Eloquent\OracleEloquent as Eloquent;
class VwAkbSpdRealRsk extends Eloquent
{
use HasFactory;
protected $connection = 'oracle';
protected $table = 'NEWSIPKD.VW_AKB_SPD_REALISASI_RSK';
}
+16
View File
@@ -0,0 +1,16 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Yajra\Oci8\Eloquent\OracleEloquent as Eloquent;
class VwBelanjaRealisasi extends Eloquent
{
use HasFactory;
public $incrementing = false;
protected $keyType = "string";
protected $connection = 'Samasa';
protected $table = 'VW_BELANJA_REALISASI';
}
+14
View File
@@ -0,0 +1,14 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Yajra\Oci8\Eloquent\OracleEloquent as Eloquent;
class VwDpaRsk extends Eloquent
{
use HasFactory;
protected $connection = 'Samasa';
protected $table = 'VW_DPA_RSK';
}
+14
View File
@@ -0,0 +1,14 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Yajra\Oci8\Eloquent\OracleEloquent as Eloquent;
class VwJadwalSalur extends Eloquent
{
use HasFactory;
protected $connection = 'Samasa';
protected $table = 'VW_JADWAL_SALUR';
}
+14
View File
@@ -0,0 +1,14 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Yajra\Oci8\Eloquent\OracleEloquent as Eloquent;
class VwJenisBelanja extends Eloquent
{
use HasFactory;
protected $connection = 'Samasa';
protected $table = 'VW_JENIS_BELANJA';
}

Some files were not shown because too many files have changed in this diff Show More