Files
My-KOPKB/README.md
T
ISMAIL MASSERAN 94ecbe5887 first init
2026-06-08 11:37:14 +08:00

142 lines
4.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# SUTERA 3.0 Guide
Welcome to **SUTERA 3.0**, the streamlined training deployment setup using **Docker**, **Laravel**, and **Vite**.
---
## 🔐 Login Credentials
> Use the following to log into the system:
- **Email**: `isml.msrn11@gmail.com`
- **Password**: `TOPAZTHEGOAT`
---
## Formula Used:
1. KEUPAYAAN (%) = (PEGANGAN/PERJAWATAN) * 100
2. SIAPSIAGA or KESIAGAAN (%) = (BDG/perjawatan) * 100
3. SERVISIBILITI (%) = (BDG/pegangan) * 100
## Laravel command to clear
```bash
sail artisan config:clear
sail artisan cache:clear
sail artisan permission:cache-reset
```
---
# 🎯 Addtional Notes to consider
- Make sure `/var/www/public/build` exists inside your PHP-FPM container (handled by Dockerfile).
- Assets are built via Vite in the **Node.js stage** and injected into the Laravel `public/` directory.
- Use `entrypoint.sh` for Laravel setup like `php artisan migrate` or `storage:link` if needed.
- 'DEVELOPER' roles can bypassed all permissions by default and cannot be deleted even through database
- Use delete in controller not directly in routes because no authorization and validation
- Use Gate for non-model-specific permissions. general-purpose or simple logic,
- Use policy when need structured authorization for CRUD operations. anything tied to a model/resource
- Servisibility always higher than siapsiaga
- Solution — put specific routes first before resource routes
- to use soft delete, make id and deleted_at as unique
- to make new module, run:
```bash
sail artisan module:make Example
```
- There are two User model files
## PKJ Default Varian (DO NOT DELETE) or update. If require update, be sure to update the export name for each PKJ report:
- BANTUAN MOBILITI
- BEKALAN AIR
- EOD/IED/PEMUSNAHAN
- JURUUKUR
- KENDERAAN JENIS A
- KENDERAAN JENIS B
- OPTRONIK DAN PERALATAN LATIHAN
- PELURU DAN BAHAN LETUPAN
- PEMUSNAHAN
- PERALATAN KETUKANGAN
- PERALATAN KOMUNIKASI PERTAHANAN
- PERALATAN PD&P
- PERALATAN PERAIRAN
- PERALATAN PNBK
- SENJATA PERTAHANAN
```sql
--- KJC TO UPDATE PEGANGAN IN PERJAWATAN TABLE; CHECK WILL BE UPDATED FIRST
SELECT
ae.id,
ae.entitlement,
ae.holding AS current_holding,
(
SELECT COUNT(*)
FROM kjc_asset_holdings ah
WHERE ah.kjc_category_id = ae.kjc_category_id
AND ah.kjc_category_id = ae.kjc_category_id
AND ah.unit_id = ae.unit_id
AND ah.deleted_at IS NULL
) AS actual_holding_count
FROM kjc_asset_entitlements ae
WHERE ae.deleted_at IS NULL;
--- EXECUTE IT
UPDATE kjc_asset_entitlements ae
SET ae.holding = (
SELECT COUNT(*)
FROM kjc_asset_holdings ah
WHERE ah.kjc_category_id = ae.kjc_category_id
AND ah.kjc_category_id = ae.kjc_category_id
AND ah.unit_id = ae.unit_id
AND ah.deleted_at IS NULL
)
WHERE ae.deleted_at IS NULL;
```
## Run specific laravel migration:
- If it is fresh, then run:
```bash
sail artisan migrate --path=database/migrations/2025_07_30_044653_create_historical_pkj_perjawatan_table.php
```
- If not, rollback first:
```bash
sail artisan migrate:rollback --step=1
sail artisan migrate --path=database/migrations/2025_07_30_044708_create_historical_pkj_pegangan_status_table.php
```
## To remove data in postgres and restart numbering
```bash
TRUNCATE TABLE kjc_spare_parts RESTART IDENTITY;
```
## Reset query numbering
```sql
SELECT pg_get_serial_sequence('"permissions"', 'id') AS seq_name;
SELECT last_value FROM public.permissions_id_seq;
SELECT setval('public.permissions_id_seq', COALESCE((SELECT MAX(id) FROM permissions), 0) + 1, false);
```
## Run capture data command
```bash
# kjc
sail artisan kjc:historical:trigger
# pkj
sail artisan pkj:historical:trigger
```
## Auto-generate weekly KJC report (Jabatan Arah RAJD) - Scheduled to run every Monday at 3:00 AM.
```bash
# Manual trigger
sail artisan kjc:auto-generate-weekly-report "Jabatan Arah RAJD"
# Force regenerate even if reports exist
sail artisan kjc:auto-generate-weekly-report "Jabatan Arah RAJD" --force
```
# Git
## DO NOT RUN THIS BECAUSE IT WILL REMOVE ALL THE UNTAGGED FILES IN LOCAL
```bash
git reset --hard development # moves the current branch (e.g., main) to point exactly where development
```